+ All Categories
Home > Documents > curs3 cap1-12.pdf

curs3 cap1-12.pdf

Date post: 03-Feb-2018
Category:
Upload: april-mckenzie
View: 257 times
Download: 0 times
Share this document with a friend
177
7/21/2019 curs3 cap1-12.pdf http://slidepdf.com/reader/full/curs3-cap1-12pdf 1/177 Prelegerea 1 Not ¸iuni de baz˘a ale criptografiei 1.1 Definit ¸ii ¸ si notat ¸ii preliminare Criptografia este o component˘a a unui domeniu mult mai larg, numit securitatea informat ¸iei. Obiectivele urm˘ arite de acesta pot fi sumarizate ˆ ın: 1.  Confident ¸ialitate (privacy): proprietatea de a p˘astra secretul informat ¸iei, pentru ca aceasta s˘ a fie folosit˘a numai de persoanele autorizate. 2.  Integritatea datelor : proprietatea de a evita orice modificare (inserare, ¸ stergere, substitut ¸ie) neautorizat˘ a a informat ¸iei. 3.  Autentificare : Proprietatea de a identifica o entitate conform anumitor standarde. Este compus˘ a din (a)  Autentificarea unei entit˘ at ¸i ; (b)  Autentificarea sursei informat ¸iei ; 4.  Non - repudierea : Proprietatea care previne negarea unor evenimente anterioare. Celelalte obiective legate de securitatea informat ¸iei (autentificarea mesajelor, semn˘aturi, autorizare, validare, controlul accesului, certificare, timestamping, confirmarea recept ¸iei, anonimitate, revocare) pot fi derivate din acestea. Definit ¸ia 1.1  Criptografia este studiul metodelor matematice legate de securitatea infor- mat ¸iei, capabile s˘ a asigure confident ¸ialitatea, autentificarea ¸si non-repudierea mesajelor, precum ¸si integritatea datelor vehiculate ([1]. Termenul  criptografie  ˆ ınseamn˘a  scriere secret˘ 1 . Domeniul cuprinde atˆ at operat ¸ia de criptare (cifrare) a unui text, cˆat ¸ si eventualele ˆ ıncerc˘ ari de descifrare ¸ si de aflare a cheii 1 Cuvˆ antul este format din cuvintele grece¸ sti  cryptos  – ascuns ¸ si  grafie  – scriere 1
Transcript
Page 1: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 1/177

Prelegerea 1

Notiuni de baza ale criptografiei

1.1 Definitii si notatii preliminare

Criptografia este o componenta a unui domeniu mult mai larg, numit securitatea informatiei.Obiectivele urmarite de acesta pot fi sumarizate ın:

1.   Confident ialitate (privacy): proprietatea de a pastra secretul informatiei, pentru caaceasta sa fie folosita numai de persoanele autorizate.

2.   Integritatea datelor : proprietatea de a evita orice modificare (inserare, stergere,

substitutie) neautorizata a informatiei.

3.   Autentificare : Proprietatea de a identifica o entitate conform anumitor standarde.Este compusa din

(a)  Autentificarea unei entit˘ at i ;

(b)  Autentificarea sursei informat iei ;

4.  Non - repudierea : Proprietatea care previne negarea unor evenimente anterioare.

Celelalte obiective legate de securitatea informatiei (autentificarea mesajelor, semnaturi,

autorizare, validare, controlul accesului, certificare, timestamping, confirmarea receptiei,anonimitate, revocare) pot fi derivate din acestea.

Definitia 1.1  Criptografia este studiul metodelor matematice legate de securitatea infor-mat iei, capabile s˘ a asigure confident ialitatea, autentificarea si non-repudierea mesajelor,precum si integritatea datelor vehiculate ([1].

Termenul  criptografie   ınseamna   scriere secret˘ a 1. Domeniul cuprinde atat operatia decriptare (cifrare) a unui text, cat si eventualele ıncercari de descifrare si de aflare a cheii

1Cuvantul este format din cuvintele grecesti  cryptos  – ascuns si  grafie   – scriere

1

Page 2: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 2/177

2   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

de criptare.   In unele lucrari, cadrul general de lucru este numit  criptologie , termenul decriptografie  desemnand numai operatia de cifrare si descifrare legala.

Situatia generala de care se ocupa criptografia este urmatoarea:

Criptanalist

Expeditor   Destinatar 

Expeditorul (personalizat ın majoritatea lucrarilor cu apelativul Alice ) doreste sa trimita

destinatarului (numit  Bob) un mesaj printr-un canal de comunicat ie, canal cu un gradridicat de nesiguranta2. Aceasta insecuritate o prezinta un adversar criptanalist (Oscar )care doreste – din diverse motive – sa cunoasca si – eventual – sa modifice continutulmesajului, desi acesta nu ıi este destinat.

Aceasta   confident ialitate   solicitata de  Alice   si  Bob  se rezolva de obicei prin transfor-marea mesajului ın asa fel ıncat el sa nu poata fi ınteles de nici o persoana care l-ar puteaintercepta. Transformarea respectiva se numeste  criptare.

In general, hackerul  Oscar  poate avea doua tipuri de comportament:

•   Pasiv : el se multumeste sa intercepteze mesajele si sa le citeasca, folosindu-le ın

scop personal;

•   Activ : doreste sa modifice mesajele, sa le schimbe ordinea sau sa introduca propriilesale mesaje, ın intentia de a fi acceptat de Bob  drept Alice .   In acest caz, mesajul vatrebui sa verifice – ınafara de conditia de confidentialitate – si pe cea de autenticitate:Bob trebuie sa fie sigur ca mesajul primit a fost de la  Alice .

In unele cazuri, problema se poate complica prin faptul c a exista anumite mesaje pecare Alice  neaga ca ıi apartin, desi le-a trimis chiar ea.   In acest caz trebuie prevazuteanumite protocoale care sa ıntareasca proprietatile de autentificare; proprietati caresa o sileasca pe  Alice  sa ısi recunoasca propriile mesaje (non-repudiere).

In toate aceste scenarii nu exista personaje pozitive sau negative. Orice serviciu decriptare/decriptare are si o sectie de criptanaliza. Se pot da numeroase exemple dinistorie care sa arate rolul pozitiv al lui   Oscar   ın anumite situatii.   In general, ıntr-untriplet (expeditor, destinatar, criptanalist) nimeni nu are ıncredere ın nimeni. Variantelestudiate ın care  Alice  are ıncredere ın  Bob sau invers, sunt mult mai simple si – de aceea– extrem de rare.

2Canalul de comunicatie poate suferi si perturbari de ordin fizic: zgomote, stergeri, demodulari etc;

studiul detectarii si corectarii erorilor de de transmitere a informatiei constituie tema altui domeniu,

numit Teoria Codurilor .

Page 3: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 3/177

1.1. DEFINITII SI NOTATII PRELIMINARE    3

Pentru a ıncepe un studiu sistematic al domeniului, sa stabilim ıntai terminologiafolosita uzual:

Un mesaj ın forma sa originara este numit  text clar . Expeditorul rescrie acest mesajfolosind o metoda cunoscuta numai de el (eventual si de destinatar); spunem ca el cripteaz˘ a (sau  cifreaz˘ a ) mesajul, obtinand un  text criptat . Destinatarul primeste textul cifrat si ıldecripteaza stiind metoda folosita pentru criptare; deci Alice   si Bob  trebuie sa stabileascaıntr-o etapa preliminara detaliile modalitatii de criptare si de decriptare.

Algoritmul care realizeaza operatiile descrise se numeste   sistem de criptare . Formal,

Definitia 1.2  Un sistem de criptare este o structur˘ a  (P , C , K, E , D), unde:

• P =  {w   |  w  ∈  V ∗}   este mult imea ”textelor clare”, scrise peste un alfabet nevid  V 

(uzual  V   = {0, 1}).

• C =  {w   |  w  ∈  W ∗}  este mult imea ”textelor criptate”, scrise peste un alfabet nevid W   (uzual  W   = V ).

• K  este o mult ime de elemente numite chei.

•   Fiecare cheie   K   ∈ K   determin˘ a o metod˘ a de criptare   eK    ∈ E   si o metod˘ a de decriptare   dK   ∈ D.   eK    :   P−→ C   si   dK    :   C−→ P   sunt funct ii cu proprietatea dK (eK (w)) = w,   ∀w ∈ P .

In general se considera C = {α | ∃a ∈ P ,   ∃k ∈ K, α =  eK (a)}.

Functia eK  este evident injectiva3; daca  eK  este bijectiva (si deci  dK  = e−1K  ), sistemul

de criptare se numeste ”simetric ”.Pentru ca un sistem de criptare sa fie considerat  bun, trebuie ındeplinite trei criterii

(enuntate de Francis Bacon ın sec.   X V I I  ):

1. Fiind date  eK   si  α  ∈ P , este usor de determinat  eK (α);

2. Fiind date  dK   si  w  ∈ C , este usor de determinat  dK (w);

3.   α  este imposibil de determinat din  w, fara a cunoaste  dK .

Ultimul criteriu defineste – sub o forma vaga – ideea de ”securitate” a sistemului.

La aceste criterii, Bacon adauga si o a patra regula:

4 Textul criptat trebuie sa fie un text banal, fara suspiciuni.

Aceasta conditie este utilizata astazi doar de un subdomeniu strict al criptografiei, numitsteganografie .

In termeni de complexitate, prin ”usor” se ıntelege folosirea unui algoritm polinomialde grad mic – preferabil algoritm liniar; o problema se considera ”imposibila” daca pentrurezolvarea ei nu se cunosc decat algoritmi de complexitate exponentiala.

3Conditia de injectivitate nu este obligatorie pentru functia de decriptare  dK .

Page 4: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 4/177

4   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

Observatia 1.1   ˆ Intreaga disciplin˘ a numit˘ a ”criptografie” se bazeaz˘ a pe o conjectur˘ a no-tat˘ a prescurtat  P=  N P   4(pentru detalii a se vedea [5]).   P   reprezint˘ a clasa problemelor rezolvabile prin algoritmi a c˘ aror complexitate este m˘ arginit˘ a superior de o funct ie poli-nomial˘ a ın lungimea datelor de intrare. Modelul standard de calculabilitate este masina Turing.   N P  este clasa problemelor rezolvabile prin algoritmi nedeterministic polinomiali (care sunt inclusi ın algoritmii de complexitate cel put in exponent ial˘ a). Evident, P⊆ N P  ,dar se pare c˘ a problema egalit˘ at ii este nedecidabil˘ a (ın termeni matematici). Oricum,pentru cei interesat i, site-ul [4] este dedicat unei inform˘ ari actualizate permanent a rezul-tatelor si ıncerc  arilor de rezolvare a acestei probleme.

Exemplul 1.1  Unul din primele sisteme de criptare cunoscute este sistemul de criptare Cezar. Conform istoricului Suetoniu, el a fost folosit de Cezar ın corespondent a sa.

S˘ a consider˘ am alfabetul latin scris, ın ordine 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 

Fie  k   un num˘ ar ıntreg din intervalul   [0, 25]. El se va numi ”cheie de criptare”. Re-scriem alfabetul latin permutat ciclic, ıncepˆ and ıns  a cu litera avˆ and num˘ arul de ordine k   (litera  A  are num˘ arul de ordine  0). Aceast˘ a nou˘ a scriere o asez˘ am sub prima scriere,astfel (am presupus  k = 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 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 

Dac˘ a Alice are un text clar pe care vrea s˘ a-l cripteze cu sistemul Cezar, ea va proceda 

astfel:S˘ a presupunem c˘ a acest text clar este NIMIC NOU. Alice va aseza sub fiecare liter˘ a a 

acestui text, litera aflat˘ a pe linia a doua din tabelul de sus, astfel:N I M I C N O U 

P K O K E P Q W 

Textul criptat obt inut este   PKOKEPQW   (din motive suplimentare de securitate,spat iile dintre cuvinte se ignor˘ a de obicei).

La primirea textului, Bob – care stie c˘ a este vorba de sistemul de criptare Cezar – va proceda astfel: el cunoaste (fiind destinatar legal) cheia de criptare   ek. Cheia sa de decriptare este  e26−k. Pe baza ei Bob va putea construi cele doua linii ale tabelului, dup˘ a 

care va proceda ca Alice: scrie textul criptat pe prima linie, iar pe a doua linie determin˘ a literele corespunz˘ atoare, conform tabelului.

ˆ In cazul   k   = 2, Bob va folosi drept cheie num˘ arul   e26−2   =  e24, iar tabelul (litera   24corespunde lui Y) este 

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 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 

Literele  PKOKEPQW   determin˘ a pe a doua linie textul  NIMICNOU .

4Aceasta este prima din cele cinci probleme ale mileniului, pentru rezolvarea c arora se acorda premii

de cate un milion dolari.

Page 5: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 5/177

1.1. DEFINITII SI NOTATII PRELIMINARE    5

S˘ a rescriem sistemul Cezar ın termenii Definit iei 1.2. Deoarece textele clare si cele criptate folosesc alfabetul latin, vom efectua ın prima etap˘ a o operat ie de ”codificare”:asociem literelor numere ıntregi din intervalul   [0, 25]:

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

ˆ In acest fel putem opera matematic pe un inel finit foarte simplu:   Z 26. Vom avea P  = C  = K= Z 26. Pentru un  K  ∈ K  ales arbitrar,

eK (m) = m + K  (mod 26)

si dK (α) = α − K  (mod 26)

Definitia 1.3   Procesul de determinare a unei chei  K  folosind un text criptat  α  (asociat eventual cu alte informat ii auxiliare) se numeste ”criptanaliz˘ a”.

Deci decriptarea  si criptanaliza  au ın final acelasi scop: aflarea textului clar. Diferentaconsta ın faptul ca ın criptanaliza el trebuie aflat fara a sti cheia de decriptare. Exista o

”regula de aur” a creatorilor de sisteme de criptare:Nu subestimat i niciodat˘ a pe criptanalist.

care s-a verificat din punct de vedere istoric pentru toate sistemele create pana ınprezent: acestea sau au fost sparte sau trebuie sa se revizuiasca periodic pentru a rezistaatacurilor permanente ale intrusilor.

Sa studiem putin pozitia unui criptanalist (Oscar ). Se presupune ıntotdeauna ca elare la dispozitie facilitati de calcul excelente, adesea superioare celor de care dispun ceidoi parteneri  Alice   si Bob.

Mai mult, se poate considera ca  Oscar  cunoaste sistemul de criptare. S-a constatatca – practic – acest lucru se ıntampla totdeauna. Ce nu cunoaste ınsa criptanalistul este

cheia K  ∈ K.Cel mai simplu atac consta ın parcurgerea tuturor cheilor posibile si verificarea textului

criptat, pana se gaseste cheia corecta. Este atacul prin fort   a brut˘ a  si el reuseste totdeauna,pentru ca exista ıntotdeauna o cheie ın  K, care a folosit la criptare. Deci, ın cazul candnumarul cheilor posibile este mic (ın Exemplul 1.1 sunt numai 26 chei), aceasta cheie sepoate afla foarte usor dupa un numar finit de ıncercari. De aceea sunt folosite obligatoriusisteme de criptare cu card(K) foarte mare. Pentru o cheie care ocupa n biti sunt necesareın general 2n cautari (daca nu exista nici o informatie suplimentara). O extindere alungimii cheii la n + 1 biti dubleaza deci spatiul de cautare.   In momentul de fata, tehnicade calcul ofera atacuri prin forta bruta eficiente pentru cheile de lungimi mai mici de 128

Page 6: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 6/177

6   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

biti; asa ca sistemele de criptare actuale folosesc ın general chei de 1024 biti sau chiar maimult5.

In general, un criptanalist este pus ın fata urmatoarelor situatii, care ıi solicita strategiidiverse de urmat:

1. Stie numai textul criptat  w; ın acest caz atacurile sunt direct legate de lungimeatextului.

In sisteme simple – cum este   Cezar   – sunt suficiente texte scurte, pentru ca osingura potrivire produce textul - clar. Pentru sistemele mai evoluate, este necesarao lungime mai mare a textului criptat. Metodele de criptanaliza folosesc diverseconjecturi si informatii statistice relative la alfabetul textului - clar, la frecventaaparitiei caracterelor etc.

2. Stie cel putin o pereche de caractere (text clar, text criptat); din cunoasterea catorvaperechi (x, eK (x)) cu   x   ∈ V   criptanalistul va ıncearca sa decripteze ıntregul textcriptat interceptat.

Exemplul 1.2  La sistemul de criptare Cezar, o singur˘ a pereche  (a, eK (a)), dezv˘ aluie imediat cheia si – implicit duce la decriptare.

Exemplul 1.3   Aceasta a fost situat ia ın care s-a aflat orientalistul francez Cham-

pollion cˆ and a descifrat hieroglifele,folosind piatra de la Rosetta (vezi [6]).

3. Criptanalistul cunoaste criptarea unor texte clare selectate de el; este atacul cu text clar ales , considerat ın majoritatea studiilor de criptanaliza. Aceasta situatie esteadesea superioara celei din cazul precedent; sa exemplificam acest lucru.

Exemplul 1.4   Fie sistemul de criptare Hil l, creat ın  1929 de Lester Hill. Fie  d ≥ 2un num˘ ar ıntreg fixat. Se definesc 

P = C = (Z 26)d,   K= {M   | M  ∈ Md(Z 26), det(M ) = 0}.

Deci o cheie de criptare este o matrice  M   p˘ atrat˘ a nesingular˘ a de dimensiune  d, cu 

elemente din  Z 26, iar  M −1  formeaz˘ a cheia de decriptare.

Textul clar   w   se ımparte ın blocuri de lungime   d   :   w   =   α1α2 . . . αn,   |αi|   =   d(ultimul bloc se completeaz˘ a eventual pˆ an˘ a ajunge la lungimea  d). Textul criptat va  fi  x =  β 1β 2 . . . β  n  unde  β i = eM (αi) = αi · M  (mod 26),   (1 ≤ i ≤ n).

Pentru decriptare se foloseste relat ia  dM (β i) = β i · M −1 (mod 26).

S˘ a lu˘ am de exemplu  d = 2   si cheia  M  =

  3 32 5

, cu inversa  M −1 =

  15 1720 9

.

5O exceptie o constituie sistemele bazate pe curbe eliptice, datorita aparatului matematic special.

Page 7: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 7/177

1.1. DEFINITII SI NOTATII PRELIMINARE    7

Dac˘ a textul clar este  w =  F RAC , vom avea α1  = (F R) = (5 17), α2  = (A C ) = (0 2)

Din relat iile 

β 1  =  α1 · M  (mod 26) = (5 17) ·

  3 32 5

= (23 22) = (X W )

β 2  =  α2 · M   (mod 26) = (0 2) ·

  3 32 5

= (4 10) = (E K )

se obt ine textul criptat  x =  XWEK .

S˘ a ne situ˘ am acum pe pozit ia lui Oscar: presupunem c˘ a am g˘ asit dimensiunea  d  = 2

si ıncerc  am s˘ a afl˘ am matricea   M   (sau – echivalent –   M −1), stiind perechea (text clar, text criptat)=  (FRAC, XWEG).

Deci Oscar se afl˘ a acum ın fat a urm˘ atoarei probleme: care este matricea   M   =  a bc d

 cu  a, b, c, d ∈ {0, 1, . . . , 25}, astfel ca 

  5 170 2

·

  a bc d

=

  23 22

4 10

.

Pentru a putea afla aceast˘ a matrice, Oscar trebuie s˘ a afle inversa lui  A =

  5 170 2

.

Cum  det(A) = 10   si  cmmdc(10, 26)  >  1 =⇒   10−1 (mod 26)  nu exist˘ a; deci  A  nu este inversabil˘ a.

S˘ a presupunem acum c˘ a Oscar lucreaz˘ a ın ipoteza  (3); alege un text clar a c˘ arui ma-trice este inversabil˘ a si ıi afl  a criptarea. Fie  BRAD  acest text clar, a c˘ arui matrice 

asociat˘ a este  A =

  1 170 3

. Oscar solicit˘ a criptarea lui  BRAD si primeste  LKGP 

– de matrice  B =

  11 10

6 15

. Deci el dispune de perechea  (BRAD, LKGP ).

Oscar detemin˘ a ınt  ai  A−1 =

  1 30 9

. Apoi, din ecuat ia  A · M  = B, va g˘ asi solut ia 

M  = A−1 · B  =   1 3

0 9 ·

  11 10

6 15 =

  3 3

2 5

4. Stie cheia de criptare; acum Oscar  va cunoaste cheia eK   si ıncearca sa determine dK 

ınainte de interceptarea mesajelor criptate.

Aceasta este situatia tipica sistemelor de criptare cu cheie publica: cheia de criptareeK   este cunoscuta public cu mult ınainte de a fi folosita pentru criptare. Decicriptanalistul are la dispozitie destul de mult timp pentru prelucrarea ei si oriceclarificare ın perioada cand timpul este ”ieftin” are o valoare deosebita; dupa ce seprimesc mesaje criptate, timpul devine  scump, si el trebuie sa fie scurtat cat maimult.

Page 8: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 8/177

8   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

1.2 Sisteme simetrice de criptare

In general, sistemele de criptare clasice se numesc si sisteme simetrice . Motivul este acelaca odata cu aflarea cheii de criptare  eK , cheia de decriptare  dK   se obtine imediat, fiindfunctia inversa.

Exemplul 1.5   ˆ In Exemplul 1.1, la sistemul Cezar  dK   =  e26−K  este cheia de decriptare pentru cheia de criptare  eK .

Sistemele de criptare simetrice se ımpart ın doua clase mari:  cifruri de permutare  si cifruri cu substitut ie .

1.2.1 Cifruri de permutare

La aceste sisteme de criptare, textul clar se ımparte ın blocuri de  n   (n  ≥   2) caractere,dupa care fiecarui bloc i se aplica o permutare fixata.

Exemplul 1.6   S˘ a presupunem c˘ a vom lua drept cheie de criptare permutarea 

  1 2 32 1 3

.

Atunci un text clar, de exemplu FLOARE ALBASTRA se ımparte ın grupuri de c˘ ate trei caractere (s-a considerat si caracterul spat iu, notat )

FLO ARE AL BAS TRATextul criptat va fi 

LFO RAE A L ABS RTAsau – eliminˆ and grup˘ arile, LFORAEA LABSRTA.

Exemplul 1.7   Un sistem celebru de criptare cu permut  ari este sistemul Richelieu, prezen-tat si ın literatur  a de Jules Verne, ın romanul Mathias Sandorf. D˘ am un exemplu de utilizare a unui astfel de sistem.

Fie cartonul  6 × 6, ın care zonele hasurate constituie g˘ auri.

Vrem s˘ a cript˘ am textul EMINESCU A FOST UN MARE POET NATIONAL

Vom scrie acest text sub forma unui tabel cu sase linii si sase coloane, astfel:

Page 9: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 9/177

1.2. SISTEME SIMETRICE DE CRIPTARE    9

E M I N E S  C U A F  O S T U N  

M A R E P  O E T N AT I O N A L

Aplicˆ and cartonul peste acest text, vor r˘ amˆ ane vizibile  9  caractere: MNS TA AN (citite de la stˆ anga la dreapta si de sus ın jos).

Vom roti acum cartonul cu  90o ın sensul acelor de ceasornic. El va ar˘ ata 

Asez  and acum peste text, r˘ amˆ an vizibile caracterele F MPTNIL (primul caracter a fost un spat iu si l-am marcat cu pentru a-l face vizibil).

La a treia rotire a cartonului se obt ine similar textul ICSUEETOA, iar la a patra – EEUAOURO 

Deci textul criptat este MNS TA AN F MPTNILICSUEETOAEEUAOURO 

Operat ia de decriptare se realizeaz˘ a similar.

Sa formalizam aceste informatii.

Definitia 1.4   Fie   n   un num˘ ar natural nenul. Un cifru de permutare este un sistem (P , C , K, E , D)  unde  P = C = (Z 26)n,  K= P n  (mult imea permut˘ arilor de  n  elemente).

Pentru o cheie (permutare)  π

eπ(a1a2 . . . an) = aπ(1)aπ(2) . . . aπ(n)

dπ(b1b2 . . . bn) = bπ−1(1)bπ−1(2) . . . bπ−1(n)

Lema 1.1  Un cifru de permutare este un sistem de criptare Hill.

Demonstrat ie : Pentru fiecare permutare  π  ∈ P n  putem construi o matrice de permutareM π  = (mi,j) definita

mi,j  = 1   ⇐⇒   i =  π( j)

Se verifica usor faptul ca sistemul de criptare Hill cu matricea  M π  este echivalent cu uncifru de permutare bazat pe cheia  π. Mai mult,  M −1

π   = M π−1 .

Page 10: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 10/177

10   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

Exemplul 1.8   S˘ a relu˘ am Exemplul 1.6. Permut˘ arii    1 2 3

2 1 3 ıi corespunde matricea 

de permutare 

0 1 0

1 0 00 0 1

.

Operat ia de criptare este imediat˘ a. De exemplu, criptarea textului  F LO  este 

(5 11 14) ·

0 1 0

1 0 00 0 1

= (11 5 14)

adic˘ a  LF O.

1.3 Exercitii

1.1   Textul clar NUMAR este criptat ın ”Orice vˆ ant nu bate seara”. S˘ a se descrie sistemul de criptare.

1.2   Folosind atacul prin fort   a brut˘ a, decriptat i mesajul WYPTBSJBYZ criptat cu un sistem Cezar.

1.3   O cheie  K  este ”auto-cheie” dac˘ a  dK   =  eK . G˘ asit i toate auto-cheile sistemului de 

criptare Cezar.

1.4   Fie  p  un num˘ ar prim. Ar˘ at˘ at i c˘ a num˘ arul matricilor  2 × 2  inversabile peste  Z  p  este ( p2 − 1)( p2 − p).

1.5   Cˆ ate matrici  2 × 2   sunt inversabile peste  Z n  pentru  n = 6,   9,   26  ? 

1.6   S˘ a se cripteze textul clar INAINTE SI LA DREAPTA folosind sistemul de xriptare Hill cu matricea 

M  = 17 17 5

21 18 212 2 19

  sau    M  = 11 2 19

5 23 2520 7 1

1.7   Cˆ ate auto-chei sunt ıntr-un sistem de criptare Hill cu  d = 2  ? 

1.8   Determinat i inversele matricilor (modulo  26):

  2 59 5

,

  11 8

3 7

,

10 5 12

3 14 218 9 11

,

1 11 12

4 23 217 15 9

Page 11: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 11/177

1.3. EXERCITII    11

1.9   Demonstrat i c˘ a ıntr-un cifru de permutare, π  este o auto-cheie dac˘ a si numai dac˘ a 

(∀i, j) [π(i) = j   =⇒   π( j) = i]

G˘ asit i toate auto-cheile unui cifru de permutare cu  n = 2, 3, 4, 5, 6.

1.10   Consider˘ am urm˘ atorul cifru de permutare: Se fixeaz˘ a numerele naturale  p, q . Tex-tul clar se ımparte ın blocuri de cˆ ate  p · q  caractere. Fiecare astfel de bloc se scrie pe liniile unei matrici de  p linii si  q  coloane. Criptarea blocului se realizeaz˘ a scriind aceste matrici pe coloane.

De exemplu, pentru  p = 3, q  = 4, textul clar MAINI CURATE se scrie 

M A I N  

I C U RA T E X  (textul s-a completat cu litera  X ). Textul criptat va fi MIAACTIUENRX.

Decriptat i urm˘ atorul text DJNOUDNAINPAPANONZ criptat ıntr-un mod similar.

1.11   S˘ a se decripteze mesajul N T I N I I I D D N R I R T E E A D  U M I I G R A D V O B E M C I I I E  Z S R U A U C M L T A I T U I T N I  D A A L E A R A C R I A S Z T E E E  I G P S A D E A P R E Z S T C A O  

A E R I D R E D D E I E S E E P E Lstiind c  a a fost criptat cu matricea Richelieu definit˘ a ın Exemplul 1.7.

Page 12: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 12/177

12   PRELEGEREA 1. NOTIUNI DE BAZ   A ALE CRIPTOGRAFIEI 

Page 13: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 13/177

Bibliografie

[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography 

[2] D. Stinton, Cryptography, Theory and Practice , Chapman & Hall/CRC, 2002

[3] A. Salomaa,  Criptografie cu chei publice , Ed. Militara, 1996

[4] http://www.win.tue.nl/ gwoegi/P-versus-NP.htm

[5] S. Cook, http :   //www.claymath.org/millennium/P vs NP/Official Problem Description.pdf 

[6]   http://en.wikipedia.org/wiki/Rosetta stone 

13

Page 14: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 14/177

Prelegerea 2

Cifruri de substitutie

Cifrurile de substitutie sunt cele mai utilizate sisteme de criptare simetrice; ele se ıntalnescsi azi, exemple fiind sistemele DES si AES.

Un astfel de cifru consta ın ınlocuirea fiecarui caracter din V  cu alt caracter (din  W ).Exista doua clase mari de cifruri de substitutie:  sisteme monoalfabetice   si  polialfabetice .

2.1 Sisteme de criptare monoalfabetice

Un astfel de sistem substituie fiecare caracter cu alt caracter – totdeauna acelasi, indiferent

de pozitie. Atunci cand cele doua alfabete coincid (V   =  W ), sistemele monoalfabeticesunt cazuri particulare de cifruri de permutare.

Vom trece ın revista cateva astfel de sisteme.

2.1.1 Sistemul de criptare Cezar

Sistemul de criptare Cezar este un sistem monoalfabetic: odata stabilita cheia de criptareeK , fiecare caracter cod  x  se ınlocuieste prin caracterul cod  x + k   (mod  26) (a se vedeaPrelegerea I). Decriptarea se realizeaza dupa formula  dK (x) = x − k  (mod 26).

Observatia 2.1   ˆ In cartea sa ”De bello gallico”, Cezar aminteste de un sistem de criptare,

 f˘ ar˘ a s˘ a dea detalii. Mai tarziu, Suetoniu – ın ”Viata lui Iuliu Cezar” descrie sistemul.Cezar folosea sistemul ınlocuind literele romane cu cele grecesti si folosea deplasarea  k  = 3.Nepotul lui Cezar, ımp˘ aratul Augustus a utlizat acelasi sistem, cu  k  = 1. Sistemul Cezar a fost utilizat mult timp. Armata rus˘ a apela frecvent la el ın   1915, ca ınlocuitor pentru sistemele sale proprii de criptare, prea sofisticate la nivelul trupelor de cˆ amp. Un sistem Cezar cu  k = 13  este inclus ın  ROT 13, implementat pe sistemele UNIX ([5],[3])

Evident, Cezar este un sistem generat de permutarile ciclice din  P 26. Fiind numai 26 cheiposibile, el este extrem de vulnerabil la atacul prin forta bruta. Pentru a-i mari rezistenta,s-a utilizat si o varianta, numita  sistem Cezar cu cheie , definita astfel:

1

Page 15: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 15/177

2   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

Se considera un cuvant (cheie), preferabil cu toate caracterele distincte (ın caz contrar,literele identice se folosesc doar la prima aparitie). Acest cuvant se aseaza la ınceputul al-fabetului. Dupa ce se termina, sirul de completeaza cu literele care nu existau ın cuvantulcheie, ın ordine alfabetica.

De exemplu, sa presupunem ca s-a ales cuvantul cheie  M ARTOR. Scriem

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 ZM A R T O B C D E F G H I J K L N P Q S U V W X Y Z

Pentru textul clar se vor folosi caracterele de pe primul r and, iar pentru criptare– caracterele corespondente de pe randul al doilea. Astfel, STUDENT se cripteaza ınQSUTOJS, ARGINT ın MPCEJS etc.

Sistemul Cezar cu cheie rezista mai bine la atacul cu forta bruta, numarul cheilor fiind

acum  card(P 26 = 26!.

2.1.2 Sistemul de criptare afin

Sistemul de criptare afin este o generalizare a sistemului Cezar. Vom avea P  = C =  Z 26,K= {(a, b) |  a, b ∈  Z 26, cmmdc(a, 26) = 1}, iar functiile de criptare si decriptare (pentruo cheie  K  = (a, b)) sunt

eK (x) = ax + b (mod 26), dK (y) = a−1y + a−1(26 − b) (mod 26)

Conditia ca  a  sa fie prim cu 26 asigura existenta lui  a−1 ın  Z 26.

De exemplu, pentru  a = 3, b = 5 functia de criptare este  eK (x) = 3x + 5, care poatefi reprezentata prin tabelul:

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 255 8 11 14 17 20 23 0 3 6 9 12 15 18 21 24 1 4 7 10 13 16 19 22 25 2

sau – scris direct pentru caractere

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 ZF I L O R U X A D G J M P S V Y B E H K N Q T W Z C

Astfel, textul clar PRIMAVARA TARZIE se cripteaza ın YEDPFQFEF KDECDR.Deoarece 3−1 = 9 (mod   26), decriptarea se realizeaza matematic folosind functia

dK (x) = 9x + 7 (sau – practic – inversand cele doua linii ale tabelului de mai sus).Conditia cmmdc(a, 26) = 1 asigura de asemenea injectivitatea aplicatiei  e

K .

De exemplu, pentru  eK (x) = 10x + 1,  A   si N  se transforma ambele ın  B, iar  O  nu apareca imagine ın alfabetul substitutiei.

Sa studiem spatiul cheilor K. Orice cheie  K  ∈ K  este determinata complet de valorileıntregi (a, b) cu (a, 26) = 1. Sunt posibile 12 valori1 pentru a  : 1, 3, 5, 7, 9, 11, 15, 19, 21, 23,25. Pentru   b  sunt posibile 26 valori, care se iau independent de  a, cu singura exceptiea = 1, b = 0 (care se exclude deoarece nu conduce la nici o criptare). Deci  card(K) = 311,numar suficient de mic pentru reusita unui atac prin forta bruta.

1Pentru un numar dat  n  exista  φ(n) numere mai mici decat  n   si prime cu  n, unde  phi  este functiaEuler.  In particular  φ(26) = 12.

Page 16: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 16/177

2.1. SISTEME DE CRIPTARE MONOALFABETICE    3

2.1.3 Alte sisteme de criptare monoalfabetice

Sistemul de criptare Polybios

Sistemul Cezar nu este cel mai vechi de criptare. Se pare c a primul astfel de sistem a fostPolybios (istoric grec mort cu 30 ani ınaintea nasterii lui Cezar). Initial acesta a fost doarun sistem maritim de semnalizare cu torte; ulterior i s-a dat o semnificatie criptografica.

Sa consideram alfabetul latin, din care eliminam o litera de frecventa cat mai redusa2;fie aceasta W . Cele 25 litere ramase le asezam ıntr-un patrat 5 × 5 (numit careu Polybios)ın felul urmator:

A B C D E  A A B C D E  B F G H I J  C K L M N OD P Q R S T  E U V X Y Z  

In operatia de criptare, fiecare caracter  a  va fi reprezentat printr-o pereche (x, y) (x, y ∈{A,B,C,D,E }) care dau linia respectiv coloana pe care se afla  a.

Astfel, textul clar MERGEM ACASA este criptat ınCCAEDCBBAECCAAACAADDAA.

Deci sistemul de criptare Polybios este o substitutie monoalfabetica cu alfabetul W   =

{AA,AB,AC,.. . ,EE }  de 25 caractere.Sunt diverse variante ale sistemului Polybios. Astfel, daca se folosesc drept coordonate

cifrele 1, 2, 3, 4, 5 ın loc de  A,B,C,D,E , sistemul a fost folosit ın penitenciarele rusesti3

si de catre prizonierii americani din Vietnam. Este foarte simplu de ınvatat si poate fiaplicat folosind diverse semne drept coordonate (cifre, puncte, figuri, batai de toba etc).A fost utilizat de asemenea ın cadrul altor sisteme de criptare, cum ar fi sistemul nihilist,cifrul ADFGVX (utilizat de armata germana ın primul razboi mondial) sau sistemul Bifid,inventat de Dellastell ın 1901 (pentru detalii, se vedea [6]).

Sistemul cavalerilor de Malta

Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizareaunei cruci. Astfel, sa consideram careurile:

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 

2In limba engleza litera eliminata este de obicei  J .3Alfabetul cirilic are 33 litere, deci ın acest caz s-a utilizat un careu 6 × 6.

Page 17: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 17/177

4   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

Liniile care ıncadreaza fiecare caracter (inclusiv spatiul), ımpreuna cu punctele (doua, unulsau zero) indica substitutia caracterului respectiv. Astfel, textul clar DUPA DOUAZECIDE ANI se cripteaza ın

:   .   : :   .   : : : : : : :   .   :

2.1.4 Criptanaliza sistemelor de criptare monoalfabetice

Punctul slab al sistemelor de criptare monoalfabetice consta ın frecventa de aparitie acaracterelor ın text. Daca un text criptat este suficient de lung si se cunoaste limba

ın care este scris textul clar, sistemul poate fi spart printr-un atac bazat pe frecventaaparitiei literelor ıntr-o limba.

Sunt construite diverse structuri de ordine relative la frecventa aparitiei literelor ınfiecare limba europeana. De obicei, cu cat un text criptat este mai lung, cu atat frecventaliterelor folosite se apropie de aceasta ordonare generala. O comparare ıntre cele douarelatii de ordine (cea a caracterelor din textul criptat si cea a lterelor din alfabetul limbiicurente) conduce la realizarea catorva corespondente (litera text clar – litera text criptat),ceea ce stabileste ın mod univoc cheia de criptare. Pentru sistemul Cezar este suficientastabilirea unei singure perechi; pentru sistemul afin trebuiesc doua perechi etc.

Pentru limba romana, un tabel al literelor cele mai frecvent ıntalnite este

Litera FrecventaA   13, 04 %I    12, 89 %E    11, 75 %R   7, 39 %T    6, 62 %N    6, 44 %U    6, 44 %S    5, 50 %C    5, 47 %

Litera FrecventaL   4, 58 %O   3, 85 %D   3, 68 %M    3, 33 %P    2, 91 %F    1, 50 %V    1, 26%

(restul caracterelor au o ın mod normal o frecventa de aparitie sub 1 %).

Exemplul 2.1   S˘ a consider˘ am c˘ a s-a interceptat urm˘ atorul text, criptat cu un sistem monoalfabetic (nu se stie exact ce sistem a fost utilizat).

lqakc sp gcxk aca pcmgqb kq kxc pkersmpqsb vk vsmgxkbc mkacpc tcacpbqlqs

vk cgele cmtxq ms nocxgsb mbxcsp vk exsgk oxcbqsbcbk texbslk spclbk gcxk

cmgqpvkcq bxkgcbexslk gqxbslk xktxknkpbcq tkpbxq mbxcsps qp cfkxbsmakpb

 mqtcxcbex vcx lsatkvk pq bxkrqscq mc zsk txkc gqxsems psgs mc mk cmbktbk

 mc czlk acxk lqgxq vk lc gkl gq gcxk fkpkcq sp gepbcgb

Page 18: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 18/177

2.1. SISTEME DE CRIPTARE MONOALFABETICE    5

ˆ In prima etap˘ a, vom num˘ ara de cˆ ate ori apare ın text fiecare caracter. se obt ine tabelul 

Caracter c k x b s q g p m l e p a v b n o f z  

Frecvent   a 39 38 27 25 23 20 19 18 18 11 9 8 7 7 2 2 2 2 2  

Deci caracterele cele mai frecvente sunt   c   si   k. Pe de-alt˘ a parte, cele mai frecvente caractere din limba romˆ an˘ a sunt   a, i   si  e  (textul nu este destul de mare pentru a putea  face o distinct ie net˘ a).   ˆ In mod cert,  a ∈ {c, k}. Sunt patru opt iuni posibile, din care trei se elimin˘ a rapid. R˘ amˆ ane de abordat  c ←− a, k ←− e.

Vom nota cu litere mari caracterele din textul clar; prin ınlocuirea lui  c  cu  A, a lui  kcu  E , textul devine 

lqaEA sp gAxE aAa pAmgqb Eq ExA pEersmpqsb vE vsmgxEbA mEaApA tAaApbqlqs

vE Agele Amtxq ms noAxgsb mbxAsp vE exsgE oxAbqsbAbE texbslE spAlbE gAxE

AmgqpvEAq bxEgAbexslk gqxbslE xEtxEnEpbAq tEpbxq mbxAsps qp AfExbsmaEpb

 mqtAxAbex vAx lsatEvE pq bxErqsAq mA zsE txEA gqxsems psgs mA mE AmbEtbE

 mA AzlE aAxE lqgxq vE lA gEs gq gAxE fEpEAq sp gepbAgb

Cuvˆ antul  ExA  de pe primul rˆ and are caracterul din mijloc ( x) de frecvent   a ridicat˘ a ( 27aparit ii); deci el trebuie s˘ a corespund˘ a unei litere frecvente din limba romˆ an˘ a si – ın plus – s˘ a aib˘ a semnificat ie semantic˘ a. Concluzie: acest cuvˆ ant este ERA. Deci  x ←− R. Facem substitut ia sı se obt ine textul 

lqaEA sp gARE aAa pAmgqb Eq ERA pEersmpqsb vE vsmgREbA mEaApA tAaApbqlqsvE Agele AmtRq ms noARgsb mbRAsp vE eRsgE oRAbqsbAbE teRbslE spAlbE gARE

AmgqpvEAq bREgAbeRsleR gqRbslE REtREnEpbAq tEpbRq mbRAsps qp AfERbsmaEpb

 mqtARAbeR vAR lsatEvE pq bRErqsAq mA zsE tREA gqRsems psgs mA mE AmbEtbE

 mA AzlE aARE lqgRq vE lA gEs gq gARE fEpEAq sp gepbAgb

ˆ In acest text, cuvˆ antul   REtREnEpbAq   are corespondent ın limba romˆ an˘ a numai pe REPREZENTA{I , M , U  }. De aici se obt in decript˘ arile   t ←− P, n ←− Z, p ←− N   si b ←− T   (pentru ultimul caracter -  q , nu facem deocamdat˘ a nici o opt iune). Noul text va  fi 

lqaEA sp gARE aAa NAmgqT Eq ERA NEersmNqsT vE vsmgRETA mEaANA PAaANTqlqs

vE Agele AmPRq ms ZoARgsT mTRAsN vE eRsgE oRATqsTATE PeRTslE sNAlTE gARE

AmgqNvEAq TREgATeRsleR gqRTslE REPREZENTAq PENTRq mTRAsNs qN AfERTsmaENT

 mqPARATeR vAR lsaPEvE Nq bRErqsAq mA zsE PREA gqRsems Nsgs mA mE AmTEPTE

 mA AzlE aARE lqgRq vE lA gEs gq gARE fENEAq sN geNTAgT

Lucrurile ıncep acum s˘ a se simplifice:   PENTRq   este corect numai pentru   q   ←−   U ,AmTEPTE   pentru  m ←− S . Apoi   NASgUT   d˘ a  g  ←− C ,  SUPARATeR  d˘ a  e  ←− O,iar din  fEN EAU   deducem  f  ←− V . F˘ acˆ and aceste ınlcuiri, se obt ine textul 

Page 19: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 19/177

6   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

lUaEA sp CARE MAM NASCUT EU ERA NEOrsSNUsT DE vsSCRETA SEaANA PAaANTUlUs

DE ACOlO ASPRU Ss ZoARCsT STRAsN vE ORsCE oRATUsTATE PORTslE sNAlTE CARE

ASCUNvEAU TRECATORslOR CURTslE REPREZENTAU PENTRU STRAsNs UN AfERTsSaENT

SUPARATOR vAR lsaPEvE NU bRErqsAU SA zsE PREA CURsOms NsCs SA SE ASTEPTE

 mA AzlE aARE lUCRU vE lA CEs CU CARE VENEAU sN CONTACT

Ultimele caractere se deduc imediat:   l   ←−   L, a  ←−   M, r   ←−   B, s   ←−   I, v   ←−   D.Textul clar final este:

LUMEA IN CARE MAM NASCUT EU ERA NEOBISNUIT DE DISCRETA SEMANA PAMANTULUI

DE ACOLO ASPRU SI ZGARCIT STRAIN DE ORICE GRATUITATE PORTILE INALTE CARE

ASCUNDEAU TRECATORILOR CURTILE REPREZENTAU PENTRU STRAINI UN AVERTISMENT

SUPARATOR DAR LIMPEDE NU TREBUIAU SA FIE PREA CURIOSI NICI SA SE ASTEPTE

SA AFLE MARE lUCRU DE LA CEI CU CARE VENEAU IN CONTACT

(textul provine din romanul ”Viata ca o corid˘ a” de Octavian Paler).

Evident, dac˘ a se stia sistemul de criptare (afin, Cezar etc) criptanaliza se simplific˘ a mult.

Pentru alte aplicatii, oferim tabelele de frecventa a literelor pentru principalele limbi

europene4 (am retinut din fiecare limba numai cele mai frecvente noua litere):

Engleza FrecventaE    12, 31 %T    9, 59 %A   8, 05 %O   7, 94 %N    7, 19 %I    7, 18 %

S    6, 59 %R   6, 03 %H    5, 14 %

Germana FrecventaE    18, 46 %N    11, 42 %I    8, 02 %R   7, 14 %S    7, 04 %A   5, 38 %

T    5, 22%U    5, 01%D   4, 94%

Franceza FrecventaE    15, 87 %A   9, 42 %I    8, 41 %S    7, 90 %T    7, 26 %N    7, 15 %

R   6, 46 %U    6, 24 %L   5, 34 %

Spaniola FrecventaE    13, 15 %A   12, 69 %O   9, 49 %S    7, 60 %N    6, 95 %R   6, 25 %

I    6, 25 %L   5, 94 %D   5, 58 %

Exista o situatie ipotetica ın care criptanaliza unui sistem monoalfabetic este imposibila:atunci cand  P = V ∗ si nu dispunem de nici o alta informatie (decat eventual sistemul decriptare). Acest caz corespunde ınsa unei codificari; adevarata criptare a avut loc atuncicand mesajele inteligibile au fost translatate ın cuvinte din V ∗.

4Datele statistice pentru toate tabelele – inclusiv limba romana – sunt din anul 1994.

Page 20: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 20/177

2.2. SISTEME DE CRIPTARE POLIALFABETICE    7

2.2 Sisteme de criptare polialfabetice

Diferenta dintre aceste sisteme de criptare si cele monoalfabetice consta ın faptul casubstitutia unui caracter variaza ın text, ın functie de diversi parametri (pozitie, contextetc.). Aceasta conduce bineınteles la un numar mult mai mare de chei posibile. Seconsidera ca primul sistem de criptare polialfabetic a fost creat de Leon Battista ın 1568([3]). Unele aplicatii actuale folosesc ınca pentru anumite sectiuni asyfel de sisteme decriptare.

2.2.1 Sistemul homofonic

Sistemul de criptare homofonic este un sistem intermediar ıntre sistemele mono si celepolialfabetice. Principalul lui scop este de a evita atacul prin frecventa de aparitie acaracterelor. Se pare ca a fost utilizat prima oara ın 1401 de catre ducele de Mantua.

Fiecarui caracter  a ∈ P  i se asociaza o multime  H (a) ⊂ C  astfel ıncat:

1.   H (a) ∩ H (b) = ∅ ⇐⇒   a = b;

2. Daca  a apare mai frecvent ın textele clare, atunci  card((H (a)) ≥  card(H (b)).

Criptarea unui caracter   a   ∈ P   se face cu un element ales aleator din   H (a). Pentrudecriptarea lui  y ∈ C  se cauta o multime  H (a) astfel ca  y  ∈  H (a).

Exemplul 2.2   S˘ a consider˘ am  P = {a, b}   si  H (a) = {001, 010}, H (b) = {000, 011, 101,111}. Pentru criptarea textului  ab  se poate folosi oricare din secvent ele 

001000, 001011, 001101, 001111, 010000, 010011, 010101, 010111.

Sistemul homofonic este mult mai rezistent la un atac doar pe baza textului criptat, darcedeaza usor la un atac cu text clar ales.

2.2.2 Sistemul de criptare Playfair

Sistemul a fost inventat 1854 de Sir Charles Wheatstone. Cel care ıl promoveaza si ılsustine pentru a fi adoptat ca cifru oficial al Marii Britanii este baronul Lyon Palyfayr deSt. Andrews. Guvernul prefera alta varianta, dar acest sistem de criptare capata numelebaronului.

Ideea de baza este urmatoarea:

Din cele 26 litere ale alfabetului se elimina una de frecventa minima; sa spunem  Q.Restul literelor se aranjeaza arbitrar sub forma unui patrat 5×5. Sa exemplificam sistemulpentru tabloul

Page 21: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 21/177

8   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

S Y D W ZR I P U LH C A X FT N O G EB K M J V

Acest tabel va forma atat cheia de criptare cat si cea de decriptare.Regulile de criptare/de-criptare sunt:

•   Textul clar este separat ın blocuri de cate doua caractere (ignorand spatiile). Condi-tia este ca nici un bloc sa nu contina aceiasi litera, iar textul sa fie de lungime para.Aceste deziderate se realizeaza usor modificand putin textul clar (se introduce olitera de frecventa mica ıntre cele doua litere egale, respectiv ca ultim caracter).

•  Fiecare bloc se cripteaza astfel: daca cele doua litere nu sunt plasate ın tabel peaceiasi linie sau coloana (de exemplu A  si E ), se cerceteaza colturile dreptunghiuluideterminat de cele doua litere (ın cazul nostru  A, F, O, E ). Perechea  AE  este crip-tata ın  F O. Ordinea este determinata de ordinea liniilor pe care se afla literele dintextul clar. Astfel, EA  se cripteaza ın  OF , SF   ın  ZB  etc.

Daca cele doua litere se gasesc pe aceasi linie (coloana), se merge ciclic cu o pozit iela dreapta (respectiv jos). Deci  CA   se cripteaza ın  AX ,  W X   ın  U G,  CA  ın  AX etc.

De exemplu, textul clar  AFARA PLOUA  se cripteaza ın  XHHPPDPEPX . Se observa cacele patru aparitii ale caracterului  A  au fost criptate cu  X, H, P   si din nou  X .

O permutare ciclica a liniilor si coloanelor tabloului nu modifica criptarea. De exemplu,patratul

P U L R IA X F H CO G E T NM J V B KD W Z S Y

obtinut prin deplasarea cu doua pozitii spre stanga si o pozitie ın sus, este echivalent cucel initial (ambele asigura aceeasi cheie de criptare).

Regulile de baza pot fi modificate sau completate dupa necesitati. Astfel, se poateadauga din loc ın loc cate o litera falsa (cu frecventa foarte redusa, cum ar fi  X, Y ) caresa modifice textul criptat. Patratul 5 × 5 poate fi ınlocuit cu un dreptunghi 4 × 6 sau3 × 8, cu schimbarile corespunzatoare ın alegerea literelor care se elimina.

Pentru a pastra cheia ın siguranta, se recomanda memorarea acesteia. Cum o astfelde cheie este extrem de greu de memorat, se foloseste un cuvant cheie sau o propozitie cutoate literele distincte. Acesta cuvant este scris la ınceputul tabloului. Spatiile ramasesunt completate cu restul literelor alfabetului, scrise ın ordinea aparitiei lor5.

5In definitia initiala a sistemului, Wheatstone pleca de la cuvantul  Holmes .

Page 22: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 22/177

2.2. SISTEME DE CRIPTARE POLIALFABETICE    9

Astfel, ın preajma primului razboi mondial, armata romana folosea un dreptunghi3 × 8 din care lipseau literele  Q   si  K . Cuvantul cheie era   ROMANESC . Un astfel detablou putea avea de exemplu forma

R O M A N E S CB D F G H I J LP T U V W X Y Z

Ca si sistemul anterior,   Palyfair   rezista la atacuri bazate pe frecventa aparitiei, darnu si la cele prin text clar ales.

Implementari actuale folosesc reprezentarea binara a literelor si fac un pas suplimentar:dupa ce s-a obtinut o pereche criptata, aceasta se combina printr-un   XOR   (adunare

modulo 2) cu perechea criptata anterior.

2.2.3 Sistemul de criptare Vigenere

Numele sistemului6 vine de la baronul francez Blaise de Vigenere (1523 − 1596) diplomatla curtea regelui Henry III. A fost considerat mult timp unul din cele mai bune sistemede criptare.

Prezentarea sistemului

Consideram – ca si la sistemele anterioare – cele 26 litere ale alfabetului, numerotate dela 0 (pentru  A) pana la 25 (pentru  Z ), conform tabelului:

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

Definim  P  = C = Z 26,   K= Z +26.O cheie  K  ∈ K  este un cuvant avand codificarea numerica  k0k1 . . . k p−1.Fie  a =  a0a1 . . . an  codificarea textului clar care trebuie transmis. Textul criptat va fi

eK 

(a) = x  =  x0x

1. . . x

n, unde

xi = ai + ki (mod p)   (mod 26) (∗)

Exemplul 2.3   S˘ a consider˘ am cuvˆ antul cheie  FOCAR; deci  p = 5   si  K  = 5 14 2 0 17.Dac˘ a vrem s˘ a cript˘ am cu aceast˘ a cheie textul clar NU POT VENI AZI, vom proceda 

astfel:Codificarea textului este  a = 13 20 15 14 19 21 4 13 8 0 25 8.Sub fiecare num˘ ar din   a  se aseaz  a cˆ ate un num˘ ar din  K ; cˆ and cheia se termin˘ a, ea 

se reia ciclic, pˆ an˘ a se termin˘ a  a. Deci vom avea 

6Sursa [7] indica drept real inventator al sistemului pe Giovan Batista Belaso ın 1553.

Page 23: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 23/177

10   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

13 20 15 14 19 21 4 13 8 0 25 85 14 2 0 17 5 14 2 0 17 5 14

18 8 17 14 10 0 18 15 8 17 4 22S I R O K A S P I R E W  

Linia a treia cont ine suma modulo  26  a numerelor de pe primele dou˘ a linii, iar pe ultima linie s-a scris textul criptat rezultat.

Decriptarea se realizeaza similar, scazand (modulo 26) din codul caracterului criptat,codul caracterului corespunzator din cheie.

O varianta a sistemul Vigenere este sistemul Beaufort (amiral englez, autorul si a uneiscale a vanturilor care ıi poarta numele); aici relatia de criptare (∗) este ınlocuita cu

xi = ki (mod p) − ai   (mod 26),   (i ≥  0)Avantajul sistemului Beaufort consta ın faptul ca ecuatia de criptare se aplica si la

decriptare (ai = ki (mod p) − xi).Alta varianta este sistemul   Autoclave , atribuit matematicianului Cardano (autorul

formulelor de rezolvare pentru ecuatiile de gradul 3 si 4). Aici cheia se foloseste o singuradata, la ınceput, dupa care este utilizat drept cheie textul clar.

Exemplul 2.4   S˘ a lu˘ am cuvˆ antul cheie   COV OR   si textul clar A VENIT TOAMNA.Putem aranja sistemul de criptare sub forma unui tabel (s-au trecut doar caracterele, nu si codific  arile lor):

Text clar: A V E N I T T O A M N ACheie: C O V O R A V E N I T T  

Text criptat C J Z B Z T O S N U G T  

Sistemul Vigenere a fost utilizat secole de-a randul, fiind considerat ca fiind unul dincele mai sigure sisteme de criptare.   In 1917 de exemplu, prestigioasa revista ”ScientificAmerican” ıl considera imposibil de atacat. Numai ca acest sistem a fost spart de Kasiskiınca din 1863 (si independent de Babbage ın 1854).

Criptanaliza sistemului Vigenere

Fie  x = x0x1 . . . xn−1  textul criptat cu cheia  K  = k0k1 . . . k p−1. Putem aranja acest textsub forma unei matrici cu  p linii si  n/p  coloane, astfel

x0   x p   x2 p . . .x1   x p+1   x2 p+1   . . .

...x p−1   x2 p−1   x3 p−1   . . .

Elementele de pe prima linie au fost criptate dupa formula

x pr  = a pr + k0 (mod 26),   (k ≥  0)

Page 24: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 24/177

2.2. SISTEME DE CRIPTARE POLIALFABETICE    11

adica cu un sistem Cezar (k0   fiind o valoare fixata din  Z 26).   In mod similar si celelaltelinii.

Deci, daca s-ar cunoaste lungimea  p  a cheii, problema s-ar reduce la criptanaliza a  ptexte criptate cu Cezar – sistem de criptare monoalfabetic.

Sunt cunoscute doua metode pentru aflarea lungimii cheii:  testul lui Kasiski  si indexul de coincident e .

Prima metoda consta ın studiul textului criptat si aflarea de perechi de segmente decel putin 3 caractere (aceasta lungime este propusa de Kasiski) identice. Pentru fiecareastfel de pereche, se determina distanta dintre segmente.

Dupa ce s-au gasit mai multe astfel de distante, valoarea lui p va fi cel mai mare divizorcomun al lor (sau – eventual un divizor al acestuia).

Exemplul 2.5   Oscar intercepteaz˘ a urm˘ atorul text criptat, despre care b˘ anuie c˘ a s-a  folosit Vigenere:

D V L O E G O G L C G I W W A F R S C K A R V S S R A A K R S T U H D A

Q L N C J T S R U J V C W E A W K O H Z T I E U A R I Q L N C J C I K A

Q V A G K A S J T S G R W D A G K R C W A O L N S Z P C V Z W Z C S C E

P I E R V M W Y A W V M W E E G T U

Textul este destul de scurt ( 146   litere) si nu se mai stie nici un text trimis anterior.Folosind metoda Kasiski, Oscar g˘ aseste secvent a  QLNC J  care apare pe rˆ andul al doilea.

Distant a dintre cele dou˘ a aparit ii este  27. De asemenea, apar dou˘ a cuvinte foarte asem˘ a-n˘ atoare:   AQLN   si  AOLN , avˆ and ıntre ele distant a  57.

Deci putem b˘ anui c˘ a avem de-a face cu un cuvˆ ant cheie de lungime  cmmdc(27, 57) = 3.Rescriem textul pe coloane, fiecare coloan˘ a avˆ and trei elemente. Anume:

D O O C W F C R S A S H Q C S J W W H I A Q C I Q G S S W G C O S C W S P R W W W G

V E G G W R K V R K T D L J R V E K Z E R L J K V K J G D K W L Z V Z C I V Y V E T

L G L I A S A S A R U A N T U C A O T U I N C A A A T R A R A N P Z C E E M A M E U

Num˘ arˆ and frecvent a aparit iei literelor pe fiecare linie, obt inem tabelul 

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  

Linia  1 2 0 6 1 0 1 3 2 2 1 0 0 0 0 3 1 3 2 7 0 0 1 8 0 0 0Linia  2 0 0 1 2 4 0 3 0 1 3 6 3 0 0 0 0 0 4 0 2 0 6 2 0 1 3Linia  3 11 0 3 0 3 0 1 0 2 0 0 2 2 3 1 1 0 3 2 3 4 0 0 0 0 1

ˆ In limba romˆ an˘ a, primele litere ca frecvent   a sunt  A −E −I , aflate la distant   a egal˘ a una de alta. Deci vom c˘ auta pe fiecare linie tripletele de litere situate pe pozit iile  (k, k+4, k+8)avˆ and frecvent   a semnificativ de mare (maxim˘ a ın cazul unui text lung). Pentru linia  3,alegerea este simpl˘ a: ea este chiar  A − E − I   ( 16  aparit ii din  49 posibile), deci o deplasare 0  ın codul Cezar.

Pentru prima linie, sunt dou˘ a posibilit˘ at i:   O − S − W   (deplasare  14) sau  S − W  − A(deplasare  18), ambele cu cˆ ate  18  aparit ii.

Page 25: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 25/177

12   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

Tot dou˘ a variante apar si pentru a doua linie:   C − G − K  (deplasare  2) cu  10  aparit ii,sau  R − V   − Z  (deplasare  14) cu  13  aparit ii.

Deplas˘ arile dau exact codific˘ arile cheii. Deci trebuie luate ın considerare patru vari-ante de cuvˆ ant cheie:   OCA, ORA,SCA   sau   SRA. Cum de obicei cuvˆ antul cheie are o semnificat ie semantic˘ a (pentru a putea fi ret inut mental usor), putem presupune c˘ a el este  OC A  sau  ORA.

O simpl˘ a verificare ret ine drept cuvˆ ant cheie  ORA, care conduce la decriptarea corect˘ a a textului (spat iile si semnele de punctuat ie se pun corespunz˘ ator):

PELANGAPLOPIIFARASOTADESEAAMTRECUTMACUNOSTEAUVECINIITOTITUNUMAICUNOSCUT

ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBREDEMIHAIEMINESCU

A doua metoda de aflare a lungimii cheii de criptare ıntr-un sistem Vigenere se bazeazape un concept definit ın 1920 de Wolfe Friedman ın 1920:   indexul de coincident e  ([4]).

Definitia 2.1   Dac˘ a   x  =  x1x2 . . . xn   este o secvent   ae   n  caractere alfabetice, se numeste ”index de coincident e” al lui  x probabilitatea ca dou˘ a caractere din  x, alese aleator, s˘ a fie identice. Aceast˘ a valoare se noteaz˘ a  I c(x).

Sa notam cu  f i   frecventa de aparitie ın   x  a caracterului literal codificat   i  (0  ≤  i  ≤  25).Doua litere din   x  pot fi alese ın  C 2n  moduri. Din acestea, sunt  C 2f i

moduri ca ambele saaiba aceiasi codificare  i (0  ≤  i  ≤  25). De aici se poate deduce formula

I c(x) =

25i=0

C 2f i

C 2n=

25i=0

f i(f i − 1)

n(n − 1)

Sa presupunem ca x  este un text ın limba romana. Din tabelul frecventelor de aparitie aleliterelor, notand  pi  probabilitatea de aparitie a caracterului codificat cu   i  (0  ≤  i  ≤  25),valoarea pe care o putem estima pentru indxul de coincidente este

I c(x) ≈25

i=0

 p2i   = 0, 0788

Motivatie: Probabilitatea ca doua elemente aleatoare sa fie ambele egale cu caracterul decod   i   este  p2

i   (0  ≤   i  ≤   25). Afirmatia este valabila pentru orice criptare cu un sistemmonoalfabetic.

Sa presupunem acum ca am aranjat textul criptat  x  =  x0x1 . . . xn−1  ıntr-o matrice cu p  linii si  n/p  coloane (unde  p este un numar ıntreg pozitiv arbitrar), astfel

x0 =   x0   x p   x2 p . . .x1 =   x1   x p+1   x2 p+1   . . .

...xp−1 =   x p−1   x2 p−1   x3 p−1   . . .

Page 26: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 26/177

2.3. EXERCITII    13

Daca  p  este chiar lungimea cheii, atunci fiecare valoare  I c(xi) trebuie sa fie apropiata de0, 0788.   In caz contrar, sirul   xi  va arata mult mai aleator, fiind obtinut prin amesteculunei secvente de caractere criptate cu chei diferite. Pentru o secventa complet aleatoare,valoarea indexului de coincidente este

I c ≈  26

 1

26

2

=  1

26 = 0, 0384

Valorile 0, 0788 si 0, 0384 vor constitui punctele de extrem pe care le poate lua  I c. Vom luadeci diverse valori pentru  p, pana vom gasi una care sa se apropie cat mai mult de 0, 788si nu de 0, 384. Aceea poate fi considerata – cu suficienta siguranta – ca este lungimeacheii.

In etapa a doua, vom ıncerca sa aflam efectiv cheia  K  = k0k1 . . . k p−1.Daca notam n1 = n/p   lungimea secventei xi, atunci distributia de probabilitate ale

celor 26 litere ın  xi  estef 0n1

,  f 1n1

, . . . ,  f 25

n1

Secventa xi a fost obtinuta printr-o criptare Cezar cu o deplasare ki. Deci, situatia idealaeste cand distributia de probabilitate a deplasarii

f ki

n1

,  f ki+1 (mod 26)

n1

, . . . ,  f ki+25 (mod 26)

n1

este cat mai apropiata de distributia de probabilitate  p0, p1, . . . , p25  a limbii romane.Fie un ıntreg  m (0  ≤ m  ≤  25); definim expresia

F m  =25

i=0

 pi · f i+m

n1

Daca  m =  k j  (0 ≤  j  ≤ p − 1), ne putem astepta ca  F m ≈25

i=0

 p2i   = 0, 0788.

Daca  m = k j, atunci  F m  va fi semnificativ mai mic decat aceasta valoare. Deci, dupacel mult 25 ıncercari, se poate afla deplasarea  k j   si deci a  j-a litera din cheie.

2.3 Exercitii

2.1   Demonstrat i c˘ a funct ia de criptare afin˘ a  eK (x) = ax +b (mod 26)  este injectiv˘ a dac˘ a si numai dac˘ a  cmmdc(a, 26) = 1.

2.2   Textul clar este scris peste alfabetul   V    =   {a,b,c,d}. Se foloseste un sistem de criptare monoalfabetic dat de regulile   a  −→   bb, b  −→   aab, c  −→   bab, d  −→  a. S˘ a se arate c˘ a funct ia de criptare este injectiv˘ a.

Dar pentru:   a −→ ab, b −→ ba, c −→ a, d −→ c  ? 

Page 27: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 27/177

14   PRELEGEREA 2. CIFRURI DE SUBSTITUTIE 

2.3  Se definesc dou˘ a sisteme de criptare cu  P = {a, b},   C = {c, d}   si regulile a −→ ccd, b −→ c   pentru primul sistem,a −→ c, b −→ dcc   la al doilea sistem.Ce cuvinte sunt criptate la fel ın cele dou˘ a sisteme ? 

2.4   S-a recept ionat mesajul ARAU RIRU ITAA URIR EESU URAP IUTE IRI 

Despre el, criptanalistul are urm˘ atoarele informat ii: s-a folosit un careu de criptare tip Polybios, precum si cuvˆ antul cheie  STROP .

S˘ a se decripteze mesajul.

2.5   ˆ In sistemele de criptare simple, orice cheie de criptare poate fi reprezentat˘ a ca ocompunere de cˆ ateva chei generatoare. La sistemul Cezar, o astfel de cheie este  e1. Ar˘ atat i c˘ a la sistemul afin sunt necesare cel putın dou˘ a chei generatoare.

2.6   Decriptat i urm˘ atorul mesaj 

TKLCP OCTLE TSSZC XCMEB CVKMK CCSBX KGQBA CGQPE MBKCQ FKGSP

SSBEB SBQPQ ACSGQ PEMGQ BLCOK CAQLB CQGKM BXCLQ GKCTX SFKCA

CBCBV KVKME LQAKP BXXCO CPBKL KOKCB QPQAC SSPBK LKM

criptat cu un sistem afin.

2.7  O variant˘ a a sistemului AUTOCLAVE este utilizarea textului criptat (ın loc de text clar) dup˘ a prima aplicare a cheii. La care din cele dou˘ a variante de AUTOCLAVE este criptanaliza mai usoar˘ a ? 

2.8   Cˆ ate chei are un sistem de criptare afin ın care  card(V ) = 30,   100  sau  1225  ? 

2.9   S˘ a presupunem c˘ a  K  = (5, 21)  este o cheie ıntr-un sistem de criptare afin peste  Z 29.(a)   Exprimat i funct ia de decriptare sub forma  dK (y) = ay  + b  unde  a, b ∈  Z 29;(b)   Ar˘ atat i c˘ a  eK (dK (x)) = x,   ∀x ∈  Z 29.

2.10   Fie  K  = (a, b)  o cheie ıntr-un sistem afin peste  Z n. Ar˘ atat i c˘ a  K   este auto-cheie dac˘ a si numai dac˘ a  a−1 ≡ a  (mod n)   si  b · (a + 1)  ≡ 0 (mod n).

Aflat i toate auto-cheile dintr-un sistem afin peste  Z 15.S˘ a presupunem c˘ a  n  =  pq  unde  p si  q  sunt numere prime distincte. Ar˘ atat i c˘ a num˘ arul 

auto-cheilor din sistemul afin peste  Z n  este  n + p + q  + 1.

Page 28: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 28/177

Bibliografie

[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook pf Applied Cryptography 

[2] A. Salomaa,  Criptografie cu chei publice , Ed. Militara, Bucuresti 1994

[3] B. Schneier, Applied Cryptography , John Wiley and Sons, 1995

[4] D. Stinton, Cryptography, Theory and Practice , Chapman& Hall/CRC, 2002

[5]   http://en.wikipedia.org/wiki/Caesar cipher# History and usage 

[6]   http://psychcentral.com/psypsych/Polybius square 

[7]   http://www.answers.com/topic/vigen-re-cipher 

15

Page 29: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 29/177

Prelegerea 3

Sisteme mecanice de criptare

Sistemele de criptare pot fi aduse la un grad mai mare de complexitate si securitate dacase folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor usura– pe de-o parte – operatiile de criptare/decriptare, iar pe de-alta parte vor fi capabile sacreeze un numar mult mai mare de chei posibile.

3.1 Sistemul antic  Skitala 

Skit ala (”baston” ın greceste) este o unealta folosita pentru realizarea unui sistem de

criptare cu permutari. El este sub forma aproximativ cilindrica, ın jurul lui fiind ınfasuratao banda de hartie. Mesajul se scrie ın mod normal pe aceasta banda, dupa care hartia estedesfacuta. La primire se foloseste un bat asemanator pe care se ınfasoara sulul de hartie,mesajul devenind din nou inteligibil (pentru detalii, a se vedea [6], [3]). Conform istoricilorgreci, spartanii foloseau acest mod de comunicare ın timpul campaniilor militare.   1 Elavea avantajul de a fi rapid si nu comporta erori de transmitere. Dezavantajul este acelaca este usor de spart.

Exemplul 3.1   S˘ a presupunem c˘ a dimensiunile b˘ at ului permit scrierea a   4   rˆ anduri, cu 5   caractere pe fiecare rˆ and. Fie ”VINO MAINE LA INTALNIRE” textul care trebuie 

criptat. Ignorˆ and spat iile, mesajul va apare scris sub forma 

1Skitala a fost mentionata prima oara de poetul grec Archilochus (sec. VII ı.H). Desi apare ulteriorsi ın alte texte, abia la mijlocul secolului III ı.H. Apollonius din Rhodos specifica limpede utilizarea luica mijloc de criptare. De remarcat ca pentru perioada respectiva, sistemele de criptare folosite de grecierau de tip steganografic. O descriere a modului de operare este dat a apoi de Plutarh (50-120 A.D.).

1

Page 30: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 30/177

2   PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE 

________________________

| | V | I | N | O | M |

| _ _ | A | I | N | E | L | _ _

| A | I | N | T | A | |

| L | N | I | R | E | |

|___|___|___|___|___|__|

Dup˘ a derularea de pe skitala, mesajul scris pe banda de hˆ artie este:VAALIIINNNNIOETRMLAE.

La decriptare, banda va fi rulat˘ a din nou si fiecare a patra liter˘ a va fi pe aceeasi linie.Criptanaliza este foarte simpl˘ a. Se iau pe rˆ and valorile  n  = 2, 3, 4, . . .. Pentru o astfel 

de valoare fixat˘ a, se formeaz˘ a  n  rˆ anduri de tipul n + i, 2n + i, 3n + i , . . .   (i = 1, 2, . . . , n)

care ulterior se concateneaz˘ a. Exist˘ a o valoare a lui  n  pentru care textul astfel format este inteligibil.

3.2 Cilindrul Jefferson

Ideea de masina de criptare apare clar prima data la Thomas Jefferson, primul secretarde Stat al Statelor Unite; acesta a inventat un aparat de criptat numit  roat˘ a de criptare ,

folosit pentru securitatea corespondentei cu aliatii – ın special cei francezi.   2

Un cilindru Jefferson este format din   n  discuri de dimensiuni egale (initial   n   = 26sau  n = 36, dar valoarea este nerelevanta pentru descrierea sistemului) asezate pe un ax.Discurile se pot roti independent pe ax, iar pe muchea fiecaruia sunt inscrise cele 26 litereale alfabetului, ıntr-o ordine aleatoare (dar diferita pentru fiecare disc).

La criptare, textul clar se ımparte ın blocuri de  n   caractere. Fiecare astfel de blocse scrie pe o linie (generatoare) a cilindrului, rotind corespunzator fiecare disc pentru aaduce pe linie caracterul cautat. Oricare din celelalte 25 linii va constitui blocul de textcriptat.

Pentru decriptare este necesar un cilindru identic, ın care se scrie pe o linie textul

criptat (de  n  caractere) si apoi se cauta printre celelalte 25 linii un text cu semnificatiesemantica. Probabilitatea de a avea un singur astfel de text creste cu numarul de discuridin cilindru.

O mica diferenta apare daca textul clar nu are nici o semnificatie semantica (s-afolosit o dubla criptare). Atunci trebuie convenita dinainte o anumita distanta de criptares (1  ≤  s  ≤  25).

2Thomas Jefferson a folosit acest aparat ın perioada 1790 −   1802, dupa care se pare ca ideea s-apierdut. Devenit presedinte, Jefferson a fost atras de sistemul Vigenere, pe care ıl considera mai sigursi-l recomanda secretarului sau de stat James Madison ca ınlocuitor al sistemului pe care ıl inventaseanterior.

Page 31: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 31/177

3.2. CILINDRUL JEFFERSON    3

Ordinea discurilor poate fi de asemenea schimbata. De exemplu, un cilindru cu  n  = 10discuri poate realiza 10! = 3.628.800 texte criptate diferite pentru acelasi text clar.

Cilindrul Jefferson realizeaza o substitutie polialfabetica de perioada   n. Daca ar fiprivit ca un sistem de criptare Vigenere, lungimea cheii este enorm a (de multe ori  nn, ınfunctie de modalitatile de aranjare a alfabetelor pe discuri), si deci metoda de atac a luiKasiski este inaplicabila.

Exemplul 3.2   S˘ a consider˘ am  n  = 10  si fie cilindrul, ın care am desf˘ asurat literele de pe cele  10  discuri:

1 2 3 4 5 6 7 8 9 10  1 A A A A A A A A A A2 R R P N V S P E I I  3 I O S I O O U S R H  4 E S Y M T R H U E E  5 K U L O Y P I P S T  6 O V U C L M S B L O  7 B I K U E U E L B M  8 C J B L B B N C C U  9 U L R T C D R D D C  

10 D B C Y D Y Y H F D  11 J V D B G E D I N F  12 T C T F F C B J Y G  13 L G F G K V F F T J  14 N K G S N H G O G P  15 P N O H H F V G H Q  16 W P N J U K J K J B  17 Q Q E D P L K M K N  18 M T H E Q Q M N M V  19 S H M K R I T Q P W  

20 V E Q P S J O R Q X  21 X D V Q W N L V V L22 Z Y W V X G W W W Y  23 G W X X M T Q Y O K  24 H X Z R I W X X U R25 Y Z I Z J X Z T X S  26 F M J W Z Z C Z Z Z  

Cu ajutorul lui, textul clar TREI CULORI construit pe una din liniile generatoare ale cilindrului va genera urm˘ atoarele linii (oricare din ele putˆ and fi folosit drept text criptat):

Page 32: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 32/177

4   PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE 

T R E I C U L O R I  L O H M D B W G E H  N S M O G D Q K S E  

P U Q C F Y X M L T  W V V U K E Z N B O  Q I W L N C C Q C M  M J X T H V A R D U  S L Z Y U H P V F C  V B I B P F U W N D  X F J F Q K H Y Y F  Z C A G R L I X T G  G G P S S Q S T G J  H K S H W I E Z H P  

Y N Y J X J N A J Q  F P L D M N R E K B  A Q U E I G Y S M N  R T K K J T D U P V  I H B P Z W B P Q W  E E R Q A X F B V X  K D C V V Z G L W LO Y D X O A V C O Y  B W T R T S J D U K  C XX F Z Y O K H X R

U Z G W L R M I Z S  D M O A E P T J A Z  J A N N B M O F I A

Dac˘ a se consider˘ a o dubl˘ a criptare cu distant a  s = 3, atunci textul clar AAAAAAAAAAva fi criptat cu cilindrul anterior ın ESYMTRHUEE.

Cilindrul Jefferson a fost reinventat ulterior de mai multe ori, cea mai notabila fiindse pare masina de criptat  M  − 94, care a fost ın serviciu pana pana ın al doilea razboimondial.

3.3 Masini de criptat

Prima jumatate a sec. XX este dominata de masinile de criptat, o combinatie ıntremasinile de scris si sisteme de criptare mecanice bazate pe discuri.

3.3.1   C  − 36 (M  − 209 C )

Masina  C  − 36 este conceputa de inginerul suedez Boris Hagelin, la solicitarea armateiamericane de a avea o masina de criptat portabila, usor de manuit, care sa poata fi folosita

Page 33: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 33/177

3.3. MASINI DE CRIPTAT    5

dupa un instructaj sumar. Este cunoscuta si sub numele de  M  − 209  C , la baza fiindun model creat de Hagelin ın Suedia la sfarsitul anilor   30. Ea ıncepe sa fie produsa –dupa cateva modificari legate de design – ın 1940 si ınlocuieste treptat masina de criptatM  − 94. Se apreciaza ca ın timpul razboiului au fost produse circa 140.000 masini decriptat  C  − 36.

Nu au fost specificate masuri speciale de securitate; C  − 36 nu a fost realizata pentrua fi criptografic sigura, ea fiind destinata zonelor militare tactice, unde era nevoie doar deo siguranta de cateva ore fata de o eventuala criptanaliza.

Vom da o prezentare matematica a principiilor sale de constructie; pentru alte detalii,a se vedea [1] si [5].

Definitia 3.1   Se numeste matrice  lug  o matrice binar˘ a  M 6×27  ın care fiecare din cele  27coloane cont ine cel mult doi de  1.

Exemplul 3.3   ([4]). Toate exemplific˘ arile referitoare la   M  − 209   vor fi f˘ acute pentru matricea 

M  =

0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 11 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 10 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0

Fie  v   un vector binar de dimensiune 6. Atunci  c ·  M   este un vector cu 27 componenteavand elemente din multimea {0, 1, 2}. Numarul de elemente nenule din  v ·M  se numesteponderea lui  v  ın raport cu  M .

O  configurat ie de ınceput  se obtine prin asezarea unul sub altul (aliniati la stanga) asase vectori binari de lungimi 17, 19, 21, 23, 25, 26.

Exemplul 3.4   Structura 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 00 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1

 formeaz˘ a o posibil˘ a configurat ie de ınceput.Spre deosebire de matricea lug, la configurat ia de ınceput nu exist˘ a restrict ii privind 

num˘ arul de  1.

Plecand de la o configuratie de ınceput se pot genera o infinitate de vectori de dimensiune6 ın felul urmator:

Page 34: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 34/177

6   PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE 

1. Primii 17 vectori sunt coloanele complete ale configuratiei de ınceput.

2. Fiecare vector linie se repeta ciclic din momentul cand s-a terminat.

Pe baza acestor elemente se poate descrie sistemul de criptare al masinii C  −  36. Ream-intim, codificarea numerica a literelor este de la  A − 0 pana la  Z  −  25; toate calculele sevor face modulo 26.

Fie   x   codul celui de-al i-lea caracter din textul clar si   h  ponderea celui de-al   i-leavector generat de configuratia de ınceput ın raport cu matrica  lug. Atunci

y =  h − x − 1.

Exemplul 3.5   S˘ a consider˘ am textul clar NU PUTEM REUSI DECAT IMPREUNA

ımpreun  a cu matricea lug si configurat ia de ınceput din exemplele anterioare. Codifi-carea numeric˘ a a textului este 

13 20 15 20 19 4 12 17 4 20 18 8 3 4 2 0 19 8 12 15 17 4 20 13 0 .Dup˘ a ignorarea spat iilor libere 3, lungimea textului clar este  25.Vom calcula ponderile primilor  25  vectori si vom aranja totul sub forma unui tablou:

h   10 17 16 9 9 9 7 0 0 0 0 12 0x   13 20 15 20 19 4 12 17 4 20 18 8 3

h − x − 1 22 20 0 14 15 4 20 8 21 5 7 3 22W W A O P E U I V F H D W  

h   0 18 7 0 0 18 7 9 9 19 14 9x   4 2 0 19 8 12 15 17 4 20 13 0

h − x − 1 21 15 6 6 17 5 17 17 4 24 0 8V P G G R F R R E Y A I  

Deci textul criptat este WWAOPEUIVFHDWVPGGRFRREYAI 

Matricea   lug   si configuratia de ınceput formeaza cheia pentru masina  C  − 36. De fapt,

masina ınsasi este o realizare fizica a acestui sistem: ea opereaza conform cu o cheiestabilita anterior prin fixarea unor roti dintate si a unui disc (pentru detalii vezi [5]).

Observatia 3.1   Ecuat ia de decriptare este identic˘ a cu cea de criptare:

x =  h − y − 1.

Deci din acest punct de vedere sistemul de criptare este de tip Beaufort si masina  C  − 36poate fi folosit˘ a atˆ at pentru criptare cˆ at si pentru decriptare.

3In aplicatiile practice, spatiul se ınlocuieste uneori cu o litera de frecventa redusa.

Page 35: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 35/177

3.3. MASINI DE CRIPTAT    7

Deoarece liniile din configuratia de ınceput au lungimi numere prime ıntre ele, vectoriigenerati ıncep sa se repete sigur dupa 17 ·19·21·23·25·26 = 101.405.850 pasi; deci cuvantulcheie poate fi considerat mai lung decat orice text clar. Sunt ınsa cazuri cand aceastaperioada poate fi mai scurta. De exemplu, daca configuratia de ınceput contine numai 1,se va genera un singur vector, deci perioada este 1. De asemenea se obtin perioade scurtepentru matrici   lug  cu foarte putini 1 sau configuratii de ınceput ın care raportul dintrenumarul de 0 si 1 este disproportionat.

Nu exista o conditie matematica pentru existenta a exact 6 linii ın configuratia deınceput. Acest numar a fost ales ca un compromis ıntre securitatea criptografica siusurint a de a cripta.   In general perioada creste cu numarul de linii.

Masina de criptat M  − 209 avea si ea o serie de slabiciuni (un atac cu texte clare alese

care au anumite componente comune poate duce la informat ii asupra matricii  lug ), astfelca ın 1943 criptanalistii germani puteau decripta mesajele. Totusi – din punct de vederemilitar tactic – ea a fost considerata perfect adaptata necesitatilor si a fost folosita dearmata americana pana dupa razboiul din Coreea (1953 − 1956).

Ulterior, Hagelin a elaborat un model ımbunatatit: masina  C  − 52. Aceasta avea operioada de 2.756.205.443; discurile puteau si scoase si reinserate ın alta ordine; existaun disc al carui alfabet putea fi permutat.   C  − 52 a facut parte din ultima generatiede masini de criptat clasice, noua tehnologie (cea a computerelor) permitand dezvoltareaaltor mecanisme cu o putere de calcul mult mai mare.

3.3.2 Enigma

Poate cea mai celebra masina de criptat a fost masina germana Enigma . Sub acest numese afla o varietate larga de modele de masini de criptat electro-mecanice, care asigura ocriptare polialfabetica de tip Vigenere sau Beaufort.

Ea a fost proiectata la Berlin ın 1918, de inginerul german Arthur Scherbius. Primulmodel (A) este prezentat la Congresele Uniunii Postale Internationale din 1923 si 1924.Modele ulterioare sunt folosite ın mai multe tari europene si asiatice (Suedia, Olanda,Marea Britanie, Japonia, Italia, Spania, SUA, Polonia, Elvetia) ın scopuri comerciale,militare sau diplomatice. Din 1926 ıncepe sa fie preluata si de armata germana, caredupa 1928 ısi defineste propriile modele (G, I, K).

In total au fost construite circa 100.000 masini Enigma, din care 40.000 ın timpulrazboiului. Dupa 1945 aliatii au capturat toate masinile de pe teritoriul german, acesteafiind ınca mult timp considerate sigure. Abia ın 1970 au aparut primele informatii despredecriptarea de catre aliati (Biuro Szyfrow - Polonia si Bletchley Park - Anglia) a unuimare numar de mesaje criptate prin modelul militar Enigma si transmise prin radio ıntimpul razboiului.

O descriere completa a masinii este destul de lunga; recomand pentru detalii [2], [3].In linii mari, ea are urmatoarele componente:

•   Tastatur˘ a : Este o componenta mecanica formata din:

Page 36: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 36/177

8   PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE 

–  Un pupitru de taste (similar unei masini de scris);

–   n   discuri adiacente, care se rotesc ın jurul unui ax. La marea majoritate amodelelor Enigma  n  = 3; sunt ınsa si versiuni cu  n  = 5, 6 sau  n  = 7 discuri.Pe fiecare disc sunt scrise cele 26 caractere alfabetice (la care uneori se maiadauga trei caractere speciale);

–   Un mecanism de avans (similar ceasurilor mecanice) care permite – la apasareaunei taste – rotirea unuia sau mai multor discuri cu un numar de pozitii. Suntfolosite mai multe variante; cea mai frecventa consta ın rotirea cu o pozit ie adiscului din dreapta, la fiecare apasare a unei taste, acompaniata ın anumitesituatii de rotirea discurilor vecine.

•   Circuite electrice : Criptarea unui caracter se realizeaza electric. Componenta meca-nica este conceputa ın asa fel ıncat sa formeze un circuit electric. La apasarea uneitaste circuitul se ınchide si lumineaza una sau mai multe lampi, indicand litera deiesire.

•  Reflector (Umkehrwalze): Este o componenta specifica masinilor de criptat Enigma(introdusa ın 1926 la sugestia lui Willy Korn). Scopul ei este de a realiza o criptareBeaufort (masina sa poata cripta sau decripta mesajele ın acelasi timp).   In ma- joritatea variantelor, reflectorul este asezat pe ax dupa ultimul disc (din stanga); elrealizeaza o substitutie (fixata), dupa care reintroduce noul caracter prin discuri ın

sens invers, dar pe alt drum. Deci o masina Enigma cu n  discuri va realiza criptareaunui caracter prin 2n + 1 substitutii.

O consecinta a acestei proprietati este aceea ca un caracter nu va fi niciodata criptatın el ınsusi, lucru exploatat cu succes de criptanalisti.

•   Tabela de conexiuni (Steckerbrett)4: Este o componenta (pozitionata ın fata, subtastele literelor) ın care se pot face conexiuni ıntre perechi de litere, prin intermediulunor cabluri (similar centralelor telefonice vechi). Deci la un mesaj sunt posibilemaxim 13 conexiuni. De exemplu, daca printr-un cablu sunt conectate literele   S si  W , de cate ori este tastat  S , semnalul este comutat pe  W   ınainte de a intra pe

discuri.

Introdusa ın 1930, aceasta componenta asigura un plus de securitate si a fost prin-cipalul obstacol ın criptanaliza.

Starea initiala a unei masini Enigma se refera la:

•   Ordinea discurilor (Walzenlage): alegerea numarului de discuri si ordinea lor deutilizare;

4plugboard   ın engleza.

Page 37: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 37/177

3.3. MASINI DE CRIPTAT    9

•   Pozit ia init ial˘ a a discurilor : pozitionarea ın mod independent a fiecarui disc, diferitapentru fiecare mesaj;

•   Init ializarea inelului de caractere (Ringstellung): pozitionarea alfabetului relativ laprimul disc.

•   Init ializarea conexiunilor (Steckerverbindungen): conexiunile dintre litere ın cadrultabelei de conexiuni.

Matematic, Enigma cripteaza fiecare litera dupa o procedura care poate fi exprimata prinprodus de permutari. Sa presupunem ca avem o masina Enigma cu 3 discuri si fie   P transformarea tabelei de conexiuni,   U   – reflectorul,   S, M, D   – actiunile celor 3 discuri

(din stanga, mijloc si respectiv dreapta). Atunci criptarea  e  poate fi scrisa sub forma:

e =  P DMSUS −1M −1D−1P −1

Dupa fiecare apasare a unei taste, discurile se rotesc schimband transformarea. De exem-plu, daca discul din dreapta se roteste cu  i  pozitii, atunci transformarea devine  ρiRρ−i,where   ρ   este permutarea ciclica stanga a vectorului (A , B , C , . . . , Z  ). Similar, discuriledin mijloc si stanga pot fi reprezentate prin  j  respectiv k  rotiri ale lui  M  respectiv  S .

Atunci functia de criptare poate fi descrisa astfel:

e =  P (ρiDρ−i)(ρ jMρ− j)(ρ jSρ−k)U (ρ jS −1ρ−k)(ρ jM −1ρ− j)(ρiD−1ρ−i)P −1

Sa calculam numarul de variante posibile pentru criptarea unui mesaj. Vom considerao masina Enigma cu 3 discuri. Atunci numarul de situatii initiale posibile este 26·26·26 =17.576. Cum cele 3 discuri pot fi permutate ın 6 moduri, numarul variantelor se ridica la6 · 17.576 = 105.456.

Pentru fiecare din acestea, o tabela de conexiuni cu 10 perechi de litere conectateridica numarul variantelor la 150.738.274.937.250.

La acestea se adauga si modul de pozitionare al inelului de caractere la mecanismuldiscurilor, care mai ridica ordinul de marime al variantelor cu aproximativ 105. Acesteestimari arata ca Enigma era cea mai sigura masina de criptat a momentului respectiv.

Page 38: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 38/177

10   PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE 

Page 39: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 39/177

Bibliografie

[1] Kahn, David - The Codebreakers , MacMillan Publishing Co, New York, 1967

[2]   http :  //en.wikipedia.org/wiki/Enigma machine

[3] Thomas Kelly -  The myth of the skytale , Cryptologia, Iulie 1998, pp. 244 - 260.

[4] Salomaa, Aarto -  Criptografie cu chei publice , Ed. Militara, 1994

[5]   http :   //en.wikipedia.org/wiki/M  − 209

[6] Collard Brigitte -  Secret Language in Graeco-Roman antiquity  (teza de doctorat)http :  //bcs.fltr.ucl.ac.be/FE/07/CRY P T /Intro.html

11

Page 40: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 40/177

Prelegerea 4

Sisteme de criptare fluide

4.1 Sisteme sincronizabile si auto-sincronizabile

In sistemele de criptare prezentate pana acum, elementele succesive ale textului clar eraucriptate folosind aceeasi cheie  K . Deci, daca

x =  x1x2x3 . . .

este textul clar, textul criptat este

y =  y1y2y3 . . . =  eK (x1)eK (x2)eK (x3) . . .

Sistemele de criptare de acest tip se numesc   sisteme de criptare bloc (block cyphers).Alta maniera utilizata este aceea a sistemelor de criptare  fluide (stream cyphers).

Definitia 4.1   Fie   M= (P , C , K, E , D)   un sistem de criptare. O secvent ¸˘ a de simboluri k1k2k3 . . . ∈ K+ se numeste cheie fluid˘ a.

Definitia 4.2   M= (P , C , K, E , D)  este un sistem fluid dac˘ a cripteaz˘ a un text clar 

x =  x1x2x3 . . .

ın 

y =  y1y2y3 . . . =  ek1(x1)ek2(x2)ek3(x3) . . .unde 

k =  k1k2k3 . . .

este o cheie fluid˘ a din  K+.

Problema principala este aceea de a genera o astfel de cheie de criptare (teoretic infinit).Aceasta se poate realiza fie aleator, fie pe baza unui algoritm care pleaca de la o secventamica de chei de criptare. Un astfel de algoritm se numeste   generator de chei fluide .Mai multe detalii vor fi prezentate ın cadrul prelegerii dedicate generatorilor de numerepseudo-aleatoare.

1

Page 41: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 41/177

2   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

Exemplul 4.1   (sistemul de criptare Vernam):ˆ In acest sistem  xi, ki, yi ∈ {0, 1}. Criptarea se realizeaz˘ a conform formulei 

yi = xi ⊕ ki,   (i ≥  1)

Dac˘ a cheia fluid˘ a este aleas˘ a aleator si nu mai este folosit˘ a ulterior, sistemul de criptare Vernam se numeste ”one - time pad”.

Un sistem de criptare one-time pad este teoretic imposibil de spart.   1   ˆ Intr-adev˘ ar, fiind dat un text criptat cu un astfel de sistem,  Oscar  nu are nici o informat ie privind cheia fluid˘ a sau textul clar. Dificultatea const˘ a ıns  a atˆ at ın lungimea cheii (egal˘ a cu cea a textului clar), cˆ at si ın modalitatea de transmitere a ei ıntre Alice si Bob.

Pentru sistemul Vernam exist˘ a o modalitate de atac cunoscut˘ a sub numele de ”crip-tanaliz˘ a diferent ¸ial˘ a” (prezentat˘ a mai tˆ arziu, ın cadrul sistemului de criptare   DES ).Anume:

Dac˘ a  y1y2 . . . yn  si  y

1y2 . . . yn sunt dou˘ a texte criptate cu aceiasi chee fluid˘ a  k1k2 . . . kn,atunci 

yi = xi ⊕ ki, yi  =  x

i ⊕ ki   (1 ≤ i  ≤ n)

deci  yi ⊕ yi == xi ⊕ x

i, si cheia nu mai este necesar˘ a, ci doar informat ia privind lungimea sa; redundant a ultimei relat ii va permite criptanaliza.

Sistemele de criptare fluide sunt clasificate ın sisteme sincrone   si auto-sincronizabile .

Definitia 4.3   Un sistem de criptare fluid sincron este o structur˘ a   (P , C , K, L, E , D),unde:

• P , C , K sunt mult imi finite nevide ale c˘ aror elemente se numesc ”texte clare”, ”texte criptate” si respectiv ”chei”;

• L  este o mult ime finit˘ a nevid˘ a numit˘ a ”alfabet sir de chei”;

•   g :  K−→ L+ este un generator de chei fluide: pentru ∀k ∈ K,   g(k) = k1k2k3 . . . ∈ L+

este o cheie fluid˘ a (teoretic infinit˘ a);

• ∀z  ∈ L  exist˘ a o regul˘ a de criptare  ez  ∈ E   si o regul  a de decriptare  dz  ∈ D  astfel ca ∀x ∈ P , dk(ek(x)) = x

Exemplul 4.2   Sistemul de criptare Vigenere poate fi definit ca un sistem de criptare  fluid sincron. Fie  m  lungimea cuvˆ antului cheie din sistemul Vigenere. Definim 

1In anii   90 comunicarea ıntre Moscova si Washington era securizata ın acest mod, transportul cheiide criptare fiind asigurat de curieri.

Page 42: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 42/177

4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE    3

P  = C  = L  =Z 26,   K =(Z 26)m ,ez(x) = x + z  (mod 26), dz(y) = y − z  (mod 26)

Cheia  z 1z 2z 3 . . .  este definit˘ a 

z i =

  ki   dac˘ a    1 ≤ i  ≤ mz i−m   dac˘ a    i ≥ m + 1

Ea va genera din cheia fix˘ a  K  = (k1, k2, . . . , km), cheia fluid˘ a  k1k2 . . . kmk1k2 . . . kmk1k2 . . .

Procesul de criptare cu un sistem fluid sincron poate fi reprezentat ca un automatdescris de relatiile

q i+1 = δ (q i, k), z i = g(q i, k), yi = h(z i, xi)

unde   q 0   este   starea init ial˘ a  – care poate fi determinata din cheia   k,   δ   este   funct ia de tranzit ie a st˘ arilor ,  g  este  funct ia care produce cheia fluid˘ a  z i, iar  h  este  funct ia de iesire care produce textul criptat  yi  pe baza textului clar  xi   si a cheii fluide  z i.

q i

   

 

 

 

 δ 

g   hk

q i+1

z i

xi

yi

q i

   

 

 

 

 δ 

g   h−1k

q i+1

z i

yi

xi

(a) Criptare (b) Decriptare

Observatia 4.1

•  Un sistem de criptare bloc poate fi privit ca un caz particular de sistem de criptare  fluid, ın care  ∀i ≥ 1, z i = K .

•   (sincronizare):   ˆ In sistemele de criptare fluide sincrone, Alice si Bob trebuie s˘ a-si sincronizeze cheia fluid˘ a pentru a putea obt ine o criptare/decriptare corect˘ a. Dac˘ a ın timpul transmisiei sunt inserat i sau eliminat i bit i ın textul criptat, atunci decriptarea esueaz  a si ea poate fi reluat˘ a numai pe baza unor tehnici de resincronizare (cum ar fi de exemplu reinit ializarea sau plasarea unor marcatori speciali la intervale regulate ın textul transmis).

•   Modificarea unui bit din textul criptat (f˘ a˘ a a se elimina sau ad˘ auga nimic) nu va afecta decriptarea altor caractere (nepropagarea erorii).

Page 43: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 43/177

4   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

•   Un adversar activ care elimin˘ a, insereaz˘ a sau retrimite componente ale mesajului criptat, va provoca desincroniz˘ ari si va fi deci detectat la recept ie. De asemenea, el poate face modific˘ ari ın textul criptat si s˘ a observe cum vor afecta ele textul clar.Deci un text criptat cu un sistem fluid sincron necesit˘ a meca-nisme separate de autentificare si de garantare a integrit˘ at ii datelor.

Definitia 4.4   Un sistem aditiv fluid binar de criptare este un sistem fluid sincron ın care P  = C  = L =Z 2   iar  h  este funct ia  ⊕  ( XOR).

Un astfel de sistem este reprezentat mai jos:

Generatorchei fluide

  ⊕   k  z i

xi

yiGeneratorchei fluide

  ⊕   k  z i

yi

xi

(a) Criptare (b) Decriptare

Definitia 4.5  Un sistem de criptare fluid este auto-sincronizabil (sau ”asincron”) dac˘ a  funct ia de generare a cheii fluide depinde de un num˘ ar fixat de caractere criptate anterior.

Deci comportamentul unui astfel de sistem poate fi descris de ecuatiile

q i = (yi−t, yi−t+1, . . . , yi−1), z i = g(q i, k), yi = h(z i, xi)

unde  q 0 = (y−t, y−t+1, . . . , y−1) este starea init ial˘ a  (cunoscuta), k  este cheia, g  este functiade generare a cheii fluide, iar  h   este   functia de iesire  care cripteaza textul clar  xi. Celemai cunoscute sisteme auto-sincronizabile sunt registrii liniari cu feedback, utilizati lagenerarea secventelor de numere pseudo-aleatoare (ın criptografie) si la generarea codurilorciclice (ın teoria codurilor).

Exemplul 4.3   (Criptare cu auto-cheie)2:Fie  P  = C  = L  =Z 26. Se defineste cheia fluid˘ a astfel:

z 1 = K, z i  =  yi−1,   (i ≥  2)

Pentru un element oarecare al cheii  z  ∈  Z 26, se defineste ez(x) = x + z  (mod 26)dz(y) = y − z  (mod 26)

S˘ a consider˘ am  K  = 13   si s  a cript˘ am textul clar  BUCU RESTI .

2Se pare ca sistemul este atribuit lui Vigenere.

Page 44: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 44/177

4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE    5

Transformat ın secvent   a numeric˘ a vom avea 

(x1, x2, x3, x4, x5, x6, x7, x8, x9) = (1, 20, 2, 20, 17, 4, 18, 19, 8)

ˆ In faza de criptare, vom calcula pe rˆ and:y1 = e13(x1) = 1 + 13 (mod 26) = 14;   y2  = e14(x2) = 20 + 14 (mod 26) = 8;y3 = e8(x3) = 2 + 8 (mod 26) = 10;   y4  =  e10(x4) = 20 + 10 (mod 26) = 4;y5 = e4(x5) = 17 + 4 (mod 26) = 21;   y6  =  e21(x6) = 4 + 21 (mod 26) = 25;y7 = e25(x7) = 18 + 25 (mod 26) = 17;   y8 = e17(x8) = 19 + 17 (mod 26) = 10;y9 = e10(x9) = 8 + 10 (mod 26) = 18;

Deci textul criptat este  (14, 8, 10, 4, 21, 25, 17, 10, 18)  sau – ın litere:  OIKEV ZRKS .Pentru decriptare, vom avea:x1 = d13(y1) = 14 − 13 (mod 26) = 1;   x2 = d14(y2) = 8 − 14 (mod 26) = 20; s.a.m.d.Se observ˘ a c˘ a textul decriptat poate fi obt inut de oricine, aproape ın totalitate, f˘ ar˘ a a 

cunoaste nici o cheie (aceasta fiind necesar˘ a doar pentru decriptarea primului caracter).Deci gradul s˘ au de securitate este nul.

Ceva mai dificil este sistemul ın care generarea cheii fluide se realizeaz˘ a cu ecuat ia z i =  xi−1 (i ≥  2).

ˆ In acest caz,  BUCU RESTI   se cripteaz˘ a ın  O V W W LV W LB   (pentru  K  = 13).Nici acest sistem de criptare cu auto-cheie nu este sigur, deoarece – evident – sunt 

posibile doar  26  chei.

Proprietati:1.   Auto-sincronizare : Deoarece functia de decriptare  h−1 depinde numai de un numar

fixat de caractere criptate anterior, desincronizarea – rezultata eventual prin in-serarea sau stergerea de caractere criptate – se poate evita. Astfel de sisteme decriptare pot restabili proprietatea de sincronizare afectand doar un numar finit decaractere din textul clar.

2.   Propagarea limitat˘ a a erorii : Daca starea unui sistem fluid auto-sincronizabil de-pinde de   t  caractere anterioare, atunci modificarea (eventual stergerea sau inser-area) unui caracter din textul criptat poate duce la decriptarea incorecta a maximt  caractere; dupa aceea decriptarea redevine corecta.

3.   R˘ aspˆ andirea textelor clare : Deoarece fiecare caracter din textul clar influenteazaıntregul text criptat care urmeaza, eventualele proprietati statistice ale textului clarsunt dispersate prin textul criptat. Deci, din acest punct de vedere, sistemele decriptare auto-sincronizabile sunt mai rezistente decat cele sincronizabile la atacurilebazate pe redondanta textului clar.

4.   Rezistent a la criptanaliz˘ a activ˘ a : Din proprietatile de mai sus rezulta ca este destulde dificil de depistat un atac venit din partea unui adversar activ (care poate mod-ifica, insera sau sterge caractere) auto-sincronizarea readucand decriptarea ın faza

Page 45: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 45/177

6   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

normala. De aceea sunt necesare mecanisme suplimentare pentru a asigura auten-tificarea si integritatea datelor.

4.2 Exemple de sisteme fluide de criptare

4.2.1 SEAL

SEAL  (Software - optimized   Encryption   ALgorithm) este un sistem de criptare aditivbinar (Definitia 4.4), definit ın 1993 de Coppersmith si Rogaway. Este unul din cele maieficiente sisteme implementabile pe procesoare de 32 biti.

La un astfel de sistem este importanta descrierea generatorului de chei fluide (care seaduna modulo 2 cu textul clar).   SEAL este o functie pseudo-aleatoare care scoate o cheiefluida de  L  biti folosind un numar  n  de 32 biti si o cheie secreta  a de 160 biti.

Fie  A, B,C,D,X i, Y  j  cuvinte de 32 biti. Vom folosi urmatoarele notatii:

1.   A: complementul lui  A (pe biti);

2.   A ∨ B, A ∧ B, A ⊕ B: operatiile  OR,AND  si XOR  (pe biti);

3.  A << s: rotirea ciclica a lui  A spre stanga cu  s pozitii;

4.  A >> s: rotirea ciclica a lui  A spre dreapta cu  s pozitii;

5.   A + B (mod 232): suma lui A  si B  (considerate ca numere ıntregi fara semn);

6.   f (B , C , D) = (B ∧ C ) ∨ (B ∧ D);g(B , C , D) = (B ∧ C ) ∨ (B ∧ D) ∨ (C  ∧ D);   h(B , C , D) = B  ⊕ C  ⊕ D.

7.   A||B: concatenarea lui A cu  B ;

8. (X 1, X 2, . . . , X  n) ←− (Y 1, , , , , Y  2, . . . , Y  n): atribuire simultana.

Page 46: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 46/177

4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE    7

Algoritmul de generare a tabelei  G   pentru SEAL 2.0:   3

Intrare: Un sir  a de 160 biti si un ıntreg  i  (0  ≤  i < 232).Iesire:   Ga(i) – sir de 160 biti.Algoritm 1:

1. Se definesc constantele (de 32 biti):

y1 = 0x5a827999, y2 = 0x6ed9eba1,y3  = 0x8f 1bbcdc, y4 = 0xca62c1d6

2.   a. X 0 ←− i;

b.   for j  ←− 1  to 15  do  X  j  ←− 0x00000000;

c.   for  j ←− 16  to 79  do  X  j  ←− ((X  j−3 ⊕ X  j−8 ⊕ X  j−14 ⊕ X  j−16) <<  1);

d. (A,B,C,D,E ) ←− (H 0, H 1, H 2, H 3, H 4)  where a =  H 0H 1H 2H 3H 4;

e.   (Runda 1):   for j ←− 0  to 19  do

t ←− ((A << 5) + f (B , C , D) + E  + X  j + y1);

(A,B,C,D,E ) ←− (t, A, B << 30, C , D);

f.   (Runda 2):   for j  ←− 20  to 39  do

t ←− ((A << 5) + h(B , C , D) + E  + X  j + y2);

(A,B,C,D,E ) ←− (t, A, B << 30, C , D);

g.   (Runda 3):   for  j ←− 40  to 59  do

t ←− ((A << 5) + g(B , C , D) + E  + X  j + y3);

(A,B,C,D,E ) ←− (t, A, B << 30, C , D);

h.   (Runda 4):   for j ←− 60  to 79  do

t ←− ((A << 5) + h(B , C , D) + E  + X  j + y4);

(A,B,C,D,E ) ←− (t, A, B << 30, C , D);

i. (H 0, H 1, H 2, H 3, H 4) ←− (H 0 + A, H 1 + B, H 2 + C, H 3 + D, H 4 + E );Ga(i) = H 0||H 1||H 2||H 3||H 4.

SEAL(a, n) (Generatorul de chei fluide pentru SEAL 2.0):

3Algoritmul SEAL 1.0 este bazat pe functia de dispersie  SHA, iar SEAL 2.0 – pe functia SHA − 1.

Page 47: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 47/177

8   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

Intrare:   a   – cheia secreta (160 biti),  n  ∈   [0, 232) ıntreg,  L   - lungimea solicitata pentrucheia fluida.Iesire: cheia fluida  y,   |y| =  L, unde  L este primul multiplu de 128 din [L, ∞).

1. Se genereaza tabelele  T, S , R  avand ca elemente cuvinte de 32 biti.

Fie functia F a(i) = H ii (mod 5)  unde  H i0H i1H i2H i3H i4 = Ga(i/5).

a.   for i ←− 0  to  511  do T [i] ←− F a(i);

b.   for j  ←− 0  to 255  do S [ j] ←− F a(0x00001000 + j);

c.   for  k ←− 0  to 4 · (L − 1)/8192 − 1  do R[k] ←− F a(0x00002000 + k);

2. Descrierea procedurii Initialize(n,l,A,B,C,D,n1, n2, n3, n4) cu intrarile n (cuvant)si l   (ıntreg). Iesirile sunt  A, B,C,D,n1, n2, n3, n4  (cuvinte).

a.  A ←− n ⊕ R[4 · l], B ←− (n >> 8) ⊕ R[4 · l + 1],

C  ←− (n >> 16) ⊕ R[4 · l + 2], D ←− (n >> 24) ⊕ R[4 · l + 3].

b.   for j  ←− 1  to 2  do

P   ←− A ∧ 0x000007f c, B ←− B  + T [P/4], A ←− (A >> 9),

P   ←− B  ∧ 0x000007f c, C   ←− C  + T [P/4], B ←− (B >> 9),

P   ←− C  ∧ 0x000007f c, D ←− D  + T [P/4], C  ←− (C >> 9),

P   ←− D ∧ 0x000007f c, A ←− A + T [P/4], D ←− (D >> 9),(n1, n2, n3, n4) ←− (D,A,B,C );

P   ←− A ∧ 0x000007f c, B ←− B  + T [P/4], A ←− (A >> 9),

P   ←− B  ∧ 0x000007f c, C   ←− C  + T [P/4], B ←− (B >> 9),

P   ←− C  ∧ 0x000007f c, D ←− D  + T [P/4], C  ←− (C >> 9),

P   ←− D ∧ 0x000007f c, A ←− A + T [P/4], D ←− (D >> 9),

3.   l ←− 0,  y ←−   (sirul vid);

4.   repeata. Initialize(n,l,A,B,C,D,n1, n2, n3, n4);

b.   for i ←− 1  to 64  do

P   ←− A ∧ 0x000007fc, B ←− B  + T [P/4], A ←− (A >> 9), B ←− B  ⊕ A;

Q ←− B  ∧ 0x000007fc, C  ←− C  + T [Q/4], B ←− (B >> 9), C  ←− C  ⊕ B;

P   ←− (P  + C ) ∧ 0x000007fc, D ←− D + T [P/4], C  ←− (C >> 9), D ←− D ⊕ C ;

Q ←− (Q + D) ∧ 0x000007fc, A ←− A + T [Q/4], D ←− (D >> 9), A ←− A ⊕ D;

P   ←− (P  + A) ∧ 0x000007fc, B ←− B  + T [P/4], A ←− (A >> 9);

Q ←− (Q + B) ∧ 0x000007fc, C  ←− C  + T [Q/4], B ←− (B >> 9);

Page 48: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 48/177

4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE    9

P   ←− (P  + C ) ∧ 0x000007fc, D ←− D  + T [P/4], C  ←− (C >> 9);Q ←− (Q + D) ∧ 0x000007fc, A ←− A + T [Q/4], D ←− (D >> 9);y ←− y||(B + S [4 · i − 4])||(C  ⊕ S [4 · i − 3])||(D + S [4 · i − 2])||(A ⊕ S [·i − 1]).

if  |y| ≥ L  then return(y)  STOP

else if  i (mod 2) = 1  then (A, C ) ←− (A + n1, C  + n2)else  (A, C ) ←− (A + n3, C  + n4)

c. l ←− l + 1.

Observatia 4.2   ([1])  ˆ In majoritatea aplicat iilor pentru SEAL 2.0 se foloseste  L ≤  219.Algoritmul funct ioneaz˘ a si pentru valori mai mari, dar devine ineficient deoarece creste mult dimensiunea tabelei  R. O variant˘ a este concatenarea cheilor fluide  SEAL(a, 0)||SEAL(a, 1)||SEAL(a, 2)|| . . . Deoarece  n < 232, se pot obt ine astfel chei fluide de lungimi pˆ an˘ a la  251, p˘ astrˆ and  L = 219.

4.2.2 RC4

Sistemul RC 4 (Rivest Code #4) a fost creat ın 1987 de Ron Rivest pentru societatea RSAData Security Inc (astazi  RSA Security ). Destinat scopurilor comerciale, el a fost secret,fiind accesibil numai dupa semnarea unui protocol de confidentialitate.  In septembrie 1994ınsa, un anonim publica codul sau sursa pe o lista de discutii, dupa care se raspandesterapid starnind o serie de polemici referitor la drepturile intelectuale. Se considera ca astazi

exista mai multe implementari ilegale.RC 4 este un sistem aditiv fluid de criptare.Printre sistemele care folosesc  RC 4 se pot aminti SQL (Oracle), Lotus Notes, AOCE

(Apple Computer), WEP WPA CipherSaber Secure Sockets Layer (opt ional) sau Secureshell (optional)4 RC 4 este utilizat pentru criptarea fisierelor ın protocoale cum ar fi RSASecurPC  sau ın standarde de comunicatii (WEP, WPA pentru carduri, criptarea traficuluide date sau a site-urilor de web bazate pe protocolul SSL). De asemenea, el face partedin Cellular Digital Packet Data specification.

La acest sistem, pentru generarea cheii fluide se foloseste o stare interna (secreta)formata din doua componente:

•  Un tablou de 256 octeti:   S [0], S [1], . . . S  [255], numit  S  − box.

•  Doi pointeri de cate 8-biti (notati ”i” respectiv ” j”).

S  − boxul   este initializat cu o cheie de lungime variabila – de obicei ıntre 40 si 256biti, folosind un algoritm numit  KSA   (key-sheduling algorithm).

In faza a doua, cheia fluida este generata folosind algoritmul  PRGA  (pseudo-randomgeneration algorithm).

4Cand un sistem de criptare este marcat  opt ional , ınsemna ca el este una din variantele oferite pentruimplementare.

Page 49: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 49/177

10   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

Algoritmul PRGA de generare a cheii fluide

i   j

+

 

    

  

 

 

0 1 2   S [i]+S [ j]   254 255

. . . . . . . . . . . .

Continuturile S [i] si S [ j] (unde i, j  sunt date de cei doi pointeri) se aduna modulo 256,iar octetul  K  de la adresa  S [i] + S [ j] este introdus ın cheia fluida.   In plus cei doi octetisunt interschimbati.

Procedeul este reluat atat timp cat este nevoie. La fiecare reluare starea celor doipointeri se modifica (i  este incrementat cu 1 iar  j  este incrementat cu  S [i]).   In acest fel,orice locatie din  S  − box este modificata cel putin odata ;a 256 iteratii.

Formal:

i : = 0

j : = 0

while GeneratingOutput:

i := (i + 1) mod 256

j := (j + S[i]) mod 256

swap(S[i],S[j])

output S[(S[i] + S[j]) mod 256]

Algoritmul  KSA   de initializare

KSA  este utilizat pentru initializarea   S  − boxului. Fie   n   (1   ≤   n   ≤   255) numarul deocteti din cheie5. Initial ın  S  se introduce permutarea identica. Ulterior se realizeaza 256transpozitii. Formal

for i from 0 to 255 do S[i] := i

j : = 0

for i from 0 to 255 doj := (j + S[i] + key[i mod n]) mod 256

swap(S[i],S[j])

Implementarea sistemului   RC 4 este foarte simpla: ea lucreaza cu octeti si necesita256 pentru  S  −  box, n octeti de memorie pentru cheie, plus trei variabile ıntregi  i, j, k.Operatiile folosite sunt X OR si AN D (sau – pe unele platforme – simpla adunare pe biti,fara transport).

5In majoritatea implementarilor  n  este ın intervalul [5, 16].

Page 50: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 50/177

4.3. EXERCITII    11

Securitatea RC 4

Conform cu Bruce Schneier ([2]), sistemul are circa 256! × 2562 = 21700 stari posibile; eleste rezistent la criptanaliza diferentiala si liniara, iar ciclurile sunt mai mari de 10.100.

Totusi, securitatea  RC 4 este slaba din mai multe puncte de vedere si criptografii nurecomanda sistemul pentru aplicatiile actuale.

Cheia fluida generata are o usoara preferinta pentru anumite secvente de octeti.Aceasta a permis construirea unui atac (Fluhrer si McGrew), care separa cheia fluidadintr-o secventa aleatoare de maxim 1 GB.

In 2001, Fluhrer, Mantin si Shamir descopera ca din toate cheile RC4 posibile, primiiocteti de iesire nu sunt aleatori, oferind informatii importante despre cheie.

La majoritatea sistemelor de criptare, o masura de securitate ncesara este alegereaunui numar aleator nou6 care sa fie folosit pentru criptarea fiecarui mesaj.   In acest fel,criptarea de doua ori a aceluiasi mesaj va genera texte diferite. O solutıe sigura (carefunctioneaza pentru orice sistem de criptare) este de a folosi o cheie pe termen lung dincare, prin amestec cu un nonce (dupa un algoritm prestabilit) se obtine cheia necesaraunei criptari. Multe aplicatii ınsa – care folosesc RC 4 – fac o simpla concatenare a cheii cunonce. Aceasta slabiciune este exploatata de Fluhrer, Mantin si Shamir pentru a spargeulterior sistemul de criptare  W EP  (wired equivalent pruvacy) folosit pe retelele fara fir802.11.

Ulterior implementarile sistemului   RC 4 s-au aparat eliminand primii octeti (uzual1024) din cheia fluida, ınainte de a o folosi.

4.3 Exercitii

1. Construiti coduri de autentificare a mesajelor (MAC) capabile sa autentifice mesajeleprimite printr-un sistem fluid de criptare. (Indicatie: a se vedea [1], paragraf 9.5.4)

2. Presupunem ca definim o cheie fluida ıntr-un sistem sincronizabil ın felul urmator:Fie  K   ∈ K,   L  un alfabet al cheilor si Σ o multime finita de stari. Se defineste ostare initiala  q 0  ∈  σ. Apoi, pentru  i ≥  1, se defineste recursiv

q i = f (q i−1, K )

unde f   : Σ×K−→ Σ. De asemenea, ∀i ≥  1, elementul z i din cheia fluida este definitprin

z i = g(q i, K )

unde   g   : Σ × K−→ L. Aratati ca orice cheie fluida rezultata ın acest mod are operioada de lungime maxim  |Σ|.

6Un astfel de numar poarta numele de  nonce  (new number)

Page 51: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 51/177

12   PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE 

Page 52: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 52/177

Bibliografie

[1] Menezes, Oorschot, Vanstome - Handbook of applied cryptography , 1997

[2] Schneier, B. -  Applied Cryptography , John Wiley & Sons, second edition, 1997

[3] Stinton, D. –  Cryptography, Theory and Practice , Chaptan & Hall/CRC, second edi-tion 2002

13

Page 53: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 53/177

Prelegerea 5

Sistemul de criptare DES

5.1 Consideratii generale

In mai 1973, Biroul National de Standarde din SUA a lansat ın Registrul Federal (jurnaluloficial al guvernului) un apel la construirea unui sistem de criptare oficial care sa senumeasca   Data Encryption Standard   (DES ). Firma   IBM   a construit acest sistem –publicat ın Registrul Federal la 17 martie 1975, modificand un sistem de criptare maivechi, numit  Lucifer. Dupa dezbateri publice,  DES  a fost adoptat oficial la 17 ianuarie1977 ca standard de criptare. De atunci, el a fost re-evaluat la fiecare 5 ani, fiind ın acest

moment cel mai popular sistem de criptare cu cheie simetrica. Spargerea sa ın iulie 1998a coincis (ıntamplator ?) cu durata sa oficiala de utilizare.

5.2 Descrierea sistemului   DES 

Sistemul DES   cripteaza un bloc de text clar de 64 biti ıntr-un text criptat tot de 64 biti,utilizand o cheie de 56 biti. Algoritmul cuprinde 3 etape:

1. Fie  α   textul clar initial, de 64 biti. Lui i se aplica o permutare  IP   initiala fixata,obtinandu-se  α0  =  IP (α) =  L0R0.   L0  este format din primii 32 bit i ai lui  α0, iar

R0  – din ultimii 32 biti.2. Se efectueaza 16 iteratii (tururi) ale unei functii care se va preciza. La fiecare tur

se calculeaza  LiRi  (1 ≤  i  ≤  16) dupa regula

Li =  Ri−1

Ri = Li−1 ⊕ f (Ri−1, K i)

unde  ⊕ este  sau - exclusiv  (XOR) a doua secvente binare.   f  este o functie care seva preciza, iar   K 1, K 2, . . . , K  16  sunt secvente de 48 biti calculati din cheia   K . Sespune ca  K 1, K 2, . . . , K  16 sunt obtinuti prin  diversificarea cheii  (key shedule).

1

Page 54: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 54/177

2   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

3. Blocului R16L16 i se aplica inversa permutarii initiale pentru a obtine textul criptatβ  = I P −1(R16L16).

Observatia 5.1  Sistemul de ecuat ii care definesc criptarea la fiecare tur poate fi inversat imediat pentru a obt ine ecuat iile tururilor de decriptare. Acestea sunt:

Ri−1 = Li, Li−1 =  Ri ⊕ f (Li, K i)

Functia de criptare   f (A, J ) are ca argumente doua secvente binare: una de 32 biti,iar a doua de 48 biti. Rezultatul este o secventa de 32 biti. Etapele de calcul ale functieisunt:

1. Argumentul   A   este extins la 48 bit i folosind o   funct ie de expansiune   E .   E (A)cuprinde bitii lui  A asezati ıntr-o anumita ordine, unii bitii fiind scrisi de doua ori.

2. Se calculeaza  B  =  E (A) ⊕ J ; rezultatul se descompune ın 8 subsecvente de cate 6biti fiecare:   B  = B1B2B3B4B5B6B7B8.

3. Se folosesc 8  S  − cutii S 1, S 2, . . . , S  8, fiecare din ele fiind un tablou de dimensiuni4 ×  16 cu elemente numere ıntregi din intervalul [0, 15]. Pentru o secventa   B j   =b1b2b3b4b5b6 se calculeaza un sir de 4 biti S  j(B j) astfel: bitii b1b6 dau reprezentarea bi-nara a indicelui unei linii  r  (0 ≤  r  ≤  3) din S  j; ceilalti biti b2b3b4b5 dau reprezentarea

binara a indicelui unei coloane   c  (0  ≤  c  ≤  15) din tablou. Atunci C  j   =  S  j(B j) =[S  j(r, c)]2 (1 ≤  j  ≤ 8). ([x]2  este reprezentarea ın baza 2 a numarului ıntreg  x).

4. Secventa   C   =   C 1C 2C 3C 4C 5C 6C 7C 8   – de lungime 32 – se rearanjeaza folosind opermutare fixata  P . Rezultatul final este  f (A, J ) = P (C ).

Mai ramane sa specificam functiile particulare folosite de sistemul  DES :

•   Permutarea initiala  IP   este:

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

•  Permutarea inversa  IP −1 este:

Page 55: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 55/177

5.2. DESCRIEREA SISTEMULUI  DES    3

40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 30

37 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 2633 1 41 9 49 17 57 25

•   Functia de expansiune  E  este definita de tabloul:

32 1 2 3 4 54 5 6 7 8 9

8 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

•  Cele opt cutii  S  (S -boxes) sunt:

S 1

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 0

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

S 215 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 15

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

S 310 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

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

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

Page 56: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 56/177

4   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

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

14 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 14

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

S 612 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 89 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

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

13 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

S 813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 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

•   Permutarea fixata  P   este:

16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 14

32 27 3 919 13 30 622 11 4 25

Mai ramane de prezentat procesul de diversificare al cheii  K . De fapt,  K  este o secventade 64 biti, din care 56 definesc cheia, iar 8 (bitii de pe pozitiile 8, 16, 24, . . . , 64) sunt bitide paritate, aranjati ın asa fel ıncat fiecare octet sa contina un numar impar de 1. Acesti8 biti sunt ignorati ın procesul de diversificare.

1. Din cheie se elimina bitii de paritate, iar asupra celorlalt i se aplica o permutareP C 1, obtinandu-se  P C 1(K ) =  C 0D0   (C 0   sunt primii 28 biti din secventa, iar  D0  –ceilalti 28 biti). Permutarea  P C 1   este

Page 57: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 57/177

5.3. CONTROVERSE LEGATE DE  DES    5

57 49 41 33 25 17 91 58 50 42 34 26 18

10 2 59 51 43 35 27

19 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 4

2. Pentru  i = 1, 2, . . . , 16 se calculeaza

C i  =  LS i(C i−1)

Di  =  LS i(Di−1)

si  K i  = P C 2(C iDi).   LS i  este o rotatie circulara la stanga cu una sau doua pozitii,ın functie de valoarea lui  i: o pozitie daca  i = 1, 2, 9, 16, altfel rotirea este de douapozitii. Permutarea  P C 2   este:

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

Decriptarea se realizeaza plecand de la textul criptat   β   si utilizand acelasi algoritm, ınordine inversa; se vor folosi ın ordine cheile K 16, . . . , K  1.

5.3 Controverse legate de  DES 

Inca de la lansarea sa,   DES   a fost supus la numeroase critici. O prima obiectie a fostfolosirea cutiilor  S . Toate calculele din  DES  sunt liniare,   cu except ia   cutiilor. Deci, defapt toata securitatea sistemului se bazeaza pe acestea. Dar, nimeni (cu exceptia autorilor)nu stie cum sunt concepute cutiile. Multe persoane sunt convinse ca ele ascund diversetrape secrete care permit celor de la  Agent ia nat ional˘ a de securitate   (N SA   - serviciulamerican care raspunde de chestiunile legate de criptografie) sa decripteze orice mesaj.

Ca urmare, N SA  afirma ın 1976 ca S  - cutiile au fost construite pe baza urmatoarelorcriterii:

1. Fiecare linie este o permutare a numerelor 0, . . . , 15;

Page 58: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 58/177

6   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

2. Nici o cutie nu este o functie liniara sau afina;

3. Modificarea unui bit din operand, o  S  - cutie provoaca modificarea cel putin a doibiti din rezultat;

4. Pentru fiecare cutie   S   si   α  (secventa de lungime 6),   S (α) si  S (α ⊕ 001100) diferaprin cel putin doi biti.

Alte doua proprietati au fost mentionate ca fiind consecinte ale criteriilor de constructie:

5. Pentru orice cutie S   si orice  α,  S (α) = S (α ⊕ 11ab00), oricare ar fi  a, b ∈ {0, 1};

6. Pentru orice cutie S , daca un bit din operand este mentinut constant si se urmarsteun bit al rezultatului, numarul de valori care produc 0 este apropiat de num arulde valori care produc 1.   Intr-adevar, daca bitul fixat este unul din cei doi biti caredetermina linia cutiei  S , exista – conform criteriului 1.  – 16 valori care produc 0 si16 valori care produc 1; pentru ceilalt i biti, aceasta nu este adevarat, dar numarulde valori care produc 0 (sau 1) este cuprins totdeauna ıntre 13 si 19.

Nici un alt criteriu referitor la  S  - cutii nu a mai fost recunoscut public.

Cea mai pertinenta critica referitoare la  DES  se refera la marimea prea mica (numai256) a spatiului cheilor. Ca urmare s-au conceput numeroase masini dedicate atacurilorcu text clar cunoscut, care sa caute cheia. Fiind dat un text clar  α  de 64 biti si textulsau criptat  β , se verifica toate cheile posibile  K   pana se obtine  eK (α) =  β  (de remarcatca solutia exista totdeauna, dar nu este unica).

5.4 Moduri de utilizare ale  DES   -ului

In istoria sa, sistemul de criptare   DES   a cunoscut patru moduri de utilizare, moduriextinse ulterior si la alte sisteme:

•   Modul ECB (Electronic Codebook Mode ) corespunde metodei descrise anterior: fiinddat un text clar  x  =  α1α2 . . ., fiecare bloc αi  de 64 biti este criptat cu cheia  K  dupaformula

β i  =  eK (αi),   (i ≥  1)

procedeul conducand la textul criptat  y = β 1β 2 . . .

•   In modul  CB C   (Cypher Block Chaining Mode ), fiecare bloc de text criptat  β i   estecombinat printr-un   XOR   (⊕) cu textul clar urmator   αi+1, ınainte de criptareaacestuia. Operatia decurge conform schemei:

Page 59: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 59/177

5.4. MODURI DE UTILIZARE ALE  DES  -ULUI    7

β 1

eK    eK 

β 2

  

α1   α2

V I  = β 0   + +

Criptare

 

 

 

 

 

 

 

 

. . .

α1   α2

   dK    dK 

β 1   β 2

V I  = β 0  

 

 

 

 

 

 

 

 + +   . . .

Decriptare

Se defineste un bloc cu valoarea initiala  V I  =  β 0, dupa care blocurile se cripteazadupa formula

β i = eK (β i−1 ⊕ αi),   (i ≥  1)

•   Modurile  OF B

  si  CF B

  sunt construite conform sistemelor de criptare fluide: segenereaza ıntai cheia fluida, care se combina apoi cu textul clar.   OF B   (Output Feedback Mode ) este o criptare sincronizabila aditiva: componentele cheii fluidesunt obtinute prin criptarea iterativa a unui bloc initial  V I  de 64 biti; se definesteγ 0 =  V I   si se calculeaza  γ 1, γ 2, . . . dupa formula

γ i =  eK (γ i−1),   (i ≥  1)

Secventa blocurilor de text clar   x   =   α1, α2, . . .   este criptata apoi aditiv conformrelatiei

β i  =  αi ⊕ γ i,   (i ≥  1)

•   In modul   CF B   (Cypher Feedback Mode ) se ıncepe cu   β 0  =  V I   (bloc initial de 64biti) si se calculeaza cheia fluida  γ i   criptand din nou blocul de text criptat obtinutanterior:

γ i =  eK (β i−1),   (i ≥  1)

. Ca si la modul  OF B, ın etapa a doua avem

β i  =  αi ⊕ γ i,   (i ≥  1)

De remarcat ca functia de criptare  eK  este folosita aici atat la procesul de criptarecat si la cel de decriptare.

β 1

eK V I  = β 0

α1

eK 

β 2

α2

 

 

 

 

 

 ++

Criptare

. . .

α1

eK V I  = β 0

β 1

eK 

al2

β 2

 

 

   

 

 ++

Decriptare

. . .

Desi metoda prezentata a fost descrisa pentru blocuri de marime 64, modurile OF B

si  CF B  pot fi extinse la blocuri de  k  biti (1 ≤  k  ≤  64).

Page 60: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 60/177

8   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

Cele patru moduri de utilizare prezinta diverse avantaje si dezavantaje. Astfel, laEC B   si   OF B, modificarea unui bloc de text clar   αi  provoaca modificarea unui singurbloc de text criptat,  β i.   In anumite situatii, acest fapt constituie un defect. Modul  OF B

este utilizat adesea pentru transmisiile prin satelit.In modurile CBC   si CF B dimpotriva, modificarea unui bloc αi de text clar antreneaza

modificari ın toate blocurile de texte criptate, ıncepand cu  β i. De aceea, aceste modurisunt adaptate ın particular problemelor de autentificare a mesajelor (M AC   - MessageAuthentication Code). Un  M AC   este adaugat la un text clar cu scopul de a-l convingepe  Bob  ca textul primit a fost scris de  Alice  si nu a fost alterat de  Oscar. El garanteazaastfel integritatea (sau autenticitatea) mesajului, dar nu si confidentialitatea sa.

Sa descriem cum este utilizat modul  CBC  la constructia unui  M AC . Se pleaca de lablocul initial   V I   ın care toti bitii sunt 0. Se construieste textul criptat   β 1, β 2, . . . , β  ncu cheia   K , ın modul   CBC , iar   M AC   este blocul   β n.   Alice   va transmite mesajulα1, α2, . . . , αn, asociat cu   M AC -ul   β n. Cand   Bob   primeste mesajul   α1, α2, . . . , αn, elgenereaza  β 1, . . . , β  n  folosind cheia (secreta)  K   si verifica daca  β n  este identic cu mesajulM AC  primit.

De remarcat ca   Oscar   nu poate construi un   M AC   deoarece nu cunoaste cheia   K 

utilizata de  Alice  si  Bob; orice modificare a mesajelor clare este depistata astfel usor.

Se poate realiza si o combinare a integritatii cu confidentialitatea, ın felul urmator:Alice   utilizeaza cheia  K 1  pentru a calcula un   M AC   bazat pe   α1, . . . , αn; fie  αn+1   acest

M AC . Apoi, ea cripteaza mesajul   α1, . . . , αn+1  ın   β 1, . . . , β  n+1   folosind o a doua cheieK 2. Cand  Bob  primeste mesajul, el decripteaza ın prima faza (cu cheia  K 2), apoi verificacu cheia  K 1  daca  αn+1  este  M AC -ul lui  α1, . . . , αn.

Sau – ca alta varianta –  Alice poate utiliza  K 1  pentru criptarea mesajului  α1, . . . , αn;apoi, pentru  β 1, . . . , β  n  determina  M AC -ul  β n+1  folosind cheia  K 2.   Bob  va face ıntai ver-ificarea corectitudinii data de  M AC   si – daca totul este ın ordine – va trece la decriptare.

5.5 Sisteme de criptare ınrudite cu   DES 

5.5.1 Triplu  DES  (3DES )

Triplu DES  (cunoscut si sub numele 3DES  sau – mai rar –  DES  − ede) este un sistemderivat din DES , propus de Walter Tuchman (seful echipei  I BM  care a construit  DES ).Numele oficial este  F I P S   Pub 46 − 3.

Formal, 3DES  este definit prin formula

c =  DES k3(DES −1k2(DES k1(m))).

unde:m  este un bloc de text clar (64 biti),

Page 61: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 61/177

5.5. SISTEME DE CRIPTARE   INRUDITE CU  DES    9

e  este blocul de text criptat rezultat,

k1, k2, k3  sunt chei  DES  (de 56 biti),

DES k: criptarea  DES  cu cheia  k,

DES −1k   : decriptarea  DES  cu cheia  k.

Introducerea la pasul 2 a decriptarii nu afecteaza securitatea algoritmului. Avantajulconsta ın utilizarea pentru 3DES  a unei implementari de DES  (astfel, cele doua sistemepot inter-opera).

Uneori – dar destul de rar – se foloseste pentru Triplu  DES  o criptare ın lant de treicriptari  DES  (numita si  DES  − eee):

c =  DES k3(DES k2(DES k1(m))).

Utilizarea a trei pasi (ede sau  eee) este esentiala pentru protejarea contra unui atac detipul  meet-in-the-middle .   In cazul unei duble criptari, acest atac este destul de eficient.

Intr-adevar, sa consideram un sistem de criptare bloc unde marimea cheii este  n. Ocriptare dubla cu doua chei diferite va folosi de fapt o cheie de lungime 2n. Pentru untext clar dat  m, sa presupunem ca putem stoca  eK (m), pentru toate cheile  K   posibile.

Fie  x  un text criptat dupa formula  x =  ek2(ek1(m)), unde cheile  k1   si  k2  sunt secrete.Pentru fiecare cheie  p exista o cheie unica  q  astfel ca  d p(x) = eq(m).   In particular existaexact 2n chei posibile determinate de perechea (m, x), chei care pot fi gasite ın aproximativO(2n) pasi.

Daca numarul cheilor care pot fi stocate este de ordinul 2 p <  2n, algoritmul poate fimodificat pentru a afla toate cheile posibile ın circa  O(22n− p) pasi.

Observatia 5.2   Pentru oricare din situat iile k1 =  k2, k2 = k3, k1 =  k2 = k3,

DES  −  ede   se reduce la un simplu   DES , lucru utilizat frecvent pentru a verifica compatibilitatea.

Cheia pentru  Triplu  DES  are 3 × 56 = 168 biti, la care se adauga 3 × 8 = 24 biti de

paritate; ın total sunt 192 biti.O varianta, numita ”3DES  cu doua chei” foloseste  k1  =  k3; aici marimea de stocarea cheii va fi de numai 128 biti (din care 16 biti de paritate). Acest mod este ınsa sensibilla anumite atacuri cu text clar ales, propuse de Merkle si Hellman (1981) si – mai tarziu– de Van Oorschot si Wiener (1991).

Sistemul de criptare 3DES  nu este ınca spart, dar utilizarea sa este ıngreunata dincauza vitezei mici de criptare. Totusi multe sisteme continua sa foloseasca 3DES ; caexemple mai recente sunt cardurile bancare (Mastercard   si part ial –  Visa ) care din 2002sunt configurate pe baza acestui sistem de criptare. De asemenea, sistemul de telefoniemobila  Zapp  are ca sistem de criptare 3DES .

Page 62: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 62/177

Page 63: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 63/177

5.5. SISTEME DE CRIPTARE   INRUDITE CU  DES    11

1.   Se ınmulteste  X 1  cu prima subcheie;2.   Se aduna  X 2  cu a doua subcheie;3.   Se aduna  X 3  cu a treia subcheie;4.   Se ınmulteste  X 4  cu a patra subcheie;5.   Ce s-a obtinut la pasii 1 si 3 se combina prin  XOR;6.   Ce s-a obtinut la pasii 2 si 4 se combina prin  XOR;7.   Se ınmulteste rezultatul pasului 5 cu subcheia 5;8.   Se aduna rezultatele pasilor 6 si 7;9.   Se ınmulteste rezultatul pasului 8 cu subcheia 6;10.   Se aduna rezultatele pasilor 7 si 9;11.   Ce s-a obtinut la pasii 1 si 9 se combina prin  XOR;

12.   Ce s-a obtinut la pasii 3 si 9 se combina prin  XOR;13.   Ce s-a obtinut la pasii 2 si 10 se combina prin  XOR;14.   Ce s-a obtinut la pasii 4 si 10 se combina prin  XOR.

Rezultatele pasilor 11, . . . , 14 formeaza iesirea dintr-o runda; cele patru subblocuri (dupace subblocurile doi si trei sunt interschimbate) formeaza intrarea ın runda urmatoare.

Dupa ultima runda, are loc o transformare finala:

1.   Se ınmulteste  X 1  cu prima subcheie;2.   Se aduna  X 2  cu a doua subcheie;3.   Se aduna  X 3  cu a treia subcheie;4.   Se ınmulteste  X 4  cu a patra subcheie.

Cela patru subblocuri obtinute ın final formeaza textul criptat.

Prelucrarea subcheilor se face dupa urmatorul algoritm:

1.   Cheia de 128 biti este desfacuta ın 8 subchei a cate 16 biti fiecare;2.   Primele 6 subchei sunt folosite la prima runda, iar urmatoarele doua, la rundaa doua;3.   Cheia este rotita spre stanga cu 25 biti si se desface din nou ın 8 subchei, folositela rundele 2 si 3 (cate patru subchei);

4.   Se repeta pasul 3 cat timp este necesar.Operatia de decriptare se realizeaza urmand aceeiasi pasi, cu singura diferenta ca subcheilese introduc ın ordine inversa.

Comparativ cu DES ,  IDEA prezinta unele avantaje. Astfel, implementarile realizatepermit o viteza dubla de criptare ın  IDEA fata de  DES .

Lungimea cheii (128) biti, asigura o securitate sporita la atacurile brute: pentru agasi cheia prin ıncercari, ar fi necesare cam 2128 teste; deci cu un chip care testeaza unmiliard de chei pe secunda, ar trebui cam 1013 ani – o perioada mai lunga decat varstaPamantului.

Page 64: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 64/177

12   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

Autorii au afirmat (fara sa demonstreze) ca IDEA rezista atacurilor prin criptanalizadiferentiala. Un studiu al subcheilor a aratat ca exista unele chei slabe, care permit sparg-erea sistemului de criptare ıntr-un timp mai scurt. O asigurare contra alegerii (aleatoare)a acestor chei slabe ar fi completarea algoritmului de generare a subcheilor prin operareafiecarei subchei generate printr-un   XOR   cu 0x0D, unde ”x” este o cifra hexazecimalaaleasa aleator.

5.5.4   NEW DES 

NEWDES  a fost creat ın 1985 de Robert Scott, ca un posibil ınlocuitor al sistemuluiDES . Algoritmul nu este o varianta a   DES -ului (cum s-ar putea ıntelege din numelesau, ales destul de nefericit). El opereaza cu texte clare grupate ın blocuri de 64 bit i, darcheia are lungimea 120 biti. Ca o simplificare, aici nu vom avea permutare initiala si nicifinala.

Blocul unui text clar este spart ın 8 subblocuri de cate 8 biti:   B0, B1, . . . , B7. Acestesubblocuri trec prin 17 runde, fiecare runda avand 8 pasi.

Cheia este ımpartita ın 15 subchei  K 0, K 1, . . . , K  14. Procedeul de criptare este descrisdestul de clar de schema urmatoare:

f      

  

    

  

      

    

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 +

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

B0   B1   B2   B3   B4   B5   B6   B7

K 0

K 1

K 2

K 3

K 4

K 5

K 6

Runda 1

Runda 2

Rundele 3 − 15

Page 65: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 65/177

5.6. EXERCITII    13

  

  

  

  

  

  

  

    

  

  

  

  

  

  

  

      

 

 

 

 

 

 

 +

+

+

+

+

+

+

+ +

+

+

+

+

+

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K 8

K 9

K 10

B7B6B5B4B3B2B1B0

K 14

K 13

K 12

K 11

Runda 16

Runda 17

5.6 Exercitii

5.1   S˘ a se arate c˘ a procesul de decriptare folosind  DES  se realizeaz˘ a folosind tot sistemul de criptare, dar inversˆ and ordinea de aplicare a subcheilor.

5.2   S˘ a not˘ am   DES (α, K )  textul   α   criptat cu cheia   K . Dac˘ a   β  =  DES (α, K )   si   β  =DES (c(α), c(K )), unde  c(i1i2 . . . in) = inin−1 . . . i1, s˘ a se arate c˘ a  β  = c(β ).

5.3   O modalitate de a ınt˘ ari sistemul de criptare   DES   const˘ a ın dubla-rea cript˘ arii: fiind date dou˘ a chei   K, K , se defineste   β   =   eK 2(eK 1(α)). Dac˘ a   eK 2   =   dK 1, cheile   K 1si   K 2  se numesc duale (si atunci   β   =  α). O cheie este auto-dual  a dac˘ a este propria sa dual˘ a.

1. S˘ a se arate c˘ a dac˘ a  C 0  are tot i bit ii identici si la fel  D0, atunci  K   este auto-dual˘ a.

2. S˘ a se arate c˘ a urm˘ atoarele chei (scrise ın hexazecimal) sunt auto-duale:

0101010101010101;   F E F E F E F E F E F E F E F E  ;1F 1F 1F 1F 1F 1F 1F 1F ;   E 0E 0E 0E 0E 0E 0E 0E 0.

3. S˘ a se arate c˘ a dac˘ a  C 0 = 0101 . . . 01  sau  C 0 = 1010 . . . 10, atunci 

C i XOR C 17−i = 1 . . . 1;   Di  XOR D17−i = 1 . . . 1 (1 ≤  i  ≤  16).

4. S˘ a se arate c˘ a urm˘ atoarele perechi de chei sunt duale:

E 001E 001F 101F 101,   01E 001E 001F 101F 1;F E 1F F E 1F F E 0EF E 0E,   1F F E 1F F E 0EF E 0EF E ;E 01F E 01F F F 10F F 10,   1F E 01F E 00EF 10EF 1.

Page 66: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 66/177

14   PRELEGEREA 5. SISTEMUL DE CRIPTARE DES 

5.4  Se poate defini un cod de autentificare al mesajului ( M AC ) utilizˆ and un mod  CF B

sau  CBC . Fiind dat˘ a o secvent   a de blocuri  α1, α2, . . . , αm  de texte clare, de defineste val-oarea init ial˘ a  I V   = α1. Criptarea lui  α2, . . . , αn cu cheia  K   ın modul  C F B d˘ a  β 1, . . . , β  n−1(sunt numai   n − 1   blocuri de text criptat). Se defineste   M AC   ca fiind   eK (β n−1). S˘ a se arate c˘ a el coincide cu rezultatul  M AC  dat ın prelegere, cu modul  CBC .

5.5   Dac˘ a o secvent   a de texte clare  α1, α2, . . . , αn  produce prin criptare  β 1, β 2, . . . , β  n, iar blocul  β i  este transmis gresit (apar erori de canal), s˘ a se arate c˘ a num˘ arul de blocuri care vor fi decriptate gresit este  1  ın modul  EC B   sau  OF B   si  2  ın modul  CBC   sau  CF B.

Page 67: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 67/177

Prelegerea 6

Modalitati de atac asupra DES

In aceasta prelegere trecem ın revista principalele modalitati de criptanaliza dezvoltatecu scopul de a sparge sistemul  DES . Ele si-au largit ulterior aria de aplicabilitate, fiindconsiderate astazi mijloace de atac standard, carora trebuie sa le reziste orice sistem noude criptare, pentru a putea fi luat ın considerare.

6.1 Compromisul spatiu - timp al unui atac

Vom studia aici un compromis ıntre spatiu si timp ıntr-un atac cu text clar ales. AiciOscar va dispune de o pereche (α, β ) cu  β  = eK (α), si cauta sa determine cheia  K .

Nu vom folosi o structura particulara de implementare a sistemului  DES ; stim numaica textele clare si cele criptate sunt de 64 biti, iar cheia are 56 biti.

O cautare exhaustiva consta ın a ıncerca toate cele 256 chei posibile. Aceasta operatienu necesita memorie, dar sunt necesare ın medie 255 chei pentru a o gasi pe cea buna. Sau,fiind dat un text clar  α, Oscar poate forma anterior un tabel cu 256 perechi (β k, K ), astfelca  β K  = eK (α), trierea urmand a fi facuta dupa  β K . Cand  Oscar  obtine textul criptat  β din textul clar  α, el va cauta ın tabela si va afla imediat cheia  K . Astfel, aflarea cheii vanecesita un timp de calcul neglijabil (complexitate logaritmica), dar un spatiu de memorie

gigantic si un timp de precalcul important. Aceasta varianta nu aduce nici un avantajdin punct de vedere al timpului total, pentru aflarea unei singure chei. Avantajul apareatunci cand este necesara cautarea mai multor chei, deoarece atunci tabela precalculataa fost construita o singura data.

Compromisul spatiu - timp permite obtinerea unui timp de calcul (precalculul nu seinclude) inferior celui unei cautari exhaustive, cu un spatiu de memorie inferior celuinecesar retinerii tuturor cheilor. Algoritmul foloseste o funct ie de reducere  R, care reduceo secventa de 64 biti la una de 56 biti (de exemplu,  R  poate sterge pur si simplu 8 bitidin secventa initiala).

Fie α  un text clar de 64 biti; se defineste  g(K 0) = R(eK 0(α)) pentru orice secventa K 0

1

Page 68: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 68/177

2   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

de 56 biti (rezultatul g(K 0) este de asemenea de lungime 56).Algoritmul mai foloseste doi parametri ıntregi pozitivi m, t.  In faza de precalcul, Oscar

defineste m secvente arbitrare de 56 biti fiecare, notate X (i, 0),   1 ≤  i  ≤  m. Apoi, folosindrelatia de recurenta

X (i, j) = g(X (i, j − 1)),   1 ≤  i  ≤  m,   1 ≤  j  ≤  t

Oscar   determina valorile   X (i, j),   1   ≤   j   ≤   t, formand cu ele o matrice  X mtimest. Dinaceste valori, Oscar pastreaza ıntr-o tabela T  numai 2m perechi (X (i, 0), X (i, t)) 1 ≤  i  ≤m  (deci sunt memorate numai prima si ultima coloana a matricii  X ).

In momentul atacului,  Oscar  obtine textul criptat  β  al textului clar  α  ales de el. El

va cauta cheia  K   ın cele  t  coloane ale matricii  X , consultand tabloul  T . Sa presupunemK  = X (i, t − j) pentru un  j  (1 ≤  j  ≤ t) dat (K  este ın una din cele  t  coloane ale lui  X ).Vom avea  g j(K ) = X (i, t), si

g j(K ) = g j−1(g(K )) = g j−1(R(eK (α))) = g j−1(R(β )).

Sa calculam sirul β  j  (1 ≤  j  ≤ t) definit de relatia de recurenta

β  j  =

  R(β ) daca   j = 1g(β  j−1) daca 2 ≤  j  ≤ t

Daca K  = X (i, t− j), vom avea β  j  = X (i, t). De remarcat ca reciproca nu este adevarata:

nu este suficient ca β  j  = X (i, t) pentru a avea K  = X (i, t− j), deoarece functia de reducereR  nu este injectiva (R  reduce un spatiu de 264 ın unul de 256 valori, deci fiecare valoareprovine ın general din 28 = 256 valori). Trebuie deci verificat ca  β  =  eX (i,t− j)(α) pentrua decide ca  X (i, t − j) este ıntr-adevar cheia. Valoarea X (i, t − j) nu este disponibila ınmemorie, dar ea se poate recalcula ın  t − j  pasi, plecand de la  X (i, 0).

Oscar va folosi deci urmatorul algoritm:

1. β 1 ←  R(β )2. for  j  := 1 to  t  do

2.1. if  ∃ i   cu   β  j  = X (i, t) then

2.1.1. calculeaza   X (i, t − j) = gt− j

(X (i, 0))2.1.2. if  β  = eX (i,t− j)(α) then K  ← X (i, t − j), ST OP 2.2. β  j+1 ←  g(β  j)

Analizand probabilitatea de succes a algoritmului, se poate arata ca daca  mt2 ≈ N  =256, atunci probabilitatea ca sa avem cheia K   ın cele  t  coloane ale matricii X  este de circa0, 8mt/N . Coeficientul 0, 8 provine din faptul ca valorile X (i, t) pot sa nu fie distincte. Osugestie este de a alege  m ≈  t  ≈  N 1/3 si de a construi  N 1/3 tabele, fiecare cu alta functiede reducere R. Astfel, spatiul de memorie necesar este de 112 · N 2/3 biti (trebuie pastrati2N 2/3 valori de 56 biti). Timpul de precalcul este liniar  O(N ).

Page 69: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 69/177

Page 70: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 70/177

4   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

6.3 Criptanaliza diferentiala

Unul din atacurile cele mai cunoscute ale  DES -ului este  criptanaliza diferent ial˘ a , intro-dusa de Biham si Shamir ın 1991. Este un atac cu text clar cunoscut. Cu toate ca nuda o modalitate practica de spargere a functiei  DES   ın 16 tururi, ea furnizeaza atacurieficace pentru variantele de  DES  cu un numar redus de runde. De exemplu, un  DES  cu8 runde poate fi spart ın cateva minute cu un  P C   obisnuit.

Intr-un astfel de atac se ignora permutarea initiala  I P   si inversa sa (ele nu joaca niciun rol ın criptanaliza). Ne vom margini la un  DES   restrans pe  n  (n ≤  16) runde. Decitextul clar este  L0R0   si  LnRn   textul criptat (vom ignora de asemenea inversarea finaladintre Ln   si Rn).

Criptanaliza diferentiala considera doua texte clare   L0R0, L∗0R∗0   si textele criptatecorespunzatoare  LnRn  respectiv  L∗

nR∗n. Ea va efectua studii asupra mesajelor  L0

R0 =

L0R0 ⊕ L∗0R∗

0   si  LnRn

= LnRn ⊕ L∗nR∗

n.

Definitia 6.1   Fie  S  j   (1  ≤  j  ≤  8)  o  S  - cutie din sistemul  DES . Pentru orice pereche (B j, B∗

 j )  de siruri de  6  bit i, vom defini  XOR-ul de intrare pentru  S  j   prin  B j = B j ⊕ B∗

 j ,iar  XOR-ul de iesire prin  S  j(B j) ⊕ S  j(B∗

 j ).

De remarcat ca un  XOR  de intrare este o secventa de 6 biti, iar un  XOR  de iesire esteo secventa de 4 biti.

Definitia 6.2  Pentru orice  B j

∈ Z 6

2  se noteaz˘ a  ∆(B j

) mult imea perechilor  (B j , B∗

 j ) care prin  XOR  dau  B j.

Observatia 6.1

•   O mult ime  ∆(B j)  cont ine  26 = 64  elemente;

•   ∆(B j) = {(B j, B j ⊕ B j

)| B j  ∈ Z 62}.

Pentru fiecare pereche din ∆(B j) vom calcula  X OR-ul de iesire al lui  S  j   si construim

o tabela de distributii ale valorilor obtinute (sunt 64 iesiri pe un spatiu de 24 = 16 valoriposibile). Pe aceasta tabela se va baza atacul de criptanaliza diferentiala.

Exemplul 6.2   S˘ a consider˘ am prima   S   - cutie   S 1   si   XOR-ul de intrare   110100. Vom avea:

∆(110100) = {(000000, 110100), (000001, 110101), . . . , (111111, 001011)}.

Pentru fiecare pereche din  ∆(110100) vom calcula  X OR-ul de iesire al lui  S 1. De exemplu,S 1(000000) = E 16  = 1110, S 1(110100) = 916  = 1001  deci  XOR-ul de iesire  S 1  al perechii (000000, 110100)  este  0111.

Efectuˆ and acest calcul pentru toate cele  64  perechi din  ∆(110100), vom obt ine distribu-t ia urm˘ atoare a  XOR-urilor de iesire pentru  S 1:

Page 71: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 71/177

6.3. CRIPTANALIZA DIFERENTIAL ˘ A   5

0000 0001 0010 0011 0100 0101 0110 01110 8 16 6 2 0 0 12

1000 1001 1010 1011 1100 1101 1110 11116 0 0 0 0 8 0 6

In Exemplul 6.2 au aparut numai 8 din cele 16 valori de iesire posibile.   In general, dacase fixeaza o  S -cutie  S  j   si un  XOR  de intrare diferit de 000000, se constata ca vor aparenumai 75 − 80 % din valorile posibile de iesire.

Definitia 6.3   Pentru  1 ≤  j  ≤  8   si secvent ele  B j, C  j

de  6  respectiv  4  bit i, definim 

IN  j(B j, C  j

) = {B j  ∈ Z 62 | S  j(B j) ⊕ S  j(B j ⊕ B j) = C  j

,

N  j(B j

, C  j

) = card(IN  j(B j

, C  j

)).Distributia data ın Exemplul 6.2 da valorile   N 1(110100, C 1

), C 1 ∈   Z 42 . Toate aceste

valori se gasesc ın Tabelul urmator:

XOR   de iesire intrari posibile00000001 000011,   001111,   011110,   011111,   101010,   101011,   110111,   1110110010 000100,   000101,   001110,   010001,   010010,   010100,   011010,   011011

100000,   100101,   010110,   101110,   101111,   110000,   110001,   1110100011 000001,   000010,   010101,   100001,   110101,   110110

0100 010011,   100111010101100111 000000,   001000,   001101,   010111,   011000,   011101,   100011,   101001

101100,   110100,   111001,   1111001000 001001,   001100,   011001,   101101,   111000,   11110110011010101111001101 000110,   010000,   010110,   011100,   100010,   100100,   101000,   11001011101111 000111,   001010,   001011,   110011,   111110,   111111

Pentru fiecare din cele 8 S -cutii exista 64 X OR-uri de intrare posibile; deci ın total vor fi512 date de distribuit, lucru usor de realizat cu un calculator.

Reamintim ca intrarea ıntr-o  S -cutie la turul i  este B  = E ⊕J , unde E  = E (Ri−1) esterezultatul expandarii lui  Ri−1, iar  J   =  K i  este un subsir reordonat al cheii K .   XOR-ulde intrare (al celor 8 cutii) este deci

B ⊕ B∗ = (E  ⊕ J ) ⊕ (E ∗ ⊕ J ) = E  ⊕ E ∗.

Page 72: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 72/177

6   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

De remarcat ca  XOR-urile de intrare nu depind de sub-cheia  J , pe cand  XOR-urile deiesire depind.

Sa detaliem pe grupuri de cate 6 biti, cuvintele cu care se lucreaza;

B = B1B2B3B4B5B6B7B8, E  = E 1E 2E 3E 4E 5E 6E 7E 8, J  = J 1J 2J 3J 4J 5J 6J 7J 8

In mod similar se scriu  B∗ si E ∗. Sa presupunem acum ca se stiu valorile  E  j   si E ∗ j   pentruun  j  (1 ≤  j  ≤ 8) dat, precum si valoarea  XOR  de iesire  C  j

= S  j(B j) ⊕ S  j(B∗ j ) a lui  S  j.

Vom aveaE  j ⊕ J  j  ∈ I N  j(E  j

, C  j)

unde  E  j = E  j ⊕ E ∗ j .

Sa presupunem ca se defineste multimea test j   astfel:

test j(E  j , E ∗ j , C  j) = {B j ⊕ E  j| B j  ∈ I N  j(E  j

, C  j)}

(s-au luat toate  X OR-urile lui E  j  cu elemente din  I N  j(E  j, C  j

)). Din aceste consideratiirezulta imediat teorema:

Teorema 6.1   Dac˘ a  E  j , E ∗ j   sunt subsecvent e construite pentru intrarea ın  S -cutia  S  j, iar C  j

este  XOR-ul de iesire al lui  S  j, atunci bit ii cheii  J  j apar ın mult imea  test j(E  j, E ∗ j , C  j).

Cum se poate remarca, exista exact  N  j(E  j, C  j

) secvente de 6 biti ın   test j(E  j, E ∗ j , C  j);

valoarea corecta  J  j  este una din acestea.

Exemplul 6.3   S˘ a consider˘ am   E 1 = 000001, E ∗1   = 110101, C 1 = 1101. Deoarece 

N 1(110100, 1101) =   {000110, 010000, 010110, 011100, 100010, 101000, 110010}   are   8   ele-mente, exist˘ a   8   secvent e posibile pentru   J 1, cumulate ın   test1(000001, 110101, 1101) ={000111, 010001, 010111, 011101, 100011, 100101, 101001, 110011}.

Dac˘ a se ia un alt triplet  (E 1, E ∗1 , C 1), vom obt ¸ine alt   test1  cu valori pentru  J 1, deci 

valoarea corect˘ a se va g˘ asi ın intersect ia lor.

6.3.1 Atac pe trei runde

Sa vedem cum se aplica aceste idei pentru un DES  construit pe 3 runde. Vom ıncepe cuo pereche de texte clare  L0R0   si L∗

0R∗0, criptate ın  L3R3  respectiv  L∗

3R∗3. Vom avea

R3 = L2 ⊕ f (R2, K 3) = R1 ⊕ f (R2, K 3) = L0 ⊕ f (R0, K 1) ⊕ f (R2, K 3).Constructia pentru  R∗

3  este similara. DeciR3

= L0 ⊕ f (R0, K 1) ⊕ f (R∗

0, K 1) ⊕ f (R2, K 3) ⊕ f (R∗2, K 3).

Sa presupunem ca s-a ales R0 = R∗0, deci R0

= 00 . . . 0. Atunci f (R0, K 1) = f (R∗0, K 1)

si deci R3 = L0

⊕ f (R2, K 3) ⊕ f (R∗2, K 3).

R3 se poate calcula pe baza textelor criptate, iar  L0

– pe baza textelor clare; deci sepoate determina  f (R2, K 3) ⊕ f (R∗

2, K 3) = R3 ⊕ L0

.

Page 73: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 73/177

6.3. CRIPTANALIZA DIFERENTIAL ˘ A   7

Avem  f (R2, K 3) = P (C ), f (R∗

2

, K 3) = P (C ∗) unde  C  respectiv  C ∗ sunt iesirile core-spunzatoare din cele 8  S -cutii (reamintim,  P  este o permutare fixata din descrierea sis-temului DES ). Deci P (C ) ⊕ P (C ∗) = R3

⊕ L0, de unde

C  = C  ⊕ C ∗ = P −1(R3 ⊕ L0

)

Acesta este  XOR-ul de iesire din cele opt  S -cutii dupa a treia runda.R2  = L3   si  R∗

2  = L∗3  sunt cunoscute (componente ale textelor criptate); deci se poate

calculaE  = E (L3), E ∗ = E (L∗

3)

folosind functia de expansiune  E . Aceste valori sunt intrarile ın  S -cutii la runda a treia.

Se cunosc deci   E, E ∗, C  la a treia runda si se poate trece – asa cum am vazut – laconstructia multimilor test1, test2, . . . , test8  de valori posibile pentru  J 1, J 2, . . . , J  8.

Un algoritm pentru aceasta metoda este formalizat mai jos. Atacul foloseste mai multetriplete  E, E ∗, C . Se utilizeaza opt tabele de valori si se determina astfel cei 48 biti aisubcheii   K 3   de la a treia runda. Cheia de 56 biti se calculeaza apoi printr-o cautareexhaustiva a celor 28 = 256 posibilitati a celor 8 biti necunoscuti.

Intrare:   L0R0, L∗0R∗

0, L3R3, L∗3R∗

3   cu  R0  =  R∗0.

1. C  ← P −1(R3 ⊕ L0

)2. E  ←  E (L3), E ∗ ← E (L∗

3)3.   for   j  := 1   to   8   do   test j(E  j , E ∗

 j

, C  j).

6.3.2 Atacul pe sase runde

Sa extindem ideile precedente ın cazul unui atac probabilist asupra unui sistem de criptareDES  de 6 runde. Ideea este de a alege o pereche de texte clare cu un  X OR  bine ales si destudia comportamentul probabilist al evolutiei acestui  XOR  de-alungul ıntregii operatiide criptare. Pentru aceasta este necesar sa introducem o noua notiune.

Definitia 6.4   Fie   n  ≥  1  un num˘ ar ıntreg. O caracteristic˘ a de   n   runde este un sir de  forma 

L0, R0, L1, R1, p1, . . . , Ln, Rn, pncare verific˘ a condit iile:

1.   Li = Ri−1

pentru  1 ≤ i  ≤ n;

2. Pentru   1   ≤   i   ≤   n   se aleg   Li−1Ri−1   si   L∗i−1R∗

i−1   astfel ca   Li−1  ⊕ L∗i−1   =   Li−1

si Ri−1⊕R∗

i−1 = Ri−1; dac˘ a  LiRi  si  L∗

iR∗i  sunt calculate la a  i-a rund˘ a  DE S  cunoscˆ and 

Li−1Ri−1

, probabilitatea de a obt ine relat iile  Li ⊕ L∗i   = Li

, Ri ⊕ R∗i   =  Ri

este  pi(probabilitatea se extinde pentru toate subcheile posibile  J 1, J 2, . . . , J  8).

Probabilitatea caracteristicii este produsul  p =  p1 · p2 · . . . · pn.

Page 74: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 74/177

8   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

Observatia 6.2

•   Dac˘ a   L0R0   si   L∗0R∗

0   sunt alese astfel ca   L0  ⊕ L∗0   =   L0

, R0  ⊕ R∗0   =   R0

, nu se poate afirma c˘ a probabilitatea ca pentru orice   i   = 1, 2, . . . , n   s˘ a avem   Li ⊕ L∗

i   =Li

, Ri  ⊕  R∗i   =   Ri

este   p1   ·  p2   ·  . . .  ·  pn.   ˆ Intr-adev˘ ar, procesul de diversificare a cheilor nu genereaz˘ a distribut ia independent˘ a a sub-cheilor   K 1, . . . , K  n. Totusi,probabilitatea  p1 ·  p2 · . . . · pn   furnizeaz˘ a o estimare destul de precis˘ a a probabilit˘ at ii reale.

•   Probabilit˘ at ile  pi  sunt inserate ın caracteristica pentru o pereche de texte clare oare-care, avˆ and un  XOR  dat, pentru o distibut ie de  48  bit i ai sub-cheii. Criptanalistul caut˘ a o cheie fixat˘ a necunoscut˘ a. De aceea el va utiliza texte clare aleatoare (cu XOR-ul cerut), sperˆ and ca distribut ia obt inut˘ a de  XOR-urile de la a  n-a rund˘ a s˘ a coincid˘ a cu cea descris˘ a de o cheie aleatoare, deci cu  p1, p2, . . . , pn.

Exemplul 6.4  O caracteristic˘ a pe o rund˘ a – care forma baza atacului pe  3  runde – este (ın notat ie hexazecimal˘ a):

L0 = oarecare    R0

= 0000000016L1

= 0000000016   R1 = L0

 p = 1

O alt˘ a caracteristic˘ a poate fi de exemplu:

L0 = 0000000016   R0 = 6000000016L1

= 6000000016   R1 = 0080820016   p = 16/64

ˆ Intr-adev˘ ar, ın calculul lui  f (R0, K 1)   si  f (R∗0, K 1), funct ia de expansiune opereaz˘ a ınt  ai 

asupra lui  R0   si  R∗0;  XOR-ul rezultatelor este  001100 . . . 0. Deci  X OR-ul de intrare al lui 

S 1   este   001100, iar pentru celelalte  S   - cutii este   000000. La iesire  XOR   - ul este  0000la aceste cutii si  1110  pentru  S 1; deoarece  N (001100, 1110) = 14  (se poate verifica), vom avea probabilitatea  14/64.

Se obt ine deci  C  = 11100000000000000000000000000000  cu probabilitate  14/64.Aplicˆ and  P , vom avea 

P (C ) ⊕ P (C ∗) = 00000000 10000000 10000010 00000000,ceea ce d˘ a   00808200  ın hexazecimal. Dup˘ a calculul   XOR-ului cu   L0

se obt ¸ine valoarea lui  R1

cu probabilitate  14/64. Vom avea bineınt eles  L1 = R0

.

Atacul asupra DES -ului ın 6 runde este bazat pe caracteristica celui pe 3 runde ın modulurmator:

L0 = 4008000016   R0

= 0400000016L1

= 0400000016   R1 = 0000000016   p = 1/4

L2 = 0000000016   R2

= 0400000016   p = 1L3

= 0400000016   R3 = 4008000016   p = 1/4

Page 75: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 75/177

6.3. CRIPTANALIZA DIFERENTIAL ˘ A   9

Se ıncepe cu o pereche de texte clare (L0R0, L∗

0

R∗

0

) cu proprietatea  L0 = 4008000016,

R0 = 0400000016   si cu perechea de texte criptate corespunzatoare (L6R6, L∗

6R∗6). Vom

aveaR6 = L5 ⊕ f (R5, K 6) = R4 ⊕ f (R5, K 6) = L3 ⊕ f (R3, K 4) ⊕ f (R5, K 6).In mod similar se exprima  R∗

6. AtunciR6

= L3 ⊕ f (R3, K 4) ⊕ f (R∗

3, K 4) ⊕ f (R5, K 6) ⊕ f (R∗5, K 6) (∗)

R6 este cunoscut. Dupa caracteristica, avem  L3

= 0400000016   si  R3 = 4008000016

cu probabilitate 1/16. Daca s-a obtinut ıntr-adevar asa, se poate calcula  XOR   - ul deintrare al S   - cutiilor la a patra runda, dupa expansiune:

00100000 00000000 01010000 0000.XOR  - urile de intrare pentru  S 2, S 5, S 6, S 7, S 8  sunt deci 000000, de unde rezulta ca

XOR   - ul de iesire este ın toate aceste cazuri 0000. Rezulta ca se poate calcula  XOR  -ul de iesire al acestor cinci  S  - cutii la runda a sasea, pe baza relatiei (∗). Deci se poatecalcula

C 1C 2

C 3C 4

C 5C 6

C 7C 8

= P −1(R6 ⊕ 0400000016)

unde fiecare   C i are lungimea 4.   C 2

, C 5, C 6

, C 7 si   C 8

sunt respectiv   XOR   - urile deiesire ale cutiilor   S 2, S 5, S 6, S 7, S 8   cu probabilitate 1/16. Intrarile   E 2, E 5, E 6, E 7, E 8   siE ∗2 , E ∗5 , E ∗6 , E ∗7 , E ∗8   ın aceste cutii se pot calcula cu relatiile

E 1E 2E 3E 4E 5E 6E 7E 8  =  E (R5) = E (L6)E ∗1E ∗2E ∗3E ∗4E ∗5E ∗6E ∗7E ∗8  = E (R∗

5) = E (L∗6)

plecand de la textele criptate, conform algoritmului:

Intrare:   L0R0, L∗0R∗

0, L6R6, L∗6R∗

6  cu  L0 = 4008000016, R0

= 0400000016.1. C  ← P −1(R6

⊕ 4008000016)2. E  ← E (L6), E ∗ ← E (L∗

6)3. for  j  = 2, 5, 6, 7, 8 do  test j(E  j , E ∗ j , C  j

)

Ar fi ideal de determinat cei 30 bit i din  J 2, J 5, J 6, J 7, J 8   ca la atacul asupra  DES   -ului ın 3 runde. Problema este ca aici valorile  XOR  - ului de iesire la a 6 - a runda suntadevarate cu probabilitate 1/16. Deci ın circa 15/16 din cazuri se obtin valori aleatoarefara interes pentru criptanaliza, valori are trebuiesc eliminate. Ce este interesant estefaptul ca acest lucru este deseori posibil.

Definitia 6.5   Fie   L0 ⊕  E ∗0   =  E 0, R0 ⊕  R∗

0   =  R0. Spunem c˘ a perechea de texte clare 

(L0R0, L∗0R∗

0)  este o pereche bun˘ a pentru caracteristica dat˘ a, dac˘ a pentru orice  i (1  ≤  i  ≤n)  avem  Li ⊕ L∗

i   = Li, Ri ⊕ R∗

i   = Ri. Altfel, avem o perechea rea.

Strategiile de calcul pentru  E  j, E ∗ j , C  j si  test j   pentru  j = 2, 5, 6, 7, 8 a fost descrisa ante-

rior. Daca avem o pereche buna, valoarea ei apare ın test j. Pentru o pereche rea, valoarealui C  j

este incorecta si se poate presupune ca toate multimile test j  au un continut aleator.O pereche rea se poate recunoaste astfel: daca pentru un   j   avem   card(test j) = 0,

perechea este sigur rea. Fiind data o pereche rea, probabilitatea de a avea  card(test j) = 0

Page 76: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 76/177

10   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

pentru un anumit   j, este cam 1/5 (card(test j) =  N  j(E  j, C  j

) si  N  j(E  j, C  j

) = 0 ıntr-ocincime din cazuri). Probabilitatea ca cinci multimi  test j   sa fie nevide este 0, 85 ≈ 0, 33,deci probabilitatea ca cel putin un test j  sa fie vid este 0, 67. Se pot elimina astfel cam 2/3din perechile rele prin acest test simplu, numit  operat ie de filtrare . Proportia perechilorrele care raman dupa filtrare este ce circa (15/16) · (1/3) = 5/16. Rezulta ca proportiaperechilor bune ramse dupa filtrare este de 1/6.

Exemplul 6.5   S˘ a presupunem c˘ a dispunem de urm˘ atoarele perechi:

text clar text criptat86F A1C 2B1F 51D3BE    1E 23ED7F 2F 553971

C 6F 21C 2B1B51D3BE    296DE 2B687AC 6340

Se verific˘ a imediat c˘ a  L0 = 4008000016, R0

= 0400000016. Intr˘ arile si iesirile din  S   -cutii la turul  6  se determin˘ a astfel:

 j E  j   E ∗ j   C  j2 111100 010010 11015 111101 111100 00016 011010 000101 00107 101111 010110 11008 111110 101100 1101

Cele cinci mult imi  test j  vor fi atunci:

 j test j2 14, 15, 26, 30, 32, 33, 48, 5256 7, 24, 36, 41, 54, 5978 34, 35, 48, 49

Deoarece  test5  =  test7  =  ∅, perechea este rea si va fi eliminat˘ a prin operat ia de filtrare.

Sa presupunem acum ca avem o pereche cu proprietatea  test j  = ∅  pentru  j  = 2, 5, 6, 7, 8,deci care va ramane dupa operatia de filtrare. Spunem ca secventa de 30 biti J 2J 5J 6J 7J 8este   sugerat˘ a   de pereche, daca   ∀   j   ∈ {2, 5, 6, 7, 8}, J  j   ∈   test j. Numarul de secventesugerate este

 j∈{2,5,6,7}

card(test j).

Adesea, numarul de lanturi sugerate este destul de mare (de ordinul miilor).

Page 77: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 77/177

6.4. CRIPTANALIZA LINIAR   A   11

Sa presupunem ca se construieste tabela tuturor secventelor sugerate de   N   perechiramase dupa filtrare. Pentru fiecare pereche buna, secventa corecta  J 2J 5J 6J 7J 8  este sug-erata; deci ea va fi sugerata de  n/6 ori. O secventa incorecta va fi sugerata de un numaraleator de ori, deci adesea mai putin, comparabil cu numarul lanturilor (230).

Este extrem de dificil de pastrat – ca spatiu – tabela celor 230 numere; de aceea se vafolosi un algoritm care sa foloseasca un spatiu mai mic. Astfel, se codifica fiecare multimetest j  ıntr-un vector  T  j  de lungime 64, ın care a  i  - a coordonata (0 ≤  i  ≤  63) este 1 dacasecventa de 6 biti care reprezinta pe  i  ın binar este ın  test j, 0 ın caz contrar.

Pentru fiecare pereche numarul  i (1  ≤  i  ≤  N ) ramasa, se construiesc vectorii  T i j   ( j  =2, 5, 6, 7, 8). Daca   I   ⊆ {1, . . . , N  }, spunem ca   I   este  admisibil˘ a , daca pentru orice   j   ∈{2, 5, 6, 7, 8} exista o coordonata egala cu  card(I ) ın vectorul

i∈I 

T i j

Daca perechea i  este buna pentru orice i ∈  I , atunci I  este admisibila. Deci, speram saavem o multime admisibila de marime aproximatic N/6, ceea ce sugereaza sigur o valoareunica de 30 biti pentru cheie. Multimile admisibile I  pot fi generate cu un simplu algoritmrecursiv.

6.4 Criptanaliza liniara

Criptanaliza liniara este un atac cu text clar cunoscut care seamana destul de mult cucriptanaliza diferentiala; principala diferenta consta ın faptul ca aici comparatia se faceıntre bitii de intrare si cei de iesire ai aceluiasi mesaj, nu ıntre diferentele a doua mesajela intrare respectiv iesire.

Pe scurt, principiul este urmatorul ([2]): sa presupunem ca putem afla o relatie liniarastatistica ıntre o submultime de biti din textul clar si o submultime de biti de starecare preced imediat substitutiile din ultimul rund de criptare. Altfel spus, exista un setde biti al caror  XOR  se determina aproape determinist (de exemplu ia valoarea 1 cu oprobabilitate mult peste 1/2). Sa consideram acum ca   Oscar   detine un numar relativmare de perechi   (text clar, text criptat)  pentru care s-a folosit aceeasi cheie de criptareK . Pentru fiecare astfel de pereche se ıncearca decriptarea folosind toate cheile posibile laultimul rund de criptare.   In acest calcul se determina valorile bitilor implicati ın relatialiniara presupusa, verificand veridicitatea ei. Daca relatia se verifica, se incrementeazaun contor corespunzator acestei chei. La sfarsitul procesului, cheia al carui contor este(mult) peste 50% din numarul perechilor verificate, va contine valorile bitilor determinatede relatia data.

Sa formalizam aceasta idee.Fie  X 1, X 2, . . . variabile aleatoare independente care iau valori din multimea {0, 1}  si

 p1, p2, . . . ∈  [0, 1] numere reale definite prin

P r[X i = 0] = pi, i = 1, 2, . . .

Page 78: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 78/177

12   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

Evident,P r[X i = 1] = 1 − pi, i = 1, 2 . . .

Daca  i = j , independenta variabilelor  X i, X  j  conduce la relatiile

P r[X i = 0, X  j  = 0] = pi p j, P r[X i  = 0, X  j  = 1] = pi(1 − p j),P r[X i = 1, X  j  = 0] = (1 − pi) p j, P r[X i  = 1, X  j  = 1] = (1 − pi)(1 − p j).

Fie acum variabila aleatoare discreta  X i ⊕ X  j ; se verifica usor faptul ca probabilitatea eide distributie este

P r[X i ⊕ X  j  = 0] = pi p j + (1 − pi)(1 − p j)

P r[X i ⊕ X  j  = 1] = pi(1 − p j) + (1 − pi) p j

Pentru a simetriza formulele, introducem o noua variabila numita  tendint   a   1 definita

i  =  pi − 1

2, i ∈

1

2, 1

2

Atunci

P r[X i = 0] = 1

2 + i, P r[X i  = 1] =

 1

2 − i

Lema 6.2   Fie   X 1, X 2, . . . X  n   variabile aleatoare independente si pentru   1   ≤   i1   < i2   <. . . < ik ≤ n, fie  i1,i2,...ik   tendint a variabilei aleatoare  X i1 ⊕ X i2 ⊕ . . . ⊕ X ik . Atunci 

i1,i2,...ik  = 2k−1k

 j=1

ij .

Demonstrat ie : Prin inductie dupa  k. Pentru  k  = 1 egalitatea este banala. Pentru  k  = 2se verifica usor relatia i1,i2  = 2i1i2.

Presupunem egalitatea adevarata pentru  k = p   si sa o aratam pentru  k  =  p + 1. Din

faptul ca tendinta lui X i1 ⊕ . . . ⊕ X ip  este 2 p−1 p

 j=1

ij   rezulta

P r[X i1 ⊕ . . . ⊕ X ip  = 0] = 1

2 + 2 p−1

 p j=1

ij   si

P r[X i1 ⊕ . . . ⊕ X ip  = 1] = 1

2 − 2 p−1

 p

 j=1

ij

De aici putem calculaP r[X i1 ⊕ . . . ⊕ X ip ⊕ X ip+1  = 0] =

1

2 + 2 p−1

 p j=1

ij

1

2 +  ip+1

+

1

2 − 2 p−1

 p j=1

ij

1

2 − ip+1

 =

 1

2 + 2 p

 p+1 j=1

ij .

Corolarul 6.1   Fie  i1,i2,...,ik  tendint a variabilei aleatoare  X i1⊕. . . X  ik. Dac˘ a  ∃ j  cu  ij  = 0atunci  i1,i2,...,ik  = 0.

1bias   ın engleza

Page 79: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 79/177

6.4. CRIPTANALIZA LINIAR   A   13

6.4.1 Aproximari liniare ale  S -cutiilor

Fie   S -cutia   πS    :   {0, 1}m −→ {0, 1}n si   X   = (x1, x2, . . . , xm) un   m-tuplu de intrare,ales arbitrar: matematic, aceasta ınseamna ca fiecare coordonata  xi  defineste o variabilaaleatoare  X i  cu valori 0 sau 1, avand tendinta   i   = 0. Cele m  variabile aleatoare suntindependente.

Iesirea se poate reprezenta ca un n-tuplu  Y   = (y1, y2, . . . , yn) unde fiecare  yi   definesteo variabila aleatoare  Y i  de valori 0, 1.   In general, aceste n variabile aleatoare sunt depen-dente de intrari sau ıntre ele. Are loc formula

P r[X 1 = x1, . . . , X  m = xm, Y 1  =  y1, . . . , Y  n =  yn] =

  0 daca (y1, . . . , yn) = πS (x1, . . . , xm)2−m daca (y1, . . . , yn) = πS (x1, . . . , xm)

Observatia 6.3  Ultima parte a relat iei se bazeaz˘ a pe faptul c˘ a P r[X 1  =  x1, . . . , X  m = xm] = 2−m si 

P r[Y 1 = y1, . . . , Y  n  =  yn|X 1 = x1, . . . , X  m =  xm] = 1  dac˘ a  (y1, . . . , yn) = πS (x1, . . . , xm)

Cu aceasta formula se poate calcula tendinta unei variabile aleatoare de tipulX i1 ⊕ . . . ⊕ X ik ⊕ Y  j1 ⊕ . . . ⊕ Y  jp.

Exemplul 6.6   S˘ a consider˘ am o  S -cutie  πS   : {0, 1}4 −→ {0, 1}4 definit˘ a 

x   0 1 2 3 4 5 6 7 8 9   A B C D E F  πS (x)   E    4   D   1 2   F B   8 3   A   6   C    5 9 0 7

unde toate valorile au fost exprimate ın hexazecimal. Sunt deci opt variabile aleatoare X 1, . . . , X  4, Y 1, . . . , Y  4   care pot lua valorile reprezentate pe liniile tabelului de pe pagina urm˘ atoare.

S˘ a consider˘ am acum variabila aleatoare   X 1  ⊕ X 4  ⊕ Y 2. Probabilitatea ca ea sa ia valoarea  0  poate fi determinat˘ a num˘ arˆ and liniile din tabel unde  X 1 ⊕ X 4 ⊕ Y 2 = 0   si apoi ımp  art ind la  16  (num˘ arul total de linii).

Se obt ine  P r[X 1 ⊕ X 4 ⊕ Y 2 = 0] = 1

2, de unde rezult˘ a  P r[X 1 ⊕ X 4 ⊕ Y 2  = 1] =

 1

2.

Tendint a acestei variabile aleatoare este deci  0.

Page 80: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 80/177

14   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

X 1   X 2   X 3   X 4   Y 1   Y 2   Y 3   Y 40 0 0 0 1 1 1 00 0 0 1 0 1 0 0

0 0 1 0 1 1 0 10 0 1 1 0 0 0 10 1 0 0 0 0 1 00 1 0 1 1 1 1 10 1 1 0 1 0 1 10 1 1 1 1 0 0 01 0 0 0 0 0 1 11 0 0 1 1 0 1 01 0 1 0 0 1 1 01 0 1 1 1 1 0 0

1 1 0 0 0 1 0 11 1 0 1 1 0 0 11 1 1 0 0 0 0 01 1 1 1 0 1 1 1

In general ın Exemplul 6.6 sunt 28 = 256 variabile aleatoare de acest gen. Pentrufiecare din ele se poate da o reprezentare uniforma de tipul:

  4i=1

aiX i

  4i=1

biY i

unde  ai, bi ∈ {0, 1},   (1 ≤  i  ≤  4). Vectorii binari (a1, a2, a3, a4) – numiti sume de intrare  si(b1, b2, b3, b4) (sume de iesire ) vor fi codificati prin cifre hexazecimale. Astfel, fiecare dincele 256 variabile aleatoare se va scrie ın mod unic ca o pereche de doua cifre hexazecimale.

Exemplul 6.7   Variabila  X 1 ⊕ X 4 ⊕ Y 2  va avea suma de intrare  (1, 0, 1, 0)  care este  9  ın hexazecimal, iar suma de iesire este  (0, 1, 0, 0), care este  4  ın hexazecimal. Deci perechea atasat  a variabilei este  (9, 4).

Pentru o variabila aleatoare de suma de intrare   a   = (a1, a2, a3, a4) si suma de iesireb = (b1, b2, b3, b4), fie  N L(a, b) numarul octetilor binari (x1, x2, x3, x4, y1, y2, y3, y4) cu pro-

prietatile

1. (y1, y2, y3, y4) = πS (x1, x2, x3, x4)

2.

  4i=1

aiX i

  4i=1

biY i

 = 0

Tendinta unei astfel de variabile aleatoare este

(a, b) = N L(a, b) − 8

16  .

Page 81: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 81/177

6.5. EXERCITII    15

Exemplul 6.8  Variabila din Exemplul 6.7 are   N L(9, 4) = 8, deci   (9, 4) = 0. Se poate cosntrui o tabel˘ a cu toate valorile  N L  – numit˘ a ”tabela de aproximare liniar˘ a”:

a/b   0 1 2 3 4 5 6 7 8 9   A B C D E F  0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 81 8 8 6 6 8 8 6 14 10 10 8 8 10 10 8 82 8 8 6 6 8 8 6 6 8 8 10 10 8 8 2 103 8 8 8 8 8 8 8 8 10 2 6 6 10 10 6 64 8 10 8 6 6 4 6 8 8 6 8 10 10 4 10 85 8 6 6 8 6 8 12 10 6 8 4 10 8 6 6 86 8 10 6 12 10 8 8 10 8 6 10 12 6 8 8 6

7 8 6 8 10 10 4 10 8 6 8 10 8 12 10 8 108 8 8 8 8 8 8 8 8 6 10 10 6 10 6 6 29 8 8 6 6 8 8 6 6 4 8 6 10 8 12 10 6A   8 12 6 10 4 8 10 6 10 10 8 8 10 10 8 8B   8 12 8 4 12 8 12 8 8 8 8 8 8 8 8 8C    8 6 12 6 6 8 10 8 10 8 10 12 9 10 8 6D   8 10 10 8 6 12 8 10 4 6 10 8 10 8 8 10E    8 10 10 8 6 4 8 10 6 8 8 6 4 10 6 8F    8 6 4 6 6 8 10 8 8 6 12 6 6 8 10 8

Pe baza unei astfel de tabele se construieste strategia de criptanaliza liniara prezentatala ınceputul sectiunii.

6.5 Exercitii

6.1   Fie  X 1, X 2, X 3  variabile aleatoare independente cu valori ın  {0, 1}  de tendint e  1, 2respectiv   3. Demonstrat i c˘ a  X 1 ⊕ X 2   si  X 2 ⊕ X 3   sunt indepedente dac˘ a si numai dac˘ a 1  = 0, 3  = 0  sau  2  =  ±1/2.

6.2   Pentru fiecare din cele opt  S -cutii DES calculat i tendint a variabilei aleatoare  X 2 ⊕Y 1 ⊕ Y 2 ⊕ Y 3 ⊕ Y 4.

6.3   S -boxul DES  S 4  are cˆ ateva propriet˘ at i specifice:a) Ar˘ atat i c˘ a a doua linie din  S 4  poate fi obt inut˘ a din prima linie folosind operat ia 

(y1, y2, y3, y4) −→ (y2, y1, y4, y3) ⊕ (0, 1, 1, 0)

b) Ar˘ atat i c˘ a orice linie din  S 4  poate fi transformat˘ a ın orice alt˘ a linie printr-o operat ie similar˘ a.

Page 82: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 82/177

16   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

6.4   Fie  πS   : {0, 1}m −→ {0, 1}n o  S -cutie. Demonstrat i c˘ a:a)  N L(0, 0) = 2m;b)  N L(a, 0) = 2m − 1,   ∀a ∈  [0, 2m − 1];

c)  ∀b ∈  [0, 2n − 1],2m−1a=0

N L(a, b) = 22m−1 ± 2m−1; ??????????? 

d)2m−1a=0

2n−1b=0

N L(a, b) ∈ {2n+2m−1, 2n+2m−1 + 2n+m−1}.

6.5   O  S -cutie  πS   : {0, 1}m −→ {0, 1}n este ”balansat˘ a” dac˘ a 

|πs−1

(y)| = 2

n−m

pentru orice  y  ∈ {0, 1}n. Demonstrat i urm˘ atoarele afirmat ii despre  N L   pentru o  S -cutie balansat˘ a:

a)  N L(0, b) = 2m − 1,   ∀b ∈ [0, 2n − 1];

b)  ∀a ∈  [0, 2m − 1],2n−1b=0

N L(a, b) = 2m+n−1 − 2n−1 + i2n

unde  i  este un num˘ ar ıntreg din intervalul   [0, 2m−n].

6.6   Fie  S -cutia definit˘ a:x   0 1 2 3 4 5 6 7 8 9   A B C D E F  

πS (x) 8 4 2 1   C    6 3   D A   5   E    7   F B   9 0Determinat i tabela ei de aproximat ie liniar˘ a;

6.7   Fie un sistem de criptare  P   =  C   =  K  care asigur˘ a confident ialitate perfect˘ a; deci,din  eK (α) = eK 1(α)  rezult˘ a  K  = K 1. Not˘ am  P = Y   = {β 1, β 2, . . . , β  N }. Fie  α  un bloc de text clar fixat. Definim funct ia  g  :  Y   −→ Y   prin  g(β ) = eβ (α). Definim un graf orientat Γ  avˆ and a noduri  Y   si ca arce  (β i, g(β i)) (1 ≤  i  ≤  N ).

1. Ar˘ atat i c˘ a  Γ  este o reuniune de cicluri orientate disjuncte.

2. Fie  T   un parametru de timp fixat. Consider˘ am o mult ime  Z   =  {γ 1, . . . , γ  m} ⊆ Y  ,astfel ca pentru orice   β i   ∈   Y, β i   este ıntr-un ciclu de lungime cel mult   T , sau exist˘ a un element  γ  j   =  β i   astfel c˘ a distant a de la  β i   la  γ  j   (ın   Γ) este cel mult  T .Demonstrat i c˘ a exist˘ a o astfel de mult ime cu  card(Z )  ≤  2N/T   (deci  card(Z )  este de complexitate  O(N/T ).

3. Pentru fiecare  γ  − j  ∈ Z , definim  g−1(γ  j)  ca fiind acel element  β i  astfel c˘ a  gT (β  −i) = γ  j, unde  gT  este funct ia  g   aplicat˘ a de  T   ori. Cosntruit ¸i tabela  X   a perechilor (γ  j, g−1(γ  j)), ordonate dup˘ a prima coordonat˘ a.

Un algoritm care g˘ aseste  K  astfel c˘ a  β  = eK (α)  este urm˘ atorul:

Page 83: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 83/177

6.5. EXERCITII    17

1. β 0 ←  β ;2. f lag ←  T rue;3.   while  g(β ) = β 0   do

3.1.   if  ∃ j β  = γ  j   and flag   then

3.1.1. β  −→ g−1(γ  j)3.1.2. f lag −→ False

else

3.1.3. β  −→ g(β );3.2. K  = β .

Ar˘ atat i c˘ a el determin˘ a  K   ın maxim  T  etape (compromisul spat iu - timp este deci 

O(N )).

4. Dat ¸i un algoritm care construieste o mult ime  Z   ın timp O(N T ), f˘ ar˘ a a folosi tablouri de m˘ arine  N .

Page 84: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 84/177

18   PRELEGEREA 6. MODALIT   ATI DE ATAC ASUPRA DES 

Page 85: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 85/177

Bibliografie

[1] Menezes, A, Oorschot, P, Vanstome, S -  Handbook of Applied cryptography 

[2] Stinton, D - Cryptography, Theory and Practicce , Chapman & Hall/CRC, 2002

19

Page 86: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 86/177

Prelegerea 7

Sistemul de criptare  AES 

7.1 Istoric

La sfarsitul anilor   90 se decide ınlocuirea sistemului de criptare   DES . Motivele suntmultiple, dar mentionam numai doua:

•   In iulie 1998 sistemul   DES   pe 56 biti este spart de catre organizatia  Electronic Frontier Foundation ; s-a folosit un calculator construit special ın acest scop, iartimpul necesar spargerii a fost de 3 zile.

•   In luna septembrie a aceluiasi an, administratia americana acorda companiilor pro-ducatoare de soft de securitate permisiunea de a exporta implementari ale algorit-mului DES  bazate pe chei de criptare de 56 biti.

In legatura cu aceste evenimente, pe 20 august 1998  NIST   (National Institute of Stan-dards and Technology) anunta (ın cadrul unei conferinte speciale) un set de 15 algoritmicandidati sa ınlocuiasca   DES 1. Este ales si numele noului sistem de criptare:   AES (Advanced   Encryption   Standard). Cei 15 algoritmi au fost trimisi de membri din co-munitatea criptografica mondiala. Criteriile stabilite de   NIST   pentru noul sistem aufost:

•   Sa fie un sistem de criptare simetric pe blocuri de 128 bit i.

•   Sa accepte chei de lungime 128, 192 si 256 biti;

•   Sa nu aiba chei slabe;

•   Sa fie eficient atat pe platforme Intel Pentium Pro cat si pe alte platforme softwaresau hardware;

1Acestia sunt (ın ordine alfabetica) CAST  − 256,CRYPTON,DEAL,DFC,E 2,FROG,HPC,LOKI 97,MAGENTA,MARS,RC 6,Rijndael,SAFER+, Serpent,Twofish.

1

Page 87: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 87/177

2   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

•   Sa poate fi implementat atat pe procesoare de 32 bit i cat si pe smart- carduri(procesoare de 8 biti);

•   Sa fie cat mai simplu.

•   Sa fie mai rapid decat  DES   si sa ofere o securitate mai mare decat 3DES .

A doua conferinta   AES   are loc ın martie 1999; dupa analiza rezultatelor algoritmilorpropusi, NIST   selecteaza 5 algoritmi:   Mars,RC 6, Rijndael, Serpent si Twofish. Acestiasunt supusi testelor si discutiilor publice, folosind drept criterii de evaluare au fost: secu-ritate, cost, implementare.

In mai 2000  NIST   anunta drept sistem ”castigator” sistemul de criptare  Rijndael,

care devine oficial AES .

7.2 Scurta prezentare a sistemelor de criptare finale

7.2.1 Mars

Sistemul   MARS   este propus de firma   IBM , autorii sai fiind un grup condus de DonCoppersmith. Cateva detalii de constructie:

•   Algoritmul este format din trei componente, fiecare din ele asigurand protectie pen-

tru anumite tipuri de atac.

•   Lucreaza pe procesoare de 32 biti, putand fi implementat atat ın format big-endian ,cat si ın   little endian   2.

•   La intrare textul clar este ”spart” ın grupuri de 128 biti (4 numere ıntregi de cate 32biti). Prima si a treia parte a algoritmului amesteca acesti bit i folosind o cheie dedimensiune variabila (ıntre 128 si 448 biti) si o S -cutie de 512 elemente. Componentadin mijloc este formata din 16 runde si foloseste ın plus o o funct ie de expandare E .

•   Operatiile folosite sunt: adunari, scaderi, XOR, rotatii (fixe sau dependente de date)

si ınmult iri; toate calculele se fac modulo 32. Constructia S -cutiei s-a facut pe bazaunui algoritm public, plecand de la o serie de conditii initiale clare.

Notatiile folosite ın algoritm:

2Fie a1a2a3a4  un cuvant pe 4 octeti, unde  ai  este un numar ıntreg din intervalul [0, 255].

1.   In arhitectura   big-endian   (o statie SPARK de exemplu), un cuvant reprezinta ıntregul   a1224 +a2216 + a328 + a4.

2.   In arhitctura   little-endian   (cum este familia  Intel   80xxx) un cuvant reprezinta ıntregul  a4224 +a3216 + a228 + a1.

Page 88: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 88/177

7.2. SCURT ˘ A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE    3

•   D[0], D[1], D[2], D[3] – cuvinte (de 32 biti), initializate cu textul clar; ın final aiciva fi blocul de text criptat; se noteaza  D[i :  j ] octetul j  din  D[i] ( j  = 0, 1, 2, 3).

•   K [] – cheia expandata; secventa de 40 cuvinte;

•   S [] –   S   - cutia de 512 cuvinte;   S 0[] va contine primele 256 elemente, iar   S 1[] –ultimele 256 cuvinte.

Faza I (Mixare preliminara):1.   for   i ←− 0  to   3  do  D [i] ←− D[i] + K [i];2.   for   i ←− 0  to   7  do

2.1. D[1] ←− D[1] ⊕ S 0[D[0, 0]];

2.2. D[1] ←− D[1] + S 1[D[0, 1]];2.3. D[2] ←− D[2] + S 0[D[0, 2]];2.4. D[3] ←− D[3] ⊕ S 1[D[0, 3]];2.5. D[0] ←− D[0]   >>>   24;2.6.   if    i ∈ {0, 4}  then   D[0] ←− D[0] + D[3];2.6.   if    i ∈ {1, 5}  then   D[0] ←− D[0] + D[1];2.7.   (D[0], D[1], D[2], D[3]) −→ (D[3], D[0], D[1], D[2]).

Faza II (Transformari bazate pe cheie):1.   for   i ←− 0  to   15  do

1.1.   (o1, o2, o3) ←− E (D[0], K [2i + 4], K [2i + 5]);1.2. D[0] <<<  13;1.3. D[2] ←− D[2] + o2;1.4.   if    i < 8  then

1.4.1. D[1] ←− D[1] + o1;1.4.2. D[3] ←− D[3] ⊕ o3;

else

1.4.3. D[3] ←− D[3] + o1;1.4.4. D[1] ←− D[1] ⊕ o3;

1..5.   (D[0], D[1], D[2], D[3]) ←− (D[3], D[0], D[1], D[2]).

Faza III (Mixare finala):1.   for   i ←− 0  to   7  do

1.1.   if    i ∈ {2, 6}  then   D[0] ←− D[0] − D[3];1.2.   if    i ∈ {3, 7}  then   D[0] ←− D[0] − D[1];1.3. D[1] ←− D[1] ⊕ S 1[D[0, 0]];1.4. D[2] ←− D[2] − S 0[D[0, 3]];1.5. D[3] ←− D[3] − S 1[D[0, 2]];1.6. D[3] ←− D[3] ⊕ S 0[D[0, 1]];2.5. D[0] ←− D[0]   <<<   24;2.7.   (D[0], D[1], D[2], D[3]) −→ (D[3], D[0], D[1], D[2]).

Page 89: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 89/177

4   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

2.   for   i ←− 0  to   3  do  D [i] ←− D[i] − K [36 + i];3. Output(D[0], D[1], D[2], D[3]).

Mai trebuie precizate functia E   si modalitatea de expandare a cheii K .

E (inp, cheie1, cheie2);

1. M  ←− inp + cheie1; (M   este variabila auxiliara)2. R ←− (inp <<< 13) · cheie2; (R este variabila auxiliara)3. i ←− cei mai mici noua biti din  M ;4. L ←− S [i]; (L  este variabila auxiliara)5. R ←− (R <<< 5);

6. r ←− cei mai mici cinci biti din  R;7. M  ←− (M <<< r);8. L ←− L ⊕ R;9. R ←− (R <<< 5);10. L ←− L ⊕ R;11. r ←−  cei mai mici cinci biti din  R;12. L ←− (L <<< r);13. output(L,M,R).

Expandarea cheii:

Aceasta procedura expandeaza o cheie k [0, . . . , n − 1] de n  cuvinte (4 ≤ n  ≤  14) ıntr-ocheie  K  de 40 cuvinte, folosind un vector temporar  T   de 15 cuvinte si un vector fixat  Z de 4 cuvinte.

1. Z  ←− 0xA4A8D57B   0x5B5D193B   0xC 8A8309B   0x73F 9A978;2. T [0, . . . , n − 1] ←− k[0, . . . , n − 1], T [n] ←− n, T [n + 1, . . . , 14] ←− 0;3.   for   j ←− 0  to   3  do

3.1.   for i ←− 0  to 14  do

T [i] ←− T [i] ⊕ ((T [(i − 7) mod  15] ⊕ T [(i − 2) mod  15]  <<<  3) ⊕ (4 · i + j);3.2.   for m ←− 1  to 4  to

for  i ←− 0  to 14  to

T [i] ←− (T [i] + S [cei mai mici noua biti dinT [(i − 10) mod  15]]) <<<  9;3.3.   for i ←− 0  to 9  do K [10 · j + i] ←− T [4 · i mod 15];4.   for i ←− 5, 7, . . . , 33, 35  do

4.1. j  ←− cei mai din dreapta doi biti din  K [i];4.2. w ←− K [i] cu cei mai din dreapta doi biti setati pe 1;4.3.   for p ←− 2  to 30  to

if  (w[ p − 1] = w[ p] = w[ p + 1]) ∨ (w[ p] e ıntr-o secventa de 10 biti consecutivi egali)then M [ p] ←− 1;

4.4. r ←−  cei mai din dreapta cinci biti din  K [i − 1];4.5. X  ←− (Z [ j] <<< r);

Page 90: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 90/177

7.2. SCURT ˘ A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE    5

4.6. K [i] ←− w ⊕ (X  ∧ M ).5. output(K []).Cele 512 cuvinte ale  S -cutiei au fost generate ın asa fel ıncat sa verifice conditiile:- Nu are valorile 0x00000000 si 0x F F F F F F F F  ;- Orice doua valori difera prin cel putin 4 biti;- Nu exista doua valori a, b astfel ca  a =  b  sau  a =  −b;- Diferentele de scadere sau  X OR  ıntre orice doua valori sunt maxime.Pentru alte detalii privind securitatea sistemului MARS, algoritmul de decriptare,

moduri de implementare, componentele  S -cutiei etc, a se vedea [3].

7.2.2 RC6

Sistemul de criptare   RC 6 este o versiune a lui   RC 5, elaborata de laboratoarele RSA(sub coordonarea lui Ron Rivest) cu scopul de a ındeplini criteriile  AES . Este un sistemsimplu, fara atacuri practice cunoscute (sunt elaborate doar cateva atacuri teoretice),complet parametrizat: versiunea generala este RC 6−w/r/b unde marimea cuvintelor estew, numarul de runde este  r, iar  b  este marimea (ın octeti) a cheii de criptare. Versiuneapentru  AES   are  w  = 32, r  = 20. Algoritmul lucreaza pe blocuri de lungime  w   folosindsase operatii: +, −, ·   (toate modulo 2w),   ⊕,a <<< b   (rotirea lui   a   spre stanga cu unnumar de pozitıi dat cei mai putin semnificativi  log2w  biti din  b) si  a >>> b  (operatiesimilara spre dreapta).

Algoritmul de criptareIntrare :- Textul clar stocat ın cuvintele A, B,C,D;- Numarul  r  de runde;- Cheia [0, . . . 2r + 3];Iesire : Textul criptat stocat ın  A, B,C,D.Algoritm :1. B ←− B  + S [0];2. D ←− D + S [1];3.   for i ←− 1  to   r  do

3.1. t ←− (B · (2B + 1)) <<< log2w;3.2. u ←− (D · (2D + 1)) <<< log2w;3.3   A ←− ((A ⊕ t) <<< u) + S [2i];3.3   C  ←− ((C  ⊕ u) <<< t) + S [2i + 1];3.4.   (A,B,C,D) ←− (B , C , D, A);

4. A ←− A + S [2r + 2];5. C  ←− C  + S [2r + 3].Detalii privind securitatea si modalitati de implementare pot fi gasite ın [4].

Algoritmul de diversificare a cheii  S  este identic cu cel de la  RC 5.   In [5] acesta esteprezentat ımpreuna cu un cod pentru  RC 5, scris ın  C  + +.

Page 91: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 91/177

6   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

Cheia initiala are  b  octeti (0 ≤  b  ≤  255) si este stocata ıntr-un tablou  L  cu  c =  b/4cuvinte (completand ultimul cuvant cu 0 daca este necesar).

In prima faza tabloul S  este initializat folosind un generator liniar congruential:1. S [0] ←− P ;2.   for i ←− 1  to  2(r + 1) − 1  do  S [i] ←− (S [i − 1] + Q) mod  232

P   = 0xB7E 15163 si  Q  = 0x9E 3779B9 sunt constante bazate pe reprezentarea binaraa lui  e   si π.

In etapa a doua se efectueaza un amestec ıntre  L  si S :3. i ←− 0, j ←− 0;4. A ←− 0, B ←− 0;5.   for s ←− 1  to 3 · max{c, 2(r + 1)}  do

5.1. S [i] ←− (S [i] + A + B) <<<  3, A ←− S [i];5.2. L[i] ←− (L[i] + A + B) <<<  (A + B), B ←− L[i];5.3. i ←− (i + 1) (mod 2(r + 1));5.4. j  ←− ( j + 1) mod c

7.2.3 Serpent

Sistemul de criptare  Serpent  a fost propus de Ross Anderson (Universitatea Cambridge),Eli Biham (Institutul Tehnion, Haifa) si Lars Knudsen (Universitea Bergen). El cripteazatexte clare de 128 biti ın blocuri de aceeasi lungime, ın 32 runde, folosind 33 chei de

criptare de runda, de lungime 128 biti 3

. Ea se extinde la 256 biti punand ın fata 1 pentruprimul bit, apoi 0 pentru ceilalti biti – atat cat este necesar.Algoritmul de criptare cuprinde 3 pasi:Intrare :   P  (textul clar)Iesire :   C  (Textul criptat)Algoritm :

1.  B0 = I P (P ): (IP   - permutare initiala);

2.   for  i  ←− 0  to 31  do  Bi+1 ←− Ri( Bi);

where Ri(X ) = L(S i(X i ⊕  K i)),   0 ≤  i  ≤  30,

R31(X ) =  S 7(X 31 ⊕  K 31) ⊕ K 32.

Se aplica 32 runde formate din: combinarea cu cheia de runda  K i, o trecere printr-o   S -cutie si o transformare liniara   L; ın ultima runda, transformarea liniara esteınlocuita cu ınca o combinare cu o a doua cheie de runda;  S  reprezinta aplicarea ınparalel a 32 copii ale  S -cutiei  S i mod 8.

3.   C  ←− F P ( B32) (F P - permutare finala).

3Lungimea cheii date de utilizator este variabila, ınsa algoritmul descris foloseste chei de lungime128, 192 sau 256 biti.

Page 92: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 92/177

7.2. SCURT ˘ A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE    7

Observatia 7.1   S -cutiile lucreaz˘ a pe   4   bit i, ca si la   DES 4. Fiecare rund˘ a foloseste osingur˘ a  S -cutie ın  32   copii. De exemplu, runda  R0  foloseste cutia  S 0  ın  32  exemplare; ocopie pentru bit ii  0−3 din  B0⊕K 0  ıntorc  and primii patru bit i dintr-un tablou intermediar,a doua copie pentru bit ii  4 − 7  din  B0 ⊕ K 0  ıntoarce bit ii  4 − 7  din vectorul intermediar s.a.m.d. Apoi vectorul intermediar obt inut trece prin transformarea liniar˘ a, producˆ and B1. Analog,   R1   foloseste   32   S - cutii identice   S 1   pentru bit ii din  B1 ⊕  K 1   produˆ and un vector intermediar care dup˘ a trecerea prin  L  d˘ a  B2  etc.

Detalii asupra   IP, F P , continutul si modul de generare a   S -cutiilor, precum si o crip-tanaliza amanuntita pot fi gasite ın [2], [7]. De remarcat ca la fiecare etapa   IP (Bi) =Bi, IP (K i) =  K i.

Transformarea liniara  L:

Blocul de 128 biti dintr-o runda este spart ın patru cuvinte (X 0, X 1, X 2, X 3) = S i(Bi ⊕K i).Se aplica apoi urmatorii pasi:

1. X 0 ←− (X 0  <<<  13); 2. X 2 ←− (X 2  <<<  13);3. X 1 ←− X 1 ⊕ X 0 ⊕ X 2; 4. X 3 ←− X 3 ⊕ X 2 ⊕ (X 0 << 3);5. X 1 ←− (X 1  <<<  1); 6. X 3 ←− (X 3  <<<  7)7. X 0 ←− X 0 ⊕ X 1 ⊕ X 3; 8. X 2 ←− X 2 ⊕ X 3 ⊕ (X 1 << 7);9. X 0 ←− (X 0  <<<  5); 10. Bi+1 ←− (X 0, X 1, X 2, X 3).

unde   <<<  ınseamna rotire spre stanga, iar   <<   este deplasare spre stanga.   In ultimarunda, L  este ınlocuita cu  B32 ←− S 7(B31 ⊕ K 31) ⊕ K 32.

Generarea cheilor de runda:

Fiecare runda necesita 132 fragmente de cate 32 biti.  In prima faza se completeaza cheiafurnizata de utilizator pana la 256 biti. Apoi ea se extinde pana la 33 subchei de cate 128biti K 0, K 1, . . . , K  32  ın modul urmator:

Cheia K  se descompune ın opt cuvinte w−8, . . . , w−1  care se extind la o cheie interme-diara  w0, . . . , w131  prin formula

wi ←− (wi−8 ⊕ wi−5 ⊕ wi−3 ⊕ wi−1 ⊕ φ ⊕ i) <<<  11

unde  φ este partea fractionara a raportului de aur (0x9E 3779B9).Cheile de runda sunt calculate din cheia intermediara folosind  S -cutiile:

(k0, k1, k2, k3) ←− S 3(w0, w1, w2, w3)(k4, k5, k6, k7) ←− S 2(w4, w5, w6, w7)

(k8, k9, k10, k11) ←− S 1(w8, w9, w10, w11)

4O varianta initiala,  Serpent0 folosea aceleasi  S -cutii ca  DES .

Page 93: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 93/177

8   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

(k12, k13, k14, k15) ←− S 0(w12, w13, w14, w15)

(k16, k17, k18, k19) ←− S 7(w16, w17, w18, w19)

. . . . . .

(k124, k125, k126, k127) ←− S 4(w124, w125, w126, w127)

(k128, k129, k130, k131) ←− S 3(w128, w129, w130, w131)

Cheile de runda se regrupeaza ın

K i ←− (k4i, k4i+1, k4i+2, k4i+3)

7.2.4 Twofish

Sistemul   Twofish   este propus de un colectiv condus de Bruce Schneier, fiind unul dinputinele sisteme free (implementarea este disponibila la adresa [6]). Algoritmul cripteazablocuri de 128 biti, folosind o cheie de lungime variabila.

Algoritmul de criptare

Intrare :   P   = p0 p1 . . . p15  un bloc de text clar de 128 biti ( pi  - octeti)

Iesire :   C  - bloc text criptat, de 128 biti.

Algoritm :1. P  se sparge ın patru cuvinte  P 0, P 1, P 2, P 3  dupa sistemul little-endian:

P i ←−3

 j=0

 p4i+ j · 28 j,   (0 ≤  j  ≤ 3)

2. R0,i ←− P i ⊕ K i,   (0 ≤ i  ≤ 3)5

3.   for r ←− 0  to 15  do

3.1.   (F r,0, F r,1) ←− F (Rr,0, Rr,1, r);

3.2. Rr+1,0  ←− (Rr,2 ⊕ F r,0) >>>  1;

3.3. Rr+1,1  ←− (Rr,3  <<< 1) ⊕ F r,1;

3.4. Rr+1,2  ←− Rr,03.5. Rr+1,3  ←− Rr,1

4. C i ←− R16,(i+2) mod  4 ⊕ K i+4,   (0 ≤  i  ≤  3)

5. ci ←−

  C   i

4

28·(i mod 4)

  mod 28,   (0 ≤  i  ≤  15)

(cele patru cuvinte din textul criptat sunt scrise ca o secvent a de opt octeti ın sistemullittle-endian).

5Operatia este numita   whitening   si a fost introdusa ın mod independent de Merkle pentruKhufu/Khafre, respectiv Rivest pentru  DES  − X .

Page 94: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 94/177

7.2. SCURT ˘ A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE    9

Functia F 

F (R0, R1, r) este o functie ternara care ıntoarce doua valori (F 0, F 1). Varianta propusaeste bazata la rdul ei pe o alta functie g.

1. T 0 ←− g(R0) 2. T 1 ←− g(R1 <<< 8)3. F 0 ←− (T 0 + T 1 + K 2r+8) mod  232 4. F 1 ←− (T 0 + 2 · T 1 + K 2r+9) mod  232

Functia unara  g  constituie esenta sistemului de criptare  Twofish :

1. xi ←− X/28i mod  28 (0 ≤  i  ≤  3)Cuvantul de intrare  X  este spart ın patru octeti.2. yi ←− si[xi],   (0 ≤ i  ≤  3)Octetii sunt trecuti prin patru  S -cutii, dependente de cheie.

3.

z 0z 1z 2z 3

←−

01   EF    5B   5B5B EF EF     01EF    5B   01   EF EF    01   EF    5B

·

y0y1y2y3

4. Z  ←−3

i=0

z i28i.   (Z  este valoarea rezultata).

Observatia 7.2   La pasul   3   se face o corespondent   a ıntre octet i si elementele corpului GF (28). Deoarece  GF (28) ≡  GF (2)[X ]/v(X )  unde  v(X ) = X 8 + X 6 + X 5 + X 3 + 1  este 

un polinom primitiv peste  Z 2. Elementul  a  =

7i=0 aiX 

i

∈  GF (28

)  se identific˘ a cu octetul 7

i=0

ai2i. Elementele matricii   4  ×  4   au fost scrise ca valori hexazecimale ale octet ilor,

 folosind aceast˘ a corespondent   a.

Diversificarea cheii

Sistemul Twofish  este definit pentru chei de lungime N  unde standardul este N  = 128, 192sau 256. Se pot folosi ınsa chei de orice lungime mai mica de 256; daca se da o astfel decheie, ea este extinsa prin completare cu 0 la cea mai apropiata lungime standard. Din

cheia  M   a utilizatorului, prin diversificare se obtin 40 cuvinte  K 0, K 1, . . . , K  39   si patruS -cutii folosite la functia g.

Fie   k   ←−   N/64. Cheia   M   consta din 8k   octeti   m0, m1, . . . , m8k−1. Se calculeazavectorii M e, M o, S  astfel:

1. M i ←−3

 j=0

m4i+ j · 28 j,   (0 ≤ j  ≤ 2k − 1)

2. M e ←− (M 0, M 2, . . . , M  2k−2), M o  = (M 1, M 3, . . . , M  2k−1);

3. S  = (S k−1, S k−2, . . . , S  0) unde  S i ←−3

 j=0

si,j · 28 j ,   (0 ≤  i  ≤  k − 1)

Page 95: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 95/177

10   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

Octetii si,j  se obtin printr-o codificare cu un cod Reed-Solomon, pe baza formulei

si,0

si,1

si,2

si,3

=

01   A4 55 87 5A   58   DB   9E A4 56 82   F 3 1E C 6 68   E 502   A1   F C C 1 47   AE    3D   19A4 55 87 5A   58   DB   9E    03

·

m8i

m8i+1

m8i+2

m8i+3

m8i+4

m8i+5

m8i+6

m8i+7

Pentru generarea   S -cutiilor si a cuvintelor cheii expandate se foloseste functia   h,definita astfel:

Drept argumente sunt   X   (cuvant) si   L   = (L0, L1, . . . , Lk−1) – o lista de   k   cuvinte.Rezultatul va fi un cuvant Z .

1. li,j  ←− Li/28 j   mod 28,   (0 ≤  i  ≤  k − 1)

x j  ←− X/28 j   mod 28,   (0 ≤  j  ≤  3) (cuvintele sunt sparte ın octeti)

2. yk,j  ←− x j,   (0 ≤  j  ≤  3)

3.   if  k = 4  then

y3,0 ←− q 1[y4,0] ⊕ l3,0, y3,1 ←− q 1[y4,1] ⊕ l3,1, y3,2 ←− q 1[y4,2] ⊕ l3,2, y3,3 ←− q 1[y4,3] ⊕ l3,3

4.   if  k ≥  3  then

y2,0 ←− q 1[y3,0] ⊕ l2,0, y2,1 ←− q 1[y3,1] ⊕ l2,1, y2,2 ←− q 1[y3,2] ⊕ l2,2, y2,3 ←− q 1[y3,3] ⊕ l2,3

5.

  y0 ←− q 1[q 0[q 0[y2,0] ⊕ l1,0] ⊕ l0,0, y1 ←− q 0[q 0[q 1[y2,1] ⊕ l1,1] ⊕ l0,1,

y2 ←− q 1[q 1[q 0[y2,2] ⊕ l1,2] ⊕ l0,2, y3 ←− q 0[q 1[q 1[y2,3] ⊕ l1,3] ⊕ l0,3

unde  q 0   si q 1  sunt permutari pe 8 biti, definite detaliat ın [6].

6. Z  se obtine aplicand pasii 3 si 4 din definitia functiei  g .

In acest moment putem defini:

•   S -cutiile din functia g  sub forma

g(X ) = h(X, S )

Pentru  i = 0, 1, 2, 3, S -cutia  si   dependenta de cheie se formeaza prin aplicarea lui  hde la  xi   la  yi, ın care lista  L  este vectorul S  derivat din cheie.

•   Cuvintele cheii expandate:

Fie   ρ   ←−   224 + 216 + 28 + 20, Ai   ←−   h(2i ·  ρ, M e), Bi   ←−   (h((2i + 1) ·ρ, M o) <<<  8

Atunci

K 2i ←− (A + i + Bi) mod  232, K 2i+1 ←− ((Ai + 2Bi) mod  232) <<<  9

Page 96: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 96/177

7.3. DETALII ALE SISTEMULUI DE CRIPTARE  AES    11

7.3 Detalii ale sistemului de criptare  AES 

Din 2000, sistemul de criptare Rijndael  creat de olandezii Joan Daemen si Vincent Rijmandevine oficial sistemul   AES .6 Similar sistemulelor anterioare (inclusiv   DES ), si acestsistem cripteaza blocuri de text clar de lungime fixa, folosind subchei ale unei chei generatealeator. Lungimile folosite sunt de 128,  192 sau 256 biti.

Definitia 7.1   Un rezultat intermediar al sistemului de criptare se numeste ”stare”.

Vom reprezenta starea unui bloc sub forma unui tablou cu 4 linii si N b  coloane, ale caruielemente sunt octeti; deci valoarea lui  N b   se determina usor:   N b   =  N/32, unde  N   estelungimea blocului text care se cripteaza.

Similar, o cheie de criptare se va reprezenta printr-un tablou 4 × N k, unde N k  = K/32(K  fiind lungimea cheii).

Exemplul 7.1  O stare cu  N b = 6   si o cheie cu  N k = 4  au forma urm˘ atoare:

a0,0   a0,1   a0,2   a0,3   a0,4   a0,5

a1,0   a1,1   a1,2   a1,3   a1,4   a1,5

a2,0   a2,1   a2,2   a2,3   a2,4   a2,5

a3,0   a3,1   a3,2   a3,3   a3,4   a3,5

k0,0   k0,1   k0,2   k0,3

k1,0   k1,1   k1,2   k1,3

k2,0   k2,1   k2,2   k2,3

k3,0   k3,1   k3,2   k3,3

Uneori, aceste blocuri se reprezinta ca un vector ın care fiecare element este coloana unei

stari (deci, avand o lungime de 4 octeti).   In functie de marimea  N  a blocului de criptare(respectiv   K   a cheii), un astfel de vector are 4,   6 sau 8 componente, numite   cuvinte .Octetii unui cuvant se noteaza cu  a,b,c   si respectiv  d; astfel, octetul 0 este  a, octetul 1este  b  s.a.m.d.

Intrarea si iesirea din sistemul  AE S  sunt definite sub forma unor vectori avand dreptcomponente octeti, numerotate de la 0 la 4N b − 1. Un vector de intrare/iesire are deci16,  24 sau respectiv 32 componente, numerotate 0 . . . 15,   0 . . . 23 sau 0 . . . 31.

Similar, cheia de criptare este definita ca un vector de 16,  24 sau 32 octeti, numerotatide la 0 la 4N k − 1 (unde  N k = 128,  192 si respectiv 256).

Octetii care formeaza intrarea ın sistem (textul clar, daca se foloseste modul de criptare

EC B) completeaza pe coloane un tablou ca ın exemplu, numit starea init ial˘ a . Similar seprocedeaza cu cheia de criptare.Procedeul este identic la sfarsit, cand se obtine blocul criptat prin liniarizarea pe

coloane a starii finale rezultate dupa criptare.Relatiile dintre indexul  n  al unui element (octet) din reprezentarea liniara si coordo-

natele (i, j) ale aceluiasi octet din reprezentarea matriciala sunti =  n  (mod 4);   j = n/4;   n =  i + 4 · j.

6Rijndael  a castigat obtinand 86 voturi, contra  Serpent  cu 59,  Twofish  cu 31,  RC6  cu 23 si  Mars  cu13 voturi. Principalul atu: desi  Serpent  este considerat mai sigur,  Rijndael  are mai putine transformarisi este mai rapid.

Page 97: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 97/177

12   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

In plus,   i   este indicele octetului ın cadrul unui cuvant care contine acel octet, iar   jeste indicele cuvantului ın cadrul blocului care ıl contine.

Criptarea se realizeaza ın N r  runde, unde N r  depinde de N b  si N k. Valorile lui N r  suntdate ın tabelul:

N r   N b = 4   N b = 6   N b = 8N k = 4 10 12 14N k = 6 12 12 14N k = 8 14 14 14

Fiecare runda are la intrare o stare si foloseste o cheie de runda. Cu exceptia rundei

finale, o runda este formata din patru transformari, notate pe scurt:

•   ByteSub(Stare);

•   ShiftRow(Stare);

•   MixColumn(Stare);

•  AddRoundKey(Stare, Cheie).

Ultima runda contine numai trei transformari, fiind eliminata   MixColumn(Stare). Savedem cum sunt definite aceste transformari:

•   ByteSub(Stare): Este o substitutie neliniara care opereaza pe octeti. Tabela desubstitutie (S   - box, daca folosim termenul consacrat din   DES ) este o matriceinversabila formata din compunerea a doua transformari:

1.   Fiecare octet nenul α  este ınlocuit cu inversul sau  α−1 ∈  GF (28); octetul 00este lasat nemodificat.

2.   Rezultatul este modificat printr-o transformare afina peste  Z 2:

y0y1y2y3y4y5y6y7

=

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

x0

x1

x2

x3

x4

x5

x6

x7

+

11000110

Page 98: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 98/177

7.3. DETALII ALE SISTEMULUI DE CRIPTARE  AES    13

Transformarea ByteSub  se aplica tuturor octetilor starii de intrare ın runda, rezul-tatul fiind o alta stare de iesire din runda.

Inversa transformarii se obtine aplicand fiecarui octet transforma-rea afina inversa,dupa care se ia inversul multiplicativ din  GF (28) (daca octetul nu este nul).

•   ShiftRow(Stare): La acest pas, liniile starii sunt permutate ciclic spre stanga. Numa-rul de octeti cu care se face ciclarea sunt: 0 pentru linia 0,  C i  pentru linia   i  (1  ≤i ≤ 3). Valorile  C i  depind de lungimea  N b  a blocului si sunt date de tabelul

N b   C 1   C 2   C 34 1 2 36 1 2 38 1 3 4

Exemplul 7.2   Aplicˆ and transformarea ShiftRow st˘ arii din Exemplul 7.1 (unde N b = 6), vom obt ine starea 

a0,0   a0,1   a0,2   a0,3   a0,4   a0,5

a1,1   a1,2   a1,3   a1,4   a1,5   a1,0

a2,2   a2,3   a2,4   a2,5   a2,0   a2,1

a3,3   a3,4   a3,5   a3,0   a3,1   a3,2

Inversa transformarii ShiftRow  consta ın permutarea ciclica spre stanga cu  N b − C iocteti pentru linia  i (1  ≤  i  ≤  3); ın acest fel, fiecare octet aflat pe pozitia j  ın liniai  se deplaseaza pe pozitia j + N b − C i (mod N b).

•   MixColumn(Stare):   In aceasta transformare, fiecare coloana a starii este privita caun polinom de gradul 3 cu coeficienti ın   GF (28). Fiecare astfel de polinom esteınmult it cu

c(X ) =   03X 3 +  01X 2 +  01X  +  02

ın algebra polinoamelor modulo  X 4 + 1; polinomul  c(X ) este prim cu  X 4 + 1, deciva fi inversabil.

Aceasta transformare poate fi reprezentata si sub forma unei ınmul-tiri matriciale,care transforma starea coloana cu coloana; anume:

b0b1b2b3

=

02 03 01 0101 02 03 0101 01 02 0303 01 01 02

a0

a1

a2

a3

Page 99: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 99/177

14   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

Operatia inversa este similara. Fiecare coloana este transformata prin ınmultire cupolinomul invers lui  c(X ) modulo  X 4 + 1; acesta este

d(X ) =   0BX 3 + 0DX 2 +  09X  +  0E 

•  AddRoundKey(Stare, Cheie): Aceasta transformare consta ın aplicarea unui  XOR(⊕) ıntre starea curenta si cheia de runda. Cheia de runda are lungimea  N b   si estededusa din cheia de criptare pe baza unui procedeu pe care ıl descriem mai jos.

Formal, transformarea are loc conform figurii (pentru  N b = 6):

a0,0   a0,1   a0,2   a0,3   a0,4   a0,5

a1

,0

  a1

,1

  a1

,2

  a1

,3

  a1

,4

  a1

,5a2,0   a2,1   a2,2   a2,3   a2,4   a2,5

a3,0   a3,1   a3,2   a3,3   a3,4   a3,5

k0,0   k0,1   k0,2   k0,3   k0,4   k0,5

k1

,0

  k1

,1

  k1

,2

  k1

,3

  k1

,4

  k1

,5k2,0   k2,1   k2,2   k2,3   k2,4   k2,5

k3,0   k3,1   k3,2   k3,3   k3,4   k3,5

=

b0,0   b0,1   b0,2   b0,3   b0,4   b0,5

b1,0   b1,1   b1,2   b1,3   b1,4   b1,5

b2,0   b2,1   b2,2   b2,3   b2,4   b2,5

b3,0   b3,1   b3,2   b3,3   b3,4   b3,5

unde  bi,j  = ai,j ⊕ ki,j  (0 ≤  i  ≤  3,   0 ≤ j  ≤  5).

Transformarea AddRoundKey   si inversa ei sunt identice.

Algoritmul de criptare  AES  este format din:

1. O transformare AddRoundKey   initiala;

2.   N r − 1 runde;

3. O runda finala.

Inainte de aplicarea acestui algoritm (sau – eventual – ın paralel) se foloseste un algoritmde obtinere a cheilor de runda.

7.3.1 Prelucrarea cheii de criptare

Toate cheile de runda se obtin din cheia de criptare printr-o prelucrare separata, formatadin doua componente:  extinderea cheii   si  alegerea cheii de rund˘ a . Principiile de baza aleprelucrarii sunt:

•   Numarul total al bitilor din toate cheile de runda este  N b(N r + 1).

•  Cheia de criptare este extinsa ıntr-o  Cheie Expandat˘ a .

Page 100: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 100/177

7.3. DETALII ALE SISTEMULUI DE CRIPTARE  AES    15

•  Cheia de runda se obtine luand primii  N b   octeti din   Cheia Expandat˘ a , care nu aufost folositi pentru alte chei.

Extinderea cheii

Cheia expandat˘ a  (notata W [N b(N r + 1)]) este un tablou liniar ale carui elemente suntcuvinte. Primele  N k  cuvinte sunt cheia de criptare; celelalte cuvinte se obtin recursiv dincuvintele definite anterior. Functia de extindere a cheii depinde de valoarea lui  N k; existao versiune pentru  N k  ≤  6 si o alta pentru  N k  > 6.

Pentru N k  ≤  6 avem:

KeyExpansion(byte Key[4 ∗ N k] word W [N b ∗ (N r + 1)])

{f or (i = 0;   i < N k;   i + +)

W [i] = (Key[4 ∗ i],Key[4 ∗ i + 1],Key[4 ∗ i + 2],Key[4 ∗ i + 3]);f or (i =  N k;   i < N b ∗ (N r + 1);   i + +){

temp =  W [i − 1];if  (i %  N k  == 0)

temp =  SubByte(RotByte(temp)) ˆ  Rcon(i/N k);W [i] = W [i − N k] ˆ  temp;

}

}In acest algoritm (scris ın C  + +), SubByte(W ) este o functie care ıntoarce un cuvant

ın care fiecare octet este rezultatul aplicarii S  - boxului definit la transformarea  ByteSubfiecarui octet din cuvantul de intrare.   RotByte(w) ıntoarce un cuvant ın care octetii suntrotiti ciclic la stanga (pentru intrarea (a,b,c,d) iesirea este (b,c,d,a)).

Esenta algoritmului este urmatoarea: primele N k  cuvinte sunt completate cu cheia decriptare.   In continuare, fiecare cuvant  W [i] este egal cu  W [i − 1] ⊕ W [i − N k]. Pentrucuvintele care sunt pe pozitii multipli de N k, ınainte de aceasta operatie, lui W [i − 1] i seaplica o permutare ciclica spre stanga a octetilor, urmata de aplicarea unui  S   - box.   Inplus, rezultatul este  XOR  - at ınca odata, cu o constanta de runda.

Pentru N k  > 6, algoritmul este:

KeyExpansion(byte Key[4 ∗ N k] word W [N b ∗ (N r + 1)]){

f or (i = 0;   i < N k;   i + +)W [i] = (Key[4 ∗ i],Key[4 ∗ i + 1],Key[4 ∗ i + 2],Key[4 ∗ i + 3]);

f or (i =  N k;   i < N b ∗ (N r + 1);   i + +){

temp =  W [i − 1];if  (i %  N k  == 0)

Page 101: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 101/177

16   PRELEGEREA 7. SISTEMUL DE CRIPTARE  AES 

temp =  SubByte(RotByte(temp)) ˆ  Rcon(i/N k);else if   (i %  N k == 4)

temp =  SubByte(temp)W [i] = W [i − N k] ˆ  temp;

}}

La aceasta schema apare conditia suplimentara ca pentru situatia cand   i −  4 estemultiplu de  N k, procedura  SubByte este aplicata lui  W [i − 1] ınainte de  XOR.

Constantele de runda sunt independente de  N k   si sunt definite prinRcon[i] = (RC [i], 00, 00, 00)

unde  RC [i] = αi−1 unde  α  este un element generator al lui GF (28).

Selectarea cheii de runda

Cheia rundei  i  este formata din secventa de cuvinteW [N b ∗ i] . . . W  [N b ∗ (i + 1) − 1].

Ca o remarca, aceasta cheie poate fi calculata treptat, pe masura ce se ajunge la rundarespectiva.

Pentru alte detalii privind securitatea sistemului, a se vedea [1], [8]

Page 102: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 102/177

Bibliografie

[1] Joan Daemen, Vincent Rijmen -   The Rijndael Block Cipher Proposal ,http://csrc.nist.gov/CryptoToolkit/aes/

[2] Ross Anderson s.a. -  Serpent: A proposal for the Advanced Encryption Standard ,

http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/serpent.pdf 

[3] Don Coppersmith s.a. -  MARS - a candidate cypher for AES ,

http://www.research.ibm.com/security/mars.pdf 

[4] Ronald Rivest s.a -  The  RC 6T M  Block Cipher ,

ftp://ftp.rsasecurity.com/pub/rsalabs/rc6/rc6v11.pdf 

[5] Bruce Schneier -  Applied Cryptography , Second Edition, John Wiley & Sons, 1996

[6] Bruce Schneier s.a. -  Twofish , http://www.counterpane.com/twofish.html

[7]  Serpent homepage , http://www.cl.cam.ac.uk/ rja14/serpent.html

[8] Douglas Stinton - Cryptography, Theroy and Practice , Ed. II (2002)

17

Page 103: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 103/177

Prelegerea 8

Criptare cu cheie publica

8.1 Consideratii generale

In sistemele de criptare clasice,   Alice   si   Bob   si aleg o cheie secreta   K   care definesteregulile de criptare (eK ) si decriptare (dK ).   In aproape toate cazurile  dK   si  eK   coincideausau se puteau deduce imediat una din alta. Astfel de sisteme sunt numite   sisteme cu cheie privat˘ a  (sau  sisteme simetrice ) deoarece publicarea lui  eK   face sistemul extrem devulnerabil.

Un punct slab al sistemelor cu cheie privata este acela ca necesita o comunicare pre-alabila a cheii ıntre  Alice  si  Bob  printr-un canal sigur, ınainte de transmiterea mesajuluicriptat. Practic, ın conditiile cererii tot mai mari de securizare a comunicatiilor, acestlucru este din ce ın ce mai dificil de realizat.

Obiectivul sistemelor de criptare cu cheie publica este acela de a face ”imposibil”asupraacestui termen vom reveni) de obtinut cheia dK  plecand de la eK . Astfel, regula de criptareeK  poate fi publicata ıntr-un ”registru public” (de unde si numele sistemelor). Avantajulconsta ın faptul ca Alice (sau oricare alta persoana) poate trimite lui Bob un mesaj criptatcu eK  fara a intra ın prealabil ın contact.   Bob  este singura persoana capabila sa decriptezetextul, utilizand cheia sa secreta  dK .

Ideea de sistem de criptare cu cheie publica apare ın 1976 si este prezentata de Diffiesi Hellman (vezi [1])1. De atunci au aparut diverse astfel de sisteme, a caror securitateeste bazata pe probleme calculatorii. Cele mai cunoscute ın acest moment sunt:

•  Sistemul RSA: se bazeaza pe dificultatea descompunerii ın factori primi a numerelormari (de sute de cifre). Este sistemul cel mai larg utilizat ın acest moment.

1Se pare ca prima idee de cheie publica este schitata ın ianuarie 1970 de catre britanicul JamesEllis – membru ın Communication-Electronic Security Group – ın articolul   The possibility of non-secret 

encryption . Informatia este facuta publica de catre British Government Communications Headquartersabia in 1997.

1

Page 104: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 104/177

2   PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC   A

•  Sistemul El Gamal : se bazeaza pe dificultatea calculului logaritmului discret ıntr-uncorp finit.

•  Sistemul Merkle - Hellman : primul sistem definit cu cheie publica, bazat pe problema {0, 1}  a rucsacului , problema  N P   - completa.

•   Sistemul McEliece : este bazat pe teoria algebrica a codurilor, decodificarea unui codliniar fiind de asemenea o problema  NP   - completa.

•   Curbe eliptice : Sunt sisteme de criptare care ısi desfasara calculele pe multimea

punctelor unei curbe eliptice (ın locul unui inel finit  Z n).

8.2 Functii neinversabile

O observatie importanta este aceea ca un sistem cu cheie publica nu este sigur neconditionat;oricine - putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe caresa ıi permita sa si decripteze mesajele. Ideea de baza folosita este aceea de  funct ie nein-versabil˘ a . Sa clarificam putin acest aspect.

Exemplul 8.1   Ne putem imagina usor str˘ azile cu sens unic dintr-un oras. Astfel, este usor ca mergˆ and pe astfel de str˘ azi s˘ a ajungi de la punctul   A   la punctul   B, dar este imposibil s˘ a ajungi de la  B   la  A.   ˆ In acest mod, criptarea este privit˘ a ca direct ia  A →  B;desi este foarte usor de parcurs drumul ın aceast˘ a direct ie, nu te pot i ıntoarce ınapoi spre A  (adic˘ a s˘ a decriptezi mesajul).

Exemplul 8.2   S˘ a consider˘ am cartea de telefon a unui oras mare 2; cu ajutorul ei este  foarte usor s˘ a g˘ asim num˘ arul de telefon al unei anumite persoane.   ˆ In schimb, este extrem de greu - practic imposibil - s˘ a afli persoana care are un anumit num˘ ar de telefon. Te 

afli ın situat ia parcurgerii secvent iale a (cel put in) unui volum gros, ceea ce conduce la ocrestere exagerat  a a timpului.

Aceasta d˘ a o sugestie de construct ie a unui sistem de criptare cu cheie public˘ a. Criptarea se face independent de context, liter˘ a cu liter˘ a. Pentru fiecare liter˘ a a textului clar se alege un nume care ıncepe cu acest caracter si num˘ arul de telefon al persoanei respective va con-stitui criptarea. Sistemul este homofonic; dou˘ aaparit ii diferite ale aceleiasi litere vor fi codificate foarte probabil cu numere diferite.

De exemplu, textul clar SOLIST se poate cripta astfel:

2O carte de telefon expirata va duce la cresterea dificultatii decriptarii ilegale.

Page 105: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 105/177

Page 106: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 106/177

4   PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC   A

Cu ajutorul lui  A  se poate defini o funct ie  f   astfel:Fie  x ∈ [0, 2n−1];  x  poate fi reprezentat ın binar ca un cuvˆ ant de lungime  n  (ad˘ augˆ and 

eventual   0   - uri ın fa af (x)vafinum˘ arul obt inut din   A   prin ınsumarea tuturor nu-merelor  ai  aflate pe pozit iile marcate cu  1  ın reprezentarea binar˘ a a lui  x. Formal,

f (x) = A · BT x

unde  Bx  este reprezentarea binar˘ a a lui  x, scris˘ a ca un vector coloan˘ a.S˘ a definim acum un sistem de criptare bazat pe problema rucsacului. Textul clar 

este codificat init ial ın binar si segmentat apoi ın blocuri de cˆ ate  n  bit i (eventual ultimul bloc este completat la sfˆ arsit cu zerouri). Fiecare bloc rezultat este apoi criptat calcul  and valoarea corespunz˘ atoare a funct iei  f .

Pentru alfabetul latin sunt suficient i   5   bit i pentru codificarea binar˘ a a literelor si a spat iului. Mai exact, dac˘ a asociem literelor A - Z reprezent˘ arile binare ale numerelor 1 − 26, vom avea:

−   00000   A   −   00001   B   −   00010C    −   00010   D   −   00011   E    −   00101F    −   00110   G   −   00111   H    −   01000I    −   01001   J    −   01010   K    −   01011L   −   01100   M    −   01101   N    −   01110O   −   01111   P    −   10000   Q   −   10001R   −   10010   S    −   10011   T    −   10100

U    −   10101   V    −   10110   W    −   10111X    −   11000   Y    −   11001   Z    −   11010

S˘ a consider˘ am un text clar, FLOARE DE COLT de exemplu. Cum fiecare caracter se codific˘ a ın   5   bit i, ın fiecare bloc intr˘ a dou˘ a caractere: FL OA RE D E CO LT.Codificˆ and,se obt in sapte blocuri de cˆ ate  10  bit i:

0011001100 0111100001 1001000101 0000000100 0000000101 0001101111 0110010100care conduc la textul criptat:   (1814, 3243, 3204, 1165, 1118, 5321, 1811).

Sa consideram sistemul de criptare definit ın Exemplul 8.3. Daca ıl privim ca unsistem clasic, (cu cheie privata) criptanalistul trebuie sa afle vectorul de baza A   si apoi sa

rezolve problema rucsacului.Daca el foloseste metoda textelor clare alese, ıl va afla usor pe   A: este suficient sa

trimita   n   texte clare cu cıte un singur 1 iar restul 0. Problema apare ın momentulrezolvarii problemei rucsacului; aici atat   Bob   cat si   Oscar   sunt pusi ın fata acelaiasiprobleme N P  - complete. Ori, practic, doar  Oscar  trebuie sa rezolve o problema dificila,nu si  Bob.

O alta problema ridicata de acest sistem de criptare: este obligatoriu ca un text criptatsa determine ın mod unic un text clar. Aceasta ınseamna ca nu trebuie sa existe douasubmultimi ale lui A  care sa aiba aceeasi suma. Astfel, daca se ia A  = (17, 103, 50, 81, 33),textul criptat (131, 33, 100, 234, 33) poate fi decriptat ın doua moduri: SAUNA si FAUNA.

Page 107: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 107/177

8.3. TRAPA SECRET   A   5

8.3 Trapa secreta

Pentru ca   Bob   sa nu fie pus ın aceasi situatie ca si   Oscar, el trebuie sa dispuna deun procedeu care sa ıi permita sa transforme problema  NP   - completa publica, ıntr-oproblema usoara. Acest procedeu este numit   trap˘ a secret˘ a .   In primul exemplu, trapasecreta era cartea de telefon ordonata dupa numerele de telefon, nu dupa abonati. Savedem care este trapa secreta ın sistemul de criptare din Exemplul 8.3:

Exemplul 8.4   Sunt clase de probleme ale rucsacului usor de rezolvat; una din ele o formeaz˘ a vectorii cu crestere mare.

Spunem c˘ a vectorul rucsac  A = (a1, a2, . . . , an)  este cu crestere mare dac˘ a 

∀  j  ≥ 2, a j  ≥ j−1i=1

ai.

ˆ In acest caz, pentru a rezolva problema rucsacului este suficient s˘ a parcurgem vectorul A  de la dreapta spre stˆ anga. Cunoscˆ and valoarea   k, cercet˘ am ınt  ai valoarea de adev˘ ar a relat iei   k  ≥   an. Dac˘ a r˘ aspunsul este FALSE,   an   nu poate apart ine sumei pe care oc˘ aut˘ am. Dac˘ a ıns  a se obt ine TRUE,  an  trebuie s˘ a fie ın sum  a, deoarece toate elementele ai   r˘ amase nu pot dep˘ asi ın sum  a pe  k. Vom defini 

k1 =

  k   dac˘ a    an  > k

k − an   dac˘ a    an ≤ k

si repet  am procedeul pentru  k   si  a1. Algoritmul se va opri la valoarea  a1.

S˘ a presupunem c˘ a avem vectorul rucsac cu crestere mare A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)

si vrem s  a decodific˘ am mesajul  278. Vom parcurge  10  pasi, sumarizat i ın tabelul:

Num˘ ar Componenta lui  A Bit rezultat

278 701 0278 349 0278 175 1103 87 116 44 016 21 0

16 11 15 5 10 3 00 1 0

Deci se obt ine secvent a binar˘ a   00110 01100   care - conform codific˘ arii din Exemplul 8.3 corespunde perechii de litere  F L.

Daca se foloseste ınsa public o astfel de informatie, orice utilizator – inclusiv  Oscar  –poate decripta mesajele folosind un algoritm liniar. Ori s-a presupus (ın prima prelegere)

Page 108: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 108/177

6   PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC   A

ca pentru orice intrus aflarea mesajului clar trebuie sa se reduca la rezolvarea unei prob-leme  N P   - complete.

Exemplul 8.5   Pentru sistemul bazat pe problema rucsacului,  Bob  va proceda astfel: va 

alege un num˘ ar  m (m >mi+1

ai) numit  modul  si un num  ar  t,   (m, t) = 1  numit  multipli-

cator. Exist˘ a atunci un num˘ ar  s  astfel ca  m · s ≡ 1 (mod m).Plecˆ and de la vectorul cu crestere mare   A   = (a1, a2, . . . , an)   Bob  genereaz˘ a vectorul 

B  = (b1, b2, . . . , bn)  unde  bi = t · ai (mod m).Vectorul  B  este declarat public pentru criptare, iar  m, t  si  s  vor forma trapa secret˘ a a 

lui  Bob.

Astfel, dac˘ a lu˘ am  m = 1590   si  t = 43, vectorul cu crestere mare 

A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)

devine B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),

adic˘ a cel prezentat ın exemplul 8.3.   ˆ In plus,  s =  t−1 = 37.3

Cum se va proceda: Cel care doreste s˘ a trimit˘ a lui   Bob   un mesaj criptat va folosi vectorul rucsac  B   si va cripta mesajul  x  ın  y = B · BT 

x , conform Exemplului 8.3.

La recept ie,  Bob

 va calcula ıntˆ ai   z 

 = s·

y (

mod m), dup˘ a care va decripta mesajul 

 z 

 folosind vectorul cu crestere mare  A. Se poate ar˘ ata usor c  a solut ia este chiar  x.Astfel, de exemplu   Alice   poate cripta mesajul   F L  ın   2414   (cf. Exemplului 8.3). La 

primirea acestui num˘ ar, Bob  va determina ıntˆ ai  s ·2414 = 37 ·2414 (mod 1590) = 278.   ˆ In Exemplul 8.4 s-a v˘ azut c˘ a decriptarea mesajului  278  cu vectorul  A  conduce la textul clar F L.

Putem trasa acum cateva principii generale de construire a unui sistem de criptare cucheie publica:

1. Se ıncepe cu o problema dificila  P ; rezolvarea lui  P  este imposibila ın conformitate

cu teoria complexitatii (nu se cunoaste nici un algoritm de complexitate polinomialacare sa rezolve  P ).

2. Se selecteaza o subproblema  P 1  a lui  P , rezolvabila ın timp polinomial (preferabilliniar).

3. Se aplica o transformare problemei  P 1  astfel ıncat sa se obtina o problema  P 2   caresa nu semene cu  P  dar sa fie foarte apropiata de problema  P .

3Pentru calculul inversului unui numar se poate folosi algoritmul lui Euclid. Vom dezvolta mai tarziuaceasta idee.

Page 109: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 109/177

8.4. SECURITATEA SISTEMELOR DE CRIPTARE CU CHEIE PU-BLIC   A   7

4. Se face publica problema   P 2   si se descrie algoritmul de criptare bazat pe aceasta.Informatia referitoare la modul ın care se obtine  P 1  din  P 2  este o trapa secreta.

5. Se construiesc detaliile sistemului de criptare, astfel ıncat principiile de lucru sadifere esential pentru destinatar fata de criptanalist; astfel, ın timp ce primul vafolosi trapa secreta si va rezolva problema P 1, al doilea va trebui sa rezolve problemaP 2, imposibila datorita asemanarii ei cu problema  P .

In functie de aceste principii generale, apar ın detalii de constructie multe alte problemepe care constructorii sistemelor de criptare trebuie sa le rezolve.

8.4 Securitatea sistemelor de criptare cu cheie pu-blica

In majoritatea sistemelor de criptare, aparatul matematic folosit este bazat pe teoria nu-merelor, teoria functiilor recursive si teoria probabilitatilor. Pe o scara mult mai restransaapar functiile eliptice, teoria automatelor, calcul neconventional (cuantic, molecular etc).

Sistemele de criptare cu cheie publica un avantaj major fata de sistemele clasice: aicinu mai este necesar efortul transmiterii cheii. Un contact prealabil ıntre   Alice   si   Bobpentru a pune la punct detaliile sistemului de criptare este inutil.

Un sistem de criptare cu cheie publica nu ofera ınsa o securitate absoluta. Aceasta

se datoreaza faptului ca   Oscar   poate oricand sa dispuna de atacuri pasive sau active.Anume:

•   Daca criptanalistul dispune de un text criptat  y, el poate cauta exhaustiv un textclar   x  astfel ca   eK (x) =   y. Singura aparare contra unui astfel de atac consta ıngradul de complexitate al sistemului.

•   Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle . Sapresupunem ca Alice  si Bob  doresc sa stabileasca un contact. Ei fac publice cheile decriptare  eA  respectiv  eB. Daca contactul este nepersonalizat,  Oscar  poate controlamesajele schimbate ıntre cei doi, ın felul urmator:

Alice

Oscar

Bob

 

  

 

 

(eA, eB)e1B   e1A

y1 = e1B(m)   y = eB(m)

1.   Oscar   ”opacizeaza” printr-un mijloc oarecare aceste chei, si trimite lui   Alice cheia  e1B  ca din partea lui  Bob; substituie – similar – pentru  Bob  cheia  eA   cue1A.

Page 110: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 110/177

8   PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC   A

2. Fie m mesajul pe care Alice  vrea sa ıl trimita lui Bob. Ea va cripta si va trimitey1 =  e1B(m).

3.   Oscar   intercepteaza mesajul (reamintim, toate canalele sunt nesigure) si aflam =  d1

B(y1).

4.   Oscar   recripteaza  y = eB(m) si trimite  y   lui Bob.

Bineınteles, Oscar  poate modifica sau ıntarzia mesajul  m daca doreste.

Din aceasta cauza, aproape ın toate sistemele de criptare cu cheie publica apare nece-sitatea autentificarii mesajului sau a expeditorului, precum si aceea a confidentialitatii.

Definitia 8.1   Confident ialitatea 4 asigur˘ a accesul la informat ie doar p˘ art ilor autorizate de a avea acest acces.

Definitia 8.2   Autentificarea 5 este procesul prin care un calculator (program de calculator sau alt utilizator) ıncearc˘ a s˘ a confirme unui destinatar c˘ a mesajul primit de acesta vine (sau nu vine) din partea sa.

Metodele prin care un expeditor uman se poate autentifica sunt clasificate ın:

1. ”ceva ce utilizatorul este ” (de exemplu amprente digitale, de retina, de voce, secventa

DNA, recunoasterea semnaturii, identificatori biometrici).

2. ”ceva de utilizatorul are ” (de exemplu card ID, date de securitate soft pe calculatorsau telefon).

3. ”ceva ce utilizatorul stie ” (de exemplu un password, o parola, un numar de identi-ficare - PIN).

4. Orice combinatie ıntre metodele anterioare (de exemplu un card bancar cu PINasigura o dubla autentificare).

Alt termen frecvent utilizat este cel de   integritate. El se refera la validitatea datelor.

Definitia 8.3   Integritatea este sigurant a c˘ a datele la care se refer˘ a un utilizator pot fi accesate si pot fi modificate numai de cei autorizat i s˘ a o fac˘ a.

In general integritatea poate fi compromisa ın doua moduri:

1. Prin alterare intentionata (de exemplu modificarea unui cont bancar, a unei adresede e-mail, a unui document de indetitate);

4conform International Standards Organization (ISO)5de la grecescul ”authentes” = author

Page 111: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 111/177

8.5. COMPARATIE INTRE CRIPTAREA SIMETRIC   A SI CEA CU CHEIE PUBLIC   A9

2.   In mod accidental (transmisii perturbate de zgomote de canal, zgarierea harddiscului)6.

Sa presupunem ca  Alice   si  Bob   sunt doi utilizatori, cu posibile conflicte de interese.cand  Alice  trimite un mesaj lui Bob, ambele parti trebuie sa se asigure ca:

•  Mesajul nu este trimis de o terta persoana care pretinde a fi  Alice ;

•   Bob  sa nu poata obliga pe  Alice  sa tina cont de mesaje care nu-i apartin, iar  Alice sa poata recunoaste public propriile mesaje.

Intr-o oarecare masura, cele doua conditii sunt contradictorii: conform primei conditii,Bob   trebuie sa stie ceva despre modul de criptare al lui   Alice , care ıi va permite saautentifice mesajul, iar conform celei de-a doua conditii, el nu trebuie sa stie prea mult.O modalitate frecvent utilizata pentru autentificarea mesajelor este folosirea codurilor deautentificare.

Exemplul 8.6   MAC-ul (Message Authentication Code) definit ın cadrul sistemului de criptare  DES  este o variant˘ a prin care se poate asigura atˆ at autenticitatea cˆ at si integri-tatea mesajului.

Daca se solicita si autentificarea partenerilor, atunci se foloseste de obicei semnaturaelectronica.

Exemplul 8.7   S˘ a presupunem c˘ a Alice vrea s˘ a trimit˘ a lui Bob mesajul   m. Dac˘ a se 

 foloseste un sistem de criptare cu cheie public˘ a ın care funct iile de criptare/decriptare sunt comutative, iar  (eA, dA), (eB, dB) sunt perechile (cheie public˘ a,cheie privat˘ a) ale celor doi, ei pot urma urm˘ atorul protocol:

1. Alice  trimite lui Bob  y1 =  eA(m);2. Bob   trimite lui Alice  y =  eB(y1);3. Alice  trimite lui Bob  dA(y) = eB(m);4. Bob  calculeaz˘ a  dB(eB(m)) = m   si afl  a mesajul.Se observ˘ a c˘ a sunt verificate cele dou˘ a condit ii de autentificare si – ın plus – protocolul 

rezist˘ a unui atac de tip meet-in-the-middle.Dac˘ a dorim s˘ a folosim un singur contact, Alice poate trimite mesajul  y = eB(dA(m)).

La recept ie, Bob va folosi propria sa cheie pentru decriptare, impreun˘ a cu cheia public˘ a a lui Alice. Metoda merge si pentru sisteme de criptare necomutative.

8.5 Comparatie ıntre criptarea simetrica si cea cu

cheie publica

Avantaje ale sistemelor de criptare cu cheie simetrica:

6De recuperarea informatiei pierduta ın acest mod se ocupa Teworia Codurilor detectoare si corectoarede erori.

Page 112: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 112/177

10   PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC   A

1. Pot transmite volume mari de date. Exista implementari hard care pentru unelesisteme de criptare pot asigura rate de criptare de sute de mega-octeti pe secunda(sunt si implementari soft cu rate de mega-octeti pe secunda).

2. Cheile sunt relativ scurte.

3. Pot fi folosite ca baza de constructie a diverselor mecanisme de criptare, cum ar figeneratori de numere pseudo-aleatoare, generatori de functii de dispersie, schemede semnatura.

4. Prin compunere pot conduce la sisteme de criptare puternice.

5. Au o istorie bogata ın evenimente si experienta.Dezavantaje ale sistemelor de criptare cu cheie simetrica:

1. Cheia trebuie sa ramana permament secreta ın (cel putın) doua locuri distincte.

2. Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart.

3.   In retele mari, o gestionare a cheilor devine extrem de dificila.

4. Necesita un canal sigur de comunicare, cel putin pentru transmiterea cheii. Acestlucru devine dificil mai ales pentru sistemele care necesita schimbari frecvente ale

cehilor de criptare/decriptare.Avantaje ale sistemelor de criptare cu cheie punlica

1. Sistemul este ideal pentru transmiterea informatiei prin canale nesigure.

2. Sistemele cu cheie publica sunt simplu de definit si elegante matematic.

3. Doar cheia de decriptare trebuie tinuta secreta, la un singur punct (destinatar).

4.   In funtie de modul de utilizare, o pereche de chei (publica,privata) poate fi pastratao perioada mai lunga de timp.

5. Conduc la aplicatii de mare ıntindere: semnaturi electronice, algoritmi de autentifi-care, componente de comert electronic etc.

Dezavantaje ale sistemelor de criptare cu cheie publica:

1. Sunt semnificativ mai lente decat sistemele simetrice.

2. Sunt necesare chei de lungimi mult mai mari.

3. Nu se poate garanta securitatea absoluta a nici unei scheme de criptare cu cheiepublica.

Page 113: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 113/177

8.5. COMPARATIE INTRE CRIPTAREA SIMETRIC   A SI CEA CU CHEIE PUBLIC   A11

4. Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teo-retic de securitate pot fi sparte usor printr-o implementare neglijenta.

Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantajecomplementare. Acest lucru face ca ele sa fie folosite combinat.

Exemplul 8.8   Multe sisteme de criptare ıncep comunicarea transmit   and via un sistem cu cheie public˘ a, cheia unui sistem simetric.   ˆ In faza a doua, mesajele sunt criptate folosind sistemul simetric de criptare. Aceasta asigur˘ a o vitez˘ a mult mai mare de transmitere si un spor de autentcitate a mesajelor.

Page 114: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 114/177

Page 115: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 115/177

Bibliografie

[1] W. Diffie, M.E. Hellman -  New Directions in Cryptography , IEEE Transactions onInformation Theory, IT-22, 6 (1976), pp. 644-654

[2] D. Stinton -   Cryptographie, theorie et pratique , International Thompson PublishingFrance, 1995

[3] A. Salomaa -  Criptografie cu chei publice , ed. Militara, 1994

[4]  P versus NP homepage , http://www.win.tue.nl/ gwoegi/P-versus-NP.htm

[5] http://en.wikipedia.org/wiki/Complexity classes P and NP

13

Page 116: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 116/177

Prelegerea 10

Sistemul de criptare RSA

10.1 Descrierea sistemului RSA

Sistemul de criptare RSA (Rivest -   Shamir -   Adleman) este ın acest moment cel maicunoscut si uzitat sistem cu cheie publica1. Aceasta se datoreaza ın primul rand modalitatiifoarte simple de criptare si decriptare, care se realizeaza similar – cu aceleasi module decalcul (proprietate ıntalnita ın special la multe sisteme simetrice).

Iata ın ce consta sistemul de criptare RSA:

Fie  p, q  numere prime impare distincte si n =  pq.Indicatorul sau Euler este  φ(n) = ( p − 1)(q − 1).Fie  P  = C = Z n. Se definesteK= {(n,p,q,a,b)| n =  pq, ab ≡ 1 (mod φ(n))}Pentru  K  = (n,p,q,a,b) se definesc (∀x, y ∈ Z n):

eK (x) = xb (mod n)si

dK (y) = ya (mod n)Valorile n  si b sunt publice, iar  p, q   si a sunt secrete.

Deoarece  ab ≡ 1 (mod φ(n)), avem ab =  tφ(n) + 1.

Atunci, pentru un  x ∈ Z ∗

n  =  Z n \ {0}, putem scrie (toate calculele se fac ın  Z n):(xb)a ≡ xtφ(n)+1 ≡

xφ(n)

tx ≡ 1tx ≡ x.

Pentru x  = 0 afirmatia este banala.

Exemplul 10.1   S˘ a presupunem c˘ a  Bob alege  p  = 101, q  = 113. Atunci  n  = 11413, φ(n) =11200. Deoarece  11200 = 26527, un num˘ ar  b  poate fi utilizat ca exponent de criptare dac˘ a 

1Sistemul este prezentat ın 1977 de Ron Rivest, Adi Shamir si Len Adleman ın cadrul unui proiectde cercetare la MIT. Totusi, dupa declasificarea ın 1997 a unor documente din Marea Britanie, se pareca matematicianul Clifford Cocks a elaborat ın 1973 un sistem echivalent, prezentat ıntr-un documentintern  GCHQ (Government Communications Headquarters).

1

Page 117: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 117/177

2   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

si numai dac˘ a nu este divizibil cu  2, 5  sau  7   (practic,  Bob  nu trebuie s˘ a factorizeze  φ(n);este suficient s˘ a verifice dac˘ a  (φ(n), b) = 1 folosind algoritmul lui Euclid). Fie de exemplu b = 3533. Avem atunci  b−1 = 6597 mod  11200.

Deci, exponentul (secret) de decriptare este  a = 6597.Bob   face public  n = 11413   si  b = 3533.Dac˘ a  Alice  doreste s  a-i transmit˘ a lui  Bob  mesajul  9726, ea calculeaz˘ a 

97263533 mod 11413 = 5761si trimite prin canal textul criptat  5761. Cˆ and  Bob primeste acest num˘ ar, el determin˘ a 

57616597 mod 11413 = 9726.

Securitatea sistemului de criptare RSA se bazeaza pe ipoteza ca functia eK (x) = xb mod n

este neinversabila din punct de vedere al complexitatii, deci este imposibil pentru  Oscarsa o determine. Trapa secreta de care dispune  B ob pentru decriptare este descompunerean   =   pq . Deoarece  Bob   stie aceasta factorizare, el poate calcula   φ(n) = ( p − 1)(q  − 1)si apoi determina exponentul de decriptare  a   folosind algoritmul lui Euclid extins (a sevedea Anexa ).

10.2 Implementarea sistemului RSA

Pentru a realiza criptarea,   Bob  trebuie sa efectueze urmatorii pasi (fiecare din ei va fidetaliat mai tarziu):

Tabelul 10.1:

1. Genereaza doua numere prime mari p, q ;

2. Calculeaza  n =  pq   si φ(n) = ( p − 1)(q − 1);

3. Alege aleator un numar  b (1  < b < φ(n)) astfel ca (b, φ(n)) = 1;

4. Calculeaza  a =  b−1 mod φ(n) folosind algoritmul lui Euclid;

5. Face public n  si b.

Un atac evident al sistemului consta ın ıncercarea de factorizare a lui   n. Daca serealizeaza aceasta, este usor de determinat  φ(n) = ( p − 1)(q − 1) si de calculat exponentulde decriptare  a  plecand de la  b.

Deci, pentru ca sistemul RSA sa fie sigur, este necesar ca  n  sa fie suficient de marepentru ca factorizarea sa sa fie imposibila (din punct de vedere al complexitatii). Algo-ritmii de factorizare actuali pot descompune numere de pana la 200 cifre zecimale. Se

Page 118: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 118/177

10.2. IMPLEMENTAREA SISTEMULUI RSA   3

recomanda de aceea – pentru siguranta – sa se lucreze cu numere prime  p  si q  de cel putin300 cifre fiecare, deci  n  va avea peste 500 cifre. Aproape toate implementarile actuale alesistemului folosesc chei de 1024 − 2048 biti2.

Cu intentia ca vom reveni asupra problemelor legate de numere prime mari, sa studiemıntai operatiile necesare pentru criptare si decriptare. Orice astfel de calcul se bazeazape o exponentiere modulo  n. Cum  n  este foarte mare, vom utiliza aritmetica numerelormari pentru lucrul ın  Z n, timpul de calcul necesar fiind direct proport ional cu numarulde biti ai lui  n.

Daca  n  ocupa  k  biti ın memorie (deci  k  = [log2n] + 1), prin metode de calcul uzualese ajunge la concluzia ca suma a doua numere de  k  biti se face ın  O(k), iar ınmultirea ın

O(k2

). La fel si reducerea modulo  n. Deci, pentru x, y ∈ Z n, numarul  xy mod n  se poatedetermina prin calcule de complexitate  O(k2). Conform prelegerii anterioare, vom numiaceasta   multiplicare modular˘ a .

Sa cercetam acum exponent ierea modular˘ a  xc mod n. O modalitate de calcul consta ınefectuarea de c −1 multiplicari modulare - proces foarte ineficient pentru  c  mare, deoarecealgoritmul devine de complexitate exponentiala.

Exista ınsa un algoritm de exponentiere rapida, care realizeaza xc mod n cu complex-itate  O(k3) (deci polinomial). Acesta utilizeaza descompunerea binara a lui c,

c =s−1i=0

ci2i

unde  s  (s  ≤  k) este numarul de biti ai lui  c, iar  ci  ∈ {0, 1}. Exponentierea se face doarprin ridicari la patrat si maxim  s  ınmultiri modulare, conform algoritmului:

z  ←− 1;for  i ←− s − 1  downto  0  do

z  ←− z 2 mod n;

if  ci = 1  then z  ←− z · x mod n

Exemplul 10.2   S˘ a relu˘ am datele din Exemplul 10.1. Calculul lui  97263533 mod 11413  se efectueaz˘ a cu algoritmul de sus ın numai  12  pasi; anume:

2Un numar  n  de maxim 256 biti poate fi factorizat de un PC obisnuit ın cateva ore, folosind un softfree. Daca   n  are pana la 512 biti, el poate fi factorizat folosind o retea de cateva sute de calculatoare,conform unei scheme prezentate ın 1999.  In 2003 a fost pusa sub semnul ıntrebarii securitatea modulelorde 1024 biti.

Page 119: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 119/177

4   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

i ci   z 11 1 12 · 9726 = 972610 1 97262 · 9726 = 2659

9 0 26592 = 56348 1 56342 · 9726 = 91677 1 91672 · 9726 = 49586 1 49582 · 9726 = 77835 0 77832 = 62984 0 62982 = 46293 1 46292 · 9726 = 101852 1 101852 · 9726 = 1051 0 1052 = 110250 1 110252 · 9726 = 5761

Deci textul clar  9726  este criptat de  Alice  ın  5761.

Pentru aplicarea sistemului de criptare RSA, trebuiesc generate ıntai numerele prime p, q  - despre care ne ocupam ın sectiunea urmatoare. Etapa a doua (din Tabelul 10.1) seefectueaza evident ın  O((log2n)2). Etapele 3 si 4 folosesc algoritmul lui Euclid extins. Carezultat general, calculul celui mai mare divizor comun (a, b) cu  a > b se poate realiza cucomplexitatea  O((log2a)2).

In general, un algoritm   RSA   este cam de 1000 ori mai lent decat   DES   pentru oimplementare harwdare, cam de 100 ori la o implementare software.  In [3] se dau catevatabele cu astfel de valori comparative, la nivelul anului 1995.

10.3 Teste de primalitate probabiliste

In realizarea sistemului de criptare RSA trebuiesc generate aleator numere prime cu numarmare de cifre. Practic, se realizeaza aleator numere, a caror primalitate se testeaza, pana seajunge la un numar prim. Pentru teste se folosesc algoritmi probabilisti al caror avantajeste rapiditatea (complexitatea lor este   log n) dar care pot afirma uneori primalitateaunor numere care nu sunt prime. Aceste erori se pot reduce la o marja acceptabila prinmultiplicarea testelor.

Problema generarii aleatoare este posibila din urmatorul considerent. Un rezultat din

teoria numerelor (numit Teorema rarefierii numerelor prime ) afirma ca sunt circa n/log nnumere prime mai mici decat  n. Astfel, pentru un modul de 512 biti, un numar  p  de 256biti are o probabilitate 1/logp ≈ 1/177 de a fi prim. Deci se fac ın medie cam 177 generaride numere  p  pentru a obtine un numar prim (daca se foloseste si faptul ca se genereazanumai numere impare, aceasta reduce la jumatate numarul de ıncercari). Rezulta ca estepractic sa se construiasca numere mari, care sunt   probabil prime , pe baza carora sa serealizeze criptarea RSA. Vom detalia acest procedeu.

Definitia 10.1   O problem˘ a de decizie este o problem˘ a care pune o ıntrebare al c˘ arui r˘ aspuns este dicotomic (Da/Nu).

Page 120: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 120/177

Page 121: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 121/177

6   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

Definitia 10.4   Dac˘ a   p  ≥  3   este prim, pentru orice num˘ ar   a  ≥  0  se defineste simbolul Legendre prin 

a

 p

 =

0   dac˘ a  a ≡ 0 (mod p)1   dac˘ a   a  este rest p˘ atratic modulo  p

−1   dac˘ a   a  nu este rest p˘ atratic modulo  p

Teorema 10.1 asigura ca  a( p−1)/2 ≡ 1 (mod p) daca si numai daca  a  este rest patraticmodulo p. Daca  a  este multiplu de  p, evident  a( p−1)/2 ≡ 0 (mod p).   In sfarsit, daca  a  nueste rest patratic modulo  p, avem  a( p−1)/2 ≡ −1 (mod p) deoarece  a p−1 ≡  1, a( p−1)/2 ≡1 (mod p) si −1 este singura radacina patrata diferita de 1 modulo p. Este deci adevarata

teorema urmatoare:

Teorema 10.2   Dac˘ a  p  este num˘ ar prim impar, atunci 

a

 p

≡ a

p−12 (mod p)

Simbolul lui Legendre se poate generaliza astfel:

Definitia 10.5   Fie   n   =   pe11   . . . pekk   un num˘ ar impar descompus ın factori primi. Dac˘ a 

a ≥ 0  este un num˘ ar ıntreg, se defineste simbolul Jacobi prin 

a

n

 =

ki=1

a

 pi

ei

Exemplul 10.4   S˘ a calcul˘ am simbolul Jacobi 

6278

9975

. Descompunerea ın factori primi 

a lui  9975  este  9975 = 3 · 52 · 7 · 19. Avem atunci 6278

9975

 =

6278

3

6278

5

2 6278

7

6278

19

 =

2

3

3

5

2 6

7

 8

19

 = (−1)(−1)2(−1)(−1) =

−1

Fie  n >  1 un numar impar. Daca  n  este prim, atunci pentru orice  a, avem

an

 ≡

an−12 (mod n).

Invers, daca   n   nu este prim, este posibil ca egalitatea de sus sa fie falsa. Dacacongruenta se verifica, spunem ca  n este  num˘ ar Euler pseudo - prim  pentru baza  a.

De exemplu, 91 este pseudo-prim pentru baza 10 deoarece10

91

 = −1 = 1045 (mod 91).

Putem enunta acum testul de primalitate Solovay - Strassen pentru un numar imparn:

Page 122: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 122/177

10.3. TESTE DE PRIMALITATE PROBABILISTE    7

1. Se genereaza aleator un numar  a ∈ Z ∗n;

2.   x ←−

a

n

;

3.   if  x = 0  then  ”n nu este prim”

4.   y ←− an−12 (mod n);

5.   if  x ≡ y (mod n)  then  ”n  este prim”,

else  ”n  nu este prim”.

Pentru evaluarea  an−12 (mod n) se poate folosi un algoritm de complexitate  O((log n)3).

Problema este cum putem evalua simbolul Jacobi  x ←−

a

n

 fara a factoriza pe  n  (altfel

ne ınvartim ıntr-un cerc vicios !!).Acest lucru se poate realiza folosind cateva proprietati. Anume:

Lema 10.1   Fie  n  un ıntreg pozitiv impar. Atunci 

1. Dac˘ a  x ≡ y  (mod n)  atunci x

n

 =y

n

;

2.

2

n

 =

  1   dac˘ a    n ≡ ±1 (mod 8)−1   dac˘ a    n ≡ ±3 (mod 8)

3.

x · y

n

 =

x

n

·

y

n

;

Lema 10.2   Fie  m, n  dou˘ a numere ıntregi pozitive impare. Atunci 

m

n

 = − n

m   dac˘ a    m ≡ n ≡ 3 (mod 4)nm

  altfel 

Lasam ca exercitiu demonstratiile celor doua leme.

Exemplul 10.5   S˘ a calcul˘ am simbolul Jacobi 

7411

9283

. Vom avea succesiv:

7411

9283

 = −

9283

7411

 = −

1872

7411

 = −

  2

7411

4  117

7411

 = −

 117

7411

 = −

7411

117

 =

 40

117

 = −

  2

117

3   5

117

 =

  5

117

 =

117

5

 =

2

5

 = −1

Page 123: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 123/177

8   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

O analiza sumara arata ca se poate calcula simbolul Jacobi mn folosind cel mult O(log n)

reduceri modulare, fiecare ın timp  O((log n)2). Deci complexitatea poate fi estimata laO((log n)3)3.

Se poate arata ca numarul de baze  a  pentru care un numar neprim  n  este pseudo -prim Euler, este cel mult  n/2. Aceasta duce la concluzia ca testul de primalitate Solovay- Strassen este un algoritm Monte Carlo pozitiv pentru problema de descompunere, cuprobabilitate de eroare 1/2. Un studiu referitor la complexitatea aplicarii acestui test deprimalitate si a probabilitatii de eroare se poate gasi ın [1].

10.3.2 Algoritmul Miller - Rabin

Acest algoritm este cunoscut si sub numele de  testul de tare pseudo - primalitate . Formasa este:

1. Se descompune  n − 1 = 2km  unde  m  este impar;

2. Se alege aleator ıntregul a ∈ [2, n − 2];

3.   b ←− am (mod n)

4.   if  b ≡ 1 (mod n)  then  ”n este prim”, Stop;5.   for i ←− 0  to  k − 1  do

6.   if  b ≡ −1 (mod n)  then  ”n  este prim”, Stop,

else  b ←− b2 (mod n)

7. ”n  nu este prim”, Stop

Evident, algoritmul este polinomial, de complexitate  O((log n)3).

Teorema 10.3   Algoritmul Miller - Rabin este un algoritm Monte Carlo pozitiv pentru problema de descompunere.

Demonstrat ie : Sa presupunem prin absurd ca algoritmul raspunde ca un numar prim  nse poate descompune, adica  am ≡ 1 (mod n). Vom urmari sirul de valori pe care le ia  b.Cum la fiecare iterare  b  este ridicat la patrat, acest sir este  am, a2m, . . . , a2

k−1m. Vom aveadeci

a2im ≡ −1 (mod n) pentru 0 ≤ i ≤ k − 1.

3O analiza mai detaliata poate reduce aceasta complexitate la  O((log n)2).

Page 124: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 124/177

10.3. TESTE DE PRIMALITATE PROBABILISTE    9

Deoarece  n   este prim, teorema lui Fermat da  a2km ≡  1 (mod n). Deci a2

k−1m este oradacina patrata a lui 1 modulo  n.

Din faptul ca   n   este prim, singurele radacini patrate ale lui 1 sunt   ±1. Aceastaafirmatie se poate arata astfel:

x este radacina patrata a lui 1 daca si numai daca n|(x − 1)(x +1). Cum n  este prim,avem n|(x − 1) (deci  x ≡ 1 (mod n)) sau  n|(x + 1) (adica  x ≡ −1 (mod n)).

Cum prin ipoteza  a2k−1m ≡ −1 (mod n), avem  a2k−1m ≡ 1 (mod n).

Atunci a2k−2m trebuie sa fie radacina patrata a lui 1, diferita de  −1, deci

a2k−2m ≡ 1 (mod n).

Procedand iterativ, se ajunge la  am ≡ 1 (mod n), ceea ce contrazice faptul ca algorit-

mul nu s-a oprit la Pasul 4.Daca  n  este un numar impar neprim, atunci maxim 1/4 din numerele  a ∈ Z ∗n   conducla un rezultat fals.   In [4] se apreciaza ca numarul maxim de astfel de valori este  φ(n)/4,pentru  n = 9.

De exemplu, pentru   n   = 91 (neprim), multimea valorilor   a   pentru care algoritmulda raspuns incorect este   {9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82}. Pentrun = 105 orice valoare a lui  a conduce la un rezultat corect.

Deci, algorituml Miller-Rabin este un algoritm Monte-Carlo pozitiv de probabilitate = 1/4.  

In general se considera ca testul Miller - Rabin este mai bun decat Solovay - Strassen.

Cateva motive:

1. Solovay - Strassen este computational mai complex.

2. Implementarea lui Solovay - Strasen este mai dificila din cauza calculului simboluluiJacobi.

3. Probabilitatea de eroare pentru Solovay - Strasen este 1/2, pe cand la Miller - rabinea se reduce la 1/4.

4. Deoarece orice valoare a lui   a   pentru care testul Miller - Rabin este gresit este

un numar Euler pseudo-prim (vezi Exercitiul 10.8), un test Miler - Rabin nu esteniciodata inferior unui test Solovay - Strasen.

Deoarece orice implementare a unui sistem  RSA  trebuie ınsotita de un generator denumere prime mari, sunt necesare construct ii care sa genereze rapid astfel de numere.Schneier propune urmatoarea varianta ([3]):

1. Se genereaza un numar aleator  p de  n biti.

2. Se verifica daca primul si ultimul bit sunt 1.

Page 125: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 125/177

10   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

3. Se verifica daca  p nu este divizibil cu numere prime mici (3, 5, 7, 11, . . .)4.

4. Se aplica testul Miller - Rabin cu o valoare aleatoare  a. Daca  p  trece testul, se iaalta valoare pentru a. Cinci teste sunt suficiente. Pentru viteza, se recomanda sa seia valori mici pentru a. Daca p esueaza la unul din cele cinci teste, se reia algoritmul.

Se apreciaza ca utilizarea pasului 3, cu o testare a tuturor numerelor prime pana la 256elimina aproape 80% din cazurile nefavorabile.

10.4 Anexa

10.4.1 Algoritmul lui Euclid extins

Dupa cum se stie, algoritmul lui Euclid constituie o modalitate eficace de determinare acelui mai mare divizor comun a doua numere ıntregi pozitive. El poate fi extins pentru adetermina si inversele elementelor dintr-un corp finit  Z n.

Sa reamintim ıntai algoritmul lui Euclid (forma clasica):Fie  r0, r1  ∈ N ∗. Se efectueaza secventa de ımpartiri succesive:

r0 = q 1r1 + r2   0 < r2  < r1r1 = q 2r2 + r3   0 < r3  < r2

... (1)

rm−2  =  q m−1rm−1 + rm   0 < rm  < rm−1rm−1  =  q mrm.

Deoarece (r0, r1) = (r1, r2) =   . . .  = (rm−1, rm) =  rm, rezulta ca cel mai mare divizorcomun dintre  r0   si r1  este  rm.

Sa definim acum sirul  t0, t1, . . . , tm  astfel:

t0 = 0, t1 = 1t j  = t j−2 − q  j−1t j−1 (mod r0), j  ≥ 2 (2)

Teorema 10.4   Pentru  0 ≤  j  ≤ m  avem  r j  ≡ t jr1  (mod r0)  unde  r j   si  t j  sunt definite de (1)  respectiv  (2).

Demonstrat ie : Se foloseste o inductie dupa j . Pentru j  = 0 si j  = 1 afirmatia este banala.O presupunem adevarata pentru j  = i − 1 si j  = i − 2 (i ≥ 2) si sa o aratam pentru j  = i.Toate calculele se fac modulo  r0.

Conform ipotezei de inductie,  ri−2 = ti−2r1, ri−1 = ti−1t1. Acum:ri  =  ri−2 − q i−1ri−1  =  ti−2r1 − q i−1ti−1r1 = (ti−2 − q i−1ri−1)r1 = tir1.  

Corolarul 10.1   Dac˘ a  (r0, r1) = 1  atunci  tm =  r−11   (mod r0).

4Multe implementari testeaza divizibilitatea cu numerele prime mai mici decat 256. Eficienta estecrescuta daca se merge pana la 2000

Page 126: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 126/177

10.4. ANEX   A   11

Se poate da acum algoritmul extins al lui Euclid care pentru n > 1 si b ∈ Z ∗n

 va determinab−1 mod n (daca exista).

1. n0 ←− n, b0  ←− b, t0  ←− 0, t ←− 1

2. q  ←−

n0

b0

, r ←− n0 − q · b0

3.   while   r > 0  do

3.1. temp ←− t0 − q · t3.2.   if   temp ≥ 0 then  temp ←− temp   (mod n)

else  temp ←− n − ((−temp) (mod n))3.3. n0 ←− b0, b0 ←− r, t0  ←− t, t ←− temp

3.4. q  ←−n0

b0

, r ←− n0 − q · b04.   if  b0 = 1  then  b  nu are inversa  mod n

else b−1 (mod n) = t.

Exemplul 10.6   S˘ a calcul˘ am  28−1 mod 75, folosind algoritmului lui Euclid extins. Vom avea pe rˆ and:

n0   b0   q r t0   t temp75 28 2 19 0 1 7328 19 1 9 1 73 319 9 2 1 73 3 679 1 9 0 3 67

Deci  28−1 mod 75 = 67.

10.4.2 Teorema chineza a resturilor

Teorema 10.5  Se dau numerele  p1, p2, . . . , pr prime ıntre ele si fie  n  =  p1 p2 . . . pr. Atunci sistemul de ecuat ii 

x ≡ ai   (mod pi),   1 ≤ i ≤ r

are solut ie comun˘ a ın intervalul   [0, n − 1].

Demonstrat ie : Pentru fiecare  i,   ( pi,n/pi) = 1; deci exista numerele  yi  astfel ıncat

n

 pi· yi  ≡ 1 (mod pi).

De asemenea, pentru  j  = i, deoarece  p j|(n/pi), avem  n

 pi· yi ≡ 0 (mod p j).

Alegem

x =r

i=1

n

 pi· yi · ai (mod n).

Page 127: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 127/177

12   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

Pentru orice   i, x   este o solutie a ecuatiei   x   ≡   ai   (mod pi) deoarece ın   Z  pi   avem

x =   n pi

· yi · ai =  ai.  

Exemplul 10.7   Fie  r  = 3, p1  = 7, p2  = 11, p3  = 13, deci  n  = 1001. Notˆ and  mi  =  n

 pi,

avem   m1   = 143, m2   = 91   si   m3   = 77. Folosind algoritmul lui Euclid, se obt ine   y1   =5, y2 = 4, y3 = 12. Solut ia general˘ a este atunci 

x = 715a1 + 364a2 + 924a3 (mod 1001).De exemplu, pentru sistemul 

x ≡ 5 (mod 7), x ≡ 3 (mod 11), x ≡ 10 (mod 13) formula de sus d˘ a 

x = 715 · 5 + 364 · 3 + 924 · 10 (mod 1001) = 13907 (mod 1001) = 894.Verificarea se realizeaz˘ a reducˆ and  x  modulo  7,  11 13.

10.5 Exercitii

10.1   Demonstrat i lemele 10.1 si 10.2.

10.2   Fie  p, q  numere prime impare distincte si  n =  pq . Definim 

λ(n) =

  ( p − 1)(q − 1)

cmmdc( p − 1, q − 1)

Folosim un sistem de criptare  RSA   ın care s-a f˘ acut modificarea  a · b ≡ 1 (mod λ(n)).(a)   Demonstrat i c˘ a operat iile de criptare si decriptare sunt operat ii inverse si ın acest 

sistem.(b)   Dac˘ a   p   = 37, q   = 79   si   b   = 7, calculat i valoarea exponentului   a   atˆ at ın acest 

sistem cˆ at si ın sistemul  RSA  normal.

10.3   S˘ a se arate c˘ a pentru orice num˘ ar  n   egal cu produsul primelor  k  (k  ≥  2)  numere prime impare testul Miller - Rabin d˘ a rezultat corect pentru orice ıntreg  a ∈ [2, n − 2].

10.4   O modalitate curent˘ a de a m˘ ari viteza de decriptare foloseste teorema chinez˘ a a restului. S˘ a presupunem c˘ a  n  =  pq   si  dK (y) =  ya (mod n). Definim  d p  =  d  (mod  ( p −1)), dq   =   d   (mod   (q  − 1))   si   M  p   =   q −1 (mod p), M q   =   p−1 (mod q ). Vom considera algoritmul 

1. x p ←− ydp (mod p);2. xq  ←− ydq (mod q );3. x ←− M  p · q · x p + M q · p · xq  (mod n);4.   return( x).

Page 128: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 128/177

10.5. EXERCITII    13

(a)   Demonstrat i c˘ a valoarea  x  returnat˘ a este de fapt  yd (mod n).(b)   Pentru  p  = 1511, q  = 2003   calculat i  d p, dq, M  p, M q   si apoi decriptat i textul  y   =

152702   folosind algoritmul din acest exercit iu.

10.5   Pentru  n = 837,  851 1189  aflat i num˘ arul de baze  b  pentru care  n  este un num˘ arul n  este Euler pseudo-prim.

10.6   Scriet i un program pentru calculul simbolului Jacobi, folosind lemele 10.1 si 10.2.Singura operat ie de factorizare permis˘ a este ımp  art irea la  2. valori de test:

610

987 , 20964

1987 ,  1234567

11111111

10.7   Fie 

G(n) =

a|a ∈ Z ∗n,

a

n

≡ a

n−12 (mod n)

.

(a)   Demonstrat i c˘ a   G(n)   este subgrup al lui   Z n. Deci, conform Teoremei lui Lan-grance, dac˘ a subgrupul este propriu, atunci 

|G(n)| ≤ |Z ∗n|

2  ≤

 n − 1

2  .

(b)   S˘ a presupunem c˘ a  n = pk · q , unde  p   si  q  sunt numere impare prime ıntre ele,  peste prim si  k ≥ 2. Fie  a = 1 + pk−1 · q . Demonstrat i c˘ a 

a

n

≡ a

n−12 (mod n).

(c)   Fie  n  =  p1 p2 . . . ps   unde  pi   sunt numere prime impare distincte. S˘ a presupunem c˘ a  a ≡ 1 (mod p1)  si  a ≡ 1 (mod p2 p3 . . . ps), unde  u  este un non-reziduu p˘ atratic modulo p1  (un astfel de  a  exist˘ a, conform teoremei chineze a restului). Demonstrat i c˘ a 

a

n ≡ −1 (mod n), a

n−12 ≡ −1 (mod p2 p3 . . . ps)

(deci  an−12   ≡ −1 (mod n).

(d)   Dac˘ a  n  este un num˘ ar neprim impar, ar˘ atat i c˘ a   |G(n)| ≤ n − 1

2  .

(e)  Pe baza celor de mai sus, ar˘ atat i c˘ a probabiltatea de eroare a testului de primalitate Solovay - Strassen este cel mult  1/2.

10.8   S˘ a se arate c˘ a orice num˘ ar  a pentru care testul Miller - Rabin d˘ a rezultat fals este un num˘ ar Euler pseudo-prim. Reciproca este adev˘ arat˘ a dac˘ a si numai dac˘ a  n ≡ 3 (mod 4).

Page 129: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 129/177

14   PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

10.9   Fie  p  un num˘ ar prim impar si  cmmdc(a, p) = 1.a)   S˘ a presupunem c˘ a   i  ≥  2   si   b2 ≡  a  (mod pi−1). Demonstrat i c˘ a exist˘ a un  x  ∈  Z  p

unic astfel ca  x2 ≡ a (mod pi)  si  x ≡ b (mod pi−1). G˘ asit i o modalitate eifcient˘ a de calcul a lui  x.

(b)   Aplicat i punctul anterior ın urm˘ atoarea situat ie: plecˆ and de la congruent a  62 ≡17 (mod 19), aflat i r˘ ad˘ acinile p˘ atrate ale lui  17  modulo  192 si modulo  193.

(c) ∀i ≥ 1, ar˘ atat i c˘ a num˘ arul solut iilor congruent ei  x2 ≡ a (mod pi)  este  0  sau  2.

10.10   Folosind algoritmul lui Euclid extins, calculat i inversele:

17−1 (mod 101),   357−1 (mod 1234),   3125−1 (mod 9987)

10.11   Fie aplicat ia  u :  Z 105 −→ Z 3 × Z 5 × Z 7  definit˘ a prin 

u(x) = (x (mod 3), x (mod 5), x (mod 7))

S˘ a se g˘ aseasc˘ a o formul˘ a pentru  u−1 si s  a se determine cu ajutorul ei  u−1(2, 2, 3).

10.12   S˘ a se rezolve sistemul de congruent e 

x ≡ 12 (mod 25), x ≡ 9 (mod 26), x ≡ 23 (mod 27)

10.13   S˘ a se rezolve sistemul de congruent e 

13 · x ≡ 4 (mod 99),   15 · x ≡ 56 (mod 101)

Page 130: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 130/177

Bibliografie

[1] D. Stinton, Cryptography, Theory et Pratice , Second Edition, Chapman & Hall/CRC2002

[2] A. Salomaa,  Criptografie cu chei publice , Ed. Militara, 1994

[3] B. Schneier, Applied Cryptography , Second Edition, John Wiley & Sons, 1996

[4] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography ,

[5] R. Rivest, A. Shamir, L. Adleman,   A Method for Obtaining Digital Signatures and Public-Key Cryptosystems , Communications of the ACM, Vol. 21 (2), 1978, pages120–126.

15

Page 131: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 131/177

Prelegerea 11

Securitatea sistemului RSA

Vom trece ın revista cateva modalitati de atac ale sistemelor de criptare RSA.Ca o prima observatie, RSA nu rezista la un atac de tipul  meet-in-the middle , strategia

fiind cea prezentata ın cazul general al sistemelor de criptare cu cheie publica. De aceea,un sistem   RSA   este ınsotit permanent de un certificat generat conform unui protocolP KI   (Public Key Infrastructure) si – bineınteles – de un generator de numere prime.

11.1 Informatii despre  p   si  q 

Evident, cunoasterea lui  φ(n) este suficienta pentru spargerea sistemului.   In acest caz,totul se reduce la rezolvarea ın  N timesN   a sistemului

  pq    =   n( p − 1)(q − 1) =   φ(n)

sau - dupa substitutie - a ecuatiei

X 2 − (n − φ(n) + 1)X  +  n = 0

Deci, daca Oscar determina φ(n), el poate factoriza n  si sparge sistemul. Cu alte cuvinte,calculul lui  φ(n) nu este mai simplu decat factorizarea lui n.

De asemenea, o slabiciune consta ın alegerea unor numere  p, q  prime apropiate unulde altul.   In acest caz (cu  p > q ), vom avea ( p − q )/2 un numar foarte mic, iar ( p + q )/2un numar foarte apropiat de

 √ n.   In plus,

( p + q )2

4  − n =

 ( p − q )2

4  ,

deci membrul stang este patrat perfect.Atunci, pentru factorizarea lui  n  se testeaza toate numerele ıntregi  x >

 √ n  pana se

gaseste unul astfel ıncat x2−n este patrat perfect; fie acesta y2. Atunci vom avea imediat p =  x + y, q  =  x − y.

1

Page 132: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 132/177

2   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Exemplul 11.1   Pentru  n = 97343  se g˘ aseste  √ 

n = 311, 998. Apoi  3122

−n = 1, ceea ce 

conduce la factorizarea  p = 313, q  = 311.

Deci, ın general este recomandabil ca cele doua numere prime p si q  sa difere prin lungime.

11.2 Exponentul de decriptare

11.2.1 Factorizarea modulului stiind exponentul de decriptare

Daca exista un algoritm care calculeaza exponentul de decriptare a, acesta poate fi utilizat

ca  oracol 1 ıntr-un algoritm probabilist care descompune  n. Deci, se poate spune ca dacaa este descoperit, secretul factorizarii lui n  este compromis; deci Bob va trebui sa schimbenu numai exponentul de decriptare, ci si modulul n.

Algoritmul de descompunere care va fi descris este de tip Las Vegas.

Definitia 11.1   Fie   (0 ≤ < 1). Un algoritm tip Las Vegas este un algoritm probabilist care, pentru orice aparit ie a unei probleme, poate oferi un r˘ aspuns - totdeauna corect -sau poate esua si s  a nu dea nici un r˘ aspuns, cu probabilitate  .

Observatia 11.1  Un algoritm Las Vegas poate s˘ a nu dea r˘ aspuns, dar dac˘ a d˘ a - acest 

r˘ aspuns este sigur corect. Algoritmii Monte Carlo ın schimb dau totdeauna r˘ aspuns, desi acesta uneori este incorect.

Deci, daca avem un algoritm Las Vegas pentru rezolvarea unei probleme, putem sa ılapelam de mai multe ori, pana se obtine un raspuns. Probabilitatea ca el sa nu raspundala  m  tentative consecutive este  m.

Sa consideram un algoritm ipotetic   A   care calculeaza exponentul de decriptare   aplecand de la exponentul de criptare   b. Se poate descrie atunci un algoritm Las Vegascare utilizeaza A ca oracol. El este bazat pe studiul radacinilor patrate ale unitatii modulon, cand  n  =   pq, p   si  q  fiind numere prime impare.   In acest caz  x2

≡ 1 (mod p) are ca

singure solutii x ≡ ±1 (mod p). La fel,  x2 ≡ 1 (mod q ) are solutiile  x ≡ ±1 (mod q ).Din Teorema chineza a resturilor rezulta ca   x2 ≡   1 (mod n) este echivalenta cu

x2 ≡  1 (mod p) si  x2 ≡   1 (mod q ). Vom avea deci patru radacini patrate ale unitatiimodulo n, care pot fi calculate cu Teorema chineza a resturilor. Doua sunt solutiile triviale ±1 (mod n), iar celelalte - numite  netriviale  - sunt opuse modulo  n.

Exemplul 11.2   Fie  n = 403 = 13 · 31. Cele patru r˘ ad˘ acini p˘ atrate ale lui  1  modulo  403sunt  1, 92, 311   si  402.

1program care raspunde numai cu  Da/Nu  la o ıntrebare - tip a utilizatorului

Page 133: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 133/177

11.2. EXPONENTUL DE DECRIPTARE    3

Sa presupunem acum ca   x   este o radacina patrata netriviala a lui 1 modulo   n, deci osolutie a ecuatiei  x2 ≡ 1 (mod n). Avem

n|(x − 1)(x + 1)Dar  n   nu poate divide nici unul din factorii din membrul drept. Deci va trebui ca

cmmdc(x+1, n) = p, cmmdc(x−1, n) = q  - sau invers -  cmmdc(x+1, n) = q, cmmdc(x−1, n) =  p. Acest cel mai mare divizor comun se poate calcula fara a sti descompunerealui  n, construind algoritmul de mai jos, care foloseste  A ca oracol:

1.   Se genereaza aleator  w ∈ Z ∗n, w = 1;2. x ←− cmmdc(w, n);3.   if  x > 1  then Stop (cu  p =  x  sau  q  =  x);

4. a ←− A(b);5.   Se descompune ab − 1 = 2sr, r   impar;6. v ←− wr (mod n);7.   if  v ≡ 1 (mod n)  then  Stop (esec);8.   while  v ≡ 1 (mod n)  do

8.1. v0 ←− v;8.2. v ←− v2 (mod n);

9.   if  v0 ≡ −1 (mod n)  then Stop (esec);else x ←− cmmdc(v0 + 1, n), Stop ( p =  x  sau  q  =  x).

Deci, cunoasterea unei radacini patrate netriviale a lui 1 modulo n determina des-compunerea

lui  n printr-un calcul de complexitate polinomiala.

Exemplul 11.3   Fie   n   = 89855713, b   = 34986517, a   = 82330933   si s  a consider˘ am c˘ a s-a tras aleator  w = 5. Vom avea:

ab − 1 = 23 · 360059073378795.La pasul  6  se obt ¸ine  v  = 85877701, iar la pasul  8.2,   v   = 1. La pasul  9   se va obt ine 

atunci  cmmdc(85877702, n) = 9103.Acesta este un factor al lui  n; cel˘ alalt este  n/9103 = 9871.

Trebuie demonstrata urmatoarea afirmatie:

Afirmatia 11.1  Procedeul descris este un algoritm.

Demonstrat ie : Ca o prima observatie, daca exista suficienta sansa si w  este multiplu de  psau  q , atunci el se factorizeaza imediat (pasul 2).

Daca w  este prim cu  n, atunci se calculeaza succesiv wr, w2r, . . . prin ridicari succesivela patrat, pana se ajunge la un   t   cu   w2tr ≡   1 (mod n). Deoarece   ab − 1 = 2sr  ≡0 (mod φ(n)), se stie ca  w2sr ≡ 1 (mod n). Deci bucla  while  va efectua maxim  s  iteratii.

La sfarsitul buclei se va gasi o valoare   v0 ≡   1 (mod n) cu   v20 ≡   1 (mod n). Daca

v0 ≡ −1 (mod n), algoritmul esueaza; altfel,  v0  este o radacina patrata netriviala a lui 1modulo n  care - la pasul 12 - permite descompunerea lui  n.  

Se poate arata ([2]) ca acest algoritm se termina cu succes cu probabilitate 1/2.

Page 134: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 134/177

4   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

11.2.2 Atacul lui Wiener

In [4] este dezvoltat un atac asupra sistemului de criptare  RSA   ın care exponentul dedecriptare  a este mic; mai exact, trebuie verificate conditiile

3a < n1/4, q < p < 2q.

Deci, daca n  are j  biti, atunci atacul va fi eficient pentru orice sistem de criptare  RS A ıncare a are mai putin de  j/4 − 1 biti, iar  p  si  q  sunt suficient de apropiati2.

Din conditia a · b ≡ 1 (mod φ(n)) rezulta ca exista un numar ıntreg  t  astfel ca

b−

φ(n) = 1.

Pe de-alta parte, din  n =  pq > q 2 rezulta  q <√ 

n, deci

0 < n − φ(n) = pq − ( p − 1)(q − 1) = p + q − 1 <  2q  + q − 1 <  3q < 3√ 

n

Pe baza acestor relatii, putem evalua

b

n −   t

a

=

ab − tn

an

=

1 + t(φ(n) − n)

an

< 3t

√ n

an  =

  3 · t

a√ 

n

Deoarece  t < a (evident), vom avea 3 · t < 3 · a < n

1/4

si deci b

n −   t

a

<  1

a · n1/4  <

  1

3 · a2.

Rezulta ca valoarea fractiei   t/a   este foarte apropiata de valoarea lui   b/n. Din teoriafractiilor continue se stie ca orice aproximare suficient de buna a lui   b/n   este una dinconvergentele dezvoltarii ın fractie continua a lui b/n. Sa descriem acest procedeu.

Definitia 11.2  O fract ie continu˘ a (finit˘ a) este un  m-tuplu de numere naturale  [q 1, q 2, . . . , q  m]care reprezint˘ a notarea expresiei 

q 1 +  1

q 2 +   1q3+...+   1

qm

Fie  a, b  doua numere ıntregi pozitive prime ıntre ele si (q 1, q 2, . . . , q  m) secventa caturilor

obtinute prin aplicarea algoritmului lui Euclid. Se verifica usor ca  a

b  = [q 1, q 2, . . . , q  m].

Vom spune ca [q 1, q 2, . . . , q  m] este dezvoltarea ın fract ie continu˘ a a lui  a/b.

2Bob poate fi tentat sa aleaga astfel de parametri, pentru cresterea vitezei de decriptare; reamintim,

RSA  este un sistem relativ lent.

Page 135: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 135/177

11.2. EXPONENTUL DE DECRIPTARE    5

Acum, pentru fiecare   j   (1 ≤

  j ≤

  m) definim   C  j   = [q 1, q 2, . . . , q   j ] ca fiind a   j-aconvergenta a lui [q 1, q 2, . . . , q  m]. Fiecare  C  j   se poate scrie ca un numar rational   c j/d j,unde valorile  c j   si d j  se pot defini recursiv astfel:

c j  =

1 daca  j  = 0q 1   daca  j  = 1q  j · c j−1 + c j−2   daca  j ≥ 2

d j  =

0 daca  j  = 01 daca  j  = 1q  j · d j−1 + d j−2   daca  j ≥ 2

Exemplul 11.4   S˘ a dezvolt˘ am ın fract ie continu˘ a  34/99. Folosind algoritmul lui Euclid se obt ine   [0, 2, 1, 10, 3], care este notarea fract iei 

34

99 = 0 +

  1

2 +   11+   1

10+13

Convergent ele acestei fract ii sunt:

[0]   =    0[0, 2]   =    1/2

[0, 2, 1]   =    1/3[0, 2, 1, 10]   =    11/32

[0, 2, 1, 10, 3]   =    34/99

Este adevarata urmatoarea teorema ([4],[2]):

Teorema 11.1   Dac˘ a  cmmdc(a, b) = cmmdc(c, d) = 1   si 

ab − c

d

<  1

2 · d2

atunci  c/d   este una din convergent ele dezvolt˘ arii ın fract ie continu˘ a a lui  a/b.

Sa revenim acum la sistemul de criptare   RSA.   In conditiile 3a < n1/4 si   q < p <   2q ,putem da urmatorul algoritm de factorizare a lui  n:

1. Plecand de la   n   si   b   (publice), se afla dezvoltarea ın fractie continua a lui   b/n

(folosind algoritmul lui Euclid).

2. Se parcurg pe rand convergentele acestei dezvoltari. Daca exista convergenta   t/a

care verifica  t|(a · b − 1), se calculeaza  φ(n) = a · b − 1

t  .

3. Cu  n  si  φ(n) se afla  p  si  q  conform metodei din prima sectiune a acestei prelegeri.

Daca sunt ındeplinite ipotezele de la ınceputul acestui paragraf, Teorema 11.1 asigura caexista o convergenta care satisface pasul 2 al algoritmului.

Tinand cont de observatiile anterioare, algoritmul lui Wiener poate fi detaliat:

Page 136: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 136/177

6   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Intrare: [q 1, q 2, . . . , q  m] - dezvoltarea ın fractie continua a lui b/n.Algoritm:1   c0 ←− 1, c1 ←− q 1, d0 ←− 0, d1 ←− 1;2.   for  j ←− 1  to m do

2.1.   if  c j|(d j · b − 1)  then2.1.1. m ←− (d j · b − 1)/c j ;2.1.2.   Fie  p, q  radacinile ecuatiei  x2 − (n − m + 1)x + n = 02.1.3.   if  p, q  ∈ Z n   then return( p, q );

2.2. j ←−  j + 1;2.3. c j ←− q  j · c j−1 + ck−2, d j ←− q  j · d j−1 + d j−2;

3.   return(”esec”);

Exemplul 11.5   S˘ a presupunem c˘ a  n  = 160523347, b = 60728973. Dezvoltarea ın fract ie continu˘ a a lui  b/n  este 

[0, 2, 1, 1, 1, 4, 12, 102, 1, 1, 2, 3, 2, 2, 36]

Primele convergent e sunt:   0, 1

2, 1

3, 2

5, 3

8, 14

37 . . .

Primele cinci convergent e nu verific˘ a condit ia de divizibilitate. Pentru   14/37   avem ıns  a:

m = 37 · 60728973 − 1

14  = 160498000

Rezolvˆ and ecuat ia  x2 − 25348x + 160523347 = 0  obt inem r˘ ad˘ acinile  12347   si  13001. Deci avem factorizarea 

160523347 = 12347 · 13001

11.3 Informatie partiala despre textul clar

Sa studiem putin informatia din textul clar care ar putea  tr˘ ada  sistemul de criptare RSA.Stiind ca y  =  eK (x), vom considera doua exemple de informatie partiala data de y  desprex:

1.   par(y) - da valoarea ultimului bit din scrierea binara a lui  x;

2.   jum(y) - va da 0 daca 0 ≤ x < n/2,   1 daca  n/2 ≤ x ≤ n − 1.

Vom arata ([3]) ca orice algoritm care poate calcula par(y) sau j um(y) poate fi utilizat caoracol pentru regasirea textului clar  x. Altfel spus, a calcula una din aceste functii estela fel de dificil cu a decripta tot textul  y.

Faptul ca cele doua functii sunt polinomial echivalente rezulta din

 jum(y) = par(y · eK (2) mod n)   par(y) = jum(y · eK (2−1) mod n)

Page 137: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 137/177

11.3. INFORMATIE PARTIAL ˘ A DESPRE TEXTUL CLAR    7

si din relatia eK (x1x2) = eK (x1)eK (x2).

Sa aratam acum cum se poate calcula   x   =   dK (y) cu ajutorul unui oracol care davaloarea jum(y):

1. k ←− [log2n];2.   for   i = 0  to   k  do

2.1. yi ←−  jum(y)2.2. y ←− (y · eK (2)) mod n

3. jos

←−0;

4. sus ←− n;5.   for   i = 0  to   k  do

5.1. mijloc ←− ( jos + sus)/2;5.2.   if  yi = 1  then  jos ←− mijloc

else  sus ←− mijloc6. x ←− [sus]

La pasul 2 se calculeaza yi = jum(y · (eK (2))i) = jum(eK (x · 2i)) pentru 0 ≤ i ≤ [log2  n].Se observa ca

 jum(eK (x)) = 0 ⇐⇒ x ∈

0, n2

 jum(eK (2x)) = 0 ⇐⇒ x ∈

0, n

4

n

2, 3n

4

 jum(eK (4x)) = 0 ⇐⇒ x ∈

0, n

8

n

4, 3n

8

n

2, 5n

8

3n

4  ,

 7n

8

, etc.

In acest mod,  x se poate localiza printr-o cautare binara, realizata la pasii 7 − 11.

Exemplul 11.6   Fie   n   = 1457, b   = 779, iar textul criptat este   y   = 722. Calcul  am eK (2) = 946. S˘ a presupunem c˘ a oracolul  jum  din pasul  3  d˘ a urm˘ atoarele r˘ aspunsuri:

i   0 1 2 3 4 5 6 7 8 9 10yi   1 0 1 0 1 1 1 1 1 0 0

C˘ autarea binar˘ a este realizat˘ a ın tabelul:

Page 138: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 138/177

8   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

i jos mijloc sus0 0, 00 728, 50 1457, 001 728, 50 1092, 75 1457, 00

2 728, 50 910, 62 1092, 753 910, 62 1001, 69 1092, 754 910, 62 956, 16 1001, 695 956, 16 978, 92 1001, 696 978, 92 990, 30 1001, 697 990, 30 996, 00 1001, 698 996, 00 998, 84 1001, 699 998, 84 1000, 26 1001, 69

10 998, 84 999, 55 1000, 26998, 84 999, 55 999, 55

Textul clar este deci  x = [999, 55] = 999.

11.4 Algoritmi de descompunere ın factori primi

Sunt extrem de numeroase lucrarile care trateaza descompunerea numerelor ın factoriprimi. De aceea aici vom face doar o trecere ın revista a celor mai cunoscuti algoritmi defactorizare.

Astfel, cel mai simplu pare a fi   ciurul lui Eratostene   care consta ın ıncercarea deımparti numarul n impar prin toate numerele ıntregi impare din intervalul [3,

√ n]. Pentru

n < 1012

tehnica este destul de eficienta.

11.4.1 Metoda p − 1

Un algoritm simplu care se poate aplica uneori si la numere mari este metoda   p − 1enuntata de Pollard ın 1974. El foloseste esential trei variabile de intrare: numaruln   (impar) care trebuie descompus, o margine   B   si un numar oarecare   g ∈   [2, n − 1].Descrierea algoritmului este:

Intrare :   n,B,g.1. a ←− g

2.   for   j  = 2  to   B  do a ←− a j

mod n3. d ←− cmmdc(a − 1, n)4.   if  d > 1  then   ”d  este factor al lui  n”,  Stop

else   ”nu s-a gasit divizor al lui  n”

Sa vedem cum functioneaza acest algoritm:Presupunem ca p  este un divizor prim al lui n   si ca toti divizorii primi ai lui p − 1 – la

puterile la care apar ın descompunerea lui  p −1 – sunt mai mici decat B. Atunci p −1|B!.La terminarea ciclului de la pasul 2, avem

a ≡ gB! (mod n) deci   a ≡ gB! (mod p)

Page 139: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 139/177

11.4. ALGORITMI DE DESCOMPUNERE   IN FACTORI PRIMI    9

deoarece  p|n. Cum  g p−1

≡ 1 (mod p) conform teoremei lui Fermat (ın afara de cazul

cand  p|g) si cum ( p − 1)|B!, se obtine  a ≡ 1 (mod p).Deci, la pasul 3 se ajunge la  p|(a − 1) si p|n, de unde rezulta  p|d = (a − 1, n).Numarul d  este un divizor netrivial al lui n  (ın afara de cazul a  = 1 la pasul 3). Avand

un divizor netrivial  d, procesul se poate itera.

Exemplul 11.7   S˘ a consider˘ am  n  = 15770708441. Aplicˆ and metoda  p − 1  cu  B  = 180,se g˘ aseste  a = 11620221425, iar  d = 135979. Se ajunge la descompunerea final˘ a 

15770708441 = 135979 · 115979.Descompunerea a reusit deoarece  135978  are numai factori primi ”mici”:

135978 = 2 · 3 · 131 · 173. Luˆ and deci  B ≥ 173  se obt ine  135978|B!.

Observatia 11.2   Condit ia ca metoda s˘ a funct ioneze este ca divizorii primi  la puterilela care apar ın descompunerea lui  p−1 s˘ a fie mai mici decˆ at  b. Dac˘ a s-ar considera c˘ a doar divizorii primi s˘ a verifice aceast˘ a condit ie, rezultatul ar fi fals. Astfel, s˘ a consider˘ am  p = 17   si  B  = 3. Atunci  p − 1 = 24. Vom avea  2 <  3  dar  16  nu este un divixor al lui  3  !! 

Pentru valori relativ mici ale lui B  algoritmul este de complexitate polinomial scazuta(O(BlogB(log n)3)). Daca  B   creste pana la

 √ n, el va reusi totdeauna, dar nu va fi mai

rapid decat ciurul lui Eratostene.Deci slabiciunea metodei rezida ın faptul ca   n   trebuie sa admita un divizor   p   cu

proprietatea ca  p − 1 sa aiba numai factori primi mici. Pentru a rezista la acest atac, serecomanda folosirea numerelor prime tari.

Definitia 11.3   Se numeste num˘ ar prim tare un num˘ ar prim  p  care verific˘ a condit iile:1. p − 1  are un divizor prim mare  r;2. p + 1  are un divizor prim mare;3. r − 1  are un divizor prim mare.

Exista diversi algoritmi pentru generarea numerelor prime tari. Pentru exemplificare amales algoritmul lui Gordon:

1.   Se genereaza aleator doua numere prime mari s, t distincte.2.   Se alege un numar aleator  i0. Se afla primul numar prim de forma 2 · i · t + 1, undei ←− i0, i0 + 1, . . .. Fie  r  = 2 · i · t + 1 acest numar prim.3. p0 ←− 2 · (sr−2 (mod r)) · s − 1;4.   Se alege un numar aleator  j0. Se afla primul numar prim de forma  p0 + 2 · j · r · s,unde  j ←−  j0, j0 + 1, . . .. Fie  p =  p0 + 2 · j · r · s acest numar prim.5.   return( p)

Teorema 11.2   Num˘ arul  p  generat de algoritmul Gordon este un num˘ ar prim tare.

Page 140: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 140/177

10   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Demonstrat ie : Cum  r = s, vom avea  sr−1

≡1 (mod r) (Fermat). Deci  p0

 ≡1 (mod r) si

 p0 ≡ −1 (mod s). Acum:(1)   p − 1 = p0 + 2 · j · r · s − 1 ≡ 0 (mod r), deci p − 1 are pe  r  drept divizor prim.(2)   p + 1 = p0 + 2 · j · r · s + 1 ≡ 0 (mod s), deci  s este un divizor prim al lui  p + 1.(3)   r − 1 = 2 · i · t ≡ 0 (mod t), deci numarul prim t  divide pe  r − 1.  

Practic, generarea unui numar prim tare se realizeaza ın trei pasi:- Cu un generator de numere aleatoare, se genereaza numerele  s, t, i0, j0;- Se testeaza daca  s  si t sunt numere prime, folosind algoritmul Miller - Rabin;-  In caz afirmativ, se aplica algoritmul lui Gordon, bazat de asemenea pe algoritmul

Miller - Rabin.

De multe ori, pentru criptarea  RSA  este suficient sa se foloseasca numere prime mari p  cu proprietatea ca

  p − 1

2  este de asemenea numar prim.

Exemplul 11.8   ˆ In practic˘ a este folosit frecvent exponentul de criptare   b  = 3.   ˆ In acest caz ıns  a, este necesar ca  p − 1   si  q − 1  s˘ a nu fie divizibile cu  3. Rezultatul este o criptare extrem de rapid˘ a, deoarece se foloseste o singur˘ a ınmult ire modular˘ a si o singur˘ a ridicare la p˘ atrat modular˘ a.

De asemenea este utilizat des si  b = 216 + 1 = 65537. Acest num˘ ar are numai doi de 1  ın reprezentarea binar˘ a, asa c  a o criptare foloseste  16  ridic˘ ari la p˘ atrat modulare si oınmult ire modular˘ a.

11.4.2 Algoritmul lui Dixon si sita patratica

Algoritmul lui Dixon se bazeaza pe o idee extrem de simpla: daca se pot afla douanumere   x, y   cu   x ≡   y   (mod n) dar   x2 ≡   y2 (mod n), atunci   cmmdc(x − y, n) este undivizor netrivial al lui  n.

Metoda utilizeaza o baza B de factori primi ”mici”. Se cauta ıntai mai multe numerex  pentru care divizorii primi ai lui  x2 mod n  sunt ın B. Se formeaza apoi produse cuaceste numere ın asa fel ca fiecare factor prim al patratului produsului sa apara de unnumar par de ori. Aceasta conduce la o relatie x2

≡ y2 (mod n) care va da – eventual –

o descompunere a lui  n.

Exemplul 11.9   Fie   n   = 15770708441   si alegem mult imea  B= {2, 3, 5, 7, 11, 13}. Se-lect˘ am 

83409341562 ≡ 3 · 7 (mod n)120449429442 ≡ 2 · 7 · 13 (mod n)27737000112 ≡ 2 · 3 · 13 (mod n)

Dac˘ a se ia produsul acestor trei congruent e, se ajunge la 

(8340934156 · 12044942944 · 2773700011)2 ≡ (2 · 3 · 7 · 13)2 (mod n)

Page 141: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 141/177

11.5. ALTE TIPURI DE ATAC    11

Reducˆ and cont inutul parantezelor modulo  n, se obt ine 95034357852 ≡ 5462 (mod n).

Vom calcula acum  cmmdc(9503435785 − 546, 15770708441) = 115759,care va da un divizor  115759  al lui  n.

Fie B= { p1, p2, . . . , pB}; consideram un numar  C  ”putin” mai mare decat  B  (de exempluC  = B  + 10) si presupunem ca am gasit  C   relatii de forma

x2 j ≡  p

α1j

1   · pα2j

2   · . . . · pαBjB   1 ≤  j ≤ C 

Pentru fiecare  j  se considera vectorul binar (elementele sale se iau modulo 2)α j  = (α1 j, . . . , αBj ) ∈ Z B2  .

Daca se poate determina o submultime a acestor vectori a caror suma modulo 2 este(0, 0, . . . , 0), patratul produsului elementelor x j   corespunzatoare va avea fiecare divizor ınB  de un numar par de ori.

Exemplul 11.10   Revenind la Exemplul 11.9, cei trei vectori care se construiesc sunt α1 = (0, 1, 0, 1, 0, 0), α2  = (1, 0, 0, 1, 0, 1), α3 = (1, 1, 0, 0, 0, 1).Se verific˘ a imediat c˘ a  α1 + α2 + α3 ≡ (0, 0, 0, 0, 0, 0) (mod 2).

Evident, a cauta o submultime de C  vectori de suma nula modulo 2 revine la a cauta orelatie de dependenta liniara (ın Z 2) ıntre acesti vectori. Daca C > B, o asemenea relatieexista si poate fi gasita usor prin eliminare gaussiana.

Ar mai fi de vazut cum sa se obtina acei  x j   pentru care  x2

 j   se descompun ın factoriprimi din baza B. Sunt mai multe metode posibile pentru aceasta; de exemplu, ciurulpatratic - construit de Pomerance - foloseste numere ıntregi de forma

x j  = j  + [√ 

n], j  = 1, 2, . . . .

De remarcat ca daca B  este mare, este foarte posibil ca un ıntreg x j  sa se descompunaın B, dar numarul acestor  x j   trebuie sa creasca pentru a cauta relatiile de dependenta.Se arata ca alegerea optima pentru  B  este ın jur de 

e√ 

logn log logn.

11.5 Alte tipuri de atac

11.5.1 Atac bazat pe proprietati multiplicative ale criptarii  RS A

Fie m1, m2  doua texte clare si  c1  respectiv c2  textele criptate corespunzatoare. Vom avea

(m1m2)b ≡ mb1mb

2 ≡ c1c2  (mod n)

Aceasta proprietate de hmomorfism a criptarii poate oferi unui adversar activ posibilitateaunui atac cu text clar ales.

Page 142: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 142/177

12   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Sa presupunem ca  Oscar  vrea sa decripteze mesajul   c  =  mb (mod n) trimis de  Boblui   Alice , iar   Alice  are amabilitatea sa ıi decripteze lui   Oscar  orice text criptat primit(ınafara de   c, bineinteles). Atunci  Oscar  va alege un numar aleator  x ∈  Z ∗n, va calculac1   =   c · xb (mod n) si va solicita decriptarea lui.   Alice   va decripta pentru el   m1   =ca1  (mod n). Deoarece

m1 ≡ ca1 ≡ ca(xb)a ≡ mx (mod n)

Oscar  va afla imediat  m =  m1 · x−1 (mod n).Acest tip de atac este prevenit de obicei impunand anumite structuri speciale asupra

textelor clare.

11.5.2 Atac bazat pe un exponent mic de criptareAsa cum s-a aratat ın Exemplul 11.8, pentru marirea vitezei de criptare se preferaexponenti mici de criptare (cum este  b   = 3). Aceasta alegere are unele slabiciuni, carepermit atacuri ın anumite conditii.

Astfel, sa presupunem ca Alice  doreste sa trimita acelasi text clar  m  la trei destinataridiferiti, care au modulele  ni, dar acelasi exponent de criptare  b  = 3. Deci textele criptatevor fi  ci = m3 (mod ni)   i = 1, 2, 3.   Oscar  le intercepteaza si rezolva sistemul

x ≡ c1  (mod n1), x ≡ c2 (mod n2), x ≡ c3 (mod n3)

folosind teorema chineza a resturilor, care asigura existenta unui   x ∈   [0, n1 ·  n2 ·  n3).Deoarece   m3 < n1 · n2 · n3, va rezulta ca   x   =   m3. Deci   Oscar   va afla textul clar   mextragand radacina de ordinul 3 din solutıa  x.

In general, exponenti mici de criptare asigura o securitate redusa pentru mesajele micim: daca  m < n1/b atunci textul clar poate fi dedus din textul criptat  c  =  mb calculandradacina de ordin  b a lui c.

Folosirea unui modul comun de criptare de catre mai multi utilizatori permite deasemenea un atac usor. Sa presupunem ca Alice  trimite acelasi mesaj m  catre doi utiliza-otri care au cheile publice  b1, b2  dar acelasi modul  n. Deci

c1 ≡ m

b1

(mod n), c2 ≡ m

b2

(mod n).Fara a micsora generalitatea, putem presupune ca   cmmdc(b1, b2) = 1.   Oscar  va folosialgoritmul lui Euclid pentru a determina numerele ıntregi r, s astfel ca

r · b1 + s · b2 = 1

Unul din numerele   r, s  este negativ; sa presupunem ca este   r  (pentru  s  negativ se pro-cedeaza analog). Atunci  Oscar  obtine textul clar  m  folosind egalitatea

(c−11   )−r · cs

2 ≡ m (mod n)

Page 143: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 143/177

11.6. ALTE SISTEME DE CRIPTARE   INRUDITE CU  RSA   13

11.5.3 Atacuri ciclice

Fie  c =  mb (mod n) un text criptat si  k  un ıntreg pozitiv astfel ca

cbk ≡ c (mod n)

(un astfel de   k   exista totdeauna, deoarece criptarea   RSA  este de fapt o permutare ınspatiul  Z n  al textelor clare). Rezulta ca

cbk−1 ≡ m (mod n)

Aceasta observatie conduce la un   atac ciclic :   Oscar   calculeaza   cbi (mod n) pentru   i   =

1, 2, . . .   pana gaseste un   k  astfel ca   cbk

≡   c   (mod n). Atunci va decripta   c  ın   cbk−1

≡m (mod n).

Un  atac ciclic generalizat   consta ın aflarea celui mai mic ıntreg pozitiv   k   astfel cacmmdc(cbk − c, n) >  1. Vom avea implicatia

cbk ≡ c (mod p), cbk ≡ c (mod q ) =⇒   k =  p

si similarcbk ≡ c (mod p), cbk ≡ c (mod q ) =⇒   k =  q 

In ambele cazuri s-a obtinut factorizarea lui n.

Pe de-alta parte, daca

cbk ≡ c (mod p), cbk ≡ c (mod q ) =⇒   k =  nsicbk ≡ c (mod n)

In acest caz s-a reusti decriptarea  m =  cbk−1 (mod n).Folosirea unor numere prime tari asigura o protectie suficienta pentru acest gen de

atac.

11.6 Alte sisteme de criptare ınrudite cu RSA

11.6.1 Sistemul de criptare RabinSistemul de criptare Rabin este o varianta a sistemului RSA (propusa ın 1979), care oferao securitate de calcul echivalenta. Descrierea sa este:

Fie  n   =   pq   unde  p, q   sunt numere prime distincte,   p, q  ≡   3 (mod   4). Se iaP  = C= Z n   si K= {(n,p,q,B) | 0 ≤ B ≤ n − 1}.Pentru cheia  K  = (n,p,q,B) se definesc:

eK (x) = x(x + B) (mod n)   dK (y) =

 B2

4  + y −  B

2

Page 144: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 144/177

14   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Observatia 11.3  Numerele prime  n  cu  n≡

3 (mod 4)  se numesc ”numere Blum”.

Exista patru texte clare distincte care se pot cripta ın acelasi text. Sa detaliem aceastaafirmatie:

Fie  α una din cele patru radacini patrate modulo  n  ale unitatii, si  x ∈ Z n. Efectuamcalculele

eK 

α

x + B

2

−  B

2

 =  α2

x +

 B

2

2

B

2

2

= x2 + Bx  =  eK (x)

(calculele s-au realizat ın  Z n, iar ımpartirea la 2 si 4 s-a facut prin ınmultirea ın  Z ncu 2−1 respectiv 4−1).

Cele patru texte clare care se cifreaza ın  eK (x) sunt

x,   −x − B, α(x + B/2) − B/2 si −α(x + B/2) − B/2,

unde  α  este o radacina patrata netriviala a unitatii modulo  n.Verificarea este imediata.In general, Bob  nu are nici un mijloc de a distinge care din cele patru mesaje este cel

corect, daca nu dispune de informatii suplimentare.Sa vedem cum se realizeaza decriptarea.   Bob   primeste mesajul criptat  y   si ıncearca

sa sa determine  x astfel ca  x2 + Bx ≡ y  (mod n).Aceasta este o ecuatie de gradul doi ın   x. Termenul de gradul 1 se poate elimina

folosind substitutia x1  =  x + B/2 (sau – echivalent –  x =  x1 − B/2).Se ajunge la ecuatia

x21 ≡

 B2

4  + y   (mod n).

Notand membrul drept cu C , aceasta ecuatie se scrie x21 ≡ C  (mod n). Deci decriptarea

se reduce la extragerea radacinilor patrate modulo  n. Aceasta echivaleaza cu rezolvareasistemului

x21 ≡ C  (mod p)   x2

1 ≡ C  (mod q )

care, prin combinarea solutiilor fiecarei ecuatii va da patru radacini patrate mo-dulo  n.Intr-o criptare corecta,  C   este totdeauna un rest patratic modulo  p   si   q . Daca  p ≡

3 (mod   4), exista o formula simpla pentru extragerea radacinilor patrate dintr-un rest

patratic  C  modulo  p. Avem (calculele se fac modulo  p):±C ( p+1)/4

2 ≡ C ( p+1)/2 ≡ C ( p−1)/2C  ≡ C 

(s-a folosit Teorema 10.1). Avem deci cele patru radacini patratice

±C ( p+1)/4 (mod p),   ±C (q+1)/4 (mod q )

care – prin combinare pe baza teoremei chineze a resturilor – dau cele patru r adacinipatrate ale lui  C .

Page 145: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 145/177

11.6. ALTE SISTEME DE CRIPTARE   INRUDITE CU  RSA   15

Observatia 11.4  De remarcat c˘ a nu se cunoaste un algoritm polinomial determinist pen-tru extragerea r˘ ad˘ acinilor p˘ atratice modulo  p  pentru   p ≡  1 (mod  4); ın aceast  a situat ie exist˘ a doar algoritmi Las Vegas.

Dupa determinarea acestor radacini  x1, se afla  x =  x1 − B/2. Aceasta da formula dedecriptare din enuntul metodei Rabin.

Exemplul 11.11   Fie  n = 77 = 7 · 11   si  B = 9. Funct ia de criptare este eK (x) = x2 + 9x   (mod 77)

iar cea de decriptare 

dK (y) =  1 + y − 43 (mod 77).

S˘ a presupunem c˘ a   Bob   vrea s˘ a decripteze textul   y   = 22. El va trebui s˘ a determine r˘ ad˘ acinile p˘ atrate ale lui  23  modulo  7  si  11. Cum aceste dou˘ a module sunt congruente cu 3  modulo  4, se poate aplica formula ar˘ atat˘ a anterior:

23(7+1)/4 ≡ 22 ≡ 4 (mod 7) 23(11+1)/4 ≡ 13 ≡ 1 (mod 11).

Utilizˆ and teorema chinez˘ a a resturilor, se obt in r˘ ad˘ acinile p˘ atrate ale lui  23  modulo  77:

11 · 2 · a + 7 · 8 · b (mod 77)

unde  a  =

 ±4, b  =

 ±1. Calcul  and, se obt in valorile 

  ±10,

 ±32. Cele patru texte clare 

posibile (calculate modulo  77) vor fi deci:

10 − 43 = 44,   67 − 43 = 24,   32 − 43 = 66,   45 − 43 = 2.

Se verific˘ a imediat c˘ a toate aceste patru texte clare se cripteaz˘ a ın  22.

Sa studiem acum securitatea sistemului de criptare Rabin. Sa presupunem ca exista unalgoritm de decriptare  A; acesta poate fi atunci utilizat ıntr-un algoritm Las Vegas caredescompune modulul n  cu probabilitate 1/2; algoritmul este urmatorul:

1.   Se alege aleator r

 ∈Z n;

2. y ←− r2 − B2/4 mod n;3. x ←− A(y);4. x1 ←− x + B/2;5.   if    x1 ≡ ±r (mod n)  then   Stop (esec)

else   cmmdc(x1 + r, n) = p  sau  q , Stop

Sa observam ıntai ca y  =  eK 

r −  B

2

, deci la pasul 3 se decripteaza x  sub forma r −B/2.

Cum la pasul 5.  avem  x21 ≡ r2 (mod n), rezulta  x1 ≡ ±r (mod n) sau  x1 ≡ ±αr (mod n),

unde  α  este o radacina netriviala modulo n  a unitatii.   In al doilea caz,  n|(x1 − r)(x1 + r)

Page 146: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 146/177

16   PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

si   n   nu divide nici unul din cei doi factori. Deci, calculul lui   cmmdc(x1  + r, n) saucmmdc(x1 − r, n) va da  p sau  q , adica o descompunere a lui  n.

Sa calculam probabilitatea de succes a algoritmului ([2]), din  n − 1 extrageri posibileale lui  r . Pentru doua resturi nenule  r1, r2, se defineste

r1 ∼ r2   ⇐⇒   r21 ≡ r2

2  (mod n)

Aceasta este evident o relatie de echivalentToate clasele de echivalenta din  Z ∗n   sunt decardinal patru, fiecare fiind de forma [r] = {±r,±alr}.  In algoritmul anterior, doua valoridintr-o clasa de echivalenta conduc la acelasi  y . Sa consideram un x1  calculat plecand dela valoarea  x   returnata de oracolul  A  pentru un  y  dat.   x1  este un element din [r]. Dacax1  = ±r, algoritmul esueaza; daca  x1  = ±alr, el reuseste sa descompuna  n. Cum  r  estealeator, cele patru posibilitati sunt echi-probabile, deci algoritmul da reusita ın 50% dincazuri.

11.7 Exercitii

11.1   Folosind metoda   p − 1   si diverse margini   B, factorizat i   262063   si   9420457. Cˆ at este  B  pentru fiecare caz ? 

11.2   Fie  n = 317940011   si  b = 7753781. Descompunet i  n  ın factori, folosind algoritmul lui Wiener.

11.3   Consider˘ am algoritmul lui Rabin cu  p = 199, q  = 211, n =  pq   si  B = 1357.(a)   Criptat i mesajul  32767;(b)   Determinat i cele  4  mesaje clare care duc la textul criptat  y =  eK (32767).

Page 147: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 147/177

Bibliografie

[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography 

[2] D. Stinton, Cryptography, theory et practice , Chapman & Hall/CRC, 2002

[3] A. Salomaa,  Criptografie cu chei publice , Ed. Militara, 1994

[4] M.J. Wiener -  Cryptanalysis of short RSA secret exponents , IEEE Trans on Informa-tion Theory, 36 (1990), 553-558

17

Page 148: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 148/177

Prelegerea 12

Sistemul de criptare El Gamal

12.1 Descrierea algoritmului de criptare El Gamal

Sistemul de criptare El Gamal1, prezentat ın 1985 (vezi [1]) de Taher ElGamal, se bazeazape problema logaritmului discret, care este urmatoarea:

Fie  p  numar prim si  α, β  ∈ Z  p, β  = 0.Sa se determine  a ∈ Z  p−1  astfel ca

αa

≡β  (mod p).

Acest ıntreg  a – daca exista – este unic si se noteaza  logαβ .

Exemplul 12.1   Fie  p  = 11  si  α  = 6. Toate elementele din  Z ∗11  pot fi exprimate ca puteri ale lui  α:

a   0 1 2 3 4 5 6 7 8 96a (mod 11) 1 6 3 7 9 10 5 8 4 2

De aici rezult˘ a imediat tabelul logaritmilor ın baza  6:

β    1 2 3 4 5 6 7 8 9 10log

6β    0 9 2 8 6 1 3 7 4 5

Pentru  α = 3  ıns  a nu vom avea totdeauna solut ie. Deoarece 

a   0 1 2 3 4 5 6 7 8 93a (mod 11) 1 3 9 5 4 1 3 9 5 4

valorile  β  ∈ {2, 6, 7, 8, 10}  nu pot fi exprimate ca logaritmi ın baza  3. Altfel spus, ecuat ia log3x =  β  nu are solut ie ın  Z 11  pentru aceste valori ale lui  b.

1Implementari ale sistemului sunt continute ın softuri pentru GNU Privacy Guard si PGP – pentru alista cele mai cunoscute aplicatii.

1

Page 149: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 149/177

2   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Observatia 12.1   Pentru problema logaritmului discret, nu este obligatoriu ca   p   s˘ a fie num˘ ar prim. Important este ca  α   s˘ a fie r˘ ad˘ acin˘ a primitiv˘ a de ordinul  p − 1  a unit˘ at ii:∀i (0  < i < p − 1), αi ≡ 1 (mod p). Teorema lui Fermat asigur˘ a  α p−1 ≡ 1 (mod p).

La o alegere convenabila a lui  p, problema este  N P   - completa. Pentru siguranta,  pse alege de minim 512 biti2 iar p − 1 sa aiba cel putin un divizor prim ”mare”. Pentru unastfel de modul p, spunem ca  problema logaritmului discret este dificil˘ a ın  Z  p. Utilitateaacestei cerinte rezida ın faptul ca, desi este foarte dificil de calculat un logaritm discret,operatia inversa – de exponentiere – este foarte simpla (dupa cum s-a vazut la sistemulRSA).

Sistemul de criptare El Gamal este urmatorul:

Fie  p   numar prim pentru care problema logaritmului discret ın  Z  p   este dificila, siα ∈ Z ∗ p   primitiv.Fie P = Z ∗ p , C= Z ∗ p × Z ∗ p   si

K= {( p, α, a, β )| β  ≡ αa (mod p)}.Valorile p, α, β  sunt publice, iar  a este secret.Pentru  K  = ( p, α, a, β ) si k ∈ Z  p−1  aleator (secret) se defineste

eK (x, k) = (y1, y2)

unde  y1 = αk (mod p), y2 = x

·β k (mod p).

Pentru  y1, y2 ∈ Z ∗ p  se defineste

dK (y1, y2) = y2 · (ya1)−1 (mod p)

Verificarea este imediata:

y2 · (ya1)−1 ≡ x · β k · (αka)−1 ≡ x · β k(β k)−1 ≡ x (mod p)

Sistemul este evident nedeterminist: criptarea depinde de  x  si de o valoare aleatoarealeasa de  Alice. Exista deci mai multe texte criptate corespunzatoare unui anumit textclar.

Exemplul 12.2   S˘ a alegem   p   = 2579, α   = 2, a   = 765. Prin calcul se obt ¸ine   β   =2765 (mod 2579) = 949.

S˘ a presupunem c˘ a   Alice   vrea s˘ a trimit˘ a mesajul   x   = 1299. Ea alege aleator   k   (s˘ a spunem   k   = 853) si calculeaz˘ a   y1   = 2853 = 435, apoi   y2  = 1299 · 949853 = 2396   (toate calculele se fac modulo  2579).

Cˆ and Bob primeste mesajul criptat  y  = (435, 2396), el va determina 

x = 2396 · (435765)−1 = 1299 (mod 2579).

2Pentru o securitate pe termen lung se recomanda 1024 biti ([3]).

Page 150: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 150/177

12.2. CALCULUL LOGARITMULUI DISCRET    3

Observatia 12.2

1.   Un dezavantaj al sistemului El Gamal const  a ın dublarea lungimii textului criptat (comparativ cu lungimea textului clar).

2.   Dac˘ a   (y1, y2),   (z 1, z 2)   sunt textele criptate ale mesajelor   m1, m2   atunci se poate deduce imediat un text criptat pentru   m1m2 : (y1z 1, y2z 2). Similar poate fi dedus˘ a ocriptare pentru  2m1  (sau  2m2). Acest lucru face sistemul El Gamal sensibil la un atac cu text clar ales.

3.   Indicat ia ca pentru criptarea a dou˘ a texte diferite s˘ a se foloseasc˘ a valori diferite ale parametrului  k  este esent ial˘ a: astfel, s˘ a prsupunem c˘ a mesajele  m1, m2  au fost criptate ın (y1, y2)   respectiv  (z 1, z 2)  folosind acelasi  k. Atunci  y2/z 2  =  m1/m2   si cunoasterea unuia din mesaje ın determin˘ a imediat pe cel˘ alalt.

12.2 Calculul logaritmului discret

In cele de mai jos presupunem ca  p  este numar prim, iar  α  este o radacina primitiva deordinul  p − 1 a unitatii. Aceste doua valori fiind fixate, problema logaritmului se poatereformula astfel:

Fiind dat un  β  ∈ Z ∗ p , s˘ a se determine exponentul  a ∈ Z  p−1  astfel ca  αa ≡ β  (mod p).

Evident aceasta problema se poate rezolva printr-o cautare directa (se calculeaza puterile

lui α) ın timp O( p) si folosind O(1) memorie. Pe de-alta parte, daca se calculeaza anteriorıntr-o tabela toate valorile (a, αa mod p), aflarea valorii cautate se poate face ın O(1), darcu un spatiu de complexitate O( p).

Toti algoritmii construiti pentru calculul logaritmului discret stabilesc un compromisspatiu - timp.

12.2.1 Algoritmul Shanks

Fie  m = 

 p − 1

. Algoritmul Shanks este:

1.   Se construieste lista  L1 ={

( j, αmj (mod p))|

0≤

 j ≤

m−

1}

;2.   Se construieste lista  L2 = {(i,βα−i (mod p)) | 0 ≤ i ≤ m − 1};3.   Se determina perechile ( j, y) ∈ L1,   (i, y) ∈ L2  (identice pe a doua pozitie);4.   Se defineste  logαβ  = m · j + i (mod ( p − 1))

De remarcat ca prin alegerea perechilor ( j, y) ∈ L1,   (i, y) ∈ L2  vom avea

αmj = y  =  βα−i,   deci αmj+i = β.

Invers, pentru orice β  putem scrie  logαβ  = m · j + i cu 0 ≤ i, j ≤ m − 1, deci cautareade la pasul 3 se termina totdeauna cu succes.

Implementarea acestui algoritm se poate face ın timp O(m) si spatiu O(m).

Page 151: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 151/177

4   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Exemplul 12.3   Fie  p = 809   si s  a determin˘ am   log3525. Avem deci α = 3, β  = 525, m = √ 808 = 29, iar  α29 mod 809 = 99.

Lista  L1  a perechilor  ( j, 99 j (mod 809)),   0 ≤  j ≤ 28  este:

(0, 1) (1, 99) (2, 93) (3, 308) (4, 559)(5, 329) (6, 211) (7, 664) (8, 207) (9, 268)

(10, 644) (11, 654) (12, 26) (13, 147) (14, 800)(15, 727) (16, 781) (17, 464) (18, 632) (19, 275)(20, 528) (21, 496) (22, 564) (23, 15) (24, 676)(25, 586) (26, 575) (27, 295) (28, 81)

Lista  L2  a cuplurilor  (i, 525 · (3i

)−1

(mod 809)),   0 ≤ i ≤ 28  este:

(0, 525) (1, 175) (2, 328) (3, 379) (4, 396)(5, 132) (6, 44) (7, 554) (8, 724) (9, 511)

(10, 440) (11, 686) (12, 768) (13, 256) (14, 355)(15, 388) (16, 399) (17, 133) (18, 314) (19, 644)(20, 754) (21, 521) (22, 713) (23, 777) (24, 259)(25, 356) (26, 658) (27, 489) (28, 163)

Parcurgˆ and (eventual simultan) cele dou˘ a liste se g˘ aseste  (10, 644) ∈ L1,   (19, 644) ∈ L2.Se poate scrie deci 

log3525 = 29 · 10 + 19 = 309.

Se verific˘ a usor c  a  3309 ≡ 525 (mod 809).

12.2.2 Algoritmul Pohlig - Hellman

Mai ıntai, un rezultat matematic:

Lema 12.1   Fie  x ∈ Z  p  un element primitiv. Atunci 

xm

≡xn (mod p)

  ⇐⇒  m

≡n (mod ( p

−1))

Demonstrat ie : Relatia   xm ≡   xn (mod p) se poate rescrie   xm−n ≡   1 (mod p). Dar –conform Teoremei lui Fermat –  x p−1 ≡ 1 (mod p) si xi ≡ 1 (mod p) pentru 0 < i < p − 1.Deci p −1|m −n, sau m −n ≡ 0 (mod ( p −1)), relatie echivalenta cu m ≡ n (mod p − 1)).

Revenind la sistemul de criptare El Gamal, sa consideram descompunerea ın factoriprimi

 p − 1 =ki=1

q cii   .

Page 152: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 152/177

12.2. CALCULUL LOGARITMULUI DISCRET    5

Daca s-ar putea calcula  a  (mod q cii

  ) pentru toti   i  = 1, . . . , k, atunci – folosind Teoremachineza a resturilor – s-ar putea determina  a mod ( p − 1).

Sa presupunem deci ca  q  este un numar prim astfel ca  p − 1 ≡ 0 (mod q c) si  p − 1 ≡0 (mod q c+1). Sa aratam cum se poate calcula atunci   x ≡   a   (mod q c) pentru oricex,   (0 ≤ x ≤ q c − 1).

Sa descompunem ıntai x ın baza  q   folosind egalitatea

x =c−1i=0

aiq i 0 ≤ ai ≤ q − 1,   0 ≤ i ≤ c − 1

Atunci, se poate scrie  a =  x + q c · s  pentru un anumit numar ıntreg pozitiv  s.La primul pas trebuie calculat  a0. Se porneste de la observat ia ca

β ( p−1)/q ≡ α( p−1)a0/q (mod p).

Pentru a arata aceasta, deoarece  β ( p−1)/q ≡ α( p−1)(x+qcs)/q (mod p), este suficient sa severifice ca  α( p−1)(x+qcs)/q ≡ α( p−1)a0/q (mod p).

Aceasta relatie este adevarata dacasi numai daca

( p − 1)(x + q cs)

q   ≡  ( p − 1)a0

q   (mod p − 1),

ceea ce se poate verifica prin calcul direct:( p − 1)(x + q cs)

q   − ( p − 1)a0

q   =

 p − 1

q   (x + q cs − a0) =

 p − 1

q  c−1

i=0

aiq i + q cs − a0=

 p − 1

c−1i=1

aiq i + q cs

 = ( p − 1)

c−1i=1

aiq i−1 + q c−1s

≡ 0 (mod p − 1).

Putem acum sa ıncepem calculul lui   β ( p−1)/q (mod p). Daca  β ( p−1)/q ≡   1 (mod p),atunci  a0  = 0. Altfel se calculeaza ın  Z  p   γ  = α( p−1)/q, γ 2, . . . pana se obt ine un numarıntreg pozitiv  i  pentru care  γ i ≡ β ( p−1)/q. Atunci  a0  =  i.

Daca   c  = 1, algoritmul se termina; altfel, (c >   1), se cauta valoarea lui  a1. Pentruaceasta se defineste

β 1  =  βα−a0

si se noteaza  x1  =  logαβ 1 (mod q c).

Deoarece (evident)  x1  =c−1i=1

aiq i, se va obtine  β ( p−1)/q2

1   ≡ α( p−1)a1/q (mod p).

Se calculeaza atunci   β ( p−1)/q2

1   (mod p) si se cauta  i  astfel ca

γ i ≡ β ( p−1)/q2

1   (mod p).

Se ia  a1 = i.Daca  c  = 2, s-a terminat; ın caz contrar, se mai efectueaza  c − 2 pasi pentru deter-

minarea coeficientilor  a2, . . . , ac−1.Formal, algoritmul Pohlig - Hellman este urmatorul:

Page 153: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 153/177

6   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

1.   Se calculeaza  γ i = α( p−1)i/q (mod p),   0≤

i≤

q −

1;2. β 0 ←− β ;3.   for   j  = 0  to   c − 1  do

3.1   δ  ←− β ( p−1)/qj+1

 j   (mod p);3.2.   Se cauta  i  astfel ca  δ  =  γ i;3.3. a j ←− i;

3.4. β  j+1 ←− β  jα−ajqj

mod p.

Reamintim, α  este o radacina primitiva de ordinul  p  a unitatii, iar  q  este numar prim; ınplus,  p − 1 ≡ 0 (mod q c), p − 1 ≡ 0 (mod q c+1).

Algoritmul calculeaza  a0, a1, . . . , ac−1  unde  logαβ  (mod q c) =c−1

i=0

aiq i.

Exemplul 12.4   Fie  p = 29. Avem  n =  p − 1 = 28 = 2271.S˘ a alegem  α = 2, β  = 18   si ne punem problema determin˘ arii lui  a = log2 18. Pentru 

aceasta se va calcula  a (mod 4)   si  a (mod 7).S˘ a ıncepem cu  q  = 2, c = 2. Avem (toate calculele se efectueaz˘ a modulo  29):γ 0 = 1, γ 1 = α28/2 = 214 = 28, deci  δ  = β 28/2 = 1814 = 28, de unde rezult˘ a  a0 = 1.β 1   =   β 0 · α−1 = 9, β 28/41   = 97 = 28. Cum   γ 1   = 28, rezult˘ a   a1   = 1. Avem deci 

a ≡ 3 (mod 4).S˘ a consider˘ am acum  q  = 7, c = 1. Vom avea (modulo  29):β 28/7 = 184 = 25, γ 1 = α28/7 = 24 = 16, apoi  γ 2 = 24, γ 3 = 7, γ 4 = 25, deci  a0  = 4

si  a ≡ 4 (mod 7).Se obt ine sistemul  a ≡ 3 (mod 4), a ≡ 4 (mod 7), de unde – folosind teorema chinez˘ a 

a resturilor –  a ≡ 11 (mod 28). Deci,   log218 = 11  ın  Z 29.

12.2.3 Algoritmul Pollard Rho

Fie p  un numar prim si  α ∈ Z  p un element de ordin  n. Vom considera Gα ⊆ Z  p subgrupulciclic generat de  α. Ne punem problema calcularii lui  logαβ , unde  β  ∈ Gα  este arbitrar.

Fie  Z  p  =  S 1 ∪ S 2 ∪ S 3  o partitie a lui  Z  p  ın multimi de cardinale aproximativ egale;consideram functia

f   : Gα × Z n × Z n −→ Gα × Z n × Z ndefinita prin

f (x,a,b) =

(βx,a,b + 1) daca   x ∈ S 1(x2, 2a, 2b) daca   x ∈ S 2(αx,a + 1, b) daca   x ∈ S 3

Pe baza acestei functii vom genera recursiv triplete (x,a,b) cu proprietatea x  =  αaβ b. Fie(1, 0, 0) tripletul initial (el are aceasta proprietate).   In continuare

(xi, ai, bi) =

  (1, 0, 0) daca   i = 0f (xi−1, ai−1, bi−1) daca   i ≥ 1

Page 154: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 154/177

12.2. CALCULUL LOGARITMULUI DISCRET    7

In continuare se compara tripletele (x2i, a2i, b2i) si (xi, ai, bi) pana se gaseste o valoare alui  i pentru care  x2i = xi.   In acel moment,

αa2iβ b2i = αaiβ bi

Notand  c =  logαβ , relatia poate fi rescrisa

αa2i+cb2i = αai+cbi

Cum  α  are ordinul  n, rezulta

a2i + cb2i ≡

ai + cbi (mod n)

sauc(b2i − bi) ≡ ai − a2i (mod n)

Daca  cmmdc(b2i − bi, n) = 1, atunci se poate obtine  c:

c = ai − a2i

b2i − bi(mod n)

Exemplul 12.5   S˘ a consider˘ am  p  = 809   si  α  = 89; ordinul lui  α  ın  Z ∗809   este  n  = 101.Se verific˘ a usor c  a  β  = 618 ∈ G89. Vom calcula   log89618.

S˘ a presupunem c˘ a alegem partit ia S 1 = {x | x ∈ Z 809, x ≡ 1 (mod 3)}S 2 = {x | x ∈ Z 809, x ≡ 0 (mod 3)}S 3 = {x | x ∈ Z 809, x ≡ 2 (mod 3)}

Pentru  i = 1, 2, 3, . . .  obt inem urm˘ atoarele triplete:

i   (xi, ai, bi) (x2i, a2i, b2i)1 (618, 0, 1) (76, 0, 2)2 (76, 0, 2) (113, 0, 4)3 (46, 0, 3) (488, 1, 5)4 (113, 0, 4) (605, 4, 10)

5 (349, 1, 4) (422, 5, 11)6 (488, 1, 5) (683, 7, 11)7 (555, 2, 5) (451, 8, 12)8 (605, 4, 10) (344, 9, 13)9 (451, 5, 10) (112, 11, 13)

10 (422, 5, 11) (422, 11, 15)

Deci  x10 = x20  = 422. Se poate calcula atunci log89618 = (11 − 5) · (11 − 15)−1 (mod 101) = 6 · 25 (mod 101) = 49

(ın grupul multiplicativ  Z ∗809).

Page 155: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 155/177

8   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

O formalizare a algoritmului Pollard Rho pentru calculul logaritmului discret3 este:

Algoritm Pollard Rho(Z  p, n, α , β )1 Se defineste partitia Z  p =  S 1 ∪ S 2 ∪ S 3;2.   (x,a,b) ←− f (1, 0, 0),   (x1, a1, b1) ←− f (x,a,b)3.   while   x = x1   do

3.1.   (x,a,b) ←− f (x,a,b);3.2.   (x1, a1, b1) ←− f (x1, a1, b1),   (x1, a1, b1) ←− f (x1, a1, b1);

4.   if  cmmdc(b1 − b, n) >  1  then return(Esec)else return((a − a1) · (b1 − b)−1 (mod n))

procedure f (x,a,b)

1.   if  x ∈ S 1  then  f  ←− (β  · x, a,   (b + 1) (mod n));2.   if  x ∈ S 2  then  f  ←− (x · x,   2 · a (mod n),   2 · b (mod n));3.   if  x ∈ S 3  then  f  ←− (α · x,   (a + 1) (mod n), b);4.   return(f ).end procedure

In cazul  cmmdc(b1 − b, n) = d > 1, congruenta c · (b1 − b) ≡ a − a1  (mod n) are  d  solutiiposibile. Daca   d   este destul de mic, aceste solut ii se pot afla si o simpla operatie deverificare gaseste solutia corecta.

12.2.4 Metoda de calcul a indicelui

Aceasta metoda seamana cu unul din cei mai buni algoritmi de descompunere ın factori.Vom da doar o descriere informala a acestui algoritm.

Se foloseste o  baz˘ a de divizori  B   compusa din  B   numere prime ”mici” Prima etapaconsta ın aflarea logaritmilor elementelor din baza B.

In a doua etapa, folosind acesti logaritmi, se va determina logaritmul discret al lui  β .

I: Se construiesc  C  = B  + 10 congruente modulo  p de forma

αxj ≡  paij1   p

a2j2   . . . p

aBjB   (mod p),   1 ≤  j ≤ C 

Cu aceste  C   ecuatii de necunoscute   logα pi   (1 ≤   i ≤   B) se ıncearca aflarea unei solutiiunice modulo ( p − 1).   In caz de reusita, primul pas este ıncheiat.

Problema ar fi cum sa se gaseasca aceste  C   congruente. O metoda elementara constadin trei pasi: alegerea aleatoare a unui  x, calculul lui αx (mod p) si verificarea daca acestnumar are toti divizorii ın B.

II: Acum se poate determina  logαβ  cu un algoritm de tip Las Vegas. Se alege aleatorun numar ıntreg  s (1 ≤ s ≤  p − 2) si se determinaγ  = βαs (mod p).

3Un algoritm similar Pollard Rho poate fi construit pentru factorizarea unui numar. Detalii se gasescde exemplu ın [4].

Page 156: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 156/177

12.3. SECURITATEA LOGARITMILOR DISCRETI FAT ˘ A DE INFORMATII PARTIALE 9

Se ıncearca apoi descompunerea lui   γ   ın baza B

. Daca acest lucru este posibil, seobtine o relatie de forma

βαs ≡  pc11  pc22   . . . pcBB   (mod p)

care poate fi transformata ın

logαβ  + s ≡ c1logα p1 + . . . + cBlogα pB   (mod p − 1).

De aici - prin evaluarea membrului drept, se poate determina  logαβ .

Exemplul 12.6   Fie  p = 10007   si  α = 5  (element primitiv). S˘ a consider˘ am 

B=

{2, 3, 5, 7

} ca baz˘ a de divizori. Cum – evident –  log55 = 1, trebuiesc determinat i doar 

trei logaritmi de baz˘ a.Trei numere aleatoare ”norocoase” pot fi  4063, 5136, 9865.

Pentru  x = 4063  calcul˘ am  54063 (mod 10007) = 42 = 2 · 3 · 7, care conduce la congruent a log52 + log53 + log57 ≡ 4063 (mod 10006).

ˆ In mod similar se obt in  55136 (mod 10007) = 54 = 2 ·33,   59865 (mod 10007) = 189 =33 · 7.

Ele dau relat iile log52 + 3log53 ≡ 5136 (mod 10006),3log53 + log57 ≡ 9865 (mod 10006).

Rezolvarea acestui sistem de trei ecuat ii ın  Z 10006  conduce la solut ia unic˘ a 

log52 = 6578, log53 = 6190, log57 = 1301.

S˘ a presupunem acum c˘ a se caut˘ a   log59451. Dac˘ a se genereaz˘ a aleator num˘ arul   s  =7736, avem  9451 · 57736 (mod 10007) = 8400 = 24315271.

Cum acesta se poate factoriza ın  B, avem log59451 = 4log52 + log53 + 2log55 + log57−s = 4 ·6578+6190+2 ·1+1301−7736 = 6057,calculele fiind realizate modulo  10006.

Se verific˘ a usor c  a  56057 ≡ 9451 (mod 10007).

12.3 Securitatea logaritmilor discreti fata de informatiipartiale

In aceasta sectiune vom considera un tip de atac care ıncearca sa determine valoarea unuiasau mai multor biti din reprezentarea binara a logaritmilor discreti.

Mai exact se ıncearca calculul lui  Li(β ): al   i-lea bit (numarand de la cel mai putinreprezentativ) din scrierea ın binar a lui  logαβ  peste  Z ∗ p ; deci 1 ≤ i ≤ log2( p − 1).

Afirmatia 12.1   L1(β )  poate fi calculat printr-un algoritm de complexitate polinomial˘ a.

Page 157: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 157/177

10   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Demonstrat ie : Sa consideram functia f   : Z ∗

 p ←−Z ∗

 p

  definita

f (x) = x2 (mod p)

Notam  RP ( p) multimea resturilor patratice modulo  p:

RP ( p) = {x | ∃y ∈ Z ∗ p , x ≡ y2 (mod p)}Pe baza observatiilor

1.   f (x) = f ( p − x),

2.   x2 ≡ y2 (mod p)   ⇐⇒   x = ±y  (mod p)

rezulta  card(RP ( p)) = ( p

−1)/2 (deci exact jumatate din elementele lui  Z ∗ p  sunt resturi

patratice).Sa presupunem acum ca  α ∈  Z  p  este primitiv. Deci  αi ∈  RP ( p) pentru   i   par. Cum

( p − 1)/2 astfel de puteri sunt distincte, rezulta

RP ( p) =

α2i 0 ≤ i ≤  p − 3

2

Deci  β  este rest patratic daca si numai daca  logαβ  este par, adica  L1(β ) = 0.

Conform teoremei 10.1 (Prelegerea 10),  β  este rest patratic daca si numai daca

β p−12 ≡ 1 (mod p)

fapt care poate fi testat cu un algoritm de compmexitate polinomiala. Deci putem da oformula pentru calculul lui  L1(β ):

L1(β ) =

  0 daca   β ( p−1)/2 ≡ 1 (mod p)1 altfel

Afirmatia 12.2   Dac˘ a  p − 1 = 2s(2t + 1), atunci 1.   Calculul lui  Li(β )  pentru  1 ≤ i ≤ s  este usor.2.  Orice algoritm (sau oracol) care poate calcula  Ls+1(β ) permite rezolvarea problemei 

logaritmului discret ın  Z  p.

Prima parte a afirmatiei este simpla.Vom demonstra a doua parte pentru cazul  s  = 1. Deci vom arata ca daca p  este primsi p ≡ 3 (mod 4), atunci orice oracol care da L2(β ) poate fi folosit la rezolvarea problemeilogaritmului discret ın  Z  p.

Se stie (Prelegerea 11, algoritmul lui Rabin) ca daca   β   este rest patratic ın   Z  p   si p ≡ 3 (mod 4), atunci radacinile patrate ale lui  β  modulo  p sunt ±β ( p+1)/4 (mod p).

Lema 12.2   Dac˘ a  p ≡ 3 (mod 4)   si  β  = 0, atunci  L1( p − β ) = 1 − L1(β ).

Demonstrat ia lemei : Fie  αa ≡  β   (mod p). Atunci  αa+( p−1)/2 ≡ −β   (mod p). Deoarece p ≡ 3 (mod 4), numarul ( p − 1)/2 este impar. Deci  L1(β ) = L1( p − β ).  

Page 158: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 158/177

12.3. SECURITATEA LOGARITMILOR DISCRETI FAT ˘ A DE INFORMATII PARTIALE 11

Fie acum  β  = αa pentru un exponent par  a, necunoscut. Atunci

±β ( p+1)/4 ≡ αa/2 (mod p)

Cum  L2(β ) =  L1(αa/2), valoarea  L2(β ) poate determina care din cele doua variante (cu+ sau −) este corecta. Acest lucru este folosit de urmatorul algoritm care da valoarealogaritmului discret   logαβ   (s-a presupus ca valoarea   L2(β ) se poate afla – folosind deexemplu un oracol):

Algoritm aflare bit( p, α, β )1. x0 ←− L1(β );2. β 

 ←−β/αx0 (mod p)

3. i ←− 1;4.   while β  = 1  do

4.1. xi ←− L2(β );4.2. γ  ←− β ( p+1)/4 (mod p);4.3.   if    L1(γ ) = xi  then   β  ←− γ 

else   β  ←−  p − γ ;4.4. β  ←− β/αxi (mod p);4.5. i ←− i + 1;

5.   return(xi−1, xi−2, . . . , x0).

ˆIn final, se obtine logαβ  =

 j≥0

x j · 2 j.

Exemplul 12.7   Fie  p = 19, α  = 2, β  = 6. Deoarece numerele sunt foarte mici, se pot determina usor valorile pentru  L1   si  L2. Ele sunt adunate ın tabelul 

x L1(x)   L2(x)   x L1(x)   L2(x)   x L1(x)   L2(x)1 0 0 7 0 1 13 1 02 1 0 8 1 1 14 1 13 1 0 9 0 0 15 1 14 0 1 10 1 0 16 0 0

5 0 0 11 0 0 17 0 16 0 1 12 1 1 18 1 0

Pe baza acestor informat ii, aplic˘ am algoritmul. Se obt ine:x0 ←− 0, β  ←− 6, i ←− 1;x1 ←− L2(6) = 1, γ  ←− 5, L1(5) = 0 = x1, β  ←− 14, β  ←− 7, i ←− 2;x2 ←− L2(7) = 1, γ  ←− 11, L1(11) = 0 = x2, β  ←− 8, β  ←− 4, i ←− 3;x3 ←− L2(4) = 1, γ  ←− 17, L1(17) = 0 = x3, β  ←− 2, β  ←− 1, i ←− 4.return(1, 1, 1, 0).Deci   log26 = 11102 = 14.

Page 159: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 159/177

12   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

12.4 Generalizarea sistemului de criptare El Gamal

Sistemul de criptare   El Gamal   se poate construi pe orice grup (ın loc de   Z ∗n) ın careproblema logaritmului (definita corespunzator) este dificila.

Fie (G, ◦) un grup finit. Problema logaritmului discret se defineste ın  G  astfel:

Fie α ∈ G  si H  = {αi | i ≥ 0} subgrupul generat de α. Daca β  ∈ H , sa se determineun  a (unic) (0 ≤ a ≤ card(H ) − 1) cu  αa = β , unde  αa = α ◦ α ◦ . . . ◦ α   

a  ori

Definirea sistemului de criptare   El Gamal   ın subgrupul  H   ın loc de  Z ∗n   este usor derealizat; anume:

Fie (G, ◦) un grup si   α ∈   G  pentru care problema logaritmului discret ın   H   ={αi | i ≥ 0}  este dificila.Fie P = G, C= G × G  si K= {(G,α,a,β )|β  = αa}.Valorile α, β  sunt publice iar  a este secret.Pentru  K  = (G,α,a,β ) si un  k ∈ Z card(H )  aleator (secret), se defineste

eK (x, k) = (y1, y2) unde  y1 = αk, y2 = x ◦ β k.

Pentru  y = (y1, y2), decriptarea este

dK (y) = y2 ◦ (ya1)−1.

De remarcat ca pentru criptare/decriptare nu este necesara cunoasterea ordinului card(H )de marime al subgrupului;  Alice  poate alege aleator un  k,   (0 ≤ k ≤ card(G) − 1) cu carecele doua procese functioneaza fara probleme.

Se poate observa de asemenea ca  G nu este neaparat abelian (H   ın schimb este, fiindciclic).

Sa studiem acum problema logaritmului discret ”generalizat”. Deoarece H   este sub-grup ciclic, orice versiune a problemei este echivalenta cu problema logaritmului dis-

cret ıntr-un grup ciclic.   In schimb, se pare ca dificultatea problemei depinde mult dereprezentarea grupului utilizat.Astfel ın grupul aditiv  Z n, problema este simpla; aici exponentierea  αa este de fapt

ınmultirea cu   a  modulo   n. Deci, problema logaritmului discret consta ın aflarea unuinumar ıntreg  a astfel ca

aα ≡ β  (mod n).

Daca se alege  α  astfel ca (α, n) = 1 (α   este generator al grupului),  α  are un inversmultiplicativ modulo  n, care se determina usor cu algoritmul lui Euclid. Atunci,

a =  logαβ  = βα−1 (mod n)

Page 160: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 160/177

12.5. EXERCITII    13

Sa vedem cum se reprezinta problema logaritmului discret ın grupul multiplicativ Z ∗

 p

 cu p prim. Acest grup este ciclic de ordin  p −1, deci izomorf cu grupul aditiv  Z  p−1. Deoareceproblema logaritmului discret ın grupul aditiv se poate rezolva usor, apare ıntrebarea dacase poate rezolva aceasta problema ın  Z ∗ p   reducand-o la  Z  p−1.

Stim ca existaun izomorfism φ :  Z ∗ p −→ Z  p−1, deci pentru care

φ(xy mod p) = (φ(x) + φ(y)) (mod p − 1)

In particular, φ(αa mod p) = aφ(α) (mod p − 1), adica

β  ≡ αa (mod p)   ⇐⇒   aφ(a) ≡ φ(β ) (mod p − 1).

Acum, cautarea lui  a se realizeaza cu  logαβ  = φ(β )(φ(α))−1 (mod ( p − 1)).Deci, daca se gaseste o metoda eficace pentru calculul izomorfismului   φ, se obtine

un algoritm eficace pentru calculul logaritmului discret ın  Z ∗ p . Problema este ca nu secunoaste nici o metoda generala de constructie a lui  φ  pentru un numar prim  p  oarecare.Desi se stie ca cele doua grupuri sunt izomorfe, nu exista ınca un algoritm eficient pentruconstructia explicita a unui izomorfism.

Aceasta metoda se poate aplica problemei logaritmului discret ıntr-un grup finit ar-bitrar. Implementarile au fost realizate ın general pentru   Z  p, GF (2 p) (unde problemalogaritmului discret este dificila) sau curbe eliptice.

12.5 Exercitii

12.1   Implementat i algoritmul Shanks pentru aflarea logaritmului discret. Aplicat ¸ii pen-tru aflarea   log10612375  ın  Z ∗24691   si  log6248388  ın  Z ∗458009.

12.2   Num˘ arul  p = 458009  este prim si  α = 2  are ordinul  57251  ın  Z ∗ p . Folosind algorit-mul Pollard Rho, calculat i   log256851  ın  Z ∗ p . Luat ¸i valoarea init ial˘ a  x0  = 1   si partit ia din Exemplul 12.5.

12.3   Fie  p  un num˘ ar prim impar si  k   un num˘ ar pozitiv. Grupul multiplicativ  Z ∗ pk   are 

ordinul   pk−1

· ( p − 1)   si este ciclic. Un generator al acestui grup este numit ”element primitiv modulo  pk”.

(a)   Dac˘ a  α este un element primitiv modulo  p, ar˘ atat i c˘ a cel put in unul din numerele α, α + p   este element primitiv modulo  p2.

(b)   Descriet i cum se poate poate verifica eficient c˘ a  3  este o r˘ ad˘ acin˘ a primitiv˘ a modulo29  si modulo 292. Ar˘ at˘ at oi ınt  ai c˘ a dac˘ a  α  este o r˘ ad˘ acin˘ a primitiv˘ a modulor  p   si modulo p2, atunci ea este r˘ ad˘ acin˘ a primitiv˘ a modulo  p j pentru orice  j  ıntreg.

(c)   G˘ asit i un ıntreg  α  care este r˘ ad˘ acin˘ a primitiv˘ a modulo  29  dar nu este r˘ ad˘ acin˘ a primitiv˘ a modulo  292.

(d)   Folosit i algoritmul Pohlig - Hellman pentru a calcula   log33344  ın  Z ∗24389.

Page 161: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 161/177

14   PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

12.4   Implementat i algoritmul Pohlig Hellman. Aplicat ¸ie pentru   log58563   ın   Z 28703   si log1012611  ın  Z 31153.

12.5   Fie  p = 227. Elementul  α = 2  este primitiv ın  Z ∗ p .(a)   Calculat i  α32, α40, α59 si  α156 modulo  p   si apoi factorizat i-le pentru baza de factori 

{2, 3, 5, 7, 11}.(b)   Folosind faptul c˘ a   log22 = 1, calculat i   log23,log25,log27,log211   folosind factor-

izarea anterioar˘ a.(c)   S˘ a presupunem c˘ a vrem s˘ a calcul˘ am  log2173.   ˆ Inmult im  173  cu valoarea ”aleatoare”

2177 (mod p). Factorizat ¸i rezultatul peste baza de factori dat˘ a mai sus si determinatı log2173.

12.6   S˘ a implement˘ am sistemul El Gamal ın  GF (33). Polinomul  x3 + 2x2 + 1  este ire-ductibil peste   Z 3[x]   si deci   GF (33) =   Z [x]/(x3 + 2x2 + 1). Asociem cele   26   luitere ale alfabetului cu cele  26  elemente nenule ale corpului (ordonate lexicografic):

A   ↔   1   B   ↔   2   C   ↔   xD   ↔   x + 1   E   ↔   x + 2   F    ↔   2xG   ↔   2x + 1   H   ↔   2x + 2   I   ↔   x2

J   ↔   x2 + 1   K   ↔   x2 + 2   L   ↔   x2 + xM   ↔   x2 + x + 1   N   ↔   x2 + x + 2   O   ↔   x2 + 2xP 

  ↔  x2 + 2x + 1   Q

  ↔  x2 + 2x + 2   R

  ↔  2x2

S   ↔   2x2 + 1   T    ↔   2x2 + 2   U   ↔   2x2 + xV    ↔   2x2 + x + 1   W    ↔   2x2 + x + 2   X   ↔   2x2 + 2xY    ↔   2x2 + 2x + 1   Z   ↔   2x2 + 2x + 2

S˘ a presupunem c˘ a Bob foloseste   α  =  x   si   p  = 11   ıntr-un sistem de criptare El Gamal.Apoi alege  β  = x + 2. Decriptat i mesajul 

(K, H ) (P, X ) (N, K ) (H, R) (T, F ) (V, Y ) (E, H ) ((F, A) (T, W ) (J, D) (U, J )

Page 162: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 162/177

Bibliografie

[1] T. El Gamal,  A public key cryptosystem and a signature scheme based on discrete algorithms , IEEE Transactions on Information Theory, 31 (1985), 469-472

[2] J. Gibson, Discrete logarithm hash function that is collision free and one way . IEEEProceedings-E, 138 (1991), 407-410.

[3] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography 

[4] D. Stinton; Cryptography, theory et pratice , Chapman & Hall/CRC, 2002

[5] A. Salomaa,  Criptografie cu chei publice , ed. Militara, 1994

15

Page 163: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 163/177

Prelegerea 13

Alte sisteme de criptare cu cheie

publica

13.1 Criptarea folosind curbe eliptice

Pentru ınceput, sa definim notiunea de  curb˘ a eliptic˘ a .

Definitia 13.1   Fie  p ( p > 3)  un num˘ ar prim. Curba eliptic˘ a  y2 = x3 + ax + b  peste  Z  peste mult imea solut iilor  (x, y) ∈ Z  p × Z  p  ecuat iei 

y2

≡ x3

+ ax + b (mod p) (1)unde  a, b ∈ Z  p  sunt constante astfel ca  4a3 + 27b2 ≡ 0 (mod p)si dintr-un punct  O  numit ”punct la infinit”.

O curba eliptica   E   se poate structura ca un grup abelian finit. Legea de compozitie(notata aditiv) este definita astfel:

Fie  P, Q ∈ E, P   = (x1, y1), Q = (x2, y2).Daca  x2  =  x1, y2 = −y1, atunci  P  + Q = O; altfel,  P  + Q = (x3, y3) unde

x3 = λ2 − x1 − x2, y3  =  λ(x1 − x3) − y1,

iar

λ =

y2−y1x2−x1 daca  P  = Q3x2

1+a

2y1daca  P   = Q

Se mai defineste  P  + O= O+P   = P, ∀P  ∈ E .Verificarea proprietatilor de grup este banala. Elementul neutru este O.De remarcat ca inversa lui (x, y) (notata −(x, y)) este (x, −y).

Exemplul 13.1   Fie  E   curba eliptic˘ a  y2 = x3 + x + 5  peste  Z 19. S˘ a calcul˘ am la ınceput punctele lui  E . Aceasta se face astfel: ∀x ∈  Z 11  se calculeaz˘ a  z  =  x3 + x + 5 (mod  19);apoi se testeaz˘ a dac˘ a  z  este rest p˘ atratic.

1

Page 164: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 164/177

2   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

ˆ In caz afirmativ, deoarece  19≡

3 (mod 4), exist˘ a o formul˘ a (Prelegerea  10) pe care ovom aplica direct, obt inˆ and r˘ ad˘ acinile p˘ atrate ale lui  z  :

± z (19+1)/4 (mod 19) = ±z 5 (mod 19).Rezultatele sunt strˆ anse ın tabelele urm˘ atoare (toate calculele se realizeaz˘ a modulo 19):

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

x x3 + x + 5   y x x3 + x + 5   y x x3 + x + 5   y0 5 9, 10 1 7 8, 11 2 15   −3 16 4, 15 4 16 4, 15 5 2   −6 18   −   7 13   −   8 12   −9 2   −   10 8   −   11 17 6, 13

12 16 4, 15 13 11 7, 12 14 8   −15 13   −   16 13   −   17 14   −18 3   −

Curba eliptic˘ a   E  admite deci   15   puncte; cum ordinul grupului nu este num˘ ar prim,grupul nu este ciclic. Vom alege un element primitiv drept generator. Fie acesta   α   =(0, 9). Calcul  am ”puterile” lui   α   (de fapt multiplii, grupul fiind aditiv). Pentru   2α   se calculeaz˘ a ınt  ai (modulo  19):

λ = (3 · 02 + 1)(2 · 9)−1 = 1 · 18−1 = 18.

Acum se pot determina x3 = 182 − 0 − 0 = 361 ≡ 1 (mod 19), y3 = 18 · (0 − 1) − 9 = −27 ≡ 11 (mod 19),deci  2α = (1, 11).Multiplul urm˘ ator este  3α = 2α + α = (1, 11) + (0, 9). Avem:

λ = (9 − 11) · (0 − 1)−1 = 2, deci x3 = 22 − 1 − 0 = 3, y3  = 2 · (1 − 3) − 11 = −15 ≡ 4 (mod 19),

de unde rezult˘ a  3α = (3, 4).ˆ In mod similar se obt in toate punctele curbei eliptice  E :

α = (0, 9) 2α = (1, 11) 3α = (3, 4) 4α = (4, 4) 5α = (13, 12)6α = (11, 6) 7α = (12, 15) 8α = (12, 4) 9α = (11, 13) 10α = (13, 7)11α = (4, 15) 12α = (3, 15) 13α = (1, 8) 14α = (0, 10) 15α = O

De remarcat c˘ a – de exemplu –  (3, 4)  nu este element primitiv, avˆ and ordinul  5.

O curba eliptica definita pe  Z  p  ( p > 3 prim) are aproximativ  p  puncte. O teorema alui Hasse ([2]) stabileste un interval pentru acest numar:

 p + 1 − 2√ 

 p ≤ card(E ) ≤  p + 1 + 2√ 

 p

Page 165: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 165/177

13.1. CRIPTAREA FOLOSIND CURBE ELIPTICE    3

Calculul efectiv al lui   card(E ) este destul de dificil si vom trece peste el1. Existaun algoritm al lui  Schoof  ([2], pag 137-140) de numarare a punctelor unei curbe eliptice,dar complexitatea lui este destul de mare:  O(log6 p) (O(log9 p) ın versiunea originala)ınmultiri si inversiuni, si O(log3 p) spatiu de memorie.   In plus implementarea sa estedestul de greoaie si nu a fost realizata complet pana ın prezent.

Alta problema dificila consta ın aflarea unui subgrup ciclic al lui  E   ın care problemalogaritmului discret sa fie dificila. O informatie utila este data de teorema urmatoare:

Teorema 13.1  (Teorema lui Ruck) Fie  E  o curb˘ a eliptic˘ a peste  Z  p cu  p > 3  num˘ ar prim.Atunci exist˘ a dou˘ a numere ıntregi  n1, n2  astfel ca  E   s˘ a fie izomorf˘ a cu  Z n1

timesZ n2, iar 

n2|n1, n2|( p − 1).

Demonstrat ia  poate fi gasita ın [2], pag. 107.

Pe spatiul curbelor eliptice se pot realiza diverse tehnici de criptare cu cheie pub-lica; unele din ele sunt doar adaptari ale sistemelor deja prezentate, altele sunt aplicatiispecifice.

Principala atractie a sistemelor construite pe curbe eliptice consta ın dimensiuni miciale cheilor, ceea ce la face aplicabile pe sisteme portabile (smartcarduri de exemplu).

Exemplul 13.2   S˘ a vedem cum se realizeaz˘ a o criptare El Gamal pentru curba eliptic˘ a 

definit˘ a ın Exemplul 13.1.Fie   α  = (0, 9)   si s  a presupunem c˘ a exponentul secret este  a  = 7. Atunci  β   = 7α  =(12, 15), iar operat ia de criptare este:

eK (x, k) = (k · (0, 9), x + k · (12, 15)),   unde  x ∈ E,   0 ≤ k ≤ 14.

Pentru decriptare se foloseste operat ia 

dK (y1, y2) = y2 − 7y1

S˘ a presupunem c˘ a Alice vrea s˘ a cripteze mesajul   x  = (3, 4)  (care este un punct din 

E ); dac˘ a ea alege aleator valoarea  k  = 8, va calcula y1 = 8 · (0, 9) = (12, 4), si y2  = (3, 4) + 8 · (12, 15) = (3, 4) + (4, 15) = 3α + 8 · 7α  = 3α + 11α  = 14α  = (0, 10)

(coeficient ii se calculeaz˘ a modulo  15).Deci  y  = ((12, 4), (0, 10)). Dup˘ a recept ie, Bob decripteaz˘ a mesajul astfel:

x = (0, 10) − 7 · (12, 4) = 14α − 7 · 8α = 3α.

1Nu se cunoaste nici o formula care sa dea valoarea card(E ); exista o conjectura Birch and Swinnerton-

Dyer  ın legatura cu acest subiect, conjectura inclusa printre cele sapte probleme ale mileniului (ımpreunacu ”problema ”P   versus  N P ”).

Page 166: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 166/177

4   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

13.1.1 Criptarea Menezes - Vanstone

In acest sistem de criptare – de fapt o varianta a lui   El Gamal   – curba eliptica esteutilizata pentru ”mascare”, domeniile de valori al textelor clare si criptate fiind mult mailarg. Prezentarea algoritmului este:

Fie  E  o curba eliptica peste  Z  p   ( p >  3 prim) care contine un subgrup ciclic  H   ıncare problema logaritmului discret este dificila.Alegem P = Z ∗ p × Z ∗ p , C= E × Z ∗ p × Z ∗ p   si

K= {(E,α,a,β )|α ∈ E, a ∈ Z ∗ p , β  = aα}.Valorile α, β  sunt publice, iar  a este secret.

Pentru   K   = (E,α,a,β ), k ∈   Z card(H )   ales aleator (secret) si   x   = (x1, x2) ∈ P ,definim

eK (x, k) = (y0, y1, y2),

unde  y0 = k · α,   (c1, c2) = k · β, yi  =  ci · xi (mod p), i = 1, 2.Pentru un text criptat  y  = (y0, y1, y2) se defineste

dK (y) = (y1 · c−11   (mod p), y2 · c−1

2   (mod p)),

unde  a · y0 = (c1, c2).

Exemplul 13.3   Revenind la curba  y2 = x3 + x + 5  peste  Z 19  definit˘ a ın Exemplul 13.1,criptarea Menezes - Vanstone autorizeaz˘ a  18 × 18 = 324  texte clare, fat   a de numai  15  ın sistemul El Gamal adaptat.

S˘ a lu˘ am din nou  α = (0, 9)   si exponentul  a = 7. Atunci  β  = 7α = (12, 15).

Dac˘ a Alice doreste s˘ a transmit˘ a textul clar   x   = (x1, x2) = (5, 11)   (de remarcat c˘ a acesta nu este un punct din  E ) si alege  k = 4, ea va ıncepe prin a calcula 

y0  =  k · α = 4 · (2, 7) = (4, 4)si k · β  = 4(12, 15) = (1, 8)

deci  c1 = 1, c2  = 8.Apoi se calculeaz˘ a (modulo  19):

y1 = c1 · x1 = 1 · 5 = 5   si  y2  =  c2 · x2  = 8 · 11 = 12.

Alice trimite deci lui Bob mesajul criptat  y = (y0, y1, y2) = ((4, 4), 5, 12).

Dup˘ a recept ie, Bob calculeaz˘ a  (c1, c2) = a · y0 = 7 · (4, 4) = 7 · 4α = 13α = (1, 8), apoi 

x = (y1 · c−11   (mod 19), y2 · c−1

2   (mod 19)) = (5 · 1−1, 12 · 8−1) = (5,   12 · 12) = (5, 11).

Page 167: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 167/177

13.2. SISTEMUL DE CRIPTARE WILLIAMS    5

13.2 Sistemul de criptare Williams

Acest sistem de criptare este bazat pe exponent ieri ın corpuri patratice, avand multeasemanari cu sistemele  RSA   si  El Gamal . Se pare ca el are toate avantajele sistemuluiRSA; oricum, se poate demonstra ca orice ıncercare de spargere a sistemului prin pre-lucrarea mesajelor criptate conduce la o operat ie de factorizare a modulului. Modul decriptare si decriptare sunt la fel de rapide ca la RSA.

Sa abordam ıntai baza matematica a sistemului de criptare Williams.Fie  c ∈ Z  un numar ıntreg fixat, ne-patrat perfect. Consideram multimea

{x =  a + b

√ c

|a, b

∈Z, a2

−cb2 = 1

}.

Numerele  x  pot fi privite si ca perechi (a, b), pe baza carora aceasta multime se poatestructura algebric ca inel, folosind operatiile

(a1, b1) + (a2, b2) = (a1 + a2, b1 + b2)(a1, b1)(a2, b2) = (a1a2 + cb1b2, a1b2 + a2b1).

Notam  x =  a − b√ 

c  conjugatul lui  x.Pentru i  = 0, 1, 2, . . . se definesc functiile  X i(x), Y i(x) astfel:

X i(x) = X i((a, b)) = xi + xi

2

Y i(x) = Y i((a, b)) = bxi − xi

x − x  =

 xi − xi

2√ 

c

De aici se pot scoate relatiile

xi = X i(x) + Y i(x)√ 

c, xi = X i(x) − Y i(x)√ 

c.

Evident, X i(x) si Y i(x) sunt numere ıntregi; ın continuare vom scrie aceste numere fara amai preciza si argumentul  x, decat daca este necesar.

Din conditia a2

−cb2 = 1 rezultaxx = 1, X 2

i −cY 2

i  = 1.

Lema 13.1  Au loc relat  iile:X i+ j  = X iX  j +  cY iY  j, Y i+ j  = Y iX  j +  X iY  j, ∀i, j ∈ N X i+ j  = 2X iX  j − X  j−i, Y i+ j  = 2X iY  j − Y  j−i, ∀i,j, i ≤  j.

Demonstrat ie : Este lasata ca exercitiu.Din lema 13.1 se deduc formulele recursive de calcul

X 2i = X 2i   + cY 2i   = 2X 2i − 1, Y 2i  = 2X iY i,X 2i+1 = 2X iX i+1 − X 1, Y 2i+1  = 2X iY i+1 − Y 1.

Page 168: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 168/177

6   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

Acestea conduc la o evaluare rapida a valorilor  X i   si Y i.

Deoarece  X 0  = 1, X 1  =  a, rezulta ca  X i  nu depinde de  b.

Relatiile astfel definite se pot extinde ın mod natural la congruente modulo un numarnatural nenul n:

a1 + b1√ 

c ≡ a2 + b2√ 

c   ⇐⇒   a1 ≡ a2 (mod n) si b1 ≡ b2 (mod n)

Folosind si  a2−cb2 ≡ 1 (mod n) ın loc de a2−cb2 = 1, relatiile de sus raman adevarate.

Lema 13.2   Se dau numerele:

n =  pq   cu  p, q  numere prime mari;a,b,c  care verific˘ a congruent a  a2 − cb2 ≡ 1 (mod n) (2)

Simbolurile Legendre    p   =c p

, q   =

cq

  care verific˘ a relat iile   i ≡

−i (mod 4)  pentru  i =  p, q .

Presupunem verificate condit iile  (b · c, n) = 1   si simbolul Jacobi 2(a+1)

n

= 1.

Not˘ am  m = ( p −  p)(q − q)

4  .

Fie  d, e  dou˘ a numere astfel ıncˆ at    d · e ≡  m + 1

2  (mod m).

ˆ In toate aceste ipoteze,  x2de ≡ ±x (mod n)  unde  x =  a + b√ 

c.

Demonstrat ie : Se realizeaza prin calcul direct.

Pe baza acestei leme se pot stabili metode de criptare si decriptare similare celor dinRSA.

Saconstruim acum ın detaliu sistemul de criptare Williams. Prezentarea va consta dinpatru parti: descrierea sistemului, criptarea, decriptarea si criptanaliza.

A  (Prezentarea):   In prima faza se aleg doua numere prime mari  p, q   si se calculeazan =  pq .

Se alege apoi un numar  c  astfel ca simbolurile Legendre   p   si  q   sa verifice conditiile

din Lema 13.2 (c se poate obtine foarte rapid deoarece cam un numar din patru satisfacecongruentele cerute).

Se determina apoi un numar  s astfel ıncat simbolul Jacobi sa verifice

s2 − c

n

= −1 si (s, n) = 1

m   este dat ca ın Lema 13.2; se aleg apoi   d   cu (d, m) = 1 si   e   care sa satisfacacongruentele cerute.

Numerele  n,c,e,s  sunt publice iar  p, q,m, d  sunt secrete.

Page 169: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 169/177

13.2. SISTEMUL DE CRIPTARE WILLIAMS    7

Exemplul 13.4   S˘ a alegem  p = 11, q  = 13, deci  n = 143. Pentru c˘ a   5

11 = 1

≡ −11   si 

 5

13

= −1 ≡ −13  (ambele modulo  4), putem alege  c = 5.

De asemenea se poate lua  s = 2  pentru c˘ a 

s2 − c

n

=−1

11

−1

13

= −1 · 1 = −1.

Se obt ine  m  = 10 · 14/4 = 35. Pentru c˘ a  23 · 16 ≡  18 (mod  35), se pot folosi drept exponent i de criptare/decriptare  e = 23  respectiv  d = 16.

B (Criptarea): Textele clare sunt numere  w  (0 < w < n).   In prima etapa w  este codificatca un numar  x (metoda este prezentata mai jos); criptarea va fi  xe (mod n).

Codificarea : Notam

b1  = 0, γ  = w + √ c   sau

b1  = 1, γ  = (w +√ 

c)(s +√ 

c)

dupa cum simbolul Jacobi

w2 − c

n

 are valoarea +1 sau respectiv −1. Cazul cand

el este 0 trebuie evitat.

Ambele variante conduc la

γγ 

n

= 1; relatia este evidenta ın primul caz, rezulta prin

calcul din alegerea lui  s ın cazul al doilea.

In final, se noteazax = γ 

γ .

Scrierea lui x  sub forma  a + b√ 

c este posibila ın ambele cazuri; astfel (toate calculelese fac modulo  n):

pentru  b1 = 0 :   x = γ 

γ   =

 w +√ 

c

w − √ c

 = w2 + c

w2 − c +

  2w

w2 − c

√ c   (mod n)

pentru  b1 = 1 :   x = γ 

γ   =

 (w +√ 

c)(s +√ 

c)

(w − √ c)(s − √ 

c) =

= (w2 + c)(s2 + c) + 4scw

(w2 − c)(s2 − c)  +

 2s(w2 + c) + 2w(s2 + c)

(w2 − c)(s2 − c)

√ c (mod n).

Definitia lui x asigura ın ambele situatii relatia xx =  a2 − cb2 ≡ 1 (mod n).

Mai avem 2(a + 1) = 2 x + x

2  + 1 =

 γ 

γ  +

 γ 

γ  + 2 =

 (γ  + γ )2

γγ   (mod n),

ceea ce duce la simbolul Jacobi

2(a + 1)

n

= 1, cum se cere ın Lema 13.2.

Dupa codificarea textului clar w  ca  x  =  a + b√ 

c, textul criptat este xe (mod n), numarcare poate fi exprimat ın functie de X e  si Y e, calculate recursiv pe baza relatiilor din Lema13.1. Notam

E  = X eY −1e   (mod n).

Textul criptat este tripletul (E, b1, b2), unde b1 s-a definit anterior, iar b2 este dat de relatiab2 ≡ a (mod 2).

Page 170: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 170/177

8   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

Deoarece fiecarui text criptat ıi corespund patru texte clare distincte, bitii   b1   si   b2asigura unicitatea decriptarii.

Exemplul 13.5  Revenind la Exemplul 13.4, s˘ a consider˘ am textul clar  w = 21. Deoarece 212 − 5

143

  =

 7

11

 7

13

  = (−1)(−1) = 1, avem   b1   = 0, deci   γ   = 21 +

√ 5   si   x   =

21 +√ 

5

21 − √ 5

= 446 + 42

√ 5

436  =

 17 + 42√ 

5

7  = 41(17 + 42

√ 5) = 125 + 6

√ 5 (mod 143).

Deci  a = 125, b = 6. Deoarece  a  este impar, rezult˘ a  b2  = 1.Vom calcula recursiv pe  X 23   si  Y 23:

X 1 = 125   Y 1 = 6   X 2 = 75   Y 2 = 70   X 3  = 35   Y 3  = 48

X 5 = 120   Y 5 = 44   X 6 = 18   Y 6 = 71   X 11  = 48   Y 11  = 17X 12 = 75   Y 12 = 125   X 23  = 68   Y 23 = 125

Obt inem acum  E  = 68 · 125−1 = 68 · 135 = 28 (mod 143).Deci textul criptat este tripletul  (28, 0, 1).

C Decriptarea : Folosind prima componentaE  a textului criptat, destinatarul poate deter-mina numarul  x2e:

x2e =  x2e

(xx)e  =

 xe

xe  =

 X e + Y e√ 

c

X e − Y e√ 

c =

 E  +√ 

c

E − √ c

 = E 2 + c

E 2 − c +

  2E 

E 2 − c

√ c   (mod n)

De remarcat ca acest calcul poate fi facut si de un criptanalist, ın eventualitateainterceptarii textului criptat.

Totusi, informatia secreta este necesara pentru calculul ulterior:

x2ed = X 2ed(x) + Y 2ed(x)√ 

c =  X d(x2e) + Y d(x2e)√ 

c,

unde valorile lui X d   si  Y d  se pot calcula recursiv pe baza lui  x2e, determinat anterior.Cum toate ipotezele Lemei 13.2 sunt satisfacute, vom avea x2ed = ±x (mod n). Ultima

componenta  b2  a textului criptat da semnul corect al lui  x.Deci  x  se poate determina, iar textul clar  w se obtine din x  si b1  (a doua componenta

a textului criptat) ın felul urmator:

Fie  x  =   x   daca   b1 = 0

x ·   s−√ cs+

√ c   daca   b1 = 1

Atunci x = w +

√ c

w − √ c

 (mod n), ceea ce duce la  w = x + 1

x − 1

√ c   (mod n).

Exemplul 13.6   ˆ In condit iile din Exemplul 13.4, s˘ a decript˘ am mesajul  (28, 0, 1). Folosim E  pentru a calcula ın prima faz˘ a 

x2e = 282 + 5

282 − 5 +

  2 · 28

282 − 5

√ 5 = 95 + 126

√ 5 (mod 143).

Reamintim,  d = 16; deci vom calcula (modulo  143)

Page 171: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 171/177

13.2. SISTEMUL DE CRIPTARE WILLIAMS    9

X 1(x2e) = 95   Y 1(x2e) = 126   X 2(x2e) = 31   Y 2(x2e) = 59X 4(x2e) = 62   Y 4(x2e) = 83   X 8(x2e) = 108   Y 8(x2e) = 139

X 16(x2e) = 18   Y 16(x2e) = 137

S-a obt inut  18 + 137√ 

5 = ±x (mod 143). Pentru c˘ a  b2  = 1, a   trebuie s˘ a fie impar, deci x = −(18 + 137

√ 5) = 125 + 6

√ 5 (mod 143).

Cum  b1  = 0, avem  x  =  x   si deci 

w = 126 + 6

√ 5

124 + 6√ 

5

√ 5 =

 (126 + 6√ 

5)(124 − 6√ 

5)

1242 − 5 · 62

√ 5 = 83 · 38−1 = 21 (mod 143)

Deci textul clar original a fost  w = 21.

Lucrand detaliat, se pare ca sistemul de criptare  Williams   este mai dificil decat  RSA.Totusi ordinele de complexitate ale criptarii si decriptarii sunt egale ın celel doua sisteme.

D   Criptanaliza : Daca s-au aflat   p   si   q, m   si   d   se pot calcula imediat. Invers, sapresupunem ca criptanalistul a gasit ıntr-un mod oarecare un algoritm de decriptare.Atunci el poate folosi acest algoritm la descompunerea lui  n  astfel.

In prima faza se alege prin ıncercari un numar  x care verifica

x2 − c

n

= −1.

Apoi  x   este criptat alegand   b1   = 0 si   γ   =   x +√ 

c. Deci, ca prima ipoteza, pentrusimbolul Jacobi este folosita valoarea (falsa) +1. Fie (E, 0, b2) textul criptat rezultat.

Acestuia, criptanalistul ıi aplica algoritmul pentru a stabili textul clar  w   corespunzator;acest w  nu este identic cu  x  deoarece procesul de criptare a plecat de la o ipoteza falsa.Prin simplu calcul se arata ca (x − w, n) este  p sau  q  (vezi [6])

Aceasta ınseamna ca si criptanalistul este ın masura sa descompuna pe  n.

Exemplul 13.7   Relu˘ am cadrul descris ın Exemplul 13.4. Alegem  x  = 138, care satisface condit  ia de plecare pentru criptanaliz˘ a. Se iau ca valori init ¸ iale false   b1   = 0, γ   =138 +

√ 5. Atunci  α =  γ/γ  = 73 + 71

√ 5.

Deoarece  73  este impar, se obt ine  b2 = 1. Pentru criptare se calculeaz˘ a iterativ (modulo143):

X 1(α) = 73   Y 1(α) = 71   X 2(α) = 75   Y 2(α) = 70X 3(α) = 9   Y 3(α) = 139   X 5(α) = 133   Y 5(α) = 44X 6(α) = 18   Y 6(α) = 71   X 11(α) = 139   Y 11(α) = 82X 12(α) = 75   Y 12(α) = 125   X 23(α) = 42   Y 23(α) = 73

Deducem c˘ a  E  = 42 · 73−1 = 28 (mod 143), deci textul criptat este  (28, 0, 1).Acesta a fost ıns˘ a criptat anterior ın   w   = 21. Se obt ¸ine imediat factorizarea lui   n

deoarece  (x − w, n) = (117, 143) = 13.

Deci, sistemul Williams nu rezista la un atac cu text clar ales.

Page 172: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 172/177

10   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

13.3 Sistemul de criptare McEliece

Sistemul de criptare   McEliece  – propus ın 1978 – este destul de apropiat de problemarucsacului. El utilizeaza drept cadru teoria codurilor liniare (pentru detalii vezi [1]); aici,ın general decodificarea unui cod liniar binar corector de erori este o problema NP - com-pleta. Pentru unele clase de coduri sunt construiti algoritmi de decodificare polinomiali;o astfel de clasa o formeaza codurile Goppa, care constituie baza sistemului de criptareMcEliece .

Definitia 13.2   Fie  k, n ∈ N (k ≤ n). Un  (n, k)  - cod liniar binar este un subspat iu liniar C ⊆ Z n2  de dimensiune  k.

O matrice generatoare a lui   C  este o matrice binar˘ a  k × n  ale c˘ arei linii formeaz˘ a obaz˘ a a lui  C.

Pentru  a ∈ Z n2   se defineste ponderea  w(a) =  num˘ arul de elemente nenule din  a.Pentru   a, b ∈ Z n2   a = (a1, . . . , an),   b = (b1, . . . , bn), se defineste distant a Hamming 

prin  d(a, b) = w(a − b).Pentru un  (n, k)  - cod liniar binar  C, distant a minim˘ a este 

dC = min{d(a, b)|a, b ∈ C,   a = b}

Un  (n,k,d)  - cod este un  (n, k)  - cod de distant   a minim˘ a  d.

Rolul unui cod corector de erori este de a corija modificari aleatoare care apar ın trans-miterea unui set de date (binare) printr-un canal.   In linii mari, acesta functioneaza astfel:daca   a   este un mesaj de informatie de   k   biti,   Alice   ıl codifica ıntr-un cuvant de  n   bitib =  aG, unde  G este matricea generatoare a codului.

Bob primeste un mesaj r ∈ Z n2   (eventual r  =  b) si cauta un cuvant b1 ∈ C cu  d(r, b1)minima posibil. Va decodifica   r  ın   b1   dupa care va calcula un mesaj de informatie   a1astfel ca   b1 =  a1G. Cazul ideal este acela cand   b1 = b,   a1 = a   (adica erorile au fostacoperite corect). Se cunoaste ca, daca numarul de erori care apar nu depaseste (d−1)/2,acest procedeu corecteaza efectiv erorile.

Daca Bob cauta cuvantul - cod cel mai apropiat comparand r pe rand cu fiecare element

din  C, cum sunt 2k astfel de cuvinte, algoritmul va fi exponential, deci nefunctional.Majoritatea algoritmilor de decodificare se bazeaza pe notiunea de   sindrom , definit

astfel:Matricea de control  a unui (n,k,d) - cod liniar binar de matrice generatoare  G este o

matrice  H  de dimensiune (n − k) × n  ale carei linii formeaza o baza a unui spatiu liniarortogonal. Evident, GH T  = 0.

Pentru un cuvant r ∈ Z n2 , se numeste  sindrom  secventa de  n − k  biti definita  H rT .

Teorema 13.2 a  este un cuvˆ ant - cod dac˘ a si numai dac˘ a  H aT  = 0.ˆ In plus, dac˘ a  a ∈ C, e ∈ Z n2   si  r =  a + e, atunci  H rT  = H eT .

Page 173: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 173/177

13.3. SISTEMUL DE CRIPTARE MCELIECE    11

Pentru demonstratie se poate consulta de asemenea [1].

e poate fi considerat drept vectorul de erori care au aparut ın transmiterea mesajuluia. Teorema anterioara afirma ca sindromul nu depinde decat de erori, nu de cuvantul -cod transmis.

Aceasta observatie sugereaza o metoda de decodificare bazata pe sindrom. Se cal-culeaza ıntai  s  =  H rT . Daca s  =  0, decodificarea lui  r  este tot  r. Altfel, se ıncearca toatecuvintele de pondere 1. Pentru fiecare astfel de cuvant   e   se calculeaza  H eT . Daca s-agasit un   e   cu  H eT  =   s,   r   se decodifica ın   r − e.   In caz contrar se ıncearca vectorii depondere 2, 3, . . . , [(d − 1)/2]. Daca nu s-a gasit nici un cuvant  e  cu  H eT  =  s, se deduceca au aparut mai mult de [(d − 1)/2] erori ın cursul transmisiei.

Metoda prezentata functioneaza pentru toate codurile liniare. Pentru anumite clasespeciale de coduri exista algoritmi polinomiali de decodificare si corectare a erorilor; ıncazul general ınsa problema este  N P   - completa.

Algoritmul de criptare McElliece  se bazeaza pe aceasta idee. Trapa sa secreta o consti-tuie o clasa de coduri pentru care exista algoritmi eficace de decodificare - codurile Goppa.In plus, exista un numar mare de coduri Goppa neechivalente, avand aceiasi parametri.

Algoritmul de criptare  McEliece  este urmatorul:

Fie G  matricea generatoare a unui (n,k,d) - cod Goppa cu   n = 2m, d = 2t + 1, k =n − mt.Se definesc S  o matrice inversabila k

×k  peste Z 2  si P  o matrice de permutare n

×n

(matrice ın care pe fiecare linie si coloana exista o valoare 1, iar restul elementelorsunt 0).Fie P = Z k2 ,   C= Z n2 ,   K= {(G,S,P,G) | G = S  · G · P }.G  este publica iar  G, S, P  sunt secrete.Pentru  K  = (G,S,P,G) se defineste

eK (a, e) = aG + e

unde  e ∈ Z n2  este un cuvant aleator2 de pondere  t.Bob  decripteaza un mesaj  b ∈ Z n2   astfel:

1.   Calculeaza  b1 = bP −1

;2.   Decodifica  b1  obtinand  b1 = a1 + e1  unde  a1 ∈ C;3.   Calculeaza  a0 ∈ Z k2  astfel ca  a0G =  a1;4.   Calculeaza  a =  a0S −1.

Corectitudinea algoritmului de decriptare:

Deoarece  b1 =  bP −1 = (aG + e) · P −1 = (aS · G · P  + e) · P −1 = (aS ) · G + eP −1

iar  eP −1 este un vector de pondere cel mult  t, algoritmul de decodificare al codului dematrice generatoare  G poate decodifica corect pe  b1  si obtine un mesaj sursa  a0 = aS .

La ultimul pas se afla mesajul initial  a =  a0S −1.

Page 174: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 174/177

12   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

Nu vom intra ın detalii privind definitia codurilor Goppa ([1]). Acestea pot fi priviteınsa drept coduri liniare cu parametrii   n   = 2m, d   = 2t + 1, k   =   n − mt. Pentru oimplementare practica referitor la criptare, McEliece sugereaza  m  = 10, t  = 50, ceea cecorespunde unui (1024, 524, 101) - cod Goppa3. Un text clar este o secventa de 524 biti,iar un text criptat este o secventa de 1024 biti. Cheia publica este o matrice binara dedimensiuni 524 × 1024.

Exemplul 13.8  Vom exemplifica algoritmul pe un  (8, 2, 5) - cod Goppa (deci  n  = 23, k =2, d = 5). Acest cod - extrem de mic (are doar  4  cuvinte) este generat de matricea 

G =   0 0 1 1 1 1 1 11 1 0 0 1 0 1 1

S˘ a presupunem c˘ a  Bob  alege matricile 

S  =

  1 01 1

  cu    S −1 =

 1 01 1

si 

P   =

0 1 0 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 0 0 1 01 0 0 0 0 0 0 00 0 1 0 0 0 0 0

0 0 0 0 0 1 0 00 0 0 0 1 0 0 00 0 0 0 0 0 0 1

cu    P −1 =

0 0 0 1 0 0 0 01 0 0 0 0 0 0 00 0 0 0 1 0 0 00 1 0 0 0 0 0 00 0 0 0 0 0 1 0

0 0 0 0 0 1 0 00 0 1 0 0 0 0 00 0 0 0 0 0 0 1

Matricea public˘ a generat˘ a este deci 

G  =  SGP   =

  1 0 1 0 1 1 1 11 1 0 1 0 1 1 0

S˘ a presupunem c˘ a   Alice  vrea s˘ a cripteze textul clar   a  = (0, 1)   folosind vectorul - eroare e = (0, 0, 1, 0, 0, 1, 0, 0)  (ales aleator) de pondere  2. Textul criptat este 

b =  aG + e = (1, 1, 1, 1, 0, 0, 1, 0).

Dup˘ a recept ionarea mesajului, Bob calculeaz˘ a ınt  ai b1 =  bP −1 = (1, 1, 1, 1, 1, 0, 0, 0),

pe care ıl scrie sub forma   a1 + e1  unde   a1 = (1, 1, 1, 1, 0, 1, 0, 0)  este un cuvˆ ant - cod,iar  e1 = (0, 0, 0, 0, 1, 1, 0, 0) = e  (din cauza ınmult irii cu  P −1).

Bob calculeaz˘ a apoi mesajul  a0 = (1, 1), singurul cu proprietatea  a0G =  a1.Ultimul pas este determinarea lui  a =  S −1a0 = (0, 1), care este textul clar expediat de 

Alice.

3O analiza a securitatii recomanda parametrii  n = 1024, t = 38, k ≥ 644.

Page 175: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 175/177

13.4. EXERCITII    13

Algoritmul McElliece s-a dovedit sigur. Acest lucru rezulta din analiza celor douatipuri de atac posibile:

1. Din informatia publica,  Oscar   ıncearca sa afle matricea  G  sau o matrice  G1  a unuicod Goppa echivalent (avand aceeasi parametri). Nu se cunoaste nici un algoritmeficient pentru un astfel de demers.

2.   Oscar   ıncearca sa afle mesajul clar   a  direct din textul criptat   b. El ia aleator  kcoloane din matricea publica  G. Notand  G

k, bk, ek   restrictiile lui  G, b  respectiv  e

la aceste  k  coloane, vom avea  aGk  = bk + ek. Daca  bk = 0   si  G

k  este nesingulara,atunci   a  poate fi aflat rezolvand sistemul liniar   aG

k  =  bk. Probabilitatea ca cei k

biti selectati sa nu faca parte din eroare (deci   ek   =  bf 0 este  C k

n−t/C k

n, neglijabilapentru valorile alese ale parametrior  n, k,t.

Interesant, dar aceasta securitate este mult diminuata daca se foloseste alta clasa de coduriliniare ın locul codurilor Goppa.

Totusi, ın ciuda securitatii sale si a vitezei relativ mari de criptare/decriptare sistemulMcElliece nu este folosit practic. Cauza principala o constituie cheia sa excesiv de mare.De exemplu, pentru  n = 1024, t = 38, k ≥ 644, cheia are aproximativ 219 biti.

13.4 Exercitii

13.1   Fie  E  curba eliptic˘ a  y2 = x3 + x + 28  peste  Z 71.

1. Determinat ¸i num˘ arul de puncte din  E ;

2. Ar˘ atat i c˘ a E  nu este ciclic;

3. Care este ordinul maxim al unui element din  E   ? G˘ asit i un astfel de element.

13.2   Fie  E  curba eliptic˘ a  y2 = x3 + x + 13  definit˘ ape  Z 31. Se poate ar˘ ata c˘ a  |E | = 34   si c˘ a  (9, 10)  este de ordinul  34  ın  E . Sistemul de criptare Mezenes - Vanstome definit pe  E 

admite ca spat iu al textelor clare  Z ∗34 × Z ∗34. Fie  a = 25   exponentul secret al lui Bob.

1. Calculat i  β  = aα;

2. Decriptat i textul urm˘ ator:

((4, 9), 28, 7)((19, 28), 9, 13)((5, 22), 20, 17)((25, 16), 12, 27)

3. Dac˘ a presupunem c˘ a fiecare text clar reprezint˘ a dou˘ a caractere alfabetice, convertit i acest text clar ın englez˘ a (s-a folosit corespondent a  A − 1, . . . , Z  − 26).

Page 176: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 176/177

14   PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC   A

13.3   Fie  E  curba eliptic˘ a  y2 = x3 + x + 6  peste  Z 11.(a)   S˘ a se calculeze punctele lui  E .(b)  Se aleg parametrii  α = (2, 7)   si  a = 7. Folosind sistemul de criptare El Gamal, s˘ a 

se cripteze mesajul  x = (10, 9)  cu valoarea aleatoare  k = 3.(c)   Folosind sistemul de criptare Menezes - Vanstone si aceiasi parametrii, s˘ a se 

cripteze mesajul  x = (9, 1).

13.4   Demonstrat i Lemele 13.1 si 13.2.

13.5   Fie curba eliptic˘ a  E  de ecuat ie  y2 = x3 + x + 28  peste  Z 71.(a)   S˘ a se determine num˘ arul de puncte din  E .

(b)  Care este ordiunul maxim al unui element din  E  ? S˘ a se g˘ aseasc˘ a un element de acest ordin.

13.6   Fie  p > 3  un num˘ ar prim impar si  a, b ∈ Z  p. Dac˘ a ecuat ia  x3 + ax + b ≡ 0 (mod p)are trei r˘ ad˘ acini distincte ın  Z  p, ar˘ atat i c˘ a grupul curbei eliptice corespunz˘ atoare  (E, +)nu este ciclic.

13.7   Fie   E   o curb˘ a eliptic˘ a definit˘ a peste   Z  p   unde   p >   3   este un num˘ ar prim. S˘ a presupunem c˘ a  n =  card(E )  este prim si fie  P  ∈ E, P  = O.

(a)   Ar˘ atat i c˘ a   logP (−P ) = n − 1.(b)   Dat i un algoritm de calcul pentru  n  de complexitate 

 O( p1/4)   folosind teorema lui 

Hasse si o variant˘ a a algoritmului Shanks.

13.8  O reprezentare binar˘ a  (an−1, an−2, . . . , a0)  a num˘ arului ıntreg  a  este ın ”forma ne-adiacent˘ a” (forma  N AF ) dac˘ a nu exist˘ a dou˘ a valori consecutive nenule.

(a)   Dat i un algoritm de reprezentare a numerelor ıntregi ın forma   NAF . Aplicat i acest algoritm pentru numerele  87, 112, 2047.

(b)  Folosind reprezentarea  N AF  a lui  87, calculat i  87P , unde  P   = (2, 6) este un punct pe curba eliptic˘ a  y2 = x3 + x + 26  definit˘ a peste  Z 27.

Page 177: curs3 cap1-12.pdf

7/21/2019 curs3 cap1-12.pdf

http://slidepdf.com/reader/full/curs3-cap1-12pdf 177/177

Bibliografie

[1] A. Atanasiu,  Teoria Codurilor , Editura Universitatii Bucuresti, 2002

[2] A. Enge,   Elliptic Curves and their applications to Cryptography , Kluwer AcademicPubl, 1999

[3] M. Rosing,  Implementing Elliptic Curve Cryptography , Manning, 1998

[4] D. Stinton,   Cryptography, theory and pratice , International Thompson PublishingFrance, 1995


Recommended