Date post: | 03-Feb-2018 |
Category: |
Documents |
Upload: | april-mckenzie |
View: | 256 times |
Download: | 0 times |
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
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 .
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 .
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.
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
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.
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.
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:
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 .
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
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.
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
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
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
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.
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.
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
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
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.
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
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 .
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.
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)
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.
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 . . .
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 ?
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.
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
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
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.
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):
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
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:
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.
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:
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.
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.
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 38/177
10 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
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
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
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.
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).
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.
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
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.
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.
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);
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.
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
+
S
0 1 2 S [i]+S [ j] 254 255
K
. . . . . . . . . . . .
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].
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)
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 51/177
12 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
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
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
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:
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
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
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;
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:
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).
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),
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 .
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 62/177
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.
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
f
f
f
f
f
f
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
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 65/177
5.6. EXERCITII 13
f
f
f
f
f
f
f
f
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
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.
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.
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
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 ).
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 69/177
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:
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 ∗.
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
.
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.
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
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
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).
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, . . .
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
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.
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 .
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.
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:
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 .
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
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
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
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.
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]).
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);
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 + +.
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.
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 .
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 .
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)
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
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.
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
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
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 .
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)
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]
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
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
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.
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 105/177
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.
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)
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.
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.
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
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.
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.
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.
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 114/177
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
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
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
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.
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).
7/21/2019 curs3 cap1-12.pdf
http://slidepdf.com/reader/full/curs3-cap1-12pdf 120/177
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:
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
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).
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.
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
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).
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).
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).
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)
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
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
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
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.
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
a·
b−
t·
φ(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.
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:
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)
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:
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)
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.
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)
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.
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)
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
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 .
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)
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).
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
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
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]).
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).
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 .
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
q
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:
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
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).
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].
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.
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 − β ).
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.
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)
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.
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 )
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
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
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
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 ”).
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).
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.
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.
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).
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)
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.
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 .
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.
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.
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).
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.
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