Securitatea Informat iei [628905]
Securitatea Informat ¸iei
Vol. 1
(Criptografie)
Adrian Atanasiu
Editura INFODATA Cluj
3
Prefat ¸˘ a
Criptografia este ¸ stiint ¸a comunic˘ arii informat ¸iei sub o form˘ a securizat˘ a. Istoria ei
este veche ¸ si fascinant˘ a. Mesaje ascunse sunt descoperite ˆ ın Biblie; Herodot ment ¸ioneaz˘ a
o serie de procedee de steganografie folosite de vechii greci; Cezar folose¸ ste un sistem
de criptare care ˆ ıi poart˘ a numele; decriptarea telegramei Zimmermann a dus la intrarea
Statelor Unite ˆ ın conflictul din 1914-1918. S ¸i – ˆ ın fine – cine nu a auzit de celebra ma¸ sin˘ a
de criptat Enigma ?
Societatea actual˘ a, cu un volum de date care se multiplic˘ a rapid, a dat noi valent ¸e ¸ si a
creat noi oportunit˘ at ¸i de dezvoltare a criptografiei. Utilizarea Internetului a sporit ¸ si mai
mult important ¸a asigur˘ arii securit˘ at ¸ii informat ¸iei, dar ¸ si a autentific˘ arii ei. Acum dome-
niul ¸ si-a l˘ argit competent ¸ele ¸ si s-a extins atˆ at de mult ˆ ıncˆ at a fost necesar˘ a redefinirea
sa. Criptografia a devenit numai un capitol a ceea ce se nume¸ ste ast˘ azi Securitatea
informat ¸iei . Alte capitole care merit˘ a fi ment ¸ionate sunt: protocoale de semn˘ atur˘ a elec-
tronic˘ a, comert ¸ electronic (Digital Business), infrastructur˘ a cu chei publice(PKI), arhi-
tectura de securitate a sistemelor de calcul (hard ¸ si soft), securitatea ret ¸elelor, securitatea
fluxului informat ¸ional, securitatea bazelor de date, standarde ¸ si protocoale de gestiune
a cheilor, 0 – knowledge, partajarea secretelor, criptografie vizual˘ a, watermarking, crip-
tografie nestandard (cuantum ¸ si molecular˘ a), standarde de testare ¸ si certificare, protocoale
criptografice ˆ ın medii juridice. S ¸i zona de interes nu este nici pe departe epuizat˘ a. Unele
subiecte se dezvolt˘ a rapid ¸ si genereaz˘ a la rˆ andul lor domenii noi. De exemplu, ret ¸elele
wireless sau smart-cardurile necesit˘ a abord˘ ari separate, datorit˘ a interesului tot mai mare
pe care ˆ ıl ridic˘ a ˆ ın societatea actual˘ a. Deci, a¸ sa cum ˆ ın anii 60 Knuth avea ˆ ın vedere o
prezentare a artei program˘ arii calculatoarelor, a¸ sa ar fi interesant de construit o enciclo-
pedie a artei securit˘ at ¸ii informat ¸iei . O enciclopedie care se ˆ ımbog˘ at ¸e¸ ste zilnic.
Lucrarea de baz˘ a este un suport de curs predat la Facultatea de Matematic˘ a ¸ si Infor-
matic˘ a a Universit˘ at ¸ii Bucure¸ sti. Mult timp acest curs a fost opt ¸ional; dup˘ a trecerea la
sistemul Bologna, s-a luat ˆ ın considerare important ¸a domeniului ¸ si interesul permanent al
student ¸ilor, astfel ˆ ıncˆ at studiul criptografiei a fost trecut ˆ ın curicula general˘ a. Materia are
ˆ ın vedere atˆ at o prezentare structurat˘ a istoric, cˆ at ¸ si o abordare preponderent teoretic˘ a,
capabil˘ a s˘ a asigure baza fundamental˘ a de cuno¸ stint ¸e absolvent ¸ilor care ulterior vor lucra
ˆ ın domeniul securit˘ at ¸ii informat ¸iei.
Dup˘ a prezentarea sistemelor simple de criptare (monoa-lfabetice, polia-lfabetice, me-
4
canice, fluide), studiul sistemelor de criptare bloc se ˆ ıncheie cu prezentarea principalelor
sisteme utilizate ast˘ azi: DES (Data Encryption Standard) ¸ si AES (Advanced Encryption
Standard). Toate sistemele sunt analizate din trei puncte de vedere: criptare, decriptare,
criptanaliz˘ a, un rol deosebit de important avˆ and acesta din urm˘ a. Nici un sistem de
criptare nu este acceptat dac˘ a nu se demonstreaz˘ a (teoretic) c˘ a rezist˘ a la principalele
tipuri de atac: criptanaliz˘ a liniar˘ a, criptanaliz˘ a diferent ¸ial˘ a, compromis spat ¸iu – timp,
atac meet-in-the middle, atacuri bazate pe frecvent ¸˘ a. De aceea, discut ¸iile asupra acestor
tipuri de atac sunt detaliate.
O parte important˘ a a lucr˘ arii se refer˘ a la criptografia cu chei publice, construit˘ a fun-
damental pe o conjectur˘ a: ”P versus NP”, tema primei probleme a mileniului. Mai exact,
sistemele de criptare din aceast˘ a zon˘ a se bazeaz˘ a pe probleme NP- complete (problema
factoriz˘ arii, problema logaritmului discret, problema rucsacului) care asigur˘ a construirea
de funct ¸ii polinomial neinversabile. Sistemele prezentate aici – RSA, El Gamal, Merkle-
Hellman, McElliece – ˆ ı¸ si bazeaz˘ a securitatea pe dificultatea acestor probleme. ˆIn plus,
construirea unei aritmetici pe mult ¸imea punctelor unei curbe eliptice a dat posibilitatea
utiliz˘ arii acestei baze pentru adaptarea de sisteme criptografice avˆ and o serie de avantaje:
lungime mic˘ a a cheilor, vitez˘ a mare de criptare/decriptare, securitate sporit˘ a.
Volumul se ˆ ıncheie cu un capitol dedicat generatorilor de numere pseudo-aleatoare,
component˘ a care ˆ ınsot ¸e¸ ste toate sistemele de criptare cu cheie public˘ a, precum ¸ si unele
sisteme simetrice de criptare ( DES de exemplu).
Acesta este cont ¸inutul primului volum al lucr˘ arii – materia predat˘ a timp de un semes-
tru. Va urma un al doilea volum, dedicat unor protocoale criptografice cunoscute. Anume,
protocoale de semn˘ atur˘ a electronic˘ a, de gestiune a cheilor, de partajare a secretelor, de
comert ¸ electronic, de vot electronic, de securitate a po¸ stei electronice. Fiecare astfel de
subiect poate constitui tema unui curs separat. ˆIn plus, vor mai fi prezentate: modalitatea
de construct ¸ie a funct ¸iilor de dispersie criptografic˘ a (hash) precum ¸ si probleme NP –
complete care stau la baza noilor sisteme – problema reprezent˘ arii, problema dualit˘ at ¸ii
(perechile Weil – Tate din domeniul curbelor eliptice).
Autorul roag˘ a pe cei care s-au l˘ asat sedu¸ si de domeniul acesta fascinant, au citit cartea
de fat ¸˘ a ¸ si au de f˘ acut observat ¸ii, corecturi sau sugestii s˘ a i se adreseze direct pe adresa
aadrian@gmail.com . Orice propunere constructiv˘ a este bine venit˘ a.
Capitolul 1
Sisteme de criptare
1.1 Caracteristicile unui sistem de criptare
Criptografia este o component˘ a a unui domeniu mult mai larg, numit securitatea infor-
mat ¸iei . Obiectivele generale pe care le areˆ ın vedere un serviciu de securitate a informat ¸iei
pot fi sumarizate ˆ ın:
1.Confident ¸ialitate (privacy) : proprietatea de a p˘ astra secretul informat ¸iei, pentru ca
aceasta s˘ a fie folosit˘ a numai de persoanele autorizate.
2.Integritatea datelor : proprietatea de a evita orice modificare (inserare, ¸ stergere,
substitut ¸ie) neautorizat˘ a a informat ¸iei.
3.Autentificare : Proprietatea de a identifica o entitate conform anumitor standarde.
Este compus˘ a din
(a)Autentificarea unei entit˘ at ¸i ;
(b)Autentificarea sursei informat ¸iei ;
4.Non – repudierea : Proprietatea care previne negarea unor evenimente anterioare.
Celelalte obiective legate de securitatea informat ¸iei (autentificarea mesajelor, semn˘ aturi,
autorizare, validare, controlul accesului, certificare, timestamping, confirmarea recept ¸iei,
anonimitate, revocare) pot fi derivate din acestea.
Definit ¸ia 1.1. Criptografia este studiul metodelor matematice legate de securitatea infor-
mat ¸iei, capabile s˘ a asigure confident ¸ialitatea, autentificarea ¸ si non-repudierea mesajelor,
precum ¸ si integritatea datelor vehiculate ([38]).
5
6 CAPITOLUL 1. SISTEME DE CRIPTARE
Termenul criptografie ˆ ınseamn˘ a scriere secret˘ a1. Domeniul cuprinde atˆ at operat ¸ia de
criptare (cifrare) a unui text, cˆ at ¸ si eventualele ˆ ıncerc˘ ari de descifrare ¸ si de aflare a cheii
de criptare. ˆIn unele lucr˘ ari, cadrul general de lucru este numit criptologie , termenul de
criptografie desemnˆ and numai operat ¸ia de cifrare ¸ si descifrare legal˘ a.
Situat ¸ia general˘ a de care se ocup˘ a criptografia este urm˘ atoarea:
CriptanalistExpeditor Destinatar
6-
Expeditorul (personalizat ˆ ın majoritatea lucr˘ arilor cu apelativul Alice ) dore¸ ste s˘ a trimit˘ a
destinatarului (numit Bob) un mesaj printr-un canal de comunicat ¸ie, canal cu un grad
ridicat de nesigurant ¸˘ a2. Aceast˘ a insecuritate o prezint˘ a un adversar criptanalist ( Oscar )
care dore¸ ste – din diverse motive – s˘ a cunoasc˘ a ¸ si – eventual – s˘ a modifice cont ¸inutul
mesajului, de¸ si acesta nu ˆ ıi este destinat.
Aceast˘ a confident ¸ialitate solicitat˘ a de Alice ¸ siBobse rezolv˘ a de obicei prin rescrierea
mesajului sub o form˘ a care s˘ a nu poat˘ a fi ˆ ınt ¸eleas˘ a de nici o persoan˘ a care l-ar putea
intercepta. Transformarea respectiv˘ a se nume¸ ste criptare .
ˆIn general, hackerul Oscar poate avea dou˘ a tipuri de comportament:
•Pasiv : el se mult ¸ume¸ ste s˘ a intercepteze mesajele ¸ si s˘ a le citeasc˘ a, folosindu-le ˆ ın
scop personal;
•Activ : dore¸ ste s˘ a modifice mesajele, s˘ a le schimbe ordinea sau s˘ a introduc˘ a propriile
sale mesaje, ˆ ın intent ¸ia de a fi acceptat de Bobdrept Alice .ˆIn acest caz, mesajul va
trebui s˘ a verifice –ˆ ınafar˘ a de condit ¸ia de confident ¸ialitate – ¸ si pe cea de autenticitate:
Bobtrebuie s˘ a fie sigur c˘ a mesajul primit a fost de la Alice .
ˆIn unele cazuri, problema se poate complica prin faptul c˘ a exist˘ a anumite mesaje pe
careAlice neag˘ a c˘ aˆ ıi apart ¸in, de¸ si le-a trimis chiar ea. ˆIn acest caz trebuie prev˘ azute
anumite protocoale care s˘ a ˆ ınt˘ areasc˘ a propriet˘ at ¸ile de autentificare; propriet˘ at ¸i care
s˘ a o sileasc˘ a pe Alice s˘ a ˆ ı¸ si recunoasc˘ a propriile mesaje (non-repudiere).
ˆIn toate aceste scenarii nu exist˘ a personaje pozitive sau negative. Orice serviciu de
criptare/decriptare are ¸ si o sect ¸ie de criptanaliz˘ a. Se pot da numeroase exemple din
istorie care s˘ a arate rolul pozitiv al lui Oscar ˆ ın anumite situat ¸ii. ˆIn general, ˆ ıntr-un
1Cuvˆ antul – inventat ˆ ın 1658 de fizicianul englez Thomas Browne – este format din cuvintele grece¸ sti
cryptos – ascuns ¸ si grafie – scriere.
2Canalul de comunicat ¸ie poate suferi ¸ si perturb˘ ari de ordin fizic: zgomote, ¸ stergeri, demodul˘ ari etc;
studiul detect˘ arii ¸ si corect˘ arii erorilor de de transmitere a informat ¸iei constituie tema altui domeniu al
securit˘ at ¸ii informat ¸iei, numit Teoria Codurilor .
1.1. CARACTERISTICILE UNUI SISTEM DE CRIPTARE 7
triplet (expeditor, destinatar, criptanalist) nimeni nu are ˆ ıncredere ˆ ın nimeni. Variantele
studiate ˆ ın care Alice are ˆ ıncredere ˆ ın Bobsau invers, sunt mult mai simple ¸ si – de aceea
– extrem de rare.
Pentru a ˆ ıncepe un studiu sistematic al domeniului, s˘ a stabilim ˆ ıntˆ ai terminologia
folosit˘ a uzual:
Un mesaj ˆ ın forma sa originar˘ a este numit text clar . Expeditorul rescrie acest mesaj
folosind o metod˘ a cunoscut˘ a numai de el (eventual ¸ si de destinatar); spunem c˘ a el cripteaz˘ a
(sau cifreaz˘ a ) mesajul, obt ¸inˆ and un text criptat . Destinatarul prime¸ ste textul cifrat ¸ si ˆ ıl
decripteaz˘ a ¸ stiind metoda folosit˘ a pentru criptare; deci Alice ¸ siBobtrebuie s˘ a stabileasc˘ a
ˆ ıntr-o etap˘ a preliminar˘ a detaliile modalit˘ at ¸ii de criptare ¸ si de decriptare.
Algoritmul care realizeaz˘ a operat ¸iile descrise se nume¸ ste sistem de criptare . Formal,
Definit ¸ia 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 ¸ sidK:C−→ P sunt funct ¸ii cu proprietatea
dK(eK(w)) =w,∀w∈P.
ˆIn general se consider˘ a C={α|∃m∈P,∃k∈K, α=eK(m)}.
Funct ¸ia eKeste evident injectiv˘ a (de remarcat c˘ a aceast˘ a condit ¸ie de injectivitate nu
este obligatorie pentru funct ¸ia de decriptare dK).
Dac˘ a eKeste bijectiv˘ a (¸ si deci dK=e−1
K), sistemul de criptare se nume¸ ste ” simetric ”
sau sistem de criptare bloc.
Observat ¸ia 1.1. ˆIntr-un sistem de criptare simetric cu P=C, funct ¸ia de criptare este o
permutare. Altfel spus, dac˘ a mult ¸imea textelor clare coincide cu cea a textelor criptate, o
criptare cu un sistem simetric nu face altceva decˆ at o rearanjare (permutare) a textelor.
Un mesaj de intrare xeste descompus ˆ ın
x=x1x2. . . x n, x i∈P.
Apoi fiecare xieste criptat folosind regula de criptare eK, specificat˘ a de o cheie fixat˘ a
K∈K.
Deci Alice calculeaz˘ a yi=eK(xi) (1≤i≤n) ¸ si obt ¸ine textul criptat
y=y1y2. . . y n, y i∈C
pe care ˆ ıl trimite prin canalul de comunicat ¸ie. Bobprime¸ ste mesajul y=y1y2. . . y n,
pe care ˆ ıl decripteaz˘ a folosind funct ¸ia dK:xi=dK(yi) (1≤i≤n).
8 CAPITOLUL 1. SISTEME DE CRIPTARE
Pentru ca un sistem de criptare s˘ a fie considerat bun, trebuie ˆ ındeplinite trei criterii
(enunt ¸ate de Francis Bacon ˆ ın sec. XV II ):
1. Fiind date eK¸ siα∈P, este u¸ sor de determinat eK(α);
2. Fiind date dK¸ siw∈C, este u¸ sor de determinat dK(w);
3.αeste imposibil de determinat din w, f˘ ar˘ a a cunoa¸ ste dK.
Ultimul criteriu define¸ ste – sub o form˘ a vag˘ a – ideea de ”securitate” a sistemului.
La aceste criterii, Bacon ad˘ auga ¸ si o a patra regul˘ a:
4 Textul criptat trebuie s˘ a fie un text banal, f˘ ar˘ a suspiciuni.
Aceast˘ a ultim˘ a condit ¸ie este utilizat˘ a ast˘ azi doar de unele subdomenii al criptografiei,
cum ar fi steganografie sauwatermarking .
ˆIn termeni de complexitate, prin ”u¸ sor” se ˆ ınt ¸elege folosirea unui algoritm polinomial
de grad mic – preferabil algoritm liniar; o problem˘ a se consider˘ a ”imposibil˘ a” dac˘ a pentru
rezolvarea ei nu se cunosc decˆ at algoritmi de complexitate exponent ¸ial˘ a.
Observat ¸ia 1.2. ˆIntreaga disciplin˘ a numit˘ a ”criptografie” se bazeaz˘ a pe o conjectur˘ a no-
tat˘ a prescurtatP/negationslash=NP3(pentru detalii a se vedea [13]). Preprezint˘ 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 ma¸ sina
Turing.NP este clasa problemelor rezolvabile prin algoritmi nedeterministic polinomiali
(care sunt inclu¸ si ˆ ın algoritmii de complexitate cel put ¸in exponent ¸ial˘ a). Evident, P⊆NP ,
dar se pare c˘ a problema egalit˘ at ¸ii este nedecidabil˘ a (ˆ ın termeni matematici). Oricum, pen-
tru cei interesat ¸i, site-ul [66] 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
Fiekun 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 Aare num˘ arul de ordine 0). Aceast˘ a nou˘ a scriere o a¸ sez˘ 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
3Aceasta este prima din cele cinci probleme ale mileniului, pentru rezolvarea c˘ arora se acord˘ a premii
de cˆ ate un milion dolari.
1.1. CARACTERISTICILE UNUI SISTEM DE CRIPTARE 9
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 mesajul care trebuie criptat este NIMIC NOU. Alice va a¸ seza 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 cunoa¸ ste (fiind destinatar legal) cheia de criptare ek. Cheia sa de
decriptare este dk=e26−k. Pe baza ei Bob va putea construi cele dou˘ a 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 24
corespunde 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 .
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 12
N 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: Z26. Vom avea
P=C=K=Z26. Pentru un K∈K ales arbitrar (¸ si m∈P, α∈C) ,
eK(m) =m+K(mod 26)
¸ si
dK(α) =α−K(mod 26)
La nivel conceptual, exist˘ a dou˘ a tehnici de construct ¸ie a sistemelor de criptare, definite
de Claude Shannon ˆ ın 1949:
•Confuzie : Scopul este de a bloca orice informat ¸ie obt ¸inut˘ a prin analize statistice
sau redondant ¸e ale textului criptat.
O modalitate simpl˘ a de a obt ¸ine un grad ridicat de confuzie se bazeaz˘ a pe utilizarea
de substitut ¸ii. De exemplu, ˆ ın cazul secvent ¸elor binare, putem complementa unele
subsecvent ¸e folosind anumite formule predefinite.
10 CAPITOLUL 1. SISTEME DE CRIPTARE
•Difuzie : Aceast˘ a tehnic˘ a disipeaz˘ a redondant ¸a specific˘ a textului clar prin gene-
ralizarea ei la tot textul criptat. Practic, o modificare a unui singur caracter din
textul clar provoac˘ a multiple modific˘ ari ˆ ın textul criptat. Deci pentru distingerea
unei redondant ¸e din textul clar este necesar˘ a studierea unei cantit˘ at ¸i apreciabile de
text criptat.
O rafinare a conceptelor de confuzie ¸ si difuzie conduce la ideea de secret perfect (perfect
secrecy) . Un sistem de criptare are proprietatea de secret perfect dac˘ a din textul criptat,
Oscar nu poate obt ¸ine nici o informat ¸ie referitoare la textul clar.
Aceast˘ a idee poate fi formulat˘ a matematic astfel:
Definit ¸ia 1.3. Un sistem de criptare este perfect secret dac˘ a
Pr[x|y] =Pr[x]
pentru orice x∈P,y∈C.
Altfel spus, probabilitatea aposteriori ca textul clar xs˘ a fie criptat ˆ ın textul recept ¸ionat
yeste identic˘ a cu probabilitatea apriori ca textul clar s˘ a fie x.
Urm˘ atoarea teorem˘ a caracterizeaz˘ a proprietatea de secret perfect pentru majoritatea
sistemelor de criptare simetrice:
Teorema 1.1. Fie(P,C,K,E,D)un sistem de criptare cu card(K) =card(C) =card(P).
El asigur˘ a un secret perfect dac˘ a ¸ si numai dac˘ a toate cheile sunt utilizate cu probabilit˘ at ¸i
egale ¸ si∀x∈P,∀y∈Cexist˘ a o cheie unic˘ a K∈K cuy=eK(x).
Demonstrat ¸ia acestei teoreme poate fi g˘ asit˘ a detaliat ˆ ın [11].
1.2 Criptanaliza sistemelor de criptare
Definit ¸ia 1.4. Procesul de determinare a unei chei Kfolosind un text criptat α(asociat
eventual cu alte informat ¸ii auxiliare) se nume¸ ste ”criptanaliz˘ a”.
Deci decriptarea ¸ sicriptanaliza au ˆ ın final acela¸ si scop: aflarea textului clar. Diferent ¸a
const˘ a ˆ ın faptul c˘ a ˆ ın criptanaliz˘ a acesta trebuie aflat f˘ ar˘ a a ¸ sti cheia de decriptare .
Exist˘ a o ”regul˘ a 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 pˆ an˘ a ˆ ın prezent:
acestea sau au fost sparte sau trebuie s˘ a se revizuiasc˘ a periodic pentru a rezista atacurilor
permanente ale intru¸ silor.
S˘ a studiem put ¸in pozit ¸ia unui criptanalist ( Oscar ). Se presupune ˆ ıntotdeauna c˘ a el
are la dispozit ¸ie facilit˘ at ¸i de calcul excelente, adesea superioare celor de care dispun cei
doi parteneri Alice ¸ siBob.
1.2. CRIPTANALIZA SISTEMELOR DE CRIPTARE 11
ˆIn secolul XIX francezul Auguste Kerckhoffs lanseaz˘ a o ipotez˘ a fundamental˘ a (numit˘ a
”Principiul lui Kirkoff” ):
Criptanalistul ¸ stie toate detaliile sistemului de criptare folosit, inclusiv algoritmii ¸ si
implement˘ arile lor.4
Ca o consecint ¸˘ a, securitatea unui sistem de criptare se bazeaz˘ a ˆ ın totalitate pe cheie.
Definit ¸ia 1.5. Un atac este un algoritm eficient care – pentru un sistem de criptare
fixat – g˘ ase¸ ste elemente protejate care pot fi determinate (mult mai) rapid decˆ at au fost
specificate de autori.
Evident, unele atacuri pot s˘ a nu contrazic˘ a securitatea sistemului ci doar s˘ a prevad˘ a
anumite sl˘ abiciuni posibile, de care utilizatorii trebuie s˘ a t ¸in˘ a cont.
ˆIn general, scopul criptografiei este desemnarea de algoritmi (protocoale, scheme, ser-
vicii) de criptare siguri (din punct de vedere al complexit˘ at ¸ii), ˆ ın timp ce criptanaliza
se concentreaz˘ a pe construirea de atacuri asupra sistemelor de criptare, avˆ and ca scop
determinarea cheilor de criptare.
Ulterior, atacurile potent ¸ial reu¸ site furnizeaz˘ a criterii de construct ¸ie a sistemelor de
criptare, ¸ si vor face parte implicit din criptografie.
Criteriile de construct ¸ie obt ¸inute dintr-un atac permit realizarea de sisteme de criptare
imune (rezistente) la atacul respectiv.
Criptografia ˆ ıncearc˘ a s˘ a demonstreze c˘ a produsele obt ¸inute sunt sigure, folosind toat˘ a
informat ¸ia cunoscut˘ a despre atacurile posibile.
Criptanaliza examineaz˘ a cu atent ¸ie toate sl˘ abiciunile (faliile) unui sistem ¸ si ˆ ıncearc˘ a
s˘ a construiasc˘ a atacuri bazate pe aceste sl˘ abiciuni, pentru a demonstra c˘ a sistemul nu
este sigur (¸ si deci poate fi spart de Oscar ).
ˆIn general este imposibil de demonstrat c˘ a un sistem rezist˘ a la orice fel de atac, ˆ ın
timp ce opusul s˘ au este totdeauna posibil: este suficient de descris un atac.
Se consider˘ a c˘ a metodele de atac (cum ar fi furtul, mituirea, presiuni fizice ¸ si psihice
asupra persoanelor implicate ˆ ın construirea ¸ si utilizarea sistemului de criptare) care nu
sunt legate direct de sl˘ abiciunile sistemului de criptare, nu intr˘ a ˆ ın domeniul criptanalizei.
ˆIn general un sistem de criptare poate fi necondit ¸ionat sigur saucondit ¸ionat sigur .
Un sistem necondit ¸ionat sigur este imun la orice tip de atac. ˆIn acest caz, securitatea sa
depinde de dificultatea de a rezolva problema matematic˘ a pe care se bazeaz˘ a construirea
cheii (de criptare/decriptare).
4Acesta este unul din cele ¸ sase principii enunt ¸ate de Kerckfoffs pentru domeniul militar. Pentru detalii,
se poate utiliza wikipedia.org/wiki/Kerckhoffsprinciple .
12 CAPITOLUL 1. SISTEME DE CRIPTARE
ˆIn general, un criptanalist este pusˆ ın fat ¸a urm˘ atoarelor situat ¸ii, careˆ ıi solicit˘ a strategii
diverse de urmat:
1. S ¸tie numai textul criptat w; ˆ ın acest caz atacurile sunt direct legate de lungimea
textului.
Cel mai simplu atac ˆ ın acest caz const˘ a ˆ ın parcurgerea tuturor cheilor posibile ¸ si
verificarea textului criptat, pˆ an˘ a se g˘ ase¸ ste cheia corect˘ a. Este atacul prin fort ¸˘ a
brut˘ a ¸ si el reu¸ se¸ ste totdeauna, pentru c˘ a exist˘ a ˆ ıntotdeauna o cheie ˆ ın K, care a fost
folosit˘ a la criptare.
Un atac prin fort ¸˘ a brut˘ a poate fi modelat foarte simplu sub forma unui oracol, care
pentru orice cheie K∈K, r˘ aspunde dac˘ a este corect˘ a sau nu.
Atac?6
-Oracol
Da/Nu k
Cheie
Principala ˆ ıntrebare care se pune ˆ ın aceasta situat ¸ie este: dac˘ a ˆ ıncerc˘ am s˘ a ”ghicim”
una din nchei posibile, care este num˘ arul mediu de ˆ ıncerc˘ ari pˆ an˘ a g˘ asim cheia ?
Teorema 1.2. Pentru a ghici o cheie din nvariante posibile sunt necesare ˆ ın medie
(n+ 1)/2ˆ ıncerc˘ ari.
De exemplu, pentru un sistem de criptare cu card(K) = 256, se folosesc aproximativ
255ˆ ıncerc˘ ari pˆ an˘ a se g˘ ase¸ ste cheia corect˘ a.
Demonstrat ¸ie. Dac˘ a sistemul are nchei posibile, atunci probabilitatea de a ghici
corect din prima ˆ ıncercare este 1 /n. Pentru a ghici din dou˘ a ˆ ıncerc˘ ari trebuie s˘ a
fi dat gre¸ s cu prima ˆ ıncercare ¸ si apoi – eliminˆ and cheia care nu este corect˘ a – s˘ a
ˆ ıncerc˘ am alt˘ a cheie din restul de n−1 chei posibile. Deci probabilitatea de a ghici
din dou˘ a ˆ ıncerc˘ ari este/parenleftBig
1−1
n/parenrightBig
1
n−1=1
n. Similar, probabilitatea de a ghici cheia
corect˘ a ˆ ın exact 3 ,4, . . . , n ˆ ıncerc˘ ari este 1 /n.
1.2. CRIPTANALIZA SISTEMELOR DE CRIPTARE 13
Num˘ arul mediu de ˆ ıncerc˘ ari se obt ¸ine prin ˆ ınmult ¸irea num˘ arului kde ˆ ıncerc˘ ari cu
probabilitatea de ghicire a cheii corecte ˆ ın kˆ ıncerc˘ ari ¸ si apoi sumarea dup˘ a k. Deci
1·1
n+ 2·1
n. . .+ (n−1)·1
n+n·1
n=n(n+ 1)
2·1
n=n+ 1
2
Deci, ˆ ın cazul cˆ and num˘ arul cheilor posibile este mic (ˆ ın Exemplul 1.1 sunt numai
26 chei), aceast˘ a cheie se poate afla foarte u¸ sor dup˘ a un num˘ ar mic de ˆ ıncerc˘ ari. De
aceea sunt folosite obligatoriu sisteme de criptare cu card(K) foarte mare. Pentru
o cheie care ocup˘ a nbit ¸i sunt necesare ˆ ın medie 2n−1ˆ ıncerc˘ ari (dac˘ a nu exist˘ a nici
o informat ¸ie suplimentar˘ a). O extindere a lungimii cheii la n+ 1 bit ¸i dubleaz˘ a deci
spat ¸iul de c˘ autare. ˆIn momentul de fat ¸˘ a, tehnica de calcul ofer˘ a atacuri prin fort ¸˘ a
brut˘ a eficiente pentru cheile de lungimi mai mici de 128 bit ¸i; a¸ sa c˘ a majoritatea
sistemelor de criptare actuale folosesc ˆ ın general chei de 1024 bit ¸i sau chiar mai
mult5.
Atacul prin fort ¸˘ a brut˘ a poate fi ˆ ımbun˘ at˘ at ¸it semnificativ cu alte informat ¸ii legate
de sistem, informat ¸ii care pot reduce num˘ arul cheilor posibile.
Multe atacuri folosesc diverse strategii pentru a reduce semnificativ spat ¸iul cheilor
posibile, dup˘ a care se folose¸ ste atacul prin fort ¸˘ a brut˘ a.
2. S ¸tie cel put ¸in o pereche de caractere (text clar, text criptat) ; din cunoa¸ sterea cˆ atorva
perechi ( x, eK(x)) cu x∈P Oscar va ˆ ıncearca s˘ a decripteze ˆ ıntregul text criptat
interceptat.
Exemplul 1.2. La sistemul de criptare Cezar, o singur˘ a pereche (a, eK(a)), dezv˘ a-
luie imediat cheia ¸ si – implicit – duce la decriptare.
Exemplul 1.3. Aceasta a fost situat ¸ia ˆ ın care s-a aflat orientalistul francez Jean
Fran¸ cois Champollion, cˆ and a descifrat hieroglifele folosind piatra de la Rosetta (vezi
[43]).
3.Oscar cunoa¸ ste criptarea unor texte clare selectate de el; este atacul cu text clar
ales, luat ˆ ın considerare de majoritatea studiilor de criptanaliz˘ a. Aceast˘ a situat ¸ie
este adesea superioar˘ a celei din cazul precedent; s˘ a exemplific˘ am acest lucru.
Exemplul 1.4. Fie sistemul de criptare Hill, creat ˆ ın 1929 de Lester Hill.
Definim un num˘ ar ˆ ıntreg fixat d(d≥2). Se construiesc mult ¸imile
5Except ¸ii fac sistemele de criptare simetrice ¸ si cele bazate pe curbe eliptice, datorit˘ a conceptelor
teoretice speciale pe baza c˘ arora sunt construite.
14 CAPITOLUL 1. SISTEME DE CRIPTARE
P=C= (Z26)d,K={M|M∈M d(Z26), det(M)/negationslash= 0}.
Deci o cheie de criptare este o matrice Mp˘ atrat˘ a nesingular˘ a de dimensiune d, cu
elemente din Z26, iar M−1formeaz˘ a cheia de decriptare.
Textul clar wse ˆ ımparte ˆ ın blocuri de lungime d:w=α1α2. . . α n,|αi|=d
(ultimul bloc se completeaz˘ a eventual cu 0pˆ an˘ a ajunge la lungimea d).
Textul criptat va fi x=β1β2. . . β nunde βi=eM(αi) =αi·M(mod 26),(1≤i≤n).
Pentru decriptare se folose¸ ste relat ¸ia dM(βi) =βi·M−1(mod 26).
S˘ a lu˘ am de exemplu d= 2¸ si cheia M=/parenleftBigg
3 3
2 5/parenrightBigg
, cu inversa M−1=/parenleftBigg
15 17
20 9/parenrightBigg
.
Dac˘ a textul clar este w=FRAC , vom avea
α1= (F R) = (5 17) , α 2= (A C) = (0 2)
Din relat ¸iile
β1=α1·M(mod 26) = (5 17)·/parenleftBigg
3 3
2 5/parenrightBigg
= (23 22) = ( X W )
β2=α2·M(mod 26) = (0 2)·/parenleftBigg
3 3
2 5/parenrightBigg
= (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: trebuie s˘ a determine matricea
M=/parenleftBigg
a b
c d/parenrightBigg
cua, b, c, d∈{0,1, . . . , 25}, astfel ca
/parenleftBigg
5 17
0 2/parenrightBigg
·/parenleftBigg
a b
c d/parenrightBigg
=/parenleftBigg
23 22
4 10/parenrightBigg
.
Pentru a putea afla aceast˘ a matrice, Oscar trebuie s˘ a afle inversa lui A=/parenleftBigg
5 17
0 2/parenrightBigg
.
Cum det(A) = 10 ¸ sicmmdc (10,26)>1, rezult˘ a c˘ a 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
matrice este inversabil˘ a ¸ si ˆ ıi afl˘ a criptarea.
1.3. EXERCIT ¸II 15
FieBRAD acest text clar, a c˘ arui matrice asociat˘ a este A=/parenleftBigg
1 17
0 3/parenrightBigg
.
Oscar solicit˘ a criptarea lui BRAD ¸ si prime¸ ste LKGP , de matrice B=/parenleftBigg
11 10
6 15/parenrightBigg
.
Deci el dispune de perechea (BRAD, LKGP ).
Oscar determin˘ a ˆ ıntˆ ai A−1=/parenleftBigg
1 3
0 9/parenrightBigg
. Apoi, din ecuat ¸ia A·M=B, va g˘ asi
solut ¸ia
M=A−1·B=/parenleftBigg
1 3
0 9/parenrightBigg
·/parenleftBigg
11 10
6 15/parenrightBigg
=/parenleftBigg
3 3
2 5/parenrightBigg
4. S ¸tie cheia de criptare; acum Oscar va cunoa¸ ste cheia eK¸ si ˆ ıncearc˘ a s˘ a determine dK
ˆ ınainte de interceptarea mesajelor criptate.
Aceasta este situat ¸ia tipic˘ a sistemelor de criptare cu cheie public˘ a: cheia de criptare
eKeste cunoscut˘ a public cu mult ˆ ınainte de a fi folosit˘ a pentru criptare. Deci
criptanalistul are la dispozit ¸ie destul de mult timp pentru prelucrarea ei ¸ si orice
clarificareˆ ın perioada de pre-atac (cˆ and timpul este ”ieftin”) are o valoare deosebit˘ a;
dup˘ a ce se primesc mesaje criptate, timpul devine scump , ¸ si el trebuie s˘ a fie scurtat
cˆ at mai mult.
1.3 Exercit ¸ii
1.1. Textul clar NUMAR este criptat ˆ ın ”Orice vˆ ant nu bate seara”. S˘ a se descrie sistemul
de criptare folosit.
1.2. Folosind atacul prin fort ¸˘ a brut˘ a, decriptat ¸i mesajul WYPTBSJBYZ criptat cu un
sistem Cezar.
1.3. S˘ a presupunem c˘ a Cezar trimite un mesaj criptat unuia din generalii s˘ ai, iar acest
mesaj este format dintr-o singur˘ a liter˘ a. Ce putet ¸i spune despre securitatea mesajului ?
1.4. Fiepun num˘ ar prim. Ar˘ at˘ at ¸i c˘ a num˘ arul matricilor 2×2inversabile peste Zpeste
(p2−1)(p2−p).
1.5. Cˆ ate matrici 2×2sunt inversabile peste Znpentru 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 21
2 2 19
sau M=
11 2 19
5 23 25
20 7 1
16 CAPITOLUL 1. SISTEME DE CRIPTARE
1.7. Cˆ ate auto-chei sunt ˆ ıntr-un sistem de criptare Hill cu d= 2?
1.8. Determinat ¸i inversele matricilor (modulo 26):
/parenleftBigg
2 5
9 5/parenrightBigg
,/parenleftBigg
11 8
3 7/parenrightBigg
,
10 5 12
3 14 21
8 9 11
,
1 11 12
4 23 2
17 15 9
1.9. Textul clar ”conversation” este criptat ˆ ın ”HIARRTNUYTUS” folosind un sistem
de criptare Hill bazat pe o matrice neinversabil˘ a n×n.
Determinat ¸i n¸ si apoi matricile de criptare ¸ si decriptare.
1.10. Fien(n≥2)un num˘ ar ˆ ıntreg. Un p˘ atrat latin de ordin neste un tablou Lde
dimensiune n×n, cu elemente din mult ¸imea {1,2, . . . , n}, astfel c˘ a fiecare num˘ ar apare
o singur˘ a dat˘ a pe fiecare linie ¸ si fiecare coloan˘ a din L. Ar˘ atat ¸i c˘ a el define¸ ste un sistem
de criptare cuP=C=K, ˆ ın care criptarea lui xcu cheia kesteL(k, x).
Asigur˘ a un astfel de sistem de criptare un secret perfect ?
Capitolul 2
Sisteme simetrice de criptare
ˆIn general, sistemele de criptare clasice se numesc ¸ si sisteme simetrice . Motivul este acela
c˘ aAlice ¸ siBobdet ¸in aceea¸ si informat ¸ie relativ˘ a la sistemul de criptare folosit. ˆIn plus,
odat˘ a cu aflarea cheii de criptare eK, cheia de decriptare dKse obt ¸ine imediat, fiind funct ¸ia
invers˘ a.
Sistemele de criptare simetrice se ˆ ımpart ˆ ın dou˘ a clase mari: cifruri de permutare ¸ si
cifruri de substitut ¸ie .
2.1 Cifruri de permutare
La aceste sisteme de criptare, textul clar se ˆ ımparte ˆ ın blocuri de n(n≥2) caractere,
dup˘ a care fiec˘ arui bloc i se aplic˘ a o permutare π∈Sn(mult ¸imea permut˘ arilor de n
elemente). Elementele n¸ siπsunt fixate. πeste cheia de criptare, iar π−1va fi cheia de
decriptare.
Exemplul 2.1. S˘ a presupunem c˘ a avem cheia de criptare/parenleftBigg
1 2 3
2 1 3/parenrightBigg
. 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 TRA
Textul criptat va fi
LFO RAE A L ABS RTA
sau – eliminˆ and grup˘ arile, LFORAEA LABSRTA.
Exemplul 2.2. Un sistem celebru de criptare cu permut˘ ari este sistemul Richelieu (pre-
zentat ¸ 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 ha¸ surate constituie g˘ auri.
17
18 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
Vrem s˘ a cript˘ am textul clar
EMINESCU A FOST UN MARE POET NATIONAL
Vom scrie acest text sub forma unui tabel cu ¸ sase linii ¸ si ¸ sase coloane, astfel:
E M I N E S
C U A F
O S T U N
M A R E P
O E T N A
T I O N A L
Aplicˆ and cartonul peste acest text, vor r˘ amˆ ane vizibile 9caractere: 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
A¸ sezˆ 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.
S˘ a d˘ am o definit ¸ie matematic˘ a acestei clase de sisteme de criptare.
Definit ¸ia 2.1. Fienun num˘ ar natural nenul. Un cifru de permutare este un sistem
(P,C,K,E,D)undeP=C= (Z26)n,K=Sn.
Pentru o cheie (permutare) π∈Sn
eπ(a1a2. . . a n) =aπ(1)aπ(2). . . a π(n)
dπ(b1b2. . . b n) =bπ−1(1)bπ−1(2). . . b π−1(n)
2.2. CIFRURI DE SUBSTITUT ¸IE 19
Lema 2.1. Un cifru de permutare este un sistem de criptare Hill.
Demonstrat ¸ie. Pentru fiecare permutare π∈Snputem construi o matrice de permutare
Mπ= (mi,j) definit˘ a
mi,j= 1⇐⇒ i=π(j)
Se verific˘ a u¸ sor faptul c˘ a sistemul de criptare Hill cu matricea Mπeste echivalent cu un
cifru de permutare bazat pe cheia π. Mai mult, M−1
π=Mπ−1.
Exemplul 2.3. S˘ a relu˘ am Exemplul 2.1. Permut˘ arii/parenleftBigg
1 2 3
2 1 3/parenrightBigg
ˆ ıi corespunde matricea
de permutare
0 1 0
1 0 0
0 0 1
.
Operat ¸ia de criptare este imediat˘ a. De exemplu, criptarea textului FLO este
(5 11 14)·
0 1 0
1 0 0
0 0 1
= (11 5 14)
adic˘ a LFO .
2.2 Cifruri de substitut ¸ie
Cifrurile de substitut ¸ie sunt cele mai utilizate sisteme de criptare simetrice; ele seˆ ıntˆ alnesc
¸ si azi, exemple standard fiind sistemele DES ¸ si AES.
Un astfel de cifru const˘ a ˆ ın ˆ ınlocuirea fiec˘ arui caracter din Vcu alt caracter (din W).
Exist˘ a dou˘ a clase mari de cifruri de substitut ¸ie: sisteme monoalfabetice ¸ sipolialfabetice .
2.2.1 Sisteme de criptare monoalfabetice
Un astfel de sistem substituie fiecare caracter cu alt caracter – totdeauna acela¸ si, indiferent
de pozit ¸ie. Atunci cˆ and cele dou˘ a alfabete coincid ( V=W), sistemele monoalfabetice
sunt cazuri particulare de cifruri de permutare.
Vom trece ˆ ın revist˘ a cˆ ateva astfel de sisteme.
Sistemul de criptare Cezar
Sistemul de criptare Cezar este un sistem monoalfabetic: odat˘ a stabilit˘ a cheia de criptare
eK, fiecare caracter cod xse ˆ ınlocuie¸ ste prin caracterul cod x+k(mod 26) (a se vedea
Capitolul I). Decriptarea se realizeaz˘ a dup˘ a formula dK(x) =x−k(mod 26).
20 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
Observat ¸ia 2.1. ˆIn cartea sa ”De bello gallico”, Cezar aminte¸ ste de un sistem de criptare,
f˘ ar˘ a s˘ a dea detalii. Mai tarziu, Suetoniu – ˆ ın ”Viata lui Iuliu Cezar” descrie sistemul.
Cezar folosea un sistem de criptare ˆ ın care ˆ ınlocuia literele romane cu cele grece¸ sti ¸ si aplica
deplasarea k= 3. Nepotul lui Cezar, ˆ ımp˘ aratul Augustus a folosit acela¸ si sistem, bazat pe
deplasarea 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 sistemul ROT 13, ap˘ arut ˆ ın
comunitatea Internet ˆ ın 1984 sau1985 ¸ si implementat pe sistemele UNIX ([44],[46],[60])
Evident, Cezar este un sistem generat de permut˘ arile ciclice din S26. Fiind numai
26 chei posibile, el este extrem de vulnerabil la atacul prin fort ¸˘ a brut˘ a. Pentru a-i m˘ ari
rezistent ¸a, s-a utilizat ¸ si o variant˘ a, numit˘ a sistem Cezar cu cheie , definit˘ a astfel:
Se consider˘ a un cuvˆ ant (cheie), preferabil cu toate caracterele distincte (ˆ ın caz contrar,
literele identice se folosesc doar la prima aparit ¸ie). Acest cuvˆ ant se a¸ seaz˘ a la ˆ ınceputul
alfabetului. Dup˘ a ce se termin˘ a, ¸ sirul se completeaz˘ a cu literele care nu existauˆ ın cuvˆ antul
cheie, ˆ ın ordine alfabetic˘ a.
Exemplul 2.4. S˘ a presupunem c˘ a s-a ales cuvˆ antul cheie MARTOR . 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 Z
M 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 rˆ andul al doilea. Astfel, STUDENT se cripteaz˘ a ˆ ın
QSUTOJS, ARGINT ˆ ın MPCEJS etc.
Sistemul Cezar cu cheie rezist˘ a mai bine la atacul cu fort ¸˘ a brut˘ a, num˘ arul cheilor fiind
acum apropiat de card(S26) = 26!.
Sistemul de criptare afin
Sistemul de criptare afin este o generalizare a sistemului Cezar. Vom avea P=C=Z26,
K={(a, b)|a, b∈Z26, cmmdc (a,26) = 1}, iar funct ¸iile de criptare ¸ si decriptare (pentru
o cheie K= (a, b)) sunt
eK(x) =ax+b(mod 26), d K(y) =a−1y+a−1(26−b) (mod 26)
Condit ¸ia ca as˘ a fie prim cu 26 asigur˘ a existent ¸a lui a−1ˆ ınZ26.
Exemplul 2.5. De exemplu, pentru a= 3, b= 5funct ¸ia de criptare este eK(x) = 3 x+5,
care poate fi reprezentat˘ a 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 25
5 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 Z
F 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
2.2. CIFRURI DE SUBSTITUT ¸IE 21
Astfel, textul clar PRIMAVARA TARZIE se cripteaz˘ a ˆ ın YEDPFQFEF KDECDR.
Deoarece 3−1= 9 ( mod 26), decriptarea se realizeaz˘ a matematic folosind funct ¸ia
dK(x) = 9 x+ 7(sau – practic – inversˆ and cele dou˘ a linii ale tabelului de mai sus).
Condit ¸ia cmmdc (a,26) = 1 asigur˘ a de asemenea injectivitatea aplicat ¸iei eK.
De exemplu, pentru eK(x) = 10 x+ 1,A¸ siNse transform˘ a ambele ˆ ın B, iar Onu apare
ca imagine ˆ ın alfabetul substitut ¸iei.
S˘ a studiem spat ¸iul cheilor K. Orice cheie K∈Keste determinat˘ a complet de valorile
ˆ ıntregi ( a, b) cu ( a,26) = 1. Sunt posibile 12 valori1pentru a: 1,3,5,7,9,11,15,19,21,23,
25. Pentru bsunt posibile 26 valori, care se iau independent de a, cu singura except ¸ie
a= 1, b= 0 (care se exclude deoarece nu conduce la nici o criptare). Deci card(K) = 311,
num˘ ar suficient de mic pentru reu¸ sita unui atac prin fort ¸˘ a brut˘ a.
Sistemul de criptare Polybios
Sistemul Cezar nu este cel mai vechi sistem de criptare. Un sistem mai vechi a fost
descris de Polybios (istoric grec mort cu 30 ani ˆ ınaintea na¸ sterii lui Cezar). Init ¸ial acesta
a fost doar un sistem maritim de semnalizare cu tort ¸e; ulterior i s-a dat o semnificat ¸ie
criptografic˘ a.
S˘ a consider˘ am alfabetul latin, din care eliminam o liter˘ a de frecvent ¸˘ a cˆ at mai redus˘ a2;
fie aceasta W. Cele 25 litere r˘ amase le a¸ sez˘ am ˆ ıntr-un p˘ atrat 5 ×5 (numit careu Polybios)
ˆ ın felul urm˘ ator:
A B C D E
AA B C D E
BF G H I J
CK L M N O
DP Q R S T
EU V X Y Z
ˆIn operat ¸ia de criptare, fiecare caracter ava fi reprezentat printr-o pereche ( x, y) (x, y∈
{A, B, C, D, E}) care dau linia respectiv coloana pe care se afl˘ a a.
Astfel, textul clar MERGEM ACASA este criptat ˆ ın
CCAEDCBBAECCAAACAADDAA.
Deci sistemul de criptare Polybios este o substitut ¸ie monoalfabetic˘ a cu alfabetul W=
{AA, AB, AC, . . . , EE }de 25 caractere.
Sunt diverse variante ale sistemului Polybios. Astfel, dac˘ a se folosesc drept coordonate
cifrele 1 ,2,3,4,5 ˆ ın loc de A, B, C, D, E , sistemul a fost folosit ˆ ın penitenciarele ruse¸ sti3,
iar ulterior de c˘ atre prizonierii americani din Vietnam. Este foarte simplu de ˆ ınv˘ at ¸at
1Pentru un num˘ ar dat nexist˘ a φ(n) numere mai mici decˆ at n¸ si prime cu n, unde phieste funct ¸ia
Euler. ˆIn particular φ(26) = 12.
2ˆIn limba englez˘ a litera eliminat˘ a este de obicei J.
3Alfabetul cirilic are 33 litere, deci ˆ ın acest caz s-a utilizat un careu 6 ×6.
22 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
¸ si poate fi aplicat folosind diverse semne drept coordonate (cifre, puncte, figuri, b˘ at˘ ai
de tob˘ a etc). A fost utilizat de asemenea ˆ ın cadrul altor sisteme de criptare, cum ar fi
sistemul nihilist, cifrul ADFGVX (utilizat de armata german˘ a ˆ ın primul r˘ azboi mondial)
sau sistemul Bifid, inventat de Dellastell ˆ ın 1901 (pentru detalii, se vedea [61]).
Sistemul cavalerilor de Malta
Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizarea
unei cruci. Astfel, s˘ a consider˘ am careurile:
A:B:C:
D:E:F:
G:H:I:J.K.L.
M.N.O.
P.Q.R.STU
VWX
YZ
Liniile careˆ ıncadreaz˘ a fiecare caracter (inclusiv spat ¸iul),ˆ ımpreun˘ a cu punctele (dou˘ a, unul
sau zero) indic˘ a substitut ¸ia caracterului respectiv. Astfel, textul clar DUPA DOUAZECI
DE ANI se cripteaz˘ a ˆ ın
: .: : . : : : : : : : .:
2.2.2 Criptanaliza sistemelor de criptare monoalfabetice
Punctul slab al sistemelor de criptare monoalfabetice const˘ a ˆ ın frecvent ¸a de aparit ¸ie a
caracterelor ˆ ın text. Dac˘ a un text criptat este suficient de lung ¸ si se cunoa¸ ste limba
ˆ ın care este scris textul clar, sistemul poate fi spart printr-un atac bazat pe frecvent ¸a
aparit ¸iei literelor ˆ ıntr-o limb˘ a.
Sunt construite diverse structuri de ordine relative la frecvent ¸a aparit ¸iei literelor ˆ ın
fiecare limb˘ a european˘ a. De obicei, cu cˆ at un text criptat este mai lung, cu atˆ at frecvent ¸a
literelor folosite se apropie de aceast˘ a ordonare general˘ a. O comparare ˆ ıntre cele dou˘ a
relat ¸ii de ordine (cea a caracterelor din textul criptat ¸ si cea a lterelor din alfabetul limbii
curente) conduce la realizarea cˆ atorva corespondent ¸e (liter˘ a text clar – liter˘ a text criptat),
ceea ce stabile¸ ste ˆ ın mod univoc cheia de criptare. Pentru sistemul Cezar este suficient˘ a
stabilirea unei singure perechi; pentru sistemul afin trebuiesc dou˘ a perechi etc.
Pentru limba romˆ an˘ a, un tabel al literelor cele mai frecvent ˆ ıntˆ alnite este
2.2. CIFRURI DE SUBSTITUT ¸IE 23
Liter˘ a Frecvent ¸˘ a
A 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 %Liter˘ a Frecvent ¸˘ a
L 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 frecvent ¸˘ a de aparit ¸ie sub 1 %).
Exemplul 2.6. 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
ˆ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¸ sik. Pe de-alt˘ a parte, cele mai frecvente
caractere din limba romˆ an˘ a sunt A, I¸ siE(textul nu este suficient 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 ccuA, a lui k
cuE, 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 ( 27
aparit ¸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 ¸ si se obt ¸ine textul
lqaEA sp gARE aAa pAmgqb Eq ERA pEersmpqsb vE vsmgREbA mEaApA tAaApbqlqs
vE 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
24 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
ˆIn acest text, cuvˆ antul REtREnEpbAq are corespondent ˆ ın limba romˆ an˘ a numai pe
REPREZENTA {I, M, U}. De aici se obt ¸in corespondent ¸ele t←−P, n←−Z, p←−N
¸ sib←−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˘ ag←−C,SUPARATeR d˘ ae←−O,
iar din fENEAU deducem f←−V. F˘ acˆ and aceste ˆ ınlocuiri, se obt ¸ine textul
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 ”Viat ¸a 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 aplicat ¸ii, oferim tabelele de frecvent ¸˘ a a literelor pentru principalele limbi
europene4(am ret ¸inut din fiecare limb˘ a numai cele mai frecvente nou˘ a litere):
Englez˘ a Frecvent ¸˘ a
E 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 %German˘ a Frecvent ¸˘ a
E 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%Francez˘ a Frecvent ¸˘ a
E 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 %Spaniol˘ a Frecvent ¸˘ a
E 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 %
4Datele statistice pentru toate tabelele – inclusiv limba romˆ an˘ a – sunt din anul 1994.
2.2. CIFRURI DE SUBSTITUT ¸IE 25
Exist˘ a o situat ¸ie ipotetic˘ a ˆ ın care criptanaliza unui sistem monoalfabetic este imposibil˘ a:
atunci cˆ andP=V∗¸ si nu dispunem de nici o alt˘ a informat ¸ie (decˆ at eventual sistemul de
criptare). Acest caz corespunde ˆ ıns˘ a unei codific˘ ari; adev˘ arata criptare a avut loc atunci
cˆ and mesajele inteligibile au fost translatate ˆ ın cuvinte din V∗.
2.2.3 Sisteme de criptare polialfabetice
Diferent ¸a dintre aceste sisteme de criptare ¸ si cele monoalfabetice const˘ a ˆ ın faptul c˘ a
substitut ¸ia unui caracter variaz˘ a ˆ ın text, ˆ ın funct ¸ie de diver¸ si parametri (pozit ¸ie, context
etc.). Aceasta conduce bineˆ ınt ¸eles la un num˘ ar mult mai mare de chei posibile. Se
consider˘ a c˘ a primul sistem de criptare polialfabetic a fost creat de Leon Battista ˆ ın 1568
([46]). Unele aplicat ¸ii actuale folosesc ˆ ınc˘ a pentru anumite sect ¸iuni astfel de sisteme de
criptare.
Sistemul homofonic
Sistemul de criptare homofonic este un sistem intermediar ˆ ıntre sistemele mono ¸ si cele
polialfabetice. Principalul lui scop este de a evita atacul prin frecvent ¸a de aparit ¸ie a
caracterelor. Se pare c˘ a a fost utilizat prima oar˘ a ˆ ın 1401 de c˘ atre ducele de Mantua.
Fiec˘ arui caracter a∈Pi se asociaz˘ a o mult ¸ime H(a)⊂Castfel ˆ ıncˆ at:
1.H(a)∩H(b) =∅ ⇐⇒ a/negationslash=b;
2. Dac˘ a aapare 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). Pentru
decriptarea lui y∈Cse caut˘ a o mult ¸ime H(a) astfel ca y∈H(a).
Exemplul 2.7. S˘ a consider˘ amP={a, b}¸ siH(a) ={001,010}, H(b) ={000,011,101,
111}. Pentru criptarea textului abse poate folosi oricare din secvent ¸ele
001000 ,001011 ,001101 ,001111 ,010000 ,010011 ,010101 ,010111 .
Sistemul homofonic este mult mai rezistent la un atac bazat numai pe textul criptat,
dar cedeaz˘ a u¸ sor la un atac cu text clar ales.
Sistemul de criptare Playfair
Sistemul a fost inventat 1854 de Sir Charles Wheatstone. Cel care ˆ ıl promoveaz˘ a ¸ si ˆ ıl
sust ¸ine pentru a fi adoptat ca cifru oficial al Marii Britanii este baronul Lyon Playfair de
St. Andrews. Guvernul prefer˘ a alt˘ a variant˘ a, dar acest sistem de criptare cap˘ at˘ a numele
baronului.
Ideea de baz˘ a este urm˘ atoarea:
Din cele 26 litere ale alfabetului se elimin˘ a una de frecvent ¸˘ a minim˘ a; s˘ a spunem Q.
Restul literelor se aranjeaz˘ a arbitrar sub forma unui p˘ atrat 5 ×5.
S˘ a exemplific˘ am sistemul pentru tabloul
26 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
S Y D W Z
R I P U L
H C A X F
T N O G E
B K M J V
Acest tabel va forma atˆ at cheia de criptare cˆ at ¸ si cea de decriptare.
Regulile de criptare/decriptare sunt:
•Textul clar este separat ˆ ın blocuri de cˆ ate dou˘ a caractere (ignorˆ and spat ¸iile). Condi-
t ¸ia este ca nici un bloc s˘ a nu cont ¸in˘ a aceia¸ si liter˘ a, iar textul s˘ a fie de lungime par˘ a.
Aceste deziderate se realizeaz˘ a u¸ sor modificˆ and put ¸in textul clar (se introduce o
liter˘ a de frecvent ¸˘ a mic˘ a ˆ ıntre cele dou˘ a litere egale, respectiv ca ultim caracter).
•Fiecare bloc se cripteaz˘ a astfel: dac˘ a cele dou˘ a litere nu sunt plasate ˆ ın tabel pe
aceea¸ si linie sau aceea¸ si coloan˘ a (de exemplu A¸ siE), se cerceteaz˘ a colt ¸urile drep-
tunghiului determinat de cele dou˘ a litere (ˆ ın cazul nostru A, F, O, E ). Perechea AE
este criptat˘ a ˆ ın FO. Ordinea este determinat˘ a de ordinea liniilor pe care se afl˘ a
literele din textul clar. Astfel, EAse cripteaz˘ a ˆ ın OF,SFˆ ınZBetc.
Dac˘ a cele dou˘ a litere se g˘ asesc pe aceea¸ si linie (coloan˘ a), se merge ciclic cu o pozit ¸ie
la dreapta (respectiv jos). Deci CAse cripteaz˘ a ˆ ın AX,WX ˆ ınUG,CAˆ ınAX
etc.
De exemplu, textul clar AFARA PLOUA se cripteaz˘ a ˆ ın XHHPPDPEPX . Se observ˘ a c˘ a
cele patru aparit ¸ii ale caracterului Aau fost criptate cu X, H, P ¸ si din nou X.
O permutare ciclic˘ a a liniilor ¸ si coloanelor tabloului nu modific˘ a criptarea. De exemplu,
p˘ atratul
P U L R I
A X F H C
O G E T N
M J V B K
D W Z S Y
obt ¸inut prin deplasarea cu dou˘ a pozit ¸ii spre stˆ anga ¸ si o pozit ¸ie ˆ ın sus, este echivalent cu
cel init ¸ial (ambele asigur˘ a aceia¸ si cheie de criptare).
Regulile de baz˘ a pot fi modificate sau completate dup˘ a necesit˘ at ¸i. Astfel, se poate
ad˘ auga din loc ˆ ın loc cˆ ate o liter˘ a fals˘ a (cu frecvent ¸˘ a foarte redus˘ a, cum ar fi X, Y) care
s˘ a modifice textul criptat. P˘ atratul 5 ×5 poate fi ˆ ınlocuit cu un dreptunghi 4 ×6 sau
3×8, cu schimb˘ arile corespunz˘ atoare ˆ ın alegerea literelor care se elimin˘ a.
Pentru a p˘ astra cheia ˆ ın sigurant ¸˘ a, se recomand˘ a memorarea acesteia. Cum o astfel
de cheie este extrem de greu de memorat, se folose¸ ste un cuvˆ ant cheie sau o propozit ¸ie cu
toate literele distincte. Acesta cuvˆ ant este scris la ˆ ınceputul tabloului. Spat ¸iile r˘ amase
sunt completate cu restul literelor alfabetului, scrise ˆ ın ordinea aparit ¸iei lor5.
5ˆIn definit ¸ia init ¸ial˘ a a sistemului, Wheatstone pleca de la cuvˆ antul Holmes .
2.2. CIFRURI DE SUBSTITUT ¸IE 27
Astfel, ˆ ın preajma primului r˘ azboi mondial, armata romˆ an˘ a folosea un dreptunghi
3×8 din care lipseau literele Q¸ siK. Cuvˆ antul cheie era ROMANESC . Un astfel de
tablou putea avea de exemplu forma
R O M A N E S C
B D F G H I J L
P T U V W X Y Z
Ca ¸ si sistemul anterior, Playfair rezist˘ a la atacuri bazate pe frecvent ¸a aparit ¸iei, dar
nu ¸ si la cele prin text clar ales.
Implement˘ ari actuale folosesc reprezentarea binar˘ a a literelor ¸ si fac un pas suplimentar:
dup˘ a ce s-a obt ¸inut o pereche criptat˘ a, aceasta se combin˘ a printr-un XOR (adunare
modulo 2) cu perechea criptat˘ a anterior.
O variant˘ a a sistemului de criptare Playfair este Playfair dublu , sistem folosit de Ger-
mania ˆ ın al doilea r˘ azboi mondial. Regulile sunt urm˘ atoarele:
1. Se folosesc dou˘ a careuri 5 ×5 alipite.
2. Textul clar se scrie pe dou˘ a rˆ anduri (completˆ and eventual ultimul rˆ and cu un ca-
racter de frecvent ¸˘ a mic˘ a). Fiecare coloan˘ a va furniza o pereche de dou˘ a litere.
3. Intr-o pereche de litere ( X, Y),Xeste un element din primul careu, iar Y– un
element din al doilea careu.
4. Dac˘ a X¸ siYsunt vˆ arfurile unui dreptunghi, se ia ca rezultat perechea format˘ a
din celelalte dou˘ a vˆ arfuri. Dac˘ a X¸ siYse afl˘ a pe aceea¸ si linie, se iau urm˘ atoarele
caractere (din fiecare careu) – similar sistemului Playfair simplu. Fie ( Z, U) perechea
obt ¸inut˘ a ( Zeste din al doilea careu, iar U– din primul careu).
5. Se consider˘ a perechea ( U, Z) ¸ si se reia pasul (4), obt ¸inˆ andu-se ˆ ın final textul criptat
(P, Q).
Exemplul 2.8. S˘ a consider˘ am careurile Playfair definite de cuvintele ROMANESC ¸ si
respectiv PREDOMINANT (s-a eliminat litera K):
R O M A N P R E D O
E S C B D M I N A T
F G H I J B C F G H
L P Q T U J L Q S U
V W X Y Z V W X Y Z
S˘ a cript˘ am textul clar
DOAR O VORBA SA ITI SPUN
28 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
ˆIn prima faz˘ a, el va fi scris pe dou˘ a linii ( Qeste caracter de completare):
D O A R O V O R B A
S A I T I S P U N Q
Fiecare pereche de litere este criptat˘ a ˆ ın dou˘ a etape:
DS−→AU−→OT, OA−→DS−→AU, AI−→RB−→PF,
RT−→OE−→DM, OI−→RS−→DL, V S−→Y L−→WT,
OP−→RM−→PE, RU−→OL−→RP, BN−→AD−→ON,
AQ−→ET−→MS.
Mesajul criptat este deci
OAPDDWPROMTUFMLTEPNS
Sistemul Playfair dublu asigur˘ a o securitate sporit˘ a – comparativ cu cel simplu. Mo-
tivul: sunt folosite dou˘ a careuri (ˆ ın loc de unul), plus un parametru suplimentar (lungimea
textului clar).
Sistemul de criptare Vigenere
Numele sistemului6vine de la baronul francez Blaise de Vigenere (1523 −1596) diplomat
la curtea regelui Henry III. A fost considerat mult timp unul din cele mai bune sisteme
de criptare.
Prezentarea sistemului
Consider˘ am – ca ¸ si la sistemele anterioare – cele 26 litere ale alfabetului, numerotate
de la 0 (pentru A) pˆ an˘ a 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 12
N 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
DefinimP=C=Z26,K=Z+
26.
O cheie K∈Keste un cuvˆ ant avˆ and codificarea numeric˘ a k0k1. . . k p−1.
Fiea=a0a1. . . a ncodificarea textului clar care trebuie transmis. Textul criptat va fi
eK(a) =x=x0x1. . . x n, unde
xi=ai+ki(mod p )(mod 26) ( ∗)
Exemplul 2.9. S˘ a consider˘ am cuvˆ antul cheie FOCAR ; deci p= 5¸ siK= 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:
6Sursa [62] indic˘ a drept real inventator al sistemului pe Giovan Batista Belaso ˆ ın 1553.
2.2. CIFRURI DE SUBSTITUT ¸IE 29
Codificarea textului este a= 13 20 15 14 19 21 4 13 8 0 25 8 .
Sub fiecare num˘ ar din ase a¸ seaz˘ 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
13 20 15 14 19 21 4 13 8 0 25 8
5 14 2 0 17 5 14 2 0 17 5 14
18 8 17 14 10 0 18 15 8 17 4 22
S I R O K A S P I R E W
Linia a treia cont ¸ine suma modulo 26a numerelor de pe primele dou˘ a linii; acesta este
textul criptat rezultat.
Decriptarea se realizeaz˘ a similar, sc˘ azˆ and (modulo 26) din codul caracterului criptat,
codul caracterului corespunz˘ ator din cheie.
O variant˘ a a sistemul Vigenere este sistemul Beaufort (amiral englez, de asemenea
autorul unei scale a vˆ anturilor care ˆ ıi poart˘ a numele); aici relat ¸ia de criptare ( ∗) este
ˆ ınlocuit˘ a cu
xi=ki(mod p )−ai(mod 26), (i≥0)
Avantajul sistemului Beaufort const˘ a ˆ ın faptul c˘ a ecuat ¸ia de criptare se aplic˘ a ¸ si la
decriptare ( ai=ki(mod p )−xi).
Alt˘ a variant˘ a este sistemul Autoclave , atribuit matematicianului Cardano (autorul
formulelor de rezolvare pentru ecuat ¸iile de gradul 3 ¸ si 4). Aici cheia se folose¸ ste o singur˘ a
dat˘ a, la ˆ ınceput, dup˘ a care este utilizat drept cheie textul clar.
Exemplul 2.10. 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 A
Cheie: 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 rˆ andul, fiind considerat ca fiind unul din
cele mai sigure sisteme de criptare. ˆIn 1917 de exemplu, prestigioasa revist˘ a ”Scientific
American” ˆ ıl considera imposibil de atacat. Numai c˘ a acest sistem a fost spart de Kasiski
ˆ ınc˘ a din 1863 (¸ si – independent – de Babbage ˆ ın 1854).
Criptanaliza sistemului Vigenere
Fiex=x0x1. . . x n−1textul criptat cu cheia K=k0k1. . . k p−1. Putem aranja acest text
sub forma unei matrici cu plinii ¸ si⌈n/p⌉coloane, astfel
x0xp x2p. . .
x1xp+1x2p+1 . . .
…
xp−1x2p−1x3p−1. . .
30 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
Elementele de pe prima linie au fost criptate dup˘ a formula
xpr=apr+k0(mod 26), (k≥0)
adic˘ a folosind un sistem Cezar ( k0fiind o valoare fixat˘ a din Z26).ˆIn mod similar ¸ si
celelalte linii.
Deci, dac˘ a s-ar cunoa¸ ste lungimea pa cheii, problema s-ar reduce la criptanaliza a p
texte criptate cu Cezar – sistem de criptare monoalfabetic.
Sunt cunoscute dou˘ a metode pentru aflarea lungimii cheii: testul lui Kasiski ¸ siindexul
de coincident ¸e .
Prima metod˘ a const˘ a ˆ ın studiul textului criptat ¸ si aflarea de perechi de segmente de
cel put ¸in 3 caractere (aceast˘ a lungime este propus˘ a de Kasiski) identice. Pentru fiecare
astfel de pereche, se determin˘ a distant ¸a dintre segmente.
Dup˘ a ce s-au g˘ asit mai multe astfel de distant ¸e, valoarea lui pva fi cel mai mare divizor
comun al lor (sau – eventual un divizor al acestuia).
Exemplul 2.11. 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 ( 146litere) ¸ si nu se mai ¸ stie nici un text trimis anterior.
Folosind metoda Kasiski, Oscar g˘ ase¸ ste secvent ¸a QLNCJ 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 ¸ siAOLN , 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 0
Linia 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 3
Linia 311 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(16aparit ¸ii din 49posibile), deci o deplasare
0ˆ ın sistemul de criptare Cezar.
2.2. CIFRURI DE SUBSTITUT ¸IE 31
Pentru prima linie, sunt dou˘ a posibilit˘ at ¸i: O−S−W(deplasare 14) sau S−W−A
(deplasare 18), ambele cu cˆ ate 18aparit ¸ii.
Tot dou˘ a variante apar ¸ si pentru a doua linie: C−G−K(deplasare 2) cu10aparit ¸ii,
sauR−V−Z(deplasare 14) cu 13aparit ¸ii.
Deplas˘ arile dau exact codific˘ arile cheii. Deci trebuie luate ˆ ın considerare patru vari-
ante de cuvˆ ant cheie: OCA, ORA, SCA sauSRA . Cum de obicei cuvˆ antul cheie are
o semnificat ¸ie semantic˘ a (pentru a putea fi ret ¸inut mental u¸ sor), putem presupune c˘ a el
esteOCA sauORA .
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 metod˘ a de aflare a lungimii cheii de criptare ˆ ıntr-un sistem Vigenere se bazeaz˘ a
pe un concept definit ˆ ın 1920 de Wolfe Friedman: indexul de coincident ¸e ([53]).
Definit ¸ia 2.2. Dac˘ a x=x1x2. . . x neste o secvent ¸˘ a de ncaractere alfabetice, se nume¸ ste
”index de coincident ¸e” al lui xprobabilitatea ca dou˘ a caractere din x, alese aleator, s˘ a fie
identice. Aceast˘ a valoare se noteaz˘ a Ic(x).
S˘ a not˘ am cu fifrecvent ¸a de aparit ¸ie ˆ ın xa caracterului literal codificat i(0≤i≤25).
Dou˘ a litere din xpot fi alese ˆ ın C2
nmoduri. Din acestea, sunt C2
fimoduri ca ambele s˘ a
aib˘ a aceia¸ si codificare i(0≤i≤25). Putem atunci s˘ a deducem formula
Ic(x) =25/summationdisplay
i=0C2
fi
C2
n=25/summationdisplay
i=0fi(fi−1)
n(n−1)
S˘ a presupunem c˘ a xeste un text ˆ ın limba romˆ an˘ a. Din tabelul frecvent ¸elor de aparit ¸ie ale
literelor, notˆ and piprobabilitatea de aparit ¸ie a caracterului codificat cu i(0≤i≤25),
valoarea pe care o putem estima pentru indexul de coincident ¸e este
Ic(x)≈25/summationdisplay
i=0p2
i= 0,0788
Motivat ¸ie: Probabilitatea ca dou˘ a elemente aleatoare s˘ a fie ambele egale cu caracterul de
codiestep2
i(0≤i≤25). Afirmat ¸ia este valabil˘ a pentru orice criptare cu un sistem
monoalfabetic.
S˘ a presupunem acum c˘ a am aranjat textul criptat x=x0x1. . . x n−1ˆ ıntr-o matrice cu
plinii ¸ si⌈n/p⌉coloane (unde peste un num˘ ar ˆ ıntreg pozitiv arbitrar), astfel
x0=x0xp x2p. . .
x1=x1xp+1x2p+1 . . .
…
xp−1=xp−1x2p−1x3p−1. . .
32 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
Dac˘ a peste chiar lungimea cheii, atunci fiecare valoare Ic(xi) trebuie s˘ a fie apropiat˘ a de
0,0788. ˆIn caz contrar, ¸ sirul xiva ar˘ ata mult mai aleator, fiind obt ¸inut prin amestecul
unei secvent ¸e de caractere criptate cu chei diferite. Pentru o secvent ¸˘ a complet aleatoare,
valoarea indexului de coincident ¸e este
Ic≈26/parenleftbigg1
26/parenrightbigg2
=1
26= 0,0384
Valorile 0 ,0788 ¸ si 0 ,0384 vor constitui punctele de extrem pe care le poate lua Ic. Vom lua
deci diverse valori pentru p, pˆ an˘ a vom g˘ asi una care s˘ a se apropie cˆ at mai mult de 0 ,788 ¸ si
nu de 0 ,384. Aceea poate fi considerat˘ a – cu suficient˘ a sigurant ¸˘ a – drept lungimea cheii.
ˆIn etapa a doua, vom ˆ ıncerca s˘ a afl˘ am efectiv cheia K=k0k1. . . k p−1.
Dac˘ a not˘ am n1=⌊n/p⌋lungimea secvent ¸ei xi, atunci distribut ¸ia de probabilitate ale
celor 26 litere ˆ ın xieste
f0
n1,f1
n1, . . . ,f25
n1
Secvent ¸a xia fost obt ¸inut˘ a printr-o criptare Cezar cu o deplasare ki. Deci, situat ¸ia ideal˘ a
este cˆ and distribut ¸ia de probabilitate a deplas˘ arii
fki
n1,fki+1 (mod 26)
n1, . . . ,fki+25 ( mod 26)
n1
este cˆ at mai apropiat˘ a de distribut ¸ia de probabilitate p0, p1, . . . , p 25a limbii romˆ ane.
Fie un ˆ ıntreg m(0≤m≤25); definim expresia
Fm=25/summationdisplay
i=0pi·fi+m
n1
Dac˘ a m=kj(0≤j≤p−1), ne putem a¸ stepta ca Fm≈25/summationdisplay
i=0p2
i= 0,0788.
Dac˘ a m/negationslash=kj, atunci Fmva fi semnificativ mai mic decˆ at aceast˘ a valoare. Deci, dup˘ a
cel mult 25 ˆ ıncerc˘ ari, se poate afla deplasarea kj¸ si deci a j-a liter˘ a din cheie.
2.3. EXERCIT ¸II 33
2.3 Exercit ¸ii
2.1. Folosind atacul prin fort ¸˘ a brut˘ a, decriptat ¸i mesajul WYPTBSJBYZ criptat cu un
sistem Cezar.
2.2. O cheie Keste ”auto-cheie” dac˘ a dK=eK. G˘ asit ¸i toate auto-cheile sistemului de
criptare Cezar.
2.3. 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.
2.4. Consider˘ am urm˘ atorul cifru de permutare: Se fixeaz˘ a numerele naturale p, q. Textul
clar se ˆ ımparte ˆ ın blocuri de cˆ ate p·qcaractere. Fiecare astfel de bloc se scrie pe liniile
unei matrici de plinii ¸ si qcoloane. Criptarea blocului se realizeaz˘ a scriind aceste matrici
pe coloane.
De exemplu, pentru p= 3, q= 4, textul clar MAINI CURATE se scrieM A I N
I C U R
A 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.
2.5. 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 L
¸ stiind c˘ a a fost criptat cu matricea Richelieu definit˘ a ˆ ın Exemplul 2.2.
2.6. 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.7. Textul clar este scris peste alfabetul V={a, b, c, d}. Se folose¸ ste 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?
2.8. Se definesc dou˘ a sisteme de criptare cu P={a, b},C={c, d}¸ si regulile
a−→ccd, b−→cpentru primul sistem,
a−→c, b−→dcc la al doilea sistem.
Ce cuvinte sunt criptate la fel ˆ ın cele dou˘ a sisteme ?
34 CAPITOLUL 2. SISTEME SIMETRICE DE CRIPTARE
2.9. 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.10. ˆIn sistemele de criptare simple, orice cheie de criptare poate fi reprezentat˘ a ca o
compunere 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 ¸in dou˘ a chei generatoare.
2.11. 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.12. 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 u¸ soar˘ a ?
2.13. Cˆ ate chei are un sistem de criptare afin ˆ ın care card(V) = 30 ,100sau1225 ?
2.14. FieK= (5,21)o cheie ˆ ıntr-un sistem de criptare afin peste Z29.
(a)Exprimat ¸i funct ¸ia de decriptare sub forma dK(y) =ay+bunde a, b∈Z29;
(b)Ar˘ atat ¸i c˘ a eK(dK(x)) =x,∀x∈Z29.
2.15. FieK= (a, b)o cheie ˆ ıntr-un sistem afin peste Zn. Demonstrat ¸i afirmat ¸ia:
”Keste auto-cheie dac˘ a ¸ si numai dac˘ a a−1≡a(mod n )¸ sib·(a+ 1)≡0 (mod n )”.
Aflat ¸i toate auto-cheile dintr-un sistem afin peste Z15.
S˘ a presupunem c˘ a n=pqunde p¸ siqsunt numere prime distincte. Ar˘ atat ¸i c˘ a num˘ arul
auto-cheilor din sistemul afin peste Znesten+p+q+ 1.
2.16. Fiind dat unn num˘ ar ˆ ıntreg n(n≥1), s˘ a se arate c˘ a mult ¸imea tuturor funct ¸iilor de
criptare Vigenere (definite pentru toate cheile de lungime fixat˘ a n) formeaz˘ a o structur˘ a
algebric˘ a de grup.
2.17. Fiind date dou˘ a sisteme de criptare (P,C,K,E,D)¸ si(P/prime,C/prime,K/prime,E/prime,D/prime)cuP/prime=C,
definim ”produsul” lor ca fiind sistemul (P,C/prime,K×K/prime,E◦E/prime,D/prime◦D), unde criptarea unui
text clar m∈P esteeK2(eK1(m))(K1∈K, K 2∈K/prime), iar decriptarea unui mesaj y∈C/prime
estedK1(dK2(y)).
Care este produsul a dou˘ a sisteme de criptare Vigenere cu chei de lungimi diferite ?
Capitolul 3
Sisteme mecanice de criptare
Sistemele de criptare pot fi aduse la un grad mai mare de complexitate ¸ si securitate dac˘ a
se folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor u¸ sura
– pe de-o parte – operat ¸iile de criptare/decriptare, iar pe de-alt˘ a parte vor fi capabile s˘ a
creeze un num˘ ar mult mai mare de chei posibile.
3.1 Sistemul Skitala
Skitala (”baston” ˆ ın grece¸ ste) este o unealt˘ a folosit˘ a pentru realizarea unui sistem de
criptare cu permut˘ ari. El este sub form˘ a aproximativ cilindric˘ a, ˆ ın jurul lui fiindˆ ınf˘ a¸ surat˘ a
o band˘ a de hˆ artie. Mesajul se scrie ˆ ın mod normal pe aceast˘ a band˘ a, dup˘ a care hˆ artia
este desf˘ acut˘ a. La primire se folose¸ ste un b˘ at ¸ asem˘ an˘ ator pe care se ˆ ınf˘ a¸ soar˘ a sulul de
hˆ artie, mesajul devenind din nou inteligibil (pentru detalii, a se vedea [12], [28]). Conform
istoricilor greci, spartanii foloseau – ˆ ıncepˆ and cu sec. Vˆ ı.H. – acest mod de comunicare,
ˆ ın timpul campaniilor militare1. El avea avantajul de a fi rapid ¸ si nu comport˘ a erori de
transmitere. Dezavantajul este acela c˘ a este u¸ sor de spart.
Exemplul 3.1. S˘ a presupunem c˘ a dimensiunile b˘ at ¸ului permit scrierea a 4rˆ anduri, cu
5caractere 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 ment ¸ionat˘ a prima oar˘ a de poetul grec Archilochus (sec. VII ˆ ı.H). De¸ si apare ulterior
¸ si ˆ ın alte texte, abia la mijlocul secolului III ˆ ı.H. Apollonius din Rhodos specific˘ a limpede utilizarea lui
ca mijloc de criptare. De remarcat c˘ a pentru perioada respectiv˘ a, sistemele de criptare folosite de greci
erau de tip steganografic. O descriere a modului de operare este dat˘ a apoi de Plutarh (50-120 A.D.).
35
36 CAPITOLUL 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 aceea¸ si 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 nrˆ anduri de tipul
i, n+i,2n+i,3n+i, . . . (i= 1,2, . . . , n )
care ulterior se concateneaz˘ a. Exist˘ a o valoare a lui npentru care textul astfel format este
inteligibil.
3.2 Cilindrul Jefferson
Ideea de ma¸ sin˘ a de criptare apare clar prima dat˘ a la Thomas Jefferson, primul secretar
de Stat al Statelor Unite; acesta a inventat un aparat de criptat numit roat˘ a de criptare ,
folosit pentru securitatea corespondent ¸ei cu aliat ¸ii – ˆ ın special cei francezi2.
Un cilindru Jefferson este format din ndiscuri de dimensiuni egale (init ¸ial n= 26
saun= 36, dar valoarea este nerelevant˘ a pentru descrierea sistemului) a¸ sezate pe un ax.
Discurile se pot roti independent pe ax, iar pe muchea fiec˘ aruia sunt inscrise cele 26 litere
ale alfabetului, ˆ ıntr-o ordine aleatoare (dar diferit˘ a pentru fiecare disc).
La criptare, textul clar se ˆ ımparte ˆ ın blocuri de ncaractere. Fiecare astfel de bloc
se scrie pe o linie (generatoare) a cilindrului, rotind corespunz˘ ator fiecare disc pentru a
aduce pe linie caracterul c˘ autat. Oricare din celelalte 25 linii va constitui blocul de text
criptat.
Pentru decriptare este necesar un cilindru identic, ˆ ın care se scrie pe o linie textul
criptat (de ncaractere) ¸ si apoi se caut˘ a printre celelalte 25 linii un text cu semnificat ¸ie
semantic˘ a. Probabilitatea de a avea un singur astfel de text cre¸ ste cu num˘ arul de discuri
din cilindru.
O mic˘ a diferent ¸˘ a apare dac˘ a textul clar nu are nici o semnificat ¸ie semantic˘ a (s-a
folosit o dubl˘ a criptare). Atunci trebuie convenit˘ a dinainte o anumit˘ a distant ¸˘ a de criptare
s(1≤s≤25).
2Thomas Jefferson a folosit acest aparat ˆ ın perioada 1790 −1802, dup˘ a care se pare c˘ a ideea s-a
pierdut. Devenit pre¸ sedinte, Jefferson a fost atras de sistemul Vigenere, pe care ˆ ıl consider˘ a mai sigur
¸ si-l recomand˘ a secretarului s˘ au de stat James Madison ca ˆ ınlocuitor al sistemului pe care ˆ ıl inventase
anterior.
3.2. CILINDRUL JEFFERSON 37
Ordinea discurilor poate fi de asemenea schimbat˘ a. De exemplu, un cilindru cu n= 10
discuri poate realiza 10! = 3 .628.800 texte criptate diferite pentru acela¸ si text clar.
Cilindrul Jefferson realizeaz˘ a o substitut ¸ie polialfabetic˘ a de perioad˘ a n. Dac˘ a ar fi
privit ca un sistem de criptare Vigenere, lungimea cheii este enorm˘ a (de multe ori nn, ˆ ın
funct ¸ie de modalit˘ at ¸ile de aranjare a alfabetelor pe discuri), ¸ si deci metoda de atac a lui
Kasiski este inaplicabil˘ a.
Exemplul 3.2. S˘ a consider˘ am n= 10 ¸ si fie cilindrul, ˆ ın care am desf˘ a¸ surat literele de
pe cele 10discuri:
1 2 3 4 5 6 7 8 9 10
1A A A A A A A A A A
2R R P N V S P E I I
3 I O S I O O U S R H
4E S Y M T R H U E E
5K U L O Y P I P S T
6O V U C L M S B L O
7B I K U E U E L B M
8C J B L B B N C C U
9U 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
16W 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 L
22 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 R
25 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):
38 CAPITOLUL 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 L
O Y D X O A V C O Y
B W T R T S J D U K
C X 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 AAAAAAAAAA
va fi criptat cu cilindrul anterior ˆ ın ESYMTRHUEE.
Cilindrul Jefferson a fost reinventat ulterior de mai multe ori, cea mai notabil˘ a fiind
se pare ma¸ sina de criptat M−94, care a fost utilizat˘ a pˆ an˘ a la ˆ ınceputul celui de al doilea
r˘ azboi mondial.
3.3 Ma¸ sini de criptat
Prima jum˘ atate a secolului XX este dominat˘ a de ma¸ sinile de criptat, o combinat ¸ie ˆ ıntre
ma¸ sinile de scris ¸ si sisteme de criptare mecanice bazate pe discuri.
3.3.1 Enigma
Poate cea mai celebr˘ a ma¸ sin˘ a de criptat a fost ma¸ sina german˘ a Enigma . Sub acest nume
se afl˘ a o varietate larg˘ a de modele de ma¸ sini de criptat electro-mecanice, care asigur˘ a o
criptare polialfabetic˘ a de tip Vigenere sau Beaufort.
3.3. MAS ¸INI DE CRIPTAT 39
Ea a fost proiectat˘ a la Berlin ˆ ın 1918, de inginerul german Arthur Scherbius. Primul
model (A) este prezentat la Congresele Uniunii Po¸ stale Internat ¸ionale din 1923 ¸ si 1924.
Modele ulterioare sunt folosite ˆ ın mai multe t ¸˘ ari europene ¸ si asiatice (Suedia, Olanda,
Marea Britanie, Japonia, Italia, Spania, SUA, Polonia, Elvet ¸ia) ˆ ın scopuri comerciale,
militare sau diplomatice. Din 1926 ˆ ıncepe s˘ a fie preluat˘ a ¸ si de armata german˘ a, care
dup˘ a 1928 ˆ ı¸ si define¸ ste propriile modele (G, I, K).
ˆIn total au fost construite circa 100 .000 ma¸ sini Enigma, din care 40 .000 ˆ ın timpul
r˘ azboiului. Dup˘ a 1945 aliat ¸ii au capturat toate ma¸ sinile de pe teritoriul german, acestea
fiind ˆ ınc˘ a mult timp considerate sigure. Abia ˆ ın 1970 au ap˘ arut primele informat ¸ii despre
decriptarea de c˘ atre aliat ¸i (Biuro Szyfrow – Polonia ¸ si Bletchley Park – Anglia) a unui
mare num˘ ar de mesaje criptate prin modelul militar Enigma ¸ si transmise prin radio ˆ ın
timpul r˘ azboiului.
O descriere complet˘ a a ma¸ sinii este destul de lung˘ a; recomand pentru detalii [58], [28].
ˆIn linii mari, ea are urm˘ atoarele componente:
•Tastatur˘ a : Este o component˘ a mecanic˘ a format˘ a din:
–Un pupitru de taste (similar unei ma¸ sini de scris);
–ndiscuri adiacente, care se rotesc ˆ ın jurul unui ax. La marea majoritate a
modelelor Enigma, n= 3; sunt ˆ ıns˘ a ¸ si versiuni cu n= 5,6 sau n= 7 discuri.
Pe fiecare disc sunt scrise cele 26 caractere alfabetice (la care uneori se mai
adaug˘ a trei caractere speciale);
–Un mecanism de avans (similar ceasurilor mecanice) care permite – la ap˘ asarea
unei taste – rotirea unuia sau mai multor discuri cu un num˘ ar de pozit ¸ii. Sunt
folosite mai multe variante; cea mai frecvent˘ a const˘ a ˆ ın rotirea cu o pozit ¸ie a
discului din dreapta, la fiecare ap˘ asare a unei taste, acompaniat˘ a ˆ ın anumite
situat ¸ii de rotirea discurilor vecine.
•Circuite electrice : Criptarea unui caracter se realizeaz˘ a electric. Componenta meca-
nic˘ a este conceput˘ a ˆ ın a¸ sa fel ˆ ıncˆ at s˘ a formeze un circuit electric. La ap˘ asarea unei
taste circuitul se ˆ ınchide ¸ si lumineaz˘ a una sau mai multe l˘ ampi, indicˆ and litera de
ie¸ sire.
•Reflector (Umkehrwalze) : Este o component˘ a specific˘ a ma¸ sinilor de criptat Enigma
(introdus˘ a ˆ ın 1926 la sugestia lui Willy Korn). Scopul ei este de a realiza un sistem
de criptare Beaufort (ma¸ sina s˘ a poat˘ a fi capabil˘ a de a cripta ¸ si decripta mesaje).
ˆIn majoritatea variantelor, reflectorul este a¸ sezat pe ax dup˘ a ultimul disc (din
stˆ anga); el realizeaz˘ a o substitut ¸ie (fixat˘ a), dup˘ a care reintroduce noul caracter
prin discuri ˆ ın sens invers, dar pe alt drum. Deci o ma¸ sin˘ a Enigma cu ndiscuri va
realiza criptarea unui caracter prin 2 n+ 1 substitut ¸ii.
O consecint ¸˘ a a acestei propriet˘ at ¸i este aceea c˘ a un caracter nu va fi niciodat˘ a criptat
ˆ ın el ˆ ınsu¸ si, sl˘ abiciune exploatat˘ a adesea cu succes de criptanali¸ sti.
40 CAPITOLUL 3. SISTEME MECANICE DE CRIPTARE
•Tabela de conexiuni (Steckerbrett)3: Este o component˘ a (pozit ¸ionat˘ a ˆ ın fat ¸˘ a, sub
tastele literelor) ˆ ın care se pot face conexiuni ˆ ıntre perechi de litere, prin intermediul
unor cabluri (similar centralelor telefonice vechi). Deci la un mesaj sunt posibile
maxim 13 conexiuni. De exemplu, dac˘ a printr-un cablu sunt conectate literele S
¸ siW, de cˆ ate ori este tastat S, semnalul este comutat pe Wˆ ınainte de a intra pe
discuri.
Introdus˘ a ˆ ın 1930, aceast˘ a component˘ a asigur˘ a un plus de securitate ¸ si a fost prin-
cipalul obstacol ˆ ın criptanaliz˘ a.
Starea init ¸ial˘ a a unei ma¸ sini Enigma se refer˘ a la:
•Ordinea discurilor (Walzenlage) : alegerea num˘ arului de discuri ¸ si ordinea lor de
utilizare;
•Pozit ¸ia init ¸ial˘ a a discurilor : pozit ¸ionareaˆ ın mod independent a fiec˘ arui disc, diferit˘ a
pentru fiecare mesaj;
•Init ¸ializarea inelului de caractere (Ringstellung) : pozit ¸ionarea alfabetului relativ la
primul disc.
•Init ¸ializarea conexiunilor (Steckerverbindungen) : conexiunile dintre litere ˆ ın cadrul
tabelei de conexiuni.
Matematic, Enigma cripteaz˘ a fiecare liter˘ a dup˘ a o procedur˘ a care poate fi exprimat˘ a prin
produs de permut˘ ari. S˘ a presupunem c˘ a avem o ma¸ sin˘ a Enigma cu 3 discuri ¸ si fie P
transformarea tabelei de conexiuni, U– reflectorul, S, M, D – act ¸iunile celor 3 discuri
(din stˆ anga, mijloc ¸ si respectiv dreapta). Atunci criptarea epoate fi scris˘ a sub forma:
e=PDMSUS−1M−1D−1P−1
Dup˘ a fiecare ap˘ asare a unei taste, discurile se rotesc schimbˆ and transformarea. De exem-
plu, dac˘ a discul din dreapta se rote¸ ste cu ipozit ¸ii, atunci transformarea devine ρiDρ−i,
where ρeste permutarea ciclic˘ a stˆ anga a vectorului ( A, B, C, . . . , Z ). Similar, discurile
din mijloc ¸ si stˆ anga pot fi reprezentate prin jrespectiv krotiri ale lui Mrespectiv S.
Atunci funct ¸ia de criptare poate fi descris˘ a astfel:
e=P(ρiDρ−i)(ρjMρ−j)(ρjSρ−k)U(ρjS−1ρ−k)(ρjM−1ρ−j)(ρiD−1ρ−i)P−1
Decriptarea se efectueaz˘ a dup˘ a aceea¸ si formul˘ a.
S˘ a calcul˘ am num˘ arul de variante posibile pentru criptarea unui mesaj. Vom considera
o ma¸ sin˘ a Enigma cu 3 discuri. Atunci num˘ arul de situat ¸ii init ¸iale posibile este 26 ·26·26 =
3plugboard ˆ ın englez˘ a.
3.3. MAS ¸INI DE CRIPTAT 41
17.576. Cum cele 3 discuri pot fi permutate ˆ ın 6 moduri, num˘ arul variantelor se ridic˘ a la
6·17.576 = 105 .456.
Pentru fiecare din acestea, o tabel˘ a de conexiuni cu 13 perechi de litere conectate
ridic˘ a num˘ arul variantelor la 150 .738.274.937.250.
La acestea se adaug˘ a ¸ si modul de pozit ¸ionare al inelului de caractere la mecanismul
discurilor, care mai ridic˘ a ordinul de m˘ arime al variantelor cu aproximativ 105. Aceste
estim˘ ari arat˘ a c˘ a Enigma era cea mai sigur˘ a ma¸ sin˘ a de criptat a momentului respectiv.
S˘ a detaliem funct ¸ionarea unei ma¸ sini Enigma (din punct de vedere matematic):
•Fiecare disc poate fi reprezentat ca un set de permmut˘ ari pentru litere – codificate
cu valori ˆ ıntre 0 ¸ si 25; fie α1, α2, α3permut˘ arile de pe cele trei discuri (de la dreapta
spre stˆ anga).
•Fier1, r2, r3set˘ arile init ¸iale de pe cele trei discuri (caracterele situate init ¸ial pe
pozit ¸iile accesibile ale discurilor).
•Pentru simplificare, vom ignora rolul tabelei de conexiuni.
•Vom nota cu βsubstitut ¸ia reflectorului (reprezentat˘ a ca un set de permut˘ ari ˆ ıntre
perechi de caractere.
S˘ a urm˘ arim – pe un exemplu – un traseu care pleac˘ a de la semnalul de intrare (un caracter
din textul clar), trece prin cele trei discuri ¸ si reflector ¸ si d˘ a ca rezultat caracterul criptat
(a se vedea figura).
Text clarText
criptat
HHHH Y >
= HHHHH Y +6-QQQQQ s- >-HHHHH j-Reflector
a aa/prime
a/prime
bb/prime
cc/prime
deTabel˘ a de
conexiuniDisc 1 Disc 2 Disc 3
Exemplul 3.3. S˘ a presupunem c˘ a cele permut˘ arile celor trei discuri sunt:
α1= (0 15 6 10 14 8 19 17 22 18 11)(1 2 9 13 21 25)(3 4 23 5 24 7 12 16 20)
α2= (0 7 9 4 6 18 23 25 8)(1 17 19)(2 20 10)(3 12)(5 11 13 21)(14 22 15 16 24)
α3= (0 2 4 7 16 17 19 5)(1 6 3 8 21 24 11 13 9 10 25 12 14 15)(18 23 20 22)
Substitut ¸ia βeste definit˘ a
β= (0 4)(1 7)(2 9)(3 16)(5 20)(6 8)(10 19)(11 17)(12 25)(13 18)(14 24)(15 22)(21 23) .
42 CAPITOLUL 3. SISTEME MECANICE DE CRIPTARE
Deci, cu α1,0este mutat ˆ ın 15,15este mutat ˆ ın 6,25este mutat ˆ ın 1etc.
Inversele celor trei permut˘ ari (folosite ”pe drumul de ˆ ıntoarcere”) sunt:
α−1
1= (11 18 22 17 19 8 14 10 6 15 0)(25 21 13 9 2 1)(20 16 12 7 24 5 23 4 3)
α−1
2= (8 25 23 18 6 4 9 7 0)(19 17 1)(10 20 2)(12 3)(21 13 11 5)(24 16 15 22 14)
α−1
3= (5 19 17 16 7 4 2 0)(15 14 12 25 10 9 13 11 24 21 8 3 6 1)(22 20 23 18)
Set˘ arile init ¸iale sunt r1= 22 (deci primul rotor are ”vizibil˘ a” litera V),r2= 7, r3= 12 .
Substitut ¸iile celor trei discuri sunt date – matematic – de formulele
b= [a+r1(mod 26)]α1, c = [b+r2(mod 26)]α2, d = [c+r3(mod 26)]α3,
unde xα=y,yfiind elementul care urmeaz˘ a lui xˆ ın permutarea α. Astfel, de exemplu
3α1= 4,8α2= 0etc.
Aceast˘ a notat ¸ie permite s˘ a scriem de asemenea
e=dβ.
ˆIn continuare, semnalul parcurge cele trei discuri ˆ ın sens invers:
c/prime=eα−1
3−r3(mod 26), b/prime= (c/prime)α−1
2−r2(mod 26), a/prime= (b/prime)α−1
1−r1(mod 26).
Dup˘ a criptarea unui caracter, cele trei discuri sunt resetate dup˘ a regula:
r1:=r1+ 1 ( mod 26); dac˘ a noua valoare r1= 0atunci r2:=r2+ 1 ( mod 26); dac˘ a
noua valoare r2= 0, atunci r3:=r3+ 1 (mod 26).
Pentru exemplificare, s˘ a cript˘ am litera K(al c˘ arei cod numeric este 10).
a= 10 ;
b= [a+r1(mod 26)]α1= [10 + 22 ( mod 26)]α1= 6α1= 10 ;
c= [b+r2(mod 26)]α2= [10 + 7 ( mod 26)]α2= 17α2= 22 ;
d= [c+r3(mod 26)]α3= [22 + 12 ( mod 26)]α3= 8α3= 21 .
Trecerea prin reflector d˘ a e=dβ= 21β= 23 .
Acum se parcurg cele trei discuri ˆ ın sens invers:
c/prime=eα−1
3−r3(mod 26) = 23α−1
3−12 (mod 26) = 18−12 (mod 26) = 6 ;
b/prime= (c/prime)α−1
2−r2(mod 26) = 6α−1
2−7 (mod 26) = 4−7 (mod 26) = 23 ;
a/prime= (b/prime)α−1
1−r1(mod 26) = 23α−1
1−22 (mod 26) = 4−22 (mod 26) = 8 .
Deci criptarea caracterului KesteI(litera corespunz˘ atoare codului 8).
Set˘ arile pentru criptarea urm˘ atorului caracter sunt r1:= 23 , r2= 7, r3= 12 .
Detalii despre modul de construct ¸ie al ma¸ sinii de criptat Enigma se pot g˘ asi ˆ ın [11], [44]
¸ si – mai ales din punct de vedere al criptanalizei – ˆ ın [29].
3.3. MAS ¸INI DE CRIPTAT 43
3.3.2 C−36 (M−209C)
Ma¸ sina C−36 este conceput˘ a de inginerul suedez Boris Hagelin, la solicitarea armatei
americane de a avea o ma¸ sin˘ a de criptat portabil˘ a, u¸ sor de mˆ anuit, care s˘ a poat˘ a fi folosit˘ a
dup˘ a un instructaj sumar. Este cunoscut˘ a ¸ si sub numele de M−209C, la baz˘ a fiind
un model creat de Hagelin ˆ ın Suedia la sfˆ ar¸ situl anilor/prime30. Ea ˆ ıncepe s˘ a fie produs˘ a –
dup˘ a cˆ ateva modific˘ ari legate de design – ˆ ın 1940 ¸ si ˆ ınlocuie¸ ste treptat ma¸ sina de criptat
M−94. Se apreciaz˘ a c˘ a ˆ ın timpul r˘ azboiului au fost produse circa 140 .000 ma¸ sini de
criptat C−36.
Nu au fost specificate m˘ asuri speciale de securitate; C−36 nu a fost realizat˘ a pentru
a fi criptografic sigur˘ a, ea fiind destinat˘ a zonelor militare tactice, unde era nevoie doar de
o sigurant ¸˘ a de cˆ ateva ore fat ¸˘ a de o eventual˘ a criptanaliz˘ a.
Vom da o prezentare matematic˘ a a principiilor sale de construct ¸ie; pentru alte detalii,
a se vedea [27] ¸ si [59].
Definit ¸ia 3.1. Se nume¸ ste matrice lugo matrice binar˘ a M6×27ˆ ın care fiecare din cele 27
coloane cont ¸ine cel mult doi de 1.
Exemplul 3.4. ([45]). Toate exemplific˘ arile referitoare la M−209vor 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 1
1 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 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 0 0 0
0 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 1
0 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 0
0 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
Fievun vector binar de dimensiune 6. Atunci c·Meste un vector cu 27 componente
avˆ and elemente din mult ¸imea {0,1,2}. Num˘ arul de elemente nenule din v·Mse nume¸ ste
ponderea lui vˆ ın raport cu M.
Oconfigurat ¸ie de ˆ ınceput se obt ¸ine prin a¸ sezarea unul sub altul (aliniat ¸i la stˆ anga) a
¸ sase vectori binari de lungimi 17 ,19,21,23,25,26.
Exemplul 3.5. Structura
0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0
0 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 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 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.
44 CAPITOLUL 3. SISTEME MECANICE DE CRIPTARE
Plecˆ and de la o configurat ¸ie de ˆ ınceput, se pot genera o infinitate de vectori de dimen-
siune 6 ˆ ın felul urm˘ ator:
1. Primii 17 vectori sunt coloanele complete ale configurat ¸iei de ˆ ınceput.
2. Fiecare vector linie se repet˘ a ciclic din momentul cˆ and s-a terminat.
Pe baza acestor elemente se poate descrie sistemul de criptare al ma¸ sinii C−36. Rea-
mintim, codificarea numeric˘ a a literelor este de la A−0 pˆ an˘ a la Z−25; toate calculele
se vor face modulo 26.
Fiexcodul celui de-al i-lea caracter din textul clar ¸ si hponderea celui de-al i-lea
vector generat de configurat ¸ia de ˆ ınceput ˆ ın raport cu matricea lug. Atunci
y=h−x−1.
Exemplul 3.6. 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 libere4, lungimea textului clar este 25.
Vom calcula ponderile primilor 25vectori ¸ si vom aranja totul sub forma unui tablou:
h 10 17 16 9 9 9 7 0 0 0 0 12 0
x 13 20 15 20 19 4 12 17 4 20 18 8 3
h−x−122 20 0 14 15 4 20 8 21 5 7 3 22
W W A O P E U I V F H D W
h 0 18 7 0 0 18 7 9 9 19 14 9
x 4 2 0 19 8 12 15 17 4 20 13 0
h−x−121 15 6 6 17 5 17 17 4 24 0 8
V P G G R F R R E Y A I
Deci textul criptat este
WWAOPEUIVFHDWVPGGRFRREYAI
Matricea lug¸ si configurat ¸ia de ˆ ınceput formeaz˘ a cheia pentru ma¸ sina C−36. De
fapt, ma¸ sina ˆ ıns˘ a¸ si este o realizare fizic˘ a a acestui sistem: ea opereaz˘ a conform cu o cheie
stabilit˘ a anterior prin fixarea unor rot ¸i dint ¸ate ¸ si a unui disc (pentru detalii vezi [59]).
Observat ¸ia 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 ma¸ sina C−36
poate fi folosit˘ a atˆ at pentru criptare cˆ at ¸ si pentru decriptare.
4ˆIn aplicat ¸iile practice, spat ¸iul se ˆ ınlocuie¸ ste uneori cu o liter˘ a de frecvent ¸˘ a redus˘ a.
3.4. EXERCIT ¸II 45
Deoarece liniile din configurat ¸ia de ˆ ınceput au lungimi numere prime ˆ ıntre ele, vectorii
generat ¸iˆ ıncep s˘ a se repete sigur dup˘ a 17 ·19·21·23·25·26 = 101 .405.850 pa¸ si; deci cuvˆ antul
cheie poate fi considerat mai lung decˆ at orice text clar. Sunt ˆ ıns˘ a cazuri cˆ and aceast˘ a
perioad˘ a poate fi mai scurt˘ a. De exemplu, dac˘ a configurat ¸ia de ˆ ınceput cont ¸ine numai 1,
se va genera un singur vector, deci perioada este 1. De asemenea se obt ¸in perioade scurte
pentru matrici lugcu foarte put ¸ini 1 sau configurat ¸ii de ˆ ınceput ˆ ın care raportul dintre
num˘ arul de 0 ¸ si 1 este disproport ¸ionat.
Nu exist˘ a o condit ¸ie matematic˘ a pentru existent ¸a a exact 6 linii ˆ ın configurat ¸ia de
ˆ ınceput. Acest num˘ ar a fost ales ca un compromis ˆ ıntre securitatea criptografic˘ a ¸ si
u¸ surint ¸a de a cripta. ˆIn general perioada cre¸ ste cu num˘ arul de linii.
Ma¸ sina de criptat M−209 avea ¸ si ea o serie de sl˘ abiciuni (un atac cu texte clare alese
care au anumite componente comune poate duce la informat ¸ii asupra matricii lug), astfel
c˘ a ˆ ın 1943 criptanali¸ stii germani puteau decripta mesajele. Totu¸ si – din punct de vedere
militar tactic – ea a fost considerat˘ a perfect adaptat˘ a necesit˘ at ¸ilor ¸ si a fost folosit˘ a de
armata american˘ a pˆ an˘ a dup˘ a r˘ azboiul din Coreea (1953 −1956).
Ulterior, Hagelin a elaborat un model ˆ ımbun˘ at˘ at ¸it: ma¸ sina C−52. Aceasta avea o
perioad˘ a de 2 .756.205.443; discurile puteau ¸ si scoase ¸ si reinserate ˆ ın alt˘ a ordine; exista un
disc al c˘ arui alfabet putea fi permutat.
C−52 a f˘ acut parte din ultima generat ¸ie de ma¸ sini de criptat clasice, noua tehnologie
(cea a computerelor) permit ¸ˆ and dezvoltarea altor mecanisme cu o putere de calcul mult
mai mare.
3.4 Exercit ¸ii
3.1. S˘ a se cripteze, folosind sistemul skitala pe 6rˆ anduri, primul vers din Iliada:
CANTA ZEITA MANIA CE-APRINSE PE-AHIL PELEIANUL
3.2. Se intercepteaz˘ a trei zile la rˆ and cˆ ate un mesaj:
(a)UKMV UIEE LBIM KPHN KGMR MV UI EV MI KHKN KMNK RI ;
(b)DOSX DEKK NCES OWY P OHSI SXDE KXSE OY OP OSPO IE ;
(c)JBV Z JKOO PUKV BQFW BY V E V ZJK OZV K BFBW BV WB EK .
Despre aceste mesaje ¸ stim c˘ a:
– Reprezint˘ a acela¸ si text clar;
– Sunt criptate folosind un cilindru Jefferson avˆ and trei discuri identice;
– Criptarea s-a f˘ acut ˆ ın prima zi cu deplasarea 1, ˆ ın a doua zi cu deplasarea 2, iar ˆ ın
a treia zi cu deplasarea 3.
S˘ a se decripteze mesajul init ¸ial ¸ si s˘ a se reconstituie cilindrul Jefferson cu care s-a f˘ acut
criptarea.
3.3. Se d˘ a matricea
46 CAPITOLUL 3. SISTEME MECANICE DE CRIPTARE
0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1
0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0
0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0
1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0
0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1
Nu se cunoa¸ ste matricea lug, dar din textul criptat
CSDZ RGGV PSLA BCBU PTEU SHDO HBNO CDTO Y BMS
NUKD GAAY WZRS WPV
s-au putut decripta primele 20caractere:
CUMQITIQASTERNIQASAQV EIQSTA
S˘ a se decripteze restul textului.
3.4. Ma¸ sina Enigma asigur˘ a un cifru de substitut ¸ie sau un cifru de transpozit ¸ie ?
De ce ?
3.5. Utilizˆ and discurile, reflectorul ¸ si set˘ arile init ¸iale din Exemplul 3.3, s˘ a se cripteze
textul clar
MASINA DE CRIPTARE.
3.6. Utilizˆ and discurile, reflectorul ¸ si set˘ arile init ¸iale din Exemplul 3.3, s˘ a se decripteze
textul
YDDMYU.
Capitolul 4
Sisteme fluide de criptare
4.1 Sisteme sincrone ¸ si auto-sincronizabile
ˆIn sistemele de criptare prezentate pˆ an˘ a acum, elementele succesive ale textului clar erau
criptate folosind aceea¸ si cheie K. Deci, dac˘ a
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) .
Alt˘ a manier˘ a utilizat˘ a este aceea a sistemelor de criptare fluide (stream cyphers) .
Definit ¸ia 4.1. FieM= (P,C,K,E,D)un sistem de criptare. O secvent ¸˘ a de simboluri
k1k2k3. . .∈K+se nume¸ ste cheie fluid˘ a.
Definit ¸ia 4.2.M= (P,C,K,E,D)este un sistem fluid de criptare dac˘ a cifreaz˘ 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 principal˘ a este de a genera o cheie de criptare fluid˘ a (teoretic infinit).
Aceasta se poate realiza fie aleator, fie pe baza unui algoritm care pleac˘ a de la o secvent ¸˘ a
mic˘ a de chei de criptare. Un astfel de algoritm se nume¸ ste generator de chei fluide .
47
48 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
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 nume¸ ste ”one – time pad”.
Un sistem de criptare one-time pad este teoretic imposibil de spart1(deci asigur˘ a un
secret perfect). ˆ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” (not ¸iunea va fi prezentat˘ a detaliat ˆ ın Capitolul 6). Anume:
Dac˘ a y1y2. . . y n¸ siy/prime
1y/prime
2. . . y/prime
nsunt dou˘ a texte criptate cu aceia¸ si chee fluid˘ a k1k2. . . k n,
atunci
yi=xi⊕ki, y/prime
i=x/prime
i⊕ki(1≤i≤n)
deciyi⊕y/prime
i=xi⊕x/prime
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 ¸ siauto-sincronizabile .
Definit ¸ia 4.3. Un sistem de criptare fluid sincron este o structur˘ a (P,C,K,L,E,D),
unde:
•P,C,Ksunt 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 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∈Lexist˘ a o regul˘ a de criptare ez∈E¸ si o regul˘ a de decriptare dz∈D astfel ca
∀x∈P, d k(ek(x)) =x
Exemplul 4.2. Sistemul de criptare Vigenere poate fi definit ca un sistem de criptare
fluid sincron. Fie mlungimea cuvˆ antului cheie din sistemul Vigenere. Definim
P=C=L=Z26,K=(Z26)m,
ez(x) =x+z(mod 26), d z(y) =y−z(mod 26)
1ˆIn anii/prime90 comunicarea ˆ ıntre Moscova ¸ si Washington era securizat˘ a ˆ ın acest mod, transportul cheii
de criptare fiind asigurat de curieri diplomatici.
4.1. SISTEME SINCRONE S ¸I AUTO-SINCRONIZABILE 49
Cheia z1z2z3. . .este definit˘ a
zi=/braceleftBigg
ki dac˘ a 1≤i≤m
zi−mdac˘ a i≥m+ 1
Ea va genera din cheia fix˘ a K= (k1, k2, . . . , k m), cheia fluid˘ a
k1k2. . . k mk1k2. . . k mk1k2. . .
Procesul de criptare cu un sistem fluid sincron poate fi reprezentat ca un automat
descris de relat ¸iile
qi+1=δ(qi, K), z i=g(qi, K), y i=h(zi, xi)
unde q0este starea init ¸ial˘ a – care poate fi determinat˘ a din cheia K,δeste funct ¸ia de
tranzit ¸ie a st˘ arilor ,gestefunct ¸ia care produce cheia fluid˘ a zi, iarhestefunct ¸ia de ie¸ sire
care produce textul criptat yipe baza textului clar xi¸ si a cheii fluide zi.
qi
–
6 6 6– 66-
?
?δ
g h Kqi+1
zixi
yi
qi
–
6 6 6– 66-
?
?δ
g h−1 Kqi+1
ziyi
xi
(a) Criptare (b) Decriptare
Observat ¸ia 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 din textul criptat, atunci de-
criptarea e¸ sueaz˘ 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˘ ar˘ a a se elimina sau ad˘ auga nimic) nu va
afecta decriptarea altor caractere (nepropagarea erorii).
•Un adversar activ care elimin˘ a, insereaz˘ a sau retrimite componente ale mesajului
criptat, va provoca desincroniz˘ ari ¸ si deci va fi detectat la recept ¸ie. De asemenea, el
poate face modific˘ ari ˆ ın textul criptat ¸ si s˘ a observe cum vor afecta ele textul clar.
Rezult˘ a c˘ a un text criptat cu un sistem fluid sincron necesit˘ a mecanisme separate
de autentificare ¸ si de garantare a integrit˘ at ¸ii datelor.
50 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
Definit ¸ia 4.4. Un sistem aditiv fluid binar de criptare este un sistem fluid sincron ˆ ın
careP=C=L=Z2iar funct ¸ia de ie¸ sire heste⊕(XOR ).
Un astfel de sistem este reprezentat mai jos:
Generator
chei fluide⊕ – -?-Kzixi
yiGenerator
chei fluide⊕ – -?-Kziyi
xi
(a) Criptare (b) Decriptare
Definit ¸ia 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 ecuat ¸iile
qi= (yi−t, yi−t+1, . . . , y i−1), z i=g(qi, K), y i=h(zi, xi)
unde q0= (y−t, y−t+1, . . . , y −1) este starea init ¸ial˘ a (cunoscut˘ a), Keste cheia, geste funct ¸ia
de generare a cheii fluide, iar hestefunct ¸ia de ie¸ sire care cripteaz˘ a textul clar xi. Cele mai
cunoscute sisteme auto-sincronizabile sunt regi¸ strii liniari cu feedback ( LFSR ), utilizat ¸i la
generarea secvent ¸elor de numere pseudo-aleatoare (ˆ ın criptografie) ¸ si la generarea codurilor
ciclice (ˆ ın teoria codurilor). Mai multe informat ¸ii despre LFSR pot fi g˘ asite ˆ ın Capitolul
12.
Exemplul 4.3. (Criptare cu auto-cheie)2:
FieP=C=L=Z26. Se define¸ ste cheia fluid˘ a astfel:
z1=K, z i=yi−1=ezi−1(xi−1) (i≥2).
Pentru un element oarecare al cheii z∈Z26, se define¸ ste
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 BUCURESTI .
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 ;
2Se pare c˘ a sistemul este atribuit lui Vigenere.
4.1. SISTEME SINCRONE S ¸I AUTO-SINCRONIZABILE 51
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
cunoa¸ ste 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
zi=xi−1(i≥2).
ˆIn acest caz, BUCURESTI se cripteaz˘ a ˆ ın OV WWLV WLB (pentru K= 13 ).
Nici acest sistem de criptare cu auto-cheie nu este sigur, deoarece – evident – sunt
posibile doar 26chei.
Propriet˘ at ¸i ale sistemelor de criptare fluide auto-sincronizabile :
1.Auto-sincronizare : Deoarece funct ¸ia de decriptare h−1depinde numai de un num˘ ar
fixat de caractere criptate anterior, desincronizarea – rezultat˘ a eventual prin ˆ ınsera-
rea sau ¸ stergerea de caractere criptate – se poate evita. Astfel de sisteme de criptare
pot restabili proprietatea de sincronizare, afectˆ and (eventual) doar un num˘ ar finit
de caractere din textul clar.
2.Propagarea limitat˘ a a erorii : Dac˘ a starea unui sistem fluid auto-sincronizabil de-
pinde de scaractere anterioare, atunci modificarea (eventual ¸ stergerea sau ˆ ınse-
rarea) unui caracter din textul criptat poate duce la decriptarea incorect˘ a a maxim
scaractere; dup˘ a aceea decriptarea redevine corect˘ a.
3.Difuzia textelor clare : Deoarece fiecare caracter din textul clar influent ¸eaz˘ a ˆ ıntregul
text criptat care urmeaz˘ a, eventualele propriet˘ at ¸i statistice ale textului clar sunt
dispersate prin textul criptat. Deci, din acest punct de vedere, sistemele de criptare
auto-sincronizabile sunt mai rezistente decˆ at cele sincronizabile, la atacurile bazate
pe redondant ¸a textului clar.
4.Rezistent ¸a la criptanaliz˘ a activ˘ a : Din propriet˘ at ¸ile de mai sus rezult˘ a c˘ a este destul
de dificil de depistat un atac venit din partea unui adversar activ (care poate modi-
fica, ˆ ınsera sau ¸ sterge caractere) auto-sincronizarea readucˆ and decriptarea ˆ ın faza
normal˘ a. De aceea sunt necesare mecanisme suplimentare pentru a asigura auten-
tificarea ¸ si integritatea datelor.
52 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
4.2 Exemple de sisteme fluide de criptare
4.2.1 SEAL
SEAL (Software – optimized Encryption ALgorithm) este un sistem de criptare aditiv
binar (Definit ¸ia 4.4), definit ˆ ın 1993 de Don Coppersmith ¸ si Philip Rogaway. Este unul
din cele mai eficiente sisteme implementabile pe procesoare de 32 bit ¸i.
La un astfel de sistem este important˘ a descrierea generatorului de chei fluide (care se
adun˘ a modulo 2 cu textul clar). SEAL este o funct ¸ie pseudo-aleatoare care scoate o cheie
fluid˘ a de Lbit ¸i folosind un num˘ ar nde 32 bit ¸i ¸ si o cheie secret˘ a ade 160 bit ¸i.
FieA, B, C, D, X i, Yjcuvinte de 32 bit ¸i. Vom folosi urm˘ atoarele notat ¸ii:
1.A: complementul lui A(bit cu bit);
2.A∨B, A∧B, A⊕B: operat ¸iile OR, AND ¸ siXOR (definite pe bit ¸i);
3.A << s : rotirea ciclic˘ a a lui Aspre stˆ anga cu spozit ¸ii;
4.A >> s : rotirea ciclic˘ a a lui Aspre dreapta cu spozit ¸ii;
5.A+B(mod 232): suma lui A¸ siB(considerate ca numere ˆ ıntregi f˘ ar˘ a 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 (al˘ aturarea) lui AcuB;
8. (X1, X2, . . . , X n)←−(Y1, Y2, . . . , Y n): atribuire simultan˘ a (variabila Yiia valoarea
Xisimultan pentru toate valorile lui i= 1,2, . . . , n ).
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 53
Algoritmul de generare a tabelei Gpentru SEAL 2.03:
Intrare : Un ¸ sir ade 160 bit ¸i ¸ si un ˆ ıntreg i(0≤i <232).
Ie¸ sire :Ga(i) – ¸ sir de 160 bit ¸i.
Algoritm 1 :
1. Se definesc constantele (de 32 bit ¸i):
y1= 5A827999 , y 2= 6ED9EBA 1, y 3= 8F1BBCDC, y 4=CA62C1D6
2.a. X 0←−i;
b.forj←−1to15doXj←−00000000;
c.forj←−16to79doXj←−((Xj−3⊕Xj−8⊕Xj−14⊕Xj−16)<<1);
d.(M0, M 1, M 2, M 3, M 4)←−(H0, H1, H2, H3, H4)where a=H0H1H2H3H4;
e.(Runda 1): forj←−0to19do
t←−((M0<<5) +f(M1, M 2, M 3) +M4+Xj+y1);
(M0, M 1, M 2, M 3, M 4)←−(t, M 0, M 1<<30, M 2, M 3);
f.(Runda 2): forj←−20to39do
t←−((M0<<5) +h(M1, M 2, M 3) +M4+Xj+y2);
(M0, M 1, M 2, M 3, M 4)←−(t, M 0, M 1<<30, M 2, M 3);
g.(Runda 3): forj←−40to59do
t←−((M0<<5) +g(M1, M 2, M 3) +M4+Xj+y3);
(M0, M 1, M 2, M 3, M 4)←−(t, M 0, M 1<<30, M 2, M 3);
h.(Runda 4): forj←−60to79do
t←−((M0<<5) +h(M1, M 2, M 3) +M4+Xj+y4);
(M0, M 1, M 2, M 3, M 4)←−(t, M 0, M 1<<30, M 2, M 3);
i.(H0, H1, H2, H3, H4)←−(H0+M0, H1+M1, H2+M2, H3+M3, H4+M4);
Ga(i) =H0||H1||H2||H3||H4.
3Algoritmul SEAL 1.0 este bazat pe funct ¸ia de dispersie SHA , iar SEAL 2.0 – pe funct ¸ia SHA−1.
54 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
SEAL (a, n) (Generatorul de chei fluide pentru SEAL 2.0 ):
Intrare :a– cheia secret˘ a (160 bit ¸i), n∈[0,232) ˆ ıntreg, L- lungimea solicitat˘ a
pentru cheia fluid˘ a.
Ie¸ sire : cheia fluid˘ a y,|y|=L/prime, unde L/primeeste primul multiplu de 128 din [ L,∞).
1. Se genereaz˘ a tabelele T, S, R avˆ and ca elemente cuvinte de 32 bit ¸i.
Fie constanta Y= 000007 FC¸ si funct ¸ia
Fa(i) =Hi
i(mod 5)unde Hi
0Hi
1Hi
2Hi
3Hi
4=Ga(⌊i/5⌋).
a.fori←−0to511doT[i]←−Fa(i);
b.forj←−0to255doS[j]←−Fa(00001000 + j);
c.fork←−0to4·⌈(L−1)/8192⌉−1doR[k]←−Fa(00002000 + k);
2. Descrierea procedurii Initialize (n, l, M 1, M 2, M 3, M 4, n1, n2, n3, n4) cu intr˘ arile
n(cuvˆ ant) ¸ si l(ˆ ıntreg). Ie¸ sirile sunt M1, M 2, M 3, M 4, n1, n2, n3, n4(cuvinte).
a.M1←−n⊕R[4·l], M 2←−(n >> 8)⊕R[4·l+ 1],
M3←−(n >> 16)⊕R[4·l+ 2], M 4←−(n >> 24)⊕R[4·l+ 3].
b.forj←−1to2do
P←−M1∧Y, M 2←−M2+T[P/4], M 1←−(M1>>9),
P←−M2∧Y, M 3←−M3+T[P/4], M 2←−(M2>>9),
P←−M3∧Y, M 4←−M4+T[P/4], M 3←−(M3>>9),
P←−M4∧Y, M 1←−M1+T[P/4], M 4←−(M4>>9),
(n1, n2, n3, n4)←−(M4, M 1, M 2, M 3);
P←−M1∧Y, M 2←−M2+T[P/4], M 1←−(M1>>9),
P←−M2∧Y, M 3←−M3+T[P/4], M 2←−(M2>>9),
P←−M3∧Y, M 4←−M4+T[P/4], M 3←−(M3>>9),
P←−M4∧Y, M 1←−M1+T[P/4], M 4←−(M4>>9),
3.l←−0,y←−/epsilon1(¸ sirul vid);
4.repeat
a. Initialize (n, l, M 1, M 2, M 3, M 4, n1, n2, n3, n4);
b.fori←−1to64do
P←−M1∧Y, M 2←−M2+T[P/4], M 1←−(M1>>9), M 2←−M2⊕M1;
Q←−M2∧Y, M 3←−M3+T[Q/4], M 2←−(M2>>9), M 3←−M3⊕M2;
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 55
P←−(P+M3)∧Y, M 4←−M4+T[P/4], M 3←−(M3>>9), M 4←−M4⊕M3;
Q←−(Q+M4)∧Y, M 1←−M1+T[Q/4], M 4←−(M4>>9), M 1←−M1⊕M4;
P←−(P+M1)∧Y, M 2←−M2+T[P/4], M 1←−(M1>>9);
Q←−(Q+M2)∧Y, M 3←−M3+T[Q/4], M 2←−(M2>>9);
P←−(P+M3)∧Y, M 4←−M4+T[P/4], M 3←−(M3>>9);
Q←−(Q+M4)∧Y, M 1←−M1+T[Q/4], M 4←−(M4>>9);
y←−y||(M2+S[4·i−4])||(M3⊕S[4·i−3])||(M4+S[4·i−2])||(M1⊕S[·i−1]).
if|y|≥Lthen return (y)STOP
else if i(mod 2) = 1 then (M1, M 3)←−(M1+n1, M 3+n2)
else (M1, M 3)←−(M1+n3, M 3+n4)
c. l←−l+ 1.
Observat ¸ia 4.2. ([38]) ˆIn majoritatea aplicat ¸iilor pentru SEAL 2.0 se folose¸ ste L≤219.
Algoritmul funct ¸ioneaz˘ a ¸ si pentru valori mai mari, dar devine ineficient deoarece cre¸ ste
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 RC4 (Rivest Code #4) a fost creat ˆ ın 1987 de Ron Rivest pentru societatea RSA
Data Security Inc (ast˘ azi RSA Security ). Destinat scopurilor comerciale, el a fost secret,
fiind accesibil numai dup˘ a semnarea unui protocol de confident ¸ialitate. ˆIn septembrie
1994 ˆ ıns˘ a, un anonim public˘ a codul s˘ au surs˘ a pe o list˘ a de discut ¸ii, dup˘ a care RC4 se
r˘ aspˆ ande¸ ste rapid, stˆ arnind o serie de polemici referitor la drepturile intelectuale. Se
consider˘ a c˘ a ast˘ azi exist˘ a mai multe implement˘ ari ilegale.
RC4 este un sistem aditiv fluid de criptare.
Printre sistemele care folosesc RC4 se pot aminti SQL (Oracle), Lotus Notes, AOCE
(Apple Computer), WEP WPA CipherSaber Secure Sockets Layer (opt ¸ional) sau Secure
Shell (opt ¸ional)4RC4 este utilizat pentru criptarea fi¸ sierelor ˆ ın protocoale cum ar fi RSA
SecurPC sau ˆ ın standarde de comunicat ¸ii (WEP, WPA pentru carduri, criptarea traficului
de date sau a site-urilor de web bazate pe protocolul SSL). De asemenea, el face parte
din Cellular Digital Packet Data specification.
La acest sistem, pentru generarea cheii fluide se folose¸ ste o stare intern˘ a (secret˘ a)
format˘ a din dou˘ a componente:
•Un tablou de 256 octet ¸i: S[0], S[1], . . . S [255], numit S−box.
4Cˆ and un sistem de criptare este marcat opt ¸ional , ˆ ınsemn˘ a c˘ a el este una din variantele oferite pentru
implementare.
56 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
•Doi pointeri de cˆ ate 8-bit ¸i (notat ¸i ” i” respectiv ” j”).
S−boxul este init ¸ializat cu o cheie de lungime variabil˘ a – de obicei ˆ ıntre 40 ¸ si 256
bit ¸i, folosind un algoritm numit KSA (key – sheduling algorithm).
ˆIn faza a doua, cheia fluid˘ a este generat˘ a folosind algoritmul PRGA (pseudo-random
generation algorithm).
Algoritmul PRGA de generare a cheii fluide
i j
⊕??
??-
? 6
?S0 1 2 S[i]+S[j] 254 255
K. . . . . . . . . . . .
Cont ¸inuturile S[i] ¸ siS[j] (unde i, jsunt date de cei doi pointeri) se adun˘ a modulo 256,
iar octetul Kde la adresa S[i] +S[j] este introdus ˆ ın cheia fluid˘ a. ˆIn plus cei doi octet ¸i
sunt interschimbat ¸i.
Procedeul este reluat atˆ at timp cˆ at este nevoie. La fiecare reluare, starea celor doi
pointeri se modific˘ a ( ieste incrementat cu 1 iar jeste incrementat cu S[i]).ˆIn acest fel,
fiecare locat ¸ie din S−boxeste modificat˘ a cel put ¸in odat˘ a la 256 iterat ¸ii.
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 init ¸ializare
KSA este utilizat pentru init ¸ializarea S−boxului . Fie n(1≤n≤255) num˘ arul de
octet ¸i din cheie5. Init ¸ial ˆ ın Sse introduce permutarea identic˘ a. Ulterior se realizeaz˘ a 256
transpozit ¸ii. Formal
for i := 0 to 255 do S[i] := i
j := 0
for i := 0 to 255 do
j := (j + S[i] + key[i mod n]) mod 256
swap(S[i],S[j])
5ˆIn majoritatea implement˘ arilor neste ˆ ın intervalul [5 ,16].
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 57
Implementarea sistemului RC4 este foarte simpl˘ a: se lucreaz˘ a cu octet ¸i ¸ si sunt necesari
256 octet ¸i pentru S−box,noctet ¸i de memorie pentru cheie, plus trei variabile ˆ ıntregi
i, j, k . Operat ¸iile folosite sunt XOR ¸ siAND (sau – pe unele platforme – simpla adunare
pe bit ¸i, f˘ ar˘ a transport).
Securitatea RC4
Conform cu Bruce Schneier ([46]), sistemul are circa 256! ×2562= 21700st˘ ari posibile; el
este rezistent la criptanaliza diferent ¸ial˘ a ¸ si liniar˘ a, iar ciclurile sunt mai mari de 10 .100.
Totu¸ si, securitatea RC4 este slab˘ a din mai multe puncte de vedere ¸ si criptografii nu
recomand˘ a sistemul pentru aplicat ¸iile actuale.
Cheia fluid˘ a generat˘ a are o u¸ soar˘ a preferint ¸˘ a pentru anumite secvent ¸e de octet ¸i.
Aceasta a permis construirea unui atac (Fluhrer ¸ si McGrew), care separ˘ a cheia fluid˘ a
dintr-o secvent ¸˘ a aleatoare de maxim 1 GB.
ˆIn 2001, Fluhrer, Mantin ¸ si Shamir descoper˘ a c˘ a din toate cheile RC4 posibile, primii
octet ¸i de ie¸ sire nu sunt aleatori, oferind informat ¸ii importante despre cheie.
La majoritatea sistemelor de criptare, o m˘ asur˘ a de securitate necesar˘ a este alegerea
unui num˘ ar aleator nou6care s˘ a fie folosit pentru criptarea fiec˘ arui mesaj. ˆIn acest fel,
criptarea de dou˘ a ori a aceluia¸ si mesaj va genera texte diferite.
O solut ¸ie sigur˘ a (care funct ¸ioneaz˘ a pentru orice sistem de criptare) este de a folosi o
cheie pe termen lung din care, prin amestec cu un nonce (dup˘ a un algoritm prestabilit), se
obt ¸ine cheia necesar˘ a unei cript˘ ari. Multe aplicat ¸ii ˆ ıns˘ a – care folosesc RC4 – fac o simpl˘ a
concatenare a cheii cu nonce. Aceast˘ a sl˘ abiciune este exploatat˘ a de Fluhrer, Mantin ¸ si
Shamir pentru a sparge ulterior sistemul de criptare WEP (wired equivalent privacy)
folosit pe ret ¸elele f˘ ar˘ a fir 802.11.
Ulterior implement˘ arile sistemului RC4 s-au ap˘ arat eliminˆ and primii octet ¸i (uzual
1024) din cheia fluid˘ a, ˆ ınainte de a o folosi.
4.2.3 Sistemul A5/1
A5/1 este un sistem de criptare fluid utilizat pe scar˘ a larg˘ a ˆ ın ret ¸elele de telefonie mobil˘ a
GSM7. Construit ˆ ın 1987 special pentru Europa ¸ si SUA (o versiune intent ¸ionat mai slab˘ a
–A5/2 – a fost definit˘ a ˆ ın 1989 pentru export ˆ ın alte zone geografice), el a fost f˘ acut public
dup˘ a ce ˆ ın 2000 s-a demonstrat vulnerabilitatea sa ([10]).
A5/1 este un automat finit bazat pe trei regi¸ stri seriali cu feedback ( LFSR ) sincroni.
Cei trei regi¸ stri R1, R2, R3cont ¸in 19 ,22 ¸ si respectiv 23 flip – flopuri de date (unit˘ at ¸i de
memorie de un bit). La un tact, fiecare registru poate r˘ amˆ ane pe loc sau ˆ ı¸ si poate deplasa
cont ¸inutul spre stˆ anga, aducˆ and pe ultima pozit ¸ie o combinat ¸ie liniar˘ a de alt ¸i bit ¸i. Cele
6Un astfel de num˘ ar poart˘ a numele de nonce (new number)
7ˆInafara algoritmului de criptare A5/1, ret ¸elele GSM folosesc ¸ si un algoritm de autentificare A3/8.
58 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
trei combinat ¸ii liniare sunt definite astfel:
R1[0]←− R1[13]⊕R1[16]⊕R1[17]⊕R1[18]
R2[0]←− R2[20]⊕R2[21]
R3[0]←− R3[17]⊕R3[20]⊕R3[21]⊕R3[22]
×
×
×h+
h+h+ h+h+h+h+h+
?
6?-?-?-? -6
?-?-6
?-?-? -? -6
Automatul A5/1
Pentru a decide ce regi¸ stri se deplaseaz˘ a la un tact, se folosesc trei bit ¸i de tact (cei
notati×). La fiecare tact se determina valoarea majoritar˘ a din acesti bit ¸i; un registru se
deplaseaz˘ a (¸ si scoate o valoare) dac˘ a bitul s˘ au de tact are aceea¸ si valoare cu cea majoritar˘ a.
Deci, la fiecare pas, cel put ¸in doi regi¸ stri vor suferi o deplasare.
La fiecare tact, valoarea emis˘ a de automat este
k=R1[18]⊕R2[21]⊕R3[22]
Apoi yse combin˘ a prin XOR cu bitul curent din mesajul de informat ¸ie (similar sistemului
one-time-pad ).
Exemplul 4.4. S˘ a presupunem c˘ a cei trei regi¸ stri sunt (bit ¸ii de tact au fost marcat ¸i):
R1= 0110 1011 10 10 1001 011 ,
R2= 1010 1100 001 01101 1001 11 ,
R3= 1100 0101 1011 0010 1010 010
S˘ a urm˘ arim comportarea automatului cˆ at ¸iva tact ¸i:
1.Tact 1 : Ie¸ sire: y←−0⊕1⊕1 = 0 .
Bit majoritar: 0. Se deplaseaz˘ a R2¸ siR3. Noua stare este:
R1= 0110 1011 10 10 1001 011 ,
R2= 0101 1000 010 11011 0011 11 ,
R3= 1000 1011 0110 0101 0100 100
2.Tact 2 : Ie¸ sire: y←−0⊕0⊕1 = 1 .
Bit majoritar: 1. Se deplaseaz˘ a R1¸ siR2. Noua stare este:
R1= 1101 0111 01 01 0010 110 ,
R2= 1011 0000 101 10110 0111 11 ,
R3= 1000 1011 0110 0101 0100 100
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 59
3.Tact 3 : Ie¸ sire: y←−1⊕1⊕1 = 1 .
Bit majoritar: 0. Se deplaseaz˘ a R1¸ siR3. Noua stare este:
R1= 1010 1110 10 10 0101 101 ,
R2= 1011 0000 101 10110 0111 11 ,
R3= 0001 0110 1100 1010 1001 000
4.Tact 4 : Ie¸ sire: y←−1⊕1⊕0 = 0 .
Bit majoritar: 1. Se deplaseaz˘ a tot ¸i regi¸ strii. Noua stare este:
R1= 0101 1101 01 00 1011 011 ,
R2= 0110 0001 011 01100 1111 11 ,
R3= 0010 1101 1001 0101 0010 000
Deci cheia fluid˘ a de criptare este z= 01100 . . .
A5/1 necesit˘ a deci ¸ si o int ¸ializare a st˘ arii interne, bazat˘ a pe o cheie de criptare Kde
64 bit ¸i ¸ si anumit ¸i parametri GSM stocat ¸i ˆ ıntr-o constant˘ a Count de 22 bit ¸i. Deoarece
sistemul GSM transmite mesajele ˆ ın pachete de cˆ ate 114 bit ¸i, A5/1 va genera chei fluide
de 114 bit ¸i; deci este necesar˘ a o init ¸ializare a automatului la fiecare pachet nou primit.
Algoritmul de init ¸ializare este:
1. Se reseteaz˘ a tot ¸i regi¸ strii.
2.fori←−0to63do
2.1.R1[0]←−R1[0]⊕K[i];
2.2.R2[0]←−R2[0]⊕K[i];
2.3.R3[0]←−R3[0]⊕K[i];
2.4. Deplasare stˆ anga tot ¸i regi¸ strii;
3.fori←−0to21do
3.1.R1[0]←−R1[0]⊕Count [i];
3.2.R2[0]←−R2[0]⊕Count [i];
3.3.R3[0]←−R3[0]⊕Count [i];
3.4. Deplasare stˆ anga tot ¸i regi¸ strii;
4.fori←−0to99do
Funct ¸ioneaz˘ a un tact automatul A5/1, cu ignorarea ie¸ sirii.
60 CAPITOLUL 4. SISTEME FLUIDE DE CRIPTARE
4.3 Exercit ¸ii
4.1. Presupunem c˘ a definim o cheie fluid˘ a ˆ ıntr-un sistem sincronizabil ˆ ın felul urm˘ ator:
FieK∈K,Lun alfabet al cheilor ¸ si Σo mult ¸ime finit˘ a de st˘ ari. Se define¸ ste o stare
init ¸ial˘ a q0∈Σ. Apoi, pentru i≥1, se define¸ ste recursiv
qi=f(qi−1, K)
unde f: Σ×K−→ Σ. De asemenea,∀i≥1, elementul zidin cheia fluid˘ a este definit
prin
zi=g(qi, K)
unde g: Σ×K−→L .
Ar˘ atat ¸i c˘ a orice cheie fluid˘ a rezultat˘ a ˆ ın acest mod are o perioad˘ a de lungime maxim
card(Σ).
4.2. Criptat ¸i mesajul 10110101 folosind automatul A5/1din Exemplul 4.4 (considerˆ and
starea init ¸ial˘ a cea dinaintea Tactului 1).
4.3. Construim urm˘ atorul sistem de criptare cu cheie fluid˘ a:
Fieπ∈S26o permutare fixat˘ a; cheia este K∈Z26.
Secvent ¸a de chei fluide este definit˘ a zi= (K+i−1)mod 26 ( i≥1)
Funct ¸ia de criptare este ez(x) =π((x+z)mod 26)
iar cea de decriptare dz(y) = (π−1(y)−z)mod 26.
S˘ a presupunem c˘ a permutarea fixat˘ a este
π=/parenleftBig
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
23 13 24 0 7 15 14 6 25 16 22 1 19 18 5 11 17 2 21 12 20 4 10 9 3 8/parenrightBig
Folosind un atac prin fort ¸˘ a brut˘ a, s˘ a se decripteze mesajul BSTKXOUXMWJK
Capitolul 5
Sisteme simetrice de criptare
moderne
5.1 Sistemul de criptare DES
5.1.1 Ret ¸ele Feistel
ˆIn cadrul firmei IBM, Horst Feistel descrie ˆ ın anii/prime60 principiile unei structuri pentru
sistemele de criptare, cu influent ¸e majore asupra sistemelor ulterioare. Structura este
cunoscut˘ a sub numele de ret ¸ea Feistel . Avantajul major al unei astfel de de structuri
este acela c˘ a operat ¸iile de criptare ¸ si decriptare sunt similare, (chiar identice ˆ ın unele
cazuri); aceasta permite o reducere substant ¸ial˘ a a m˘ arimii codului (sau circuitelor) care
implementeaz˘ a sistemul de criptare.
Dup˘ a cum s-a v˘ azut o cerint ¸˘ a solicitat˘ a de securitatea fat ¸˘ a de atacuri bazate pe analiza
textului criptat este aceea ca textul criptat s˘ a creeze ”difuzie ¸ si confuzie”. Problema const˘ a
ˆ ın faptul c˘ a, de¸ si se ¸ stie de mult cum s˘ a se construiasc˘ a funct ¸ii cu caracter aleator, pˆ an˘ a la
ret ¸elele Feistel nu se cuno¸ steau algoritmi de construct ¸ie pentru funct ¸ii bijective aleatoare.
Solut ¸ia adus˘ a de acesta este foarte elegant˘ a:
n?
?
? s
??XXXXXXXXXX zf
⊕S D
L R
61
62 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
S˘ a presupunem c˘ a avem o funct ¸ie f:{0,1}n−→{ 0,1}n”aproape aleatoare” (care d˘ a
impresia c˘ a cei nbit ¸i din imaginea lui fsunt ale¸ si f˘ ar˘ a nici o regul˘ a). Algoritmul de
criptare va opera cu blocuri de 2 nbit ¸i, pe care ˆ ıi ˆ ımparte ˆ ın dou˘ a jum˘ at˘ at ¸i, sub forma
(S, D). Imaginea criptat˘ a a unui bloc printr-o ret ¸ea Feistel este tot un bloc de 2 nbit ¸i:
(L, R), unde L=D¸ siR=S⊕f(D).
Aceast˘ a transformare este bijectiv˘ a: din perechea ( L, R) se poate reg˘ asi ( S, D) prin
D=L, S =R⊕f(L).
De remarcat c˘ a funct ¸ia fnu este obligatoriu inversabil˘ a. De cele mai multe ori ea se
compune din operat ¸ii simple care sunt executate rapid de calculator.
Exemple de astfel de operat ¸ii folosite:
•Permut˘ ari de bit ¸i (adesea implementate sub forma unor tabele de permutare, numite
P−box).
•Funct ¸ii simple neliniare (implementate sub forma unor tabele de substitut ¸ie, numite
S−box).
•Operat ¸ii liniare (deplas˘ ari, adun˘ ari, XOR )
Toate aceste operat ¸ii pot fi implementate direct pe structuri hardware, ceea ce le face
extrem de rapide.
Cum dup˘ a criptare, jum˘ atatea din dreapta a blocului nu a suferit nici o transformare
(doar o deplasare spre stˆ anga), ret ¸eaua Feistel se aplic˘ a de mai multe ori – fiecare aplicat ¸ie
fiind numit˘ a rund˘ a .
Ret ¸elele Feistel apar prima oar˘ a la sistemul de criptare Lucifer, construit pentru IBM
de o echip˘ a condus˘ a de Horst Feistel ¸ si Don Coppersmith. Succesul a fost asigurat odat˘ a
cu desemnarea sistemului DES ca standard oficial de criptare.
Multe sisteme de criptare moderne sunt bazate pe acest gen de ret ¸ele, structura ¸ si
propriet˘ at ¸ile lor fiind intens exploatate de comunitatea criptografic˘ a.
O list˘ a a celor mai cunoscute sisteme de criptare bazate pe structurile Feistel cuprinde:
Blowfish, Camellia, CAST-128, DES, FEAL, KASUMI, LOKI97, Lucifer, MAGENTA,
MISTY1, RC5, TEA, Triple DES, Twofish, XTEA. ˆIn plus, CAST-256, MacGuffin, RC2,
RC6, Skipjack utilizeaz˘ a diverse generaliz˘ ari ale ret ¸elelor Feistel.
Abia dup˘ a afirmarea sistemului AES a inceput o perioad˘ a de declin a dominat ¸iei
structurilor de tip Feistel ˆ ın construirea sistemelor de criptare.
5.1.2 Considerat ¸ii generale privind sistemul de criptare DES
ˆIn mai 1973, Biroul Nat ¸ional de Standarde din SUA a lansat ˆ ın Registrul Federal (jurnalul
oficial al guvernului) un apel la construirea unui sistem de criptare oficial care s˘ a se
numeasc˘ a Data Encryption Standard (DES ). Firma IBM a construit acest sistem –
publicat ˆ ın Registrul Federal la 17 martie 1975, modificˆ and sistemul Lucifer , pe care
5.1. SISTEMUL DE CRIPTARE DES 63
deja ˆ ıl testa. Dup˘ a dezbateri publice, DES a fost adoptat oficial la 17 ianuarie 1977 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 simetric˘ a. Spargerea sa ˆ ın iulie 1998 a coincis
(ˆ ıntˆ ampl˘ ator ?) cu durata sa oficial˘ a de utilizare pe teritoriul SUA .
5.1.3 Descrierea sistemului DES
Sistemul DES cripteaz˘ a un bloc de text clar de 64 bit ¸i ˆ ıntr-un text criptat tot de 64 bit ¸i,
utilizˆ and o cheie de 56 bit ¸i. Algoritmul cuprinde 3 etape:
1. Fie αtextul clar init ¸ial, de 64 bit ¸i. Lui i se aplic˘ a o permutare IPinit ¸ial˘ a
fixat˘ a, obt ¸inˆ andu-se α0=IP(α) =L0R0.L0este format din primii 32 bit ¸i ai
luiα0, iarR0– din ultimii 32 bit ¸i.
2. Se efectueaz˘ a 16 runde (iterat ¸ii) ale unei funct ¸ii care se va preciza. La fiecare
rund˘ a se calculeaz˘ a LiRi(1≤i≤16) dup˘ a regula
Li=Ri−1
Ri=Li−1⊕f(Ri−1, Ki)
unde feste o funct ¸ie care se va preciza, iar K1, K2, . . . , K 16sunt secvent ¸e de
48 bit ¸i calculat ¸i din cheia K. Se spune c˘ a K1, K2, . . . , K 16sunt obt ¸inut ¸i prin
diversificarea cheii (key shedule).
3. Blocului R16L16i se aplic˘ a inversa permut˘ arii init ¸iale pentru a obt ¸ine textul
criptat β=IP−1(R16L16).
Observat ¸ia 5.1. Sistemul de ecuat ¸ii care definesc criptarea la fiecare rund˘ a poate fi in-
versat imediat, pentru a obt ¸ine ecuat ¸iile rundelor de decriptare. Acestea sunt:
Ri−1=Li, L i−1=Ri⊕f(Li, Ki)
Funct ¸ia de criptare f(A, J) are ca argumente dou˘ a secvent ¸e binare: una de 32 bit ¸i,
iar a doua de 48 bit ¸i. Rezultatul este o secvent ¸˘ a de 32 bit ¸i. Etapele de calcul ale funct ¸iei
sunt:
1. Argumentul Aeste extins la 48 bit ¸i folosind o funct ¸ie de expansiune E.E(A)
cuprinde bit ¸ii lui Aa¸ sezat ¸i ˆ ıntr-o anumit˘ a ordine, unii bit ¸ii fiind scri¸ si de dou˘ a ori.
2. Se calculeaz˘ a B=E(A)⊕J; rezultatul se descompune ˆ ın 8 subsecvent ¸e de cˆ ate 6
bit ¸i fiecare: B=B1B2B3B4B5B6B7B8.
64 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
3. Se folosesc 8 S−boxuri S 1, S2, . . . , S 8, fiecare din ele fiind un tablou de dimensiuni
4×16 cu elemente numere ˆ ıntregi din intervalul [0 ,15]. Pentru o secvent ¸˘ a Bj=
b1b2b3b4b5b6se calculeaz˘ a un ¸ sir de 4 bit ¸i Sj(Bj) astfel: bit ¸ii b1b6dau reprezentarea
binar˘ a a indicelui unei linii r(0≤r≤3) din Sj; ceilalt ¸i patru bit ¸i b2b3b4b5dau
reprezentarea binar˘ a a indicelui unei coloane c(0≤c≤15) din tablou. Atunci
Cj=Sj(Bj) = [Sj(r, c)]2(1≤j≤8). ([ x]2este reprezentarea ˆ ın baza 2 a num˘ arului
ˆ ıntreg x).
4. Secvent ¸a C=C1C2C3C4C5C6C7C8– de lungime 32 – se rearanjeaz˘ a folosind o
permutare fixat˘ a P. Rezultatul final este f(A, J) =P(C).
Mai r˘ amˆ ane s˘ a specific˘ am funct ¸iile particulare folosite de sistemul DES :
•Permutarea init ¸ial˘ a IPeste:
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
•Permutarea invers˘ a IP−1este:
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
•Funct ¸ia de expansiune Eeste definit˘ a de tabloul:
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
5.1. SISTEMUL DE CRIPTARE DES 65
•Cele opt cutii S(S−boxuri ) sunt:
S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 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
S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 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
S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 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
S6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
66 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
•Permutarea fixat˘ a Peste:
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
Mai r˘ amˆ ane de prezentat procesul de diversificare al cheii K. De fapt, Keste o secvent ¸˘ a
de 64 bit ¸i, din care 56 definesc cheia, iar 8 (bit ¸ii de pe pozit ¸iile 8 ,16,24, . . . , 64) sunt bit ¸i
de paritate, aranjat ¸i ˆ ın a¸ sa fel ˆ ıncˆ at fiecare octet s˘ a cont ¸in˘ a un num˘ ar impar de 1. Ace¸ sti
8 bit ¸i sunt ignorat ¸i ˆ ın procesul de diversificare.
1. Din cheie se elimin˘ a bit ¸ii de paritate, iar asupra celorlalt ¸i se aplic˘ a o permutare
PC 1, obt ¸inˆ andu-se PC 1(K) =C0D0(C0sunt primii 28 bit ¸i din secvent ¸˘ a, iar D0–
ceilalt ¸i 28 bit ¸i). Permutarea PC 1este
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
2. Pentru i= 1,2, . . . , 16 se calculeaz˘ a
Ci=LSi(Ci−1)
Di=LSi(Di−1)
¸ siKi=PC 2(CiDi).
LSieste o rotat ¸ie circular˘ a la stˆ anga cu una sau dou˘ a pozit ¸ii, ˆ ın funct ¸ie de valoarea
luii: o pozit ¸ie dac˘ a i= 1,2,9,16, altfel rotirea este de dou˘ a pozit ¸ii.
PC 2elimin˘ a bit ¸ii 9 ,18,22,25,35,38,43,54 ¸ si rearanjeaz˘ a ceilalt ¸i bit ¸i sub forma:
5.1. SISTEMUL DE CRIPTARE DES 67
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Decriptarea se realizeaz˘ a plecˆ and de la textul criptat β¸ si utilizˆ and acela¸ si algoritm, ˆ ın
ordine invers˘ a; se vor folosi ˆ ın ordine cheile K16, . . . , K 1.
Exemplul 5.1. ([38]) S˘ a consider˘ am textul clar ”Now is time for all” reprezentat ca o
secvent ¸˘ a de caractere ASCII scrise ˆ ın hexazecimal. Dac˘ a se face o criptare DES folosind
cheia K= 0123456789 ABCDEF , se obt ¸ine
α= 4E6F772069732074 68652074696 D6520 666 F7220616 C6C20
β= 3FA40E8A984D4815 6 A271787 AB8883F9 893 D51EC4B563B53
5.1.4 Chei slabe
ˆIn cazul K1=K16, algoritmul de generare va genera o secvent ¸˘ a de chei palindromice:
Ki=K17−i(1≤i≤8). Acestea sunt chei slabe.
Definit ¸ia 5.1. O cheie DES slab˘ a este o cheie Kcu proprietatea eK(eK(α)) =α,∀α∈P.
O pereche de chei (K1, K2)este semi-slab˘ a DES dac˘ a eK1(eK2(α)) =α,∀α∈P.
ˆInDES sunt 4 chei slabe ¸ si 6 perechi de chei semi-slabe, date de tabelele urm˘ atoare:
Chei slabe (hex) C0D0
0101010101010101 028028
FEFEFEFEFEFEFEFE 128128
1F1F1F1F0E0E0E0E 028128
E0E0E0E0F1F1F1F1 128028
C0 D0 Perechi de chei semi −slabe (hex) C0 D0
(01)14(01)1401FE01FE01FE01FE, FE 01FE01FE01FE01 (10)14(10)14
(01)14(10)141FE01FE00EF10EF1, E 01FE01FF10EF10E (10)14(01)14
(01)1402801E001E001F101F1, E 001E001F101F101 (10)14028
(01)141281FFE 1FFE 0EFE 0EFE, FE 1FFE 1FFE 0EFE 0E(10)14128
028(01)14011F011F010E010E, 1F011F010E010E01 028(10)14
128(01)14E0FEE 0FEF 1FEF 1FE, FEE 0FEE 0FEF 1FEF 1128(10)14
Posibilitatea ca printr-o alegere aleatoare a cheii s˘ a se obt ¸in˘ a o cheie slab˘ a sau semi-slab˘ a
este deci 2−52. Mult ¸i utilizatori solicit˘ a un test pentru depistarea cheilor slabe, test care
nu afecteaz˘ a semnificativ timpul de criptare.
68 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
De remarcat c˘ a fiind dat˘ a o cheie semi-slab˘ a K, cealalt˘ a cheie din pereche poate fi
obt ¸inut˘ a sect ¸ionˆ and Kˆ ın dou˘ a p˘ art ¸i egale ¸ si rotind fiecare jum˘ atate cu 8 bit ¸i.
Pentru fiecare cheie slab˘ a Kexist˘ a 232puncte fixe: texte clare αcu proprietatea
eK(α) =α.
Pentru fiecare cheie semi-slab˘ a Kdin partea superioar˘ a a tabelului exist˘ a 232puncte
anti-fixe: texte clare αcueK(α) =α. Aceste patru chei semi-slabe se numesc ¸ si chei anti
– palindromice , deoarece subcheile generate sunt complementare: K1=K16, K 2=K15
etc.
5.1.5 Controverse legate de DES
ˆInc˘ a de la lansarea sa, DES a fost supus la numeroase critici. O prim˘ a obiect ¸ie a fost
legat˘ a de folosirea S−boxurilor . Toate calculele din DES sunt liniare, cu except ¸ia acestor
S−boxuri . Deci, de fapt toat˘ a securitatea sistemului se bazeaz˘ a pe acestea. Dar, nimeni
(cu except ¸ia autorilor) nu ¸ stie cum sunt concepute cutiile. Multe persoane au fost convinse
c˘ a ele ascund diverse trape secrete care permit celor de la Agent ¸ia Nat ¸ional˘ a de Securitate
(NSA – serviciul american care r˘ aspunde de problemele legate de securitatea nat ¸ional˘ a)
s˘ a decripteze orice mesaj.
Ca urmare, NSA afirm˘ aˆ ın 1976 c˘ a S−boxurile au fost construite pe baza urm˘ atoarelor
criterii:
1. Fiecare linie este o permutare a numerelor 0 , . . . , 15 ;
2. Nici un S−boxnu este o funct ¸ie liniar˘ a sau afin˘ a;
3. La modificarea unui bit din operand, un S−boxprovoac˘ a modificarea cel put ¸in a
doi bit ¸i din rezultat;
4. Pentru fiecare cutie S¸ siα(secvent ¸˘ a de lungime 6), S(α) ¸ siS(α⊕001100) difer˘ a
prin cel put ¸in doi bit ¸i.
Alte dou˘ a propriet˘ at ¸i au fost ment ¸ionate ca fiind ”consecint ¸e ale criteriilor de construct ¸ie”:
5. Pentru orice cutie S¸ si orice α,S(α)/negationslash=S(α⊕11ab00), oricare ar fi a, b∈{0,1};
6. Pentru orice cutie S, dac˘ a un bit din operand este ment ¸inut constant ¸ si se urm˘ ar¸ ste
un bit al rezultatului, num˘ arul de valori care produc 0 este ”apropiat” de num˘ arul
de valori care produc 1. ˆIntr-adev˘ ar, dac˘ a bitul fixat este unul din cei doi bit ¸i care
determin˘ a linia cutiei S, exist˘ a – conform criteriului 1 .– 16 valori care produc 0 ¸ si
16 valori care produc 1; pentru ceilalt ¸i bit ¸i, aceasta nu este adev˘ arat, dar num˘ arul
de valori care produc 0 (sau 1) este cuprins totdeauna ˆ ıntre 13 ¸ si 19.
5.1. SISTEMUL DE CRIPTARE DES 69
Nici un alt criteriu referitor la S−boxuri nu a mai fost recunoscut public.
Cea mai pertinent˘ a critic˘ a referitoare la DES se refer˘ a la m˘ arimea prea mic˘ a (numai
256) a spat ¸iului cheilor. Ca urmare s-au conceput numeroase ma¸ sini dedicate atacurilor
prin fort ¸˘ a brut˘ a, care s˘ a caute cheia. Fiind dat un text clar αde 64 bit ¸i ¸ si textul s˘ au
criptat β, se verific˘ a toate cheile Kposibile (aproximativ 255), pˆ an˘ a se obt ¸ine eK(α) =β
(de remarcat c˘ a solut ¸ia exist˘ a totdeauna, dar nu este unic˘ a).
5.1.6 Moduri de implementare ale DES -ului
ˆIn istoria sa, sistemul de criptare DES a cunoscut patru moduri de implementare, moduri
extinse ulterior la toate sistemele de criptare:
•Modul ECB (Electronic Codebook Mode ) corespunde metodei descrise anterior: fiind
dat un text clar x=α1α2. . ., fiecare bloc αide 64 bit ¸i este criptat cu cheia Kdup˘ a
formula
βi=eK(αi),(i≥1)
procedeul conducˆ and la textul criptat y=β1β2. . .
•ˆIn modul CBC (Cypher Block Chaining Mode ), fiecare bloc de text criptat βieste
combinat printr-un XOR cu textul clar urm˘ ator αi+1, ˆ ınainte de criptarea acestuia.
Operat ¸ia decurge conform schemei:
β1eK eK
β2j jα1 α2
V I=β0 + +
Criptare-?
?
?
-6-?
?
?
-6-. . .
α1 α2j jdK dKβ1 β2
V I=β0-?
?
?-
?-?
?
?-
?- + + . . .Decriptare
Se define¸ ste un bloc cu valoarea init ¸ial˘ a V I=β0, dup˘ a care blocurile se cripteaz˘ a
dup˘ a formula
βi=eK(βi−1⊕αi) (i≥1)
Funct ¸ia de decriptare
αi=βi−1⊕dK(βi) (i≥1)
nu mai este recursiv˘ a. De aceea, decriptarea se poate efectua mai rapid (comparativ
cu operat ¸ia de criptare), printr-un proces de calcul paralel.
70 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
•Modurile OFB ¸ siCFB sunt construite conform sistemelor de criptare cu chei fluide:
se genereaz˘ a cheia fluid˘ a, care se combin˘ a apoi cu textul clar (similar sistemului
one-time-pad ).OFB (Output Feedback Mode ) este o criptare sincronizabil˘ a aditiv˘ a:
componentele cheii fluide sunt obt ¸inute prin criptarea iterativ˘ a a unui bloc init ¸ial
V Ide 64 bit ¸i; se define¸ ste γ0=V I¸ si se calculeaz˘ a γ1, γ2, . . .dup˘ a formula
γi=eK(γi−1),(i≥1)
Secvent ¸a blocurilor de text clar x=α1, α2, . . .este criptat˘ a apoi conform relat ¸iei
βi=αi⊕γi,(i≥1)
•ˆIn modul CFB (Cypher Feedback Mode ) se ˆ ıncepe cu β0=V I(bloc init ¸ial de 64
bit ¸i) ¸ si se calculeaz˘ a cheia fluid˘ a γicriptˆ and din nou blocul de text criptat obt ¸inut
anterior:
γi=eK(βi−1) (i≥1)
Ca ¸ si la modul OFB , ˆ ın faza a doua avem
βi=αi⊕γi(i≥1)
De remarcat c˘ a funct ¸ia de criptare eKeste folosit˘ a aici atˆ at la procesul de criptare
cˆ at ¸ si la cel de decriptare.
β1
eK V I=β0α1
eK
β2α2
–?
?
-6–?
?
-6-+ +
Criptare. . .
α1
eK V I=β0β1
eK
α2β2
–?
?-
?–?
?-
?-+ +
Decriptare. . .
S ¸i ˆ ın modul de implementare CFB este posibil˘ a o decriptare ˆ ın paralel, datorit˘ a
formulei
αi=βi⊕eK(βi−1) (i≥1)
De¸ si descrierile au fost gˆ andite pentru blocuri de m˘ arime 64, modurile OFB ¸ siCFB
pot fi extinse imediat la blocuri de kbit ¸i (1≤k≤64).
Cele patru moduri de implementare prezint˘ a diverse avantaje ¸ si dezavantaje. Astfel,
laECB ¸ siOFB , modificarea unui bloc de text clar αiprovoac˘ a modificarea unui singur
bloc de text criptat, βi.ˆIn anumite situat ¸ii, acest fapt constituie un defect. Modul OFB
este utilizat adesea pentru transmisiile prin satelit.
5.1. SISTEMUL DE CRIPTARE DES 71
ˆIn modurile CBC ¸ siCFB dimpotriv˘ a, modificarea unui bloc αide text clar antreneaz˘ a
modific˘ ari ˆ ın toate blocurile de texte criptate, ˆ ıncepˆ and cu βi. De aceea, aceste moduri
sunt adaptate ˆ ın particular problemelor de autentificare a mesajelor ( MAC – Message
Authentication Code). Un MAC este ad˘ augat la un text clar cu scopul de a-l convinge
peBobc˘ a textul primit a fost scris de Alice ¸ si nu a fost alterat de Oscar . El garanteaz˘ a
astfel integritatea (sau autenticitatea) mesajului, dar nu ¸ si confident ¸ialitatea sa.
S˘ a descriem cum este utilizat modul CBC la construct ¸ia unui MAC . Se pleac˘ a de la
blocul init ¸ial V Iˆ ın care tot ¸i bit ¸ii sunt 0. Se construie¸ ste textul criptat β1, β2, . . . , β n
cu cheia K, ˆ ın modul CBC , iar MAC este blocul βn.Alice va transmite mesajul
α1, α2, . . . , α n, asociat cu MAC -ulβn. Cˆ and Bob prime¸ ste mesajul α1, α2, . . . , α n, el
genereaz˘ a β1, . . . , β nfolosind cheia (secret˘ a) K¸ si verific˘ a dac˘ a βneste identic cu mesajul
MAC primit.
De remarcat c˘ a Oscar nu poate construi un MAC deoarece nu cunoa¸ ste cheia K
utilizat˘ a de Alice ¸ siBob; orice modificare a mesajelor clare este depistat˘ a astfel u¸ sor.
Se poate realiza ¸ si o combinare a integrit˘ at ¸ii cu confident ¸ialitatea, ˆ ın felul urm˘ ator:
Alice utilizeaz˘ a cheia K1pentru a calcula un MAC bazat pe α1, . . . , α n; fieαn+1acest
MAC . Apoi, ea cripteaz˘ a mesajul α1, . . . , α n+1ˆ ınβ1, . . . , β n+1folosind o a doua cheie
K2. Cˆ and Bobprime¸ ste mesajul, el decripteaz˘ a ˆ ın prima faz˘ a (cu cheia K2), apoi verific˘ a
cu cheia K1dac˘ a αn+1esteMAC -ul lui α1, . . . , α n.
Sau – ca alt˘ a variant˘ a – Alice poate utiliza K1pentru criptarea mesajului α1, . . . , α n;
apoi, pentru β1, . . . , β ndetermin˘ a MAC -ulβn+1folosind cheia K2.Bobva face ˆ ıntˆ ai veri-
ficarea corectitudinii dat˘ a de MAC ¸ si – dac˘ a totul este ˆ ın ordine – va trece la decriptare.
5.1.7 Parole UNIX
O aplicat ¸ie interesant˘ a a sistemului de criptare DES este algoritmul de criptare al paro-
lelor din sistemul UNIX1, algoritm numit UNIX crypt .
DES DES DES- – –
-6
6-6
6 6?-
?
? ?
/prime0/prime . . .w
Salt/etc/passwrd56
64 64
121288
64 64 64
1Sistem dezvoltat de compania Bell Laboratories.
72 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
Versiunea criptat˘ a a unei parole este stocat˘ a ˆ ıntr-o baz˘ a de date /etc/passwrd (a
c˘ arei confident ¸ialitate nu este obligatoriu asigurat˘ a). Atunci cˆ and un utilizator d˘ a parola,
sistemul o cripteaz˘ a ¸ si o compar˘ a cu varianta din baza de date. Modul de criptare este
format din urm˘ atoarele etape:
1. Parola este trunchiat˘ a la primele opt caractere ASCII (sau completat˘ a cu 0 dac˘ a
parola are mai put ¸in de 8 caractere). Fiecare caracter d˘ a 7 bit ¸i, formˆ and o cheie
DES de 56 bit ¸i.
2. Se realizeaz˘ a o criptare ˆ ın serie prin 25 sisteme DES , textul clar init ¸ial fiind 00 . . .0.
3. Cei 64 bit ¸i obt ¸inut ¸i dup˘ a ultima criptare se combin˘ a cu 12 bit ¸i dat ¸i de Salt ¸ si cu
un bit suplimentar, formˆ and 11 caractere printabile de cˆ ate 7 bit ¸i. Bit ¸ii de paritate
completeaz˘ a parola criptat˘ a pˆ an˘ a la 88 bit ¸i.
Sistemul UNIX ofer˘ a pentru criptare un pachet de 12 bit ¸i – numit Salt – generat de
sistemul de ceas al sistemului la momentul creerii parolei ¸ si stocat ˆ ın baza de date, ˆ ın
cadrul parolei criptate. Ace¸ sti bit ¸i sunt folosit ¸i pentru modificarea funct ¸iei de expansiune
EdinDES , oferind 212= 4096 variante. Anume: fiecare bit din Salt este asociat cu o
pereche fixat˘ a din blocul de 48 bit ¸i din E. Dac˘ a el este 1, atunci bit ¸ii din Easociat ¸i lui
sunt interschimbat ¸i; altfel, sunt l˘ asat ¸i pe loc.
Aceast˘ a modificare previne utilizarea de implement˘ ari ale sistemului DES externe
sistemului UNIX .
5.1.8 Sisteme de criptare ˆ ınrudite cu DES
Triplu DES (3DES )
Triplu DES (cunoscut ¸ si sub numele 3 DES sau – mai rar – DES−ede) este un sistem
derivat din DES , propus de Walter Tuchman (¸ seful echipei IBM care a construit DES ).
Numele oficial este FIPS Pub46−3.
Formal, 3 DES este definit prin formula
c=DES k3(DES−1
k2(DES k1(m))),
unde:
meste un bloc de text clar (64 bit ¸i),
ceste blocul de text criptat rezultat,
k1, k2, k3sunt chei DES (de 56 bit ¸i),
DES k: criptarea DES cu cheia k,
DES−1
k: decriptarea DES cu cheia k.
Introducerea la pasul 2 a decript˘ arii nu afecteaz˘ a securitatea algoritmului. Avantajul
const˘ a ˆ ın utilizarea pentru 3 DES a unei implement˘ ari DES (astfel, cele dou˘ a sisteme pot
inter-opera).
5.1. SISTEMUL DE CRIPTARE DES 73
Uneori – dar destul de rar – se folose¸ ste pentru Triplu DES o criptare ˆ ın lant ¸ de trei
cript˘ ari DES (numit˘ a ¸ si DES−eee):
c=DES k3(DES k2(DES k1(m))).
Criptarea ˆ ın trei pa¸ si ( edesaueee) este esent ¸ial˘ a pentru protejarea contra unui atac
de tipul meet-in-the-middle .ˆIn cazul unei duble cript˘ ari, acest atac este destul de eficient.
ˆIntr-adev˘ ar, s˘ a consider˘ am un sistem de criptare bloc unde m˘ arimea cheii este n. O
criptare dubl˘ a cu dou˘ a chei diferite va folosi de fapt o cheie de lungime 2 n. Pentru un
text clar dat m, s˘ a presupunem c˘ a putem stoca eK(m), pentru toate cheile Kposibile.
Fiexun text criptat dup˘ a formula x=ek2(ek1(m)), unde cheile k1¸ sik2sunt secrete.
Pentru fiecare cheie pexist˘ a o cheie unic˘ a qastfel ca dp(x) =eq(m).ˆIn particular exist˘ a
exact 2nchei posibile determinate de perechea ( m, x), chei care pot fi g˘ asiteˆ ın aproximativ
O(2n) pa¸ si.
Dac˘ a num˘ arul cheilor care pot fi stocate este de ordinul 2p<2n, algoritmul poate fi
modificat pentru a afla toate cheile posibile, ˆ ın circa O(22n−p) pa¸ si.
Observat ¸ia 5.2. Pentru oricare din situat ¸iile
k1=k2, k 2=k3, k 1=k2=k3,
DES−edese reduce la un simplu DES , lucru utilizat frecvent pentru a verifica
compatibilitatea sistemului.
Cheia pentru Triplu DES are 3∗56 = 168 bit ¸i, la care se adaug˘ a 3 ∗8 = 24 bit ¸i de
paritate; ˆ ın total sunt 192 bit ¸i.
O variant˘ a, numit˘ a ”3 DES cu dou˘ a chei” folose¸ ste k1=k3; aici m˘ arimea de stocare
a cheii va fi de numai 128 bit ¸i (din care 16 bit ¸i de paritate). Acest mod este ˆ ıns˘ a sensibil
la anumite atacuri cu text clar ales, propuse de Merkle ¸ si Hellman (1981) ¸ si – mai tˆ arziu
– de Van Oorschot ¸ si Wiener (1991).
Sistemul de criptare 3 DES nu este ˆ ınc˘ a spart, dar utilizarea sa este ˆ ıngreunat˘ a din
cauza vitezei mici de criptare. Totu¸ si multe sisteme continu˘ a s˘ a foloseasc˘ a 3 DES ; ca
exemple mai recente sunt cardurile bancare ( Mastercard ¸ si part ¸ial – Visa) care din 2002
sunt configurate pe baza acestui sistem de criptare. De asemenea, sistemul de telefonie
mobil˘ a Zapp folose¸ ste 3 DES ca sistem de criptare.
DES−X
DES−X(sau – mai simplu – DESX ) este o variant˘ a a sistemului de criptare DES ,
dezvoltat˘ a pentru a rezista mai bine unui atac prin fort ¸˘ a brut˘ a.
Dup˘ a cum am v˘ azut, sistemul DES opereaz˘ a cu o cheie de 56 bit ¸i; deci sunt numai
256chei posibile, unele din acestea fiind chei slabe. Pentru a evita un atac direct, in 1984
Rivest propune cre¸ sterea m˘ arimii cheii Kf˘ ar˘ a a modifica substant ¸ial algoritmul.
74 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
DES−Xfolose¸ ste dou˘ a chei suplimentare K1, K2de cˆ ate 64 bit ¸i ¸ si efectueaz˘ a criptarea
unui bloc de text clar xdup˘ a formula
DESX K,K 1,K2(x) =K2⊕DES K(x⊕K1)
M˘ arimea cheii cre¸ ste deci la 56 + 2 ∗64 = 184 bit ¸i.
IDEA
Prima aparit ¸ie a sistemului IDEA are loc ˆ ın 1990, sub denumirea PES (Proposed En-
cryption Standard ). Deoarece ˆ ın acela¸ si an, Biham ¸ si Shamir public˘ a sistemul de atac
alDES -ului prin criptanaliz˘ a diferent ¸ial˘ a, ˆ ın 1991 autorii (Xuejia Lai ¸ si James Massey)
modific˘ a sistemul de criptare pentru a rezista acestui gen de atac. Noul sistem este numit
IPES (Improved Proposed Encryption Standard ), nume care ˆ ın 1992 se schimb˘ a ˆ ın IDEA
(International Data Encryption Standard Algorithm ).
ˆIn opinia lui Bruce Schneider, ˆ ın 1996 IDEA constituia cel mai sigur sistem de criptare
utilizabil f˘ ar˘ a restrict ¸ii. Este o component˘ a a sistemului de securitate prin po¸ sta elec-
tronic˘ a PGP , unde asigur˘ a criptarea datelor.
Sistemul este foarte asem˘ an˘ ator cu DES . Astfel, el este un sistem simetric care
opereaz˘ a cu blocuri de texte clare de 64 bit ¸i, folosind o cheie de 128 bit ¸i.
Textul clar de 64 bit ¸i este desp˘ art ¸it ˆ ın 4 sublocuri X1, X2, X3, X4, de cˆ ate 16 bit ¸i
fiecare. Aceste patru componente formeaz˘ a intrarea la prima rund˘ a a algoritmului. ˆIn
total sunt 8 runde, care folosesc operat ¸iile de adunare, ˆ ınmult ¸ire (modulo 216) ¸ siXOR ;
toate pe 16 bit ¸i. De asemenea sunt implicate ¸ si 16 subchei a cˆ ate 16 bit ¸i fiecare. ˆIntre
runde, subblocurile 2 ¸ si 3 sunt schimbate ˆ ıntre ele. Dup˘ a runda 8, cele patru subblocuri
sunt combinate cu 4 subchei, formˆ and ie¸ sirea.
O rund˘ a cont ¸ine 14 operat ¸ii, anume:
1.Se ˆ ınmult ¸e¸ ste X1cu prima subcheie;
2.Se adun˘ a X2cu a doua subcheie;
3.Se adun˘ a X3cu a treia subcheie;
4.Se ˆ ınmult ¸e¸ ste X4cu a patra subcheie;
5.Ce s-a obt ¸inut la pa¸ sii 1 ¸ si 3 se combin˘ a prin XOR ;
6.Ce s-a obt ¸inut la pa¸ sii 2 ¸ si 4 se combin˘ a prin XOR ;
7.Se ˆ ınmult ¸e¸ ste rezultatul pasului 5 cu subcheia 5;
8.Se adun˘ a rezultatele pa¸ silor 6 ¸ si 7;
9.Se ˆ ınmult ¸e¸ ste rezultatul pasului 8 cu subcheia 6;
10.Se adun˘ a rezultatele pa¸ silor 7 ¸ si 9;
11.Ce s-a obt ¸inut la pa¸ sii 1 ¸ si 9 se combin˘ a prin XOR ;
12.Ce s-a obt ¸inut la pa¸ sii 3 ¸ si 9 se combin˘ a prin XOR ;
13.Ce s-a obt ¸inut la pa¸ sii 2 ¸ si 10 se combin˘ a prin XOR ;
14.Ce s-a obt ¸inut la pa¸ sii 4 ¸ si 10 se combin˘ a prin XOR .
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 75
Rezultatele pa¸ silor 11 −14 formeaz˘ a ie¸ sirea dintr-o rund˘ a; cele patru subblocuri (dup˘ a ce
subblocurile 2 ¸ si 3 sunt interschimbate) formeaz˘ a intrarea ˆ ın runda urm˘ atoare.
Dup˘ a ultima rund˘ a, are loc o transformare final˘ a:
1.Se ˆ ınmult ¸e¸ ste X1cu prima subcheie;
2.Se adun˘ a X2cu a doua subcheie;
3.Se adun˘ a X3cu a treia subcheie;
4.Se ˆ ınmult ¸e¸ ste X4cu a patra subcheie.
Cela patru subblocuri obt ¸inute ˆ ın final formeaz˘ a textul criptat.
Prelucrarea subcheilor se face dup˘ a urm˘ atorul algoritm:
1.Cheia de 128 bit ¸i este desf˘ acut˘ a ˆ ın 8 subchei a cˆ ate 16 bit ¸i fiecare;
2.Primele 6 subchei sunt folosite la prima rund˘ a, iar urm˘ atoarele dou˘ a, la runda
a doua;
3.Cheia este rotit˘ a spre stˆ anga cu 25 bit ¸i ¸ si se desface din nouˆ ın 8 subchei, folosite
la rundele 2 ¸ si 3 (cˆ ate patru subchei);
4.Se repet˘ a pasul 3 cˆ at timp este necesar.
Operat ¸ia de decriptare se realizeaz˘ a urmˆ and aceia¸ si pa¸ si, cu singura diferent ¸˘ a c˘ a subcheile
se introduc ˆ ın ordine invers˘ a.
Comparativ cu DES ,IDEA prezint˘ a unele avantaje. Astfel, implement˘ arile realizate
permit o vitez˘ a dubl˘ a de criptare ˆ ın IDEA fat ¸˘ a de DES .
Lungimea cheii (128) bit ¸i, asigur˘ a o securitate sporit˘ a la atacurile prin fort ¸˘ a brut˘ a:
pentru a g˘ asi cheia prin ˆ ıncerc˘ ari, ar fi necesare cam 2127teste; deci cu un chip care
testeaz˘ a un miliard de chei pe secund˘ a, ar trebui cam 1013ani – o perioad˘ a mai lung˘ a
decˆ at vˆ arsta P˘ amˆ antului.
Autorii au afirmat (f˘ ar˘ a s˘ a demonstreze) c˘ a IDEA rezist˘ a atacurilor prin criptanaliza
diferent ¸ial˘ a. Un studiu al subcheilor a ar˘ atat c˘ a exist˘ a unele chei slabe, care permit spar-
gerea 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 operarea
fiec˘ arei subchei generate printr-un XOR cu 0x0D, unde ” x” este o cifr˘ a hexazecimal˘ a
aleas˘ a aleator.
5.2 Alte sisteme de criptare ulterioare DES
La sfˆ ar¸ situl anilor/prime90 se decide ˆ ınlocuirea sistemului de criptare DES . Motivele sunt
multiple, dar ment ¸ion˘ am numai dou˘ a:
•ˆIn iulie 1998 sistemul DES pe 56 bit ¸i este spart de c˘ atre organizat ¸ia Electronic
Frontier Foundation ; s-a folosit un calculator construit special ˆ ın acest scop, iar
timpul necesar spargerii a fost de 3 zile.
76 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
•ˆIn luna septembrie a aceluia¸ si an, administrat ¸ia american˘ a acord˘ a companiilor pro-
duc˘ atoare de soft de securitate permisiunea de a exporta implement˘ ari ale algorit-
mului DES bazate pe chei de criptare de 56 bit ¸i.
ˆIn leg˘ atur˘ a cu aceste evenimente, pe 20 august 1998 NIST (National Institute of Stan-
dards and Technology) anunt ¸˘ a (ˆ ın cadrul unei conferint ¸e speciale) un set de 15 algoritmi
candidat ¸i s˘ a ˆ ınlocuiasc˘ a DES2. Este ales ¸ si numele noului sistem de criptare: AES
(Advanced Encryption Standard). Cei 15 algoritmi au fost trimi¸ si de membri din co-
munitatea criptografic˘ a mondial˘ a. Criteriile stabilite de NIST pentru noul sistem au
fost:
•S˘ a fie un sistem de criptare simetric pe blocuri de 128 bit ¸i.
•S˘ a accepte chei de lungime 128, 192 ¸ si 256 bit ¸i;
•S˘ a nu aib˘ a chei slabe;
•S˘ a fie eficient atˆ at pe platforme Intel Pentium Pro cˆ at ¸ si pe alte platforme software
sau hardware;
•S˘ a poat˘ a fi implementat atˆ at pe procesoare de 32 bit ¸i cˆ at ¸ si pe smart – carduri
(procesoare de 8 bit ¸i);
•S˘ a fie cˆ at mai simplu.
•S˘ a fie mai rapid decˆ at DES ¸ si s˘ a ofere o securitate mai mare decˆ at 3 DES .
A doua conferint ¸˘ a AES are loc ˆ ın martie 1999; dup˘ a analiza rezultatelor algoritmilor
propu¸ si, NIST selecteaz˘ a 5 algoritmi: Mars, RC 6, Rijndael, Serpent ¸ siTwofish . Ace¸ s-
tia sunt supu¸ si testelor ¸ si discut ¸iilor publice, folosind drept criterii de evaluare: securitate,
cost, implementare.
ˆIn mai 2000 NIST anunt ¸˘ a drept sistem ”cˆ a¸ stig˘ ator” sistemul de criptare Rijndael ,
care devine oficial AES .
ˆInainte de a prezenta sistemul AES vom face o scurt˘ a trecere ˆ ın revist˘ a a sistemelor
de criptare finaliste ˆ ın aceast˘ a competit ¸ie.
5.2.1 Mars
Sistemul MARS este propus de firma IBM , autorii s˘ ai fiind un grup condus de Don
Coppersmith. Cˆ ateva detalii de construct ¸ie:
•Algoritmul este format din trei componente, fiecare din ele asigurˆ and protect ¸ie pen-
tru anumite tipuri de atac.
2Ace¸ stia sunt (ˆ ın ordine alfabetic˘ a) CAST−256, CRY PTON, DEAL, DFC, E 2, FROG, HPC,
LOKI 97, MAGENTA, MARS, RC 6, Rijndael, SAFER +, Serpent, Twofish .
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 77
•Lucreaz˘ a pe procesoare de 32 bit ¸i, putˆ and fi implementat atˆ at ˆ ın format big-endian ,
cˆ at ¸ si ˆ ın little endian3.
•La intrare textul clar este ”spart” ˆ ın grupuri de 128 bit ¸i (4 cuvinte de cˆ ate 32 bit ¸i).
Prima ¸ si a treia parte a algoritmului amestec˘ a ace¸ sti bit ¸i folosind o cheie de dimen-
siune variabil˘ a (ˆ ıntre 128 ¸ si 448 bit ¸i) ¸ si un S−boxde 512 elemente. Componenta
din mijloc este format˘ a din 16 runde ¸ si folose¸ ste ˆ ın plus o o funct ¸ie de expandare E.
•Operat ¸iile folosite sunt: adun˘ ari, sc˘ aderi, XOR -uri, rotat ¸ii (fixe sau dependente de
date) ¸ si ˆ ınmult ¸iri; toate calculele se fac modulo 32. Construct ¸ia S−boxului s-a
f˘ acut pe baza unui algoritm public, plecˆ and de la o serie de condit ¸ii init ¸iale clare.
Notat ¸iile folosite ˆ ın algoritm:
•D[0], D[1], D[2], D[3] – cuvinte (de 32 bit ¸i), init ¸ializate cu textul clar; ˆ ın final aici
va fi blocul de text criptat; se noteaz˘ a D[i:j] octetul jdinD[i] (j= 0,1,2,3).
•K[·] – cheia expandat˘ a; secvent ¸˘ a de 40 cuvinte;
•S[·] –S−boxde 512 cuvinte; S0[] va cont ¸ine primele 256 elemente, iar S1[] –
ultimele 256 cuvinte.
Faza I (Mixare preliminar˘ a):
1.fori←−0to3doD[i]←−D[i] +K[i];
2.fori←−0to7do
2.1. D [1]←−D[1]⊕S0[D[0,0]];
2.2. D [1]←−D[1] + S1[D[0,1]];
2.3. D [2]←−D[2] + S0[D[0,2]];
2.4. D [3]←−D[3]⊕S1[D[0,3]];
2.5. D [0]←−D[0]>>> 24;
2.6.ifi∈{0,4}then D[0]←−D[0] + D[3];
2.6.ifi∈{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]).
3Fiea1a2a3a4un cuvˆ ant pe 4 octet ¸i, unde aieste un num˘ ar ˆ ıntreg din intervalul [0 ,255].
1.ˆIn arhitectura big-endian (o stat ¸ie SPARK de exemplu), un cuvˆ ant reprezint˘ a ˆ ıntregul a1224+
a2216+a328+a4.
2.ˆIn arhitctura little-endian (cum este familia Intel 80xxx) un cuvˆ ant reprezint˘ a ˆ ıntregul a4224+
a3216+a228+a1.
78 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
Faza II (Transform˘ ari bazate pe cheie):
1.fori←−0to15do
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.ifi <8then
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 final˘ a):
1.fori←−0to7do
1.1.ifi∈{2,6}then D[0]←−D[0]−D[3];
1.2.ifi∈{3,7}then D[0]←−D[0]−D[1];
1.3. D [1]←−D[1]⊕S1[D[0,0]];
1.4. D [2]←−D[2]−S0[D[0,3]];
1.5. D [3]←−D[3]−S1[D[0,2]];
1.6. D [3]←−D[3]⊕S0[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]).
2.fori←−0to3doD[i]←−D[i]−K[36 + i];
3. Output (D[0], D[1], D[2], D[3]).
Mai trebuie precizate funct ¸ia E¸ si modalitatea de expandare a cheii K.
E(inp, cheie 1, cheie 2);
1. M←−inp+cheie 1; ( Meste variabil˘ a auxiliar˘ a)
2. R←−(inp <<< 13)·cheie 2; ( Reste variabil˘ a auxiliar˘ a)
3. i←−cei mai mici nou˘ a bit ¸i din M;
4. L←−S[i]; ( Leste variabil˘ a auxiliar˘ a)
5. R←−(R <<< 5);
6. r←−cei mai mici cinci bit ¸i din R;
7. M←−(M <<< r );
8. L←−L⊕R;
9. R←−(R <<< 5);
10. L←−L⊕R;
11. r←−cei mai mici cinci bit ¸i din R;
12. L←−(L <<< r );
13. output (L, M, R ).
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 79
Expandarea cheii:
Aceast˘ a procedur˘ a expandeaz˘ a o cheie k[0, . . . , n−1] de ncuvinte (4≤n≤14) ˆ ıntr-o
cheie Kde 40 cuvinte, folosind un vector temporar Tde 15 cuvinte ¸ si un vector fixat Z
de 4 cuvinte.
1. Z←−A4A8D57B5B5D193B C 8A8309B73F9A978;
2. T[0, . . . , n−1]←−k[0, . . . , n−1], T [n]←−n, T [n+ 1, . . . , 14]←−0;
3.forj←−0to3do
3.1.fori←−0to14do
T[i]←−T[i]⊕((T[(i−7)mod 15]⊕T[(i−2)mod 15]<<< 3)⊕(4·i+j);
3.2.form←−1to4to
fori←−0to14do
T[i]←−(T[i] +S[cei mai mici nou˘ a bit ¸i din T[(i−10)mod 15]]) <<< 9;
3.3.fori←−0to9doK[10·j+i]←−T[4·i mod 15];
4.fori←−5,7, . . . , 33,35do
4.1. j←−cei mai din dreapta doi bit ¸i din K[i];
4.2. w←−K[i] cu cei mai din dreapta doi bit ¸i setat ¸i pe 1;
4.3.forp←−2to30do
if(w[p−1] =w[p] =w[p+ 1])∨(w[p] e ˆ ıntr-o secvent ¸˘ a de 10 bit ¸i consecutivi egali)
then M[p]←−1;
4.4. r←−cei mai din dreapta cinci bit ¸i din K[i−1];
4.5. X←−(Z[j]<<< r );
4.6. K [i]←−w⊕(X∧M).
5. output (K[·]).
Cele 512 cuvinte ale S−boxului au fost generate ˆ ın a¸ sa fel ˆ ıncˆ at s˘ a verifice condit ¸iile:
– Nu are valorile 00000000 ¸ si FFFFFFFF ;
– Orice dou˘ a valori difer˘ a prin cel put ¸in 4 bit ¸i;
– Nu exist˘ a dou˘ a valori a, bastfel ca a=bsaua=−b;
– Diferent ¸ele de sc˘ adere sau XOR ˆ ıntre orice dou˘ a valori sunt maxime.
Pentru alte detalii privind securitatea sistemului MARS (algoritmul de decriptare,
moduri de implementare, componentele S−boxului etc), a se vedea [14].
5.2.2 RC6
Sistemul de criptare RC6 este o versiune a lui RC5, elaborat˘ a de laboratoarele RSA
(sub coordonarea lui Ron Rivest) cu scopul de a ˆ ındeplini criteriile AES . Este un sistem
simplu, f˘ ar˘ a atacuri practice cunoscute (sunt elaborate doar cˆ ateva atacuri teoretice),
complet parametrizat: versiunea general˘ a este RC6−w/r/b unde m˘ arimea cuvintelor este
w, num˘ arul de runde este r, iarbeste m˘ arimea (ˆ ın octet ¸i) a cheii de criptare. Versiunea
pentru AES arew= 32, r= 20.
Algoritmul lucreaz˘ a pe blocuri de lungime wfolosind ¸ sase operat ¸ii:
80 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
•+,−,·(toate modulo 2w),
•⊕,
•a <<< b (rotirea lui aspre stˆ anga cu un num˘ ar de pozit ¸ii dat cei mai put ¸in semni-
ficativi log2wbit ¸i din b),
•a >>> b (operat ¸ie similar˘ a spre dreapta).
Algoritmul de criptare :
Intrare :
– Textul clar stocat ˆ ın cuvintele A, B, C, D ;
– Num˘ arul rde runde;
– Cheia S[0, . . .2r+ 3];
Ie¸ sire : Textul criptat stocat ˆ ın A, B, C, D .
Algoritm :
1. B←−B+S[0];
2. D←−D+S[1];
3.fori←−1tordo
3.1. t←−(B·(2·B+ 1)) <<< log 2w;
3.2. u←−(D·(2·D+ 1)) <<< log 2w;
3.3A←−((A⊕t)<<< u ) +S[2i];
3.3C←−((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 modalit˘ at ¸i de implementare pot fi g˘ asite ˆ ın [40].
Algoritmul de diversificare a cheii Seste identic cu cel de la RC5.ˆIn [45] acesta este
prezentat ˆ ımpreun˘ a cu un cod pentru RC5, scris ˆ ın C+ +.
Cheia init ¸ial˘ a are boctet ¸i (0≤b≤255) ¸ si este stocat˘ a ˆ ıntr-un tablou Lcuc=⌈b/4⌉
cuvinte (completˆ and ultimul cuvˆ ant cu 0 dac˘ a este necesar).
ˆIn prima faz˘ a tabloul Seste init ¸ializat folosind un generator liniar congruent ¸ial4:
1. S[0]←−P;
2.fori←−1to2(r+ 1)−1doS[i]←−(S[i−1] +Q)mod 232
P=B7E15163 ¸ si Q= 9E3779B9 sunt constante bazate pe reprezentarea binar˘ a a
luie¸ siπ.
ˆIn etapa a doua se efectueaz˘ a un amestec ˆ ıntre L¸ siS:
4A se vedea Capitolul 12 dedicat generatorilor de numere pseudoaleatoare.
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 81
3. i←−0, j←−0;
4. A←−0, B←−0;
5.fors←−1to3·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
5.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 cripteaz˘ a
texte clare de 128 bit ¸i ˆ ın blocuri de aceea¸ si lungime, ˆ ın 32 runde, folosind 33 chei de
criptare de rund˘ a, de lungime 128 bit ¸i5. Ea se extinde la 256 bit ¸i punˆ and ˆ ın fat ¸˘ a 1 pentru
primul bit, apoi 0 pentru ceilalt ¸i bit ¸i – atˆ at cˆ at este necesar.
Algoritmul de criptare cuprinde 3 pa¸ si:
Intrare :P(textul clar)
Ie¸ sire :C(Textul criptat)
Algoritm :
1.ˆB0←−IP(P) (IP- permutare init ¸ial˘ a);
2.fori←−0to31doˆBi+1←−Ri(ˆBi);
where Ri(X)←−L(ˆSi(Xi⊕ˆKi)),0≤i≤30,
R31(X)←−ˆS7(X31⊕ˆK31)⊕K32.
Se aplic˘ a 32 runde formate din: un XOR cu cheia de rund˘ a Ki, o trecere
printr-un S−box¸ si o transformare liniar˘ a L; ˆ ın ultima rund˘ a, transformarea
liniar˘ a este ˆ ınlocuit˘ a cu ˆ ınc˘ a o combinare cu o a doua cheie de rund˘ a;
ˆSreprezint˘ a aplicarea ˆ ın paralel a 32 copii ale S−boxului S i mod 8.
3.C←−FP(ˆB32) (FP– permutare final˘ a).
Observat ¸ia 5.3. S−boxurile lucreaz˘ a pe 4bit ¸i, ca ¸ si la DES6. Fiecare rund˘ a folose¸ ste
un singur S−boxˆ ın32copii. De exemplu, runda R0folose¸ ste S0ˆ ın32exemplare; o copie
pentru bit ¸ii 0−3dinB0⊕K0ˆ ıntorcˆ and primii patru bit ¸i dintr-un tablou intermediar,
a doua copie pentru bit ¸ii 4−7dinB0⊕K0ˆ ıntoarce bit ¸ii 4−7din vectorul intermediar
¸ s.a.m.d.
5Lungimea cheii date de utilizator este variabil˘ a, ˆ ıns˘ a algoritmul descris folose¸ ste chei de lungime
128,192 sau 256 bit ¸i.
6O variant˘ a init ¸ial˘ a, Serpent 0 folosea acelea¸ si S−boxuri caDES .
82 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
Apoi vectorul intermediar obt ¸inut trece prin transformarea liniar˘ a, producˆ and B1.
Analog, R1folose¸ ste 32S−boxuri identice S1pentru bit ¸ii din B1⊕K1produˆ and un
vector intermediar care dup˘ a trecerea prin Ld˘ aB2etc.
Detalii asupra IP, FP , cont ¸inutul ¸ si modul de generare al S−boxurilor , precum ¸ si o
criptanaliz˘ a am˘ anunt ¸it˘ a pot fi g˘ asite ˆ ın [1], [64].
De remarcat c˘ a la fiecare etap˘ a IP(Bi) =ˆBi, IP(Ki) =ˆKi.
Transformarea liniar˘ a L:
Blocul de 128 bit ¸i dintr-o rund˘ a este spartˆ ın patru cuvinte ( X0, X1, X2, X3) =Si(Bi⊕Ki).
Se aplic˘ a apoi urm˘ atorii pa¸ si:
1. X 0←−(X0<<< 13); 2 . X 2←−(X2<<< 13);
3. X 1←−X1⊕X0⊕X2; 4 . X 3←−X3⊕X2⊕(X0<<3);
5. X 1←−(X1<<< 1); 6 . X 3←−(X3<<< 7)
7. X 0←−X0⊕X1⊕X3; 8 . X 2←−X2⊕X3⊕(X1<<7);
9. X 0←−(X0<<< 5); 10 . B i+1←−(X0, X1, X2, X3).
unde <<< ˆ ınseamn˘ a rotire spre stˆ anga, iar <<este deplasare spre stˆ anga.
ˆIn ultima rund˘ a, transformarea Leste ˆ ınlocuit˘ a cu B32←−S7(B31⊕K31)⊕K32.
Generarea cheilor de rund˘ a:
Fiecare rund˘ a necesit˘ a 132 fragmente de cˆ ate 32 bit ¸i. ˆIn prima faz˘ a se completeaz˘ a cheia
furnizat˘ a de utilizator pˆ an˘ a la 256 bit ¸i. Apoi ea se extinde pˆ an˘ a la 33 subchei de cˆ ate 128
bit ¸iK0, K1, . . . , K 32ˆ ın modul urm˘ ator:
Cheia Kse descompune ˆ ın opt cuvinte w−8, . . . , w −1care se extind la o cheie interme-
diar˘ a w0, . . . , w 131prin formula
wi←−(wi−8⊕wi−5⊕wi−3⊕wi−1⊕φ⊕i)<<< 11
unde φeste partea fract ¸ionar˘ a a raportului de aur (constanta 9 E3779B9).
Cheile de rund˘ a sunt calculate din cheia intermediar˘ a folosind S−boxurile :
(k0, k1, k2, k3)←−S3(w0, w1, w2, w3)
(k4, k5, k6, k7)←−S2(w4, w5, w6, w7)
(k8, k9, k10, k11)←−S1(w8, w9, w10, w11)
(k12, k13, k14, k15)←−S0(w12, w13, w14, w15)
(k16, k17, k18, k19)←−S7(w16, w17, w18, w19)
. . . . . .
(k124, k125, k126, k127)←−S4(w124, w125, w126, w127)
(k128, k129, k130, k131)←−S3(w128, w129, w130, w131)
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 83
Cheile de rund˘ a se regrupeaz˘ a ˆ ın
Ki←−(k4i, k4i+1, k4i+2, k4i+3)
5.2.4 Twofish
Sistemul Twofish este propus de un colectiv condus de Bruce Schneier, fiind unul din
put ¸inele sisteme free (implementarea este disponibil˘ a la adresa [47]).
Algoritmul cripteaz˘ a blocuri de 128 bit ¸i, folosind o cheie de lungime variabil˘ a.
Algoritmul de criptare:
Intrare :P=p0p1. . . p 15un bloc de text clar de 128 bit ¸i ( pi- octet ¸i)
Ie¸ sire :C- bloc text criptat, de 128 bit ¸i.
Algoritm :
1. P se sparge ˆ ın patru cuvinte P0, P1, P2, P3dup˘ a sistemul little-endian:
Pi←−3/summationdisplay
j=0p4i+j·28j,(0≤j≤3)
2. R 0,i←−Pi⊕Ki,(0≤i≤3)
3.forr←−0to15do
3.1.(Fr,0, Fr,1)←−F(Rr,0, Rr,1, r);
3.2. R r+1,0←−(Rr,2⊕Fr,0)>>> 1;
3.3. R r+1,1←−(Rr,3<<< 1)⊕Fr,1;
3.4. R r+1,2←−Rr,0
3.5. R r+1,3←−Rr,1
4. C i←−R16,(i+2)mod 4⊕Ki+4,(0≤i≤3)
5. c i←−/floorleftBiggC⌊i
4⌋
28·(i mod 4)/floorrightBigg
mod 28,(0≤i≤15)
(cele patru cuvinte din textul criptat sunt scrise ca o secvent ¸˘ a de 16 octet ¸iˆ ın sistemul
little-endian: C=c0c1. . . c 15).
De remarcat c˘ a operat ¸ia de la pasul 2 este numit˘ a whitening ¸ si a fost introdus˘ a ˆ ın mod
independent de Merkle pentru Khufu/Khafre , respectiv Rivest pentru DES−X.
Funct ¸ia F
F(R0, R1, r) este o funct ¸ie ternar˘ a care ˆ ıntoarce dou˘ a valori ( F0, F1). Varianta propus˘ a
este bazat˘ a la rˆ andul ei pe o alt˘ a funct ¸ie g.
1. T 0←−g(R0) 2 . T 1←−g(R1<<< 8)
3. F 0←−(T0+T1+K2r+8)mod 2324. F 1←−(T0+ 2·T1+K2r+9)mod 232
Funct ¸ia unar˘ a gconstituie esent ¸a sistemului de criptare Twofish :
84 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
1. x i←−⌊ X/28i⌋mod 28(0≤i≤3)
(cuvˆ antul de intrare Xeste spart ˆ ın patru octet ¸i)
2. y i←−si[xi],(0≤i≤3)
(octet ¸ii sunt trecut ¸i prin patru S−boxuri dependente de cheie)
3.
z0
z1
z2
z3
←−
01EF 5B5B
5B EF EF 01
EF 5B01EF
EF 01EF 5B
·
y0
y1
y2
y3
4. Z←−3/summationdisplay
i=0zi28i. (Zeste valoarea rezultat˘ a).
Observat ¸ia 5.4. La pasul 3se face o corespondent ¸˘ a ˆ ıntre octet ¸i ¸ si elementele corpului
GF(28), unde s-a t ¸inut cont de izomorfismul GF(28)≡GF(2)[X]/v(X)
(v(X) =X8+X6+X5+X3+ 1este un polinom primitiv peste Z2).
Elementul a=7/summationdisplay
i=0aiXi∈GF(28)se identific˘ a cu octetul7/summationdisplay
i=0ai2i.
Elementele matricii 4×4au fost scrise ca valori hexazecimale ale octet ¸ilor, folosind
aceast˘ a corespondent ¸˘ a.
Diversificarea cheii
Sistemul Twofish este definit pentru chei de lungime Nunde standardul este N= 128 ,192
sau 256. Se pot folosi ˆ ıns˘ a chei de orice lungime mai mic˘ a de 256; dac˘ a se d˘ a o astfel de
cheie, ea este extins˘ a prin completare cu 0 la cea mai apropiat˘ a lungime standard.
Din cheia Ma utilizatorului, prin diversificare se obt ¸in 40 cuvinte K0, K1, . . . , K 39¸ si
patru S-cutii folosite la funct ¸ia g.
Fiek←−N/64. Cheia Mconst˘ a din 8 koctet ¸i m0, m1, . . . , m 8k−1. Se calculeaz˘ a
vectorii Me, Mo, Sastfel:
1. M i←−3/summationdisplay
j=0m4i+j·28j,(0≤j≤2k−1)
2. M e←−(M0, M 2, . . . , M 2k−2), M o= (M1, M 3, . . . , M 2k−1);
3. S = (Sk−1, Sk−2, . . . , S 0) unde Si←−3/summationdisplay
j=0si,j·28j,(0≤i≤k−1)
Octet ¸ii si,jse obt ¸in printr-o codificare cu un cod Reed-Solomon, pe baza formulei
5.2. ALTE SISTEME DE CRIPTARE ULTERIOARE DES 85
si,0
si,1
si,2
si,3
=
01A4 55 87 5 A58DB 9E
A4 56 82 F3 1E C 6 68 E5
02A1FC C 1 47 AE 3D19
A4 55 87 5 A58DB 9E03
·
m8i
m8i+1
m8i+2
m8i+3
m8i+4
m8i+5
m8i+6
m8i+7
Pentru generarea S−boxurilor ¸ si a cuvintelor cheii expandate se folose¸ ste funct ¸ia h,
definit˘ a astfel:
Argumente :X(cuvˆ ant) ¸ si L= (L0, L1, . . . , L k−1) – o list˘ a de kcuvinte.
Rezultatul :Z(cuvˆ ant).
1. l i,j←−⌊ Li/28j⌋mod 28,(0≤i≤k−1)
xj←−⌊ X/28j⌋mod 28,(0≤j≤3) (cuvintele sunt sparte ˆ ın octet ¸i)
2. y k,j←−xj,(0≤j≤3)
3.ifk= 4then
y3,0←−q1[y4,0]⊕l3,0, y 3,1←−q1[y4,1]⊕l3,1,
y3,2←−q1[y4,2]⊕l3,2, y 3,3←−q1[y4,3]⊕l3,3
4.ifk≥3then
y2,0←−q1[y3,0]⊕l2,0, y 2,1←−q1[y3,1]⊕l2,1,
y2,2←−q1[y3,2]⊕l2,2, y 2,3←−q1[y3,3]⊕l2,3
5.y0←−q1[q0[q0[y2,0]⊕l1,0]⊕l0,0, y 1←−q0[q0[q1[y2,1]⊕l1,1]⊕l0,1,
y2←−q1[q1[q0[y2,2]⊕l1,2]⊕l0,2, y 3←−q0[q1[q1[y2,3]⊕l1,3]⊕l0,3
unde q0¸ siq1sunt permut˘ ari pe 8 bit ¸i, definite detaliat ˆ ın [47].
6. Z se obt ¸ine aplicˆ and pa¸ sii 3 ¸ si 4 din definit ¸ia funct ¸iei g.
ˆIn acest moment putem defini:
•S−boxurile din funct ¸ia gsub forma
g(X) =h(X, S)
Pentru i= 0,1,2,3,S−boxul s i(dependent de cheie) se formeaz˘ a prin aplicarea
luihde la xilayi, ˆ ın care lista Leste vectorul Sderivat din cheie.
•Cuvintele cheii expandate:
Fieρ←−224+216+28+20, A i←−h(2i·ρ, M e), B i←−(h((2i+1)·ρ, M o)<<< 8
Atunci
K2i←−(A+i+Bi)mod 232, K 2i+1←−((Ai+ 2Bi)mod 232)<<< 9
86 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
5.3 Sistemul de criptare AES
Din 2000, sistemul de criptare Rijndael creat de olandezii Joan Daemen ¸ si Vincent Rijman
devine oficial sistemul AES .7Similar sistemulelor anterioare (inclusiv DES ), ¸ si acest
sistem cripteaz˘ a blocuri de text clar de lungime fix˘ a, folosind subchei ale unei chei generate
aleator. Lungimile folosite sunt de 128 ,192 sau 256 bit ¸i.
5.3.1 Descrierea sistemului AES
Definit ¸ia 5.2. Un rezultat intermediar al sistemului de criptare se nume¸ ste ”stare”.
Vom reprezenta starea unui bloc sub forma unui tablou cu 4 linii ¸ si Nbcoloane, ale
c˘ arui elemente sunt octet ¸i; deci valoarea lui Nbse determin˘ a u¸ sor: Nb=N/32, unde N
este lungimea blocului text care se cripteaz˘ a.
Similar, o cheie de criptare se va reprezenta printr-un tablou 4 ×Nk, unde Nk=K/32
(Kfiind lungimea cheii).
Exemplul 5.2. O stare cu Nb= 6¸ si o cheie cu Nk= 4au forma urm˘ atoare:
a0,0a0,1a0,2a0,3a0,4a0,5
a1,0a1,1a1,2a1,3a1,4a1,5
a2,0a2,1a2,2a2,3a2,4a2,5
a3,0a3,1a3,2a3,3a3,4a3,5k0,0k0,1k0,2k0,3
k1,0k1,1k1,2k1,3
k2,0k2,1k2,2k2,3
k3,0k3,1k3,2k3,3
Uneori, aceste blocuri se reprezint˘ a grupate sub forma unui vector ˆ ın care fiecare
element este coloana unei st˘ ari (deci, avˆ and o lungime de 4 octet ¸i). ˆIn funct ¸ie de m˘ arimea
Na blocului de criptare (respectiv Ka cheii), un astfel de vector are 4 ,6 sau 8 cuvinte.
Octet ¸ii unui cuvˆ ant se noteaz˘ a cu a, b, c ¸ si respectiv d; astfel, octetul 0 este a, octetul 1
esteb¸ s.a.m.d.
Intrarea ¸ si ie¸ sirea din sistemul AES sunt definite sub forma unor vectori avˆ and drept
componente octet ¸i, numerotat ¸i de la 0 la 4 Nb−1. Un vector de intrare/ie¸ sire are deci
16,24 sau respectiv 32 componente, numerotate 0 . . .15,0. . .23 sau 0 . . .31.
Similar, cheia de criptare este definit˘ a ca un vector de 16 ,24 sau 32 octet ¸i, numerotat ¸i
de la 0 la 4 Nk−1 (unde Nk= 128 ,192 ¸ si respectiv 256).
Octet ¸ii care formeaz˘ a intrareaˆ ın sistem (textul clar, dac˘ a se folose¸ ste modul de criptare
ECB ) completeaz˘ a pe coloane un tablou caˆ ın Exemplul 5.2, numit starea init ¸ial˘ a . Similar
se procedeaz˘ a cu cheia de criptare.
Procedeul este identic la sfˆ ar¸ sit, cˆ and se obt ¸ine blocul criptat prin liniarizarea pe
coloane a st˘ arii finale rezultate dup˘ a criptare.
7Rijndael a cˆ a¸ stigat obt ¸inˆ and 86 voturi, contra Serpent cu 59, Twofish cu 31, RC6 cu 23 ¸ si Mars cu
13 voturi. Principalul atu: de¸ si Serpent este considerat mai sigur, Rijndael are mai put ¸ine transform˘ ari
¸ si este mai rapid.
5.3. SISTEMUL DE CRIPTARE AES 87
Relat ¸iile dintre indexul nal unui element (octet) din reprezentarea liniar˘ a ¸ si coordo-
natele ( i, j) ale aceluia¸ si octet din reprezentarea matricial˘ a sunt
i=n(mod 4); j=⌊n/4⌋; n=i+ 4∗j.
ˆIn plus, ieste indicele octetului ˆ ın cadrul unui cuvˆ ant care cont ¸ine acel octet, iar j
este indicele cuvˆ antului ˆ ın cadrul blocului care ˆ ıl cont ¸ine.
Criptarea se realizeaz˘ a ˆ ın Nrrunde, unde Nrdepinde de Nb¸ siNk. Valorile lui Nrsunt
date ˆ ın tabelul:
NrNb= 4 Nb= 6 Nb= 8
Nk= 4 10 12 14
Nk= 6 12 12 14
Nk= 8 14 14 14
Fiecare rund˘ a are la intrare o stare ¸ si folose¸ ste o cheie de rund˘ a. Cu except ¸ia rundei finale,
o rund˘ a este format˘ a din patru transform˘ ari, notate pe scurt:
•ByteSub(Stare) ;
•ShiftRow(Stare) ;
•MixColumn(Stare) ;
•AddRoundKey(Stare, Cheie) .
Ultima rund˘ a cont ¸ine numai trei transform˘ ari, fiind eliminat˘ a MixColumn(Stare) . S˘ a
vedem cum sunt definite aceste transform˘ ari:
•ByteSub(Stare) : Este o substitut ¸ie neliniar˘ a care opereaz˘ a pe octet ¸i. Tabela de
substitut ¸ie ( S- box, dac˘ a folosim termenul consacrat din DES ) este o matrice
inversabil˘ a format˘ a din compunerea a dou˘ a transform˘ ari:
1.Fiecare octet nenul αeste ˆ ınlocuit cu inversul s˘ au α−1∈GF(28); octetul 00
este l˘ asat nemodificat.
2.Rezultatul este modificat printr-o transformare afin˘ a peste Z2:
y0
y1
y2
y3
y4
y5
y6
y7
=
1 0 0 0 1 1 1 1
1 1 0 0 0 1 1 1
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 0
0 0 0 1 1 1 1 1
x0
x1
x2
x3
x4
x5
x6
x7
+
1
1
0
0
0
1
1
0
88 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
Transformarea ByteSub se aplic˘ a tuturor octet ¸ilor st˘ arii de intrare ˆ ın rund˘ a, rezul-
tatul fiind o alt˘ a stare de ie¸ sire din rund˘ a.
Inversa transform˘ arii se obt ¸ine aplicˆ and fiec˘ arui octet transformarea afin˘ a invers˘ a,
dup˘ a care se ia inversul multiplicativ din GF(28) (dac˘ a octetul nu este nul).
•ShiftRow(Stare) : La acest pas, liniile st˘ arii sunt permutate ciclic spre stˆ anga. Num˘ a-
rul de octet ¸i cu care se face ciclarea sunt: 0 pentru linia 0, Cipentru linia i(1≤
i≤3). Valorile Cidepind de lungimea Nba blocului ¸ si sunt date de tabelul
NbC1C2C3
4123
6123
8134
Exemplul 5.3. Aplicˆ and transformarea ShiftRow st˘ arii din Exemplul 5.2 (unde
Nb= 6), se obt ¸ine starea
a0,0a0,1a0,2a0,3a0,4a0,5
a1,1a1,2a1,3a1,4a1,5a1,0
a2,2a2,3a2,4a2,5a2,0a2,1
a3,3a3,4a3,5a3,0a3,1a3,2
Inversa transform˘ arii ShiftRow const˘ a ˆ ın permutarea ciclic˘ a spre stˆ anga cu Nb−Ci
octet ¸i pentru linia i(1≤i≤3); ˆ ın acest fel, fiecare octet aflat pe pozit ¸ia jˆ ın linia
ise deplaseaz˘ a pe pozit ¸ia j+Nb−Ci(mod N b).
•MixColumn(Stare) :ˆIn aceast˘ a transformare, coloanele st˘ arii sunt considerate sub
forma unor polinoame de gradul 3 cu coeficient ¸i ˆ ın GF(28).
Fiecare astfel de polinom este ˆ ınmult ¸it cu
c(X) =/prime03/primeX3+/prime01/primeX2+/prime01/primeX+/prime02/prime
ˆ ın algebra polinoamelor modulo X4+ 1; polinomul c(X) este prim cu X4+ 1, deci
va fi inversabil.
Aceast˘ a transformare poate fi reprezentat˘ a ¸ si sub forma unei ˆ ınmult ¸iri matriciale,
care transform˘ a starea coloan˘ a cu coloan˘ a; anume:
b0
b1
b2
b3
=
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
a0
a1
a2
a3
5.3. SISTEMUL DE CRIPTARE AES 89
Operat ¸ia invers˘ a este similar˘ a: fiecare coloan˘ a este transformat˘ a prin ˆ ınmult ¸ire cu
polinomul invers lui c(X) modulo X4+ 1. Acesta este
d(X) =/prime0B/primeX3+/prime0D/primeX2+/prime09/primeX+/prime0E/prime
•AddRoundKey(Stare, Cheie) : Aceast˘ a transformare const˘ a ˆ ın aplicarea unui XOR
ˆ ıntre starea curent˘ a ¸ si cheia de rund˘ a. Cheia de rund˘ a are lungimea Nb¸ si este
dedus˘ a din cheia de criptare pe baza unui procedeu pe care ˆ ıl descriem mai jos.
Formal, transformarea are loc conform figurii (pentru Nb= 6):
a0,0a0,1a0,2a0,3a0,4a0,5
a1,0a1,1a1,2a1,3a1,4a1,5
a2,0a2,1a2,2a2,3a2,4a2,5
a3,0a3,1a3,2a3,3a3,4a3,5⊕k0,0k0,1k0,2k0,3k0,4k0,5
k1,0k1,1k1,2k1,3k1,4k1,5
k2,0k2,1k2,2k2,3k2,4k2,5
k3,0k3,1k3,2k3,3k3,4k3,5=
b0,0b0,1b0,2b0,3b0,4b0,5
b1,0b1,1b1,2b1,3b1,4b1,5
b2,0b2,1b2,2b2,3b2,4b2,5
b3,0b3,1b3,2b3,3b3,4b3,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 init ¸ial˘ a;
2.Nr−1 runde;
3. O rund˘ a final˘ a.
ˆInainte de aplicarea acestui algoritm (sau – eventual – ˆ ın paralel) se folose¸ ste un
algoritm de obt ¸inere a cheilor de rund˘ a.
5.3.2 Prelucrarea cheii de criptare
Toate cheile de rund˘ a se obt ¸in din cheia de criptare printr-o prelucrare separat˘ a, format˘ a
din dou˘ a componente: extinderea cheii ¸ sialegerea cheii de rund˘ a .
Principiile de baz˘ a ale prelucr˘ arii sunt:
•Num˘ arul total al bit ¸ilor din toate cheile de rund˘ a este Nb(Nr+ 1).
90 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
•Cheia de criptare este extins˘ a ˆ ıntr-o Cheie Expandat˘ a .
•Cheia de rund˘ a se obt ¸ine luˆ and primii Nboctet ¸i din Cheia Expandat˘ a , care nu au
fost folosit ¸i pentru alte chei.
Extinderea cheii
Cheia expandat˘ a (notat˘ a W[Nb(Nr+ 1)]) este un tablou liniar ale c˘ arui elemente sunt
cuvinte. Primele Nkcuvinte sunt cheia de criptare; celelalte cuvinte se obt ¸in recursiv din
cuvintele definite anterior. Funct ¸ia de extindere a cheii depinde de valoarea lui Nk; exist˘ a
o versiune pentru Nk≤6 ¸ si o alta pentru Nk>6.
Pentru Nk≤6 avem:
KeyExpansion (byte Key [4∗Nk]word W [Nb∗(Nr+ 1)])
{
for(i= 0; i < N k;i+ +)
W[i] = (Key[4∗i], Key [4∗i+ 1], Key [4∗i+ 2], Key [4∗i+ 3]);
for(i=Nk;i < N b∗(Nr+ 1); i+ +)
{
temp =W[i−1];
if(i%Nk== 0)
temp =SubByte (RotByte (temp )) ˆRcon (i/Nk);
W[i] =W[i−Nk] ˆtemp ;
}
}
ˆIn acest algoritm (scris ˆ ın C+ +), SubByte (W) este o funct ¸ie care ˆ ıntoarce un cuvˆ ant
ˆ ın care fiecare octet este rezultatul aplic˘ arii S−boxului definit la transformarea ByteSub
fiec˘ arui octet din cuvˆ antul de intrare. RotByte (w) ˆ ıntoarce un cuvˆ ant ˆ ın care octet ¸ii sunt
rotit ¸i ciclic la stˆ anga (pentru intrarea ( a, b, c, d ) ie¸ sirea este ( b, c, d, a )).
Esent ¸a algoritmului este urm˘ atoarea: primele Nkcuvinte sunt completate cu cheia de
criptare. ˆIn continuare, fiecare cuvˆ ant W[i] este egal cu W[i−1]⊕W[i−Nk]. Pentru
cuvintele care sunt pe pozit ¸ii multipli de Nk, ˆ ınainte de aceast˘ a operat ¸ie, lui W[i−1] i se
aplic˘ a o permutare ciclic˘ a spre stˆ anga a octet ¸ilor, urmat˘ a de aplicarea unui S−box.ˆIn
plus, rezultatul este XOR – at ˆ ınc˘ a odat˘ a, cu o constant˘ a de rund˘ a.
Pentru Nk>6, algoritmul este:
KeyExpansion (byte Key [4∗Nk]word W [Nb∗(Nr+ 1)])
{
for(i= 0; i < N k;i+ +)
W[i] = (Key[4∗i], Key [4∗i+ 1], Key [4∗i+ 2], Key [4∗i+ 3]);
for(i=Nk;i < N b∗(Nr+ 1); i+ +)
{
5.4. EXERCIT ¸II 91
temp =W[i−1];
if(i%Nk== 0)
temp =SubByte (RotByte (temp )) ˆRcon (i/Nk);
else if (i%Nk== 4)
temp =SubByte (temp )
W[i] =W[i−Nk] ˆtemp ;
}
}
La aceast˘ a schem˘ a apare condit ¸ia suplimentar˘ a: dac˘ a i−4 este multiplu de Nk, pro-
cedura SubByte este aplicat˘ a lui W[i−1] ˆ ınainte de XOR .
Constantele de rund˘ a sunt independente de Nk¸ si sunt definite prin
Rcon [i] = (RC[i],/prime00/prime,/prime00/prime,/prime00/prime)
unde RC[i] =αi−1unde αeste un element generator al lui GF(28).
Selectarea cheii de rund˘ a
Cheia rundei ieste format˘ a din secvent ¸a de cuvinte
W[Nb∗i]. . . W [Nb∗(i+ 1)−1].
Ca o remarc˘ a, aceast˘ a cheie poate fi calculat˘ a treptat, pe m˘ asur˘ a ce se ajunge la runda
respectiv˘ a.
Pentru alte detalii privind securitatea sistemului, a se vedea [15], [53]
5.4 Exercit ¸ii
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β/prime=
DES (c(α), c(K)), unde c(i1i2. . . i n) =inin−1. . . i 1, s˘ a se arate c˘ a β/prime=c(β).
5.3. S˘ a presupunem c˘ a cheia (de 56bit ¸i) a unui algoritm DES este
11011001 01111101 01100101 00010011 01010110 01100110 00110100
Determinat ¸i cheia K1pentru prima rund˘ a.
5.4. Presupunem c˘ a R1= 10011100011010111101001010100011 G˘ asit ¸i primii 4bit ¸i din
R2, dac˘ a subcheia pentru runda a doua este
K2= 011101010111001011100101010001010010001101010110 .
5.5. Se poate defini un cod de autentificare al mesajului ( MAC ) utilizˆ and un mod CFB
sauCBC . Fiind dat˘ a o secvent ¸˘ a de blocuri α1, α2, . . . , α mde texte clare, se define¸ ste valoa-
rea init ¸ial˘ a IV=α1. Criptarea lui α2, . . . , α ncu cheia Kˆ ın modul CFB d˘ aβ1, . . . , β n−1
(sunt numai n−1blocuri de text criptat). Se define¸ ste MAC ca fiind eK(βn−1). S˘ a se
arate c˘ a el coincide cu rezultatul MAC prezentat anterior, folosind modul CBC .
92 CAPITOLUL 5. SISTEME SIMETRICE DE CRIPTARE MODERNE
5.6. Dac˘ a o secvent ¸˘ a de texte clare α1, α2, . . . , α nproduce prin criptare β1, β2, . . . , β n, iar
blocul βieste transmis gre¸ sit (apar erori de canal), s˘ a se arate c˘ a num˘ arul de blocuri care
vor fi decriptate gre¸ sit este 1ˆ ın modul ECB sauOFB ¸ si2ˆ ın modul CBC sauCFB .
5.7. Alice transmite mesajul format din 6blocuri de cate 64bit ¸i: c1, c2, c3, c4, c5, c6,
criptate cu DES implementat ˆ ın modul CFB .Oscar schimb˘ a ordinea blocurilor ˆ ın
c1, c2, c4, c3, c5, c6. Ce mesaje va putea decripta corect Bob ?
5.8. Construit ¸i coduri de autentificare a mesajelor ( MAC ) capabile s˘ a autentifice mesajele
primite printr-un sistem fluid de criptare. (Indicat ¸ie: a se vedea [38], paragraf 9.5.4)
5.9. ˆIn urma aplic˘ arii transform˘ arii ByteSub din algoritmul AES s-a obt ¸inut octetul
10010111 . Ce octet a intrat ˆ ın transformarea ByteSub ?
5.10. Dup˘ a transformarea ShiftRow s-a obt ¸inut matricea
C=
00000001 00000000 00000001 00000010
00000000 00000100 00000010 00000001
00000010 00000000 00000000 00000001
00000100 00000001 00000001 00000001
Aceast˘ a matrice este introdus˘ a ˆ ın transformarea MixColumn . Ce matrice se obt ¸ine ?
5.11. Primele patru coloane ale matricii cheii expandate Wsunt
00110001 01011010 01101001 00000010
01100010 00110100 01110010 00000001
10110010 00110010 11100011 00000001
01000100 00110001 10110011 00000000
Calculat ¸i a cincea coloan˘ a din W.
5.12. Fiebun octet ¸ si ˆb=b+11111111 (complementul lui b). Pentru o cheie fixat˘ a, dac˘ a
AES cripteaz˘ a bˆ ıng, va cripta el ˆbˆ ınˆg?
Capitolul 6
Atacuri asupra sistemelor de criptare
bloc
6.1 Considerat ¸ii generale
ˆIn acest capitol vom treceˆ ın revist˘ a principalele tipuri de atac dezvoltate asupra sistemelor
de criptare bloc. Majoritatea lor au fost create init ¸ial pentru criptanaliza sistemului DES ,
devenind ulterior standarde de securitate pentru toate sistemele de criptare. Tipuri de
criptanaliz˘ a mai vechi – cum sunt criptanaliza diferent ¸ial˘ a sau liniar˘ a – au generat ulterior
modalit˘ at ¸i noi de atac (mixt, boomerang, rectangle etc) pentru anumite tipuri de cripto-
sisteme, adesea semnificativ mai puternice.
6.2 Compromisul spat ¸iu – timp
Este un tip de atac bazat pe un compromis ˆ ıntre complexitatea spat ¸iu ¸ si complexitatea
timp a atacurilor prin fort ¸˘ a brut˘ a, care poate fi utilizat destul de eficient ˆ ın unele atacuri
cu text clar ales.
AiciOscar va dispune de o pereche ( α, β) cuβ=eK(α), ¸ si caut˘ a s˘ a determine cheia
K.
Nu vom folosi o structur˘ a particular˘ a de implementare a unui sistem, dar ne vom referi
ˆ ın mod implicit la sistemul DES ; mai exact, ¸ stim c˘ a textele clare ¸ si cele criptate sunt de
64 bit ¸i, iar cheia are 56 bit ¸i.
O c˘ autare exhaustiv˘ a const˘ a ˆ ın a ˆ ıncerca toate cele 256chei posibile. Aceast˘ a operat ¸ie
nu necesit˘ a memorie, dar sunt necesare ˆ ın medie 255chei pentru a o g˘ asi pe cea bun˘ a.
Sau, fiind dat un text clar α,Oscar poate forma anterior (ˆ ın faza de precalcul) o tabel˘ a
cu 256perechi ( βk, K), ordonat˘ a dup˘ a βK=eK(α). Atunci cˆ and Oscar obt ¸ine mesajul β
(criptat din textul clar α), el va c˘ auta ˆ ın tabel˘ a ¸ si va afla imediat cheia K. Astfel, aflarea
cheii va necesita un timp de calcul neglijabil (complexitate logaritmic˘ a), dar un spat ¸iu de
93
94 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
memorie gigantic ¸ si un timp de precalcul important. Aceast˘ a variant˘ a nu aduce nici un
avantaj din punct de vedere al timpului total, pentru aflarea unei singure chei. Avantajul
apare atunci cˆ and este necesar˘ a c˘ autarea mai multor chei, deoarece tabela precalculat˘ a a
fost construit˘ a o singur˘ a dat˘ a.
Compromisul spat ¸iu – timp permite obt ¸inerea unui timp de calcul (precalculul nu se
include) inferior celui unei c˘ aut˘ ari exhaustive, cu un spat ¸iu de memorie inferior celui nece-
sar ret ¸inerii tuturor cheilor. Algoritmul folose¸ ste o funct ¸ie de reducere R, care mic¸ soreaz˘ a
o secvent ¸˘ a de 64 bit ¸i la una de 56 bit ¸i (de exemplu, Rpoate ¸ sterge pur ¸ si simplu 8 bit ¸i
din secvent ¸a init ¸ial˘ a).
Fieαun text clar de 64 bit ¸i; se define¸ ste g(K0) =R(eK0(α)) pentru orice secvent ¸˘ a K0
de 56 bit ¸i (rezultatul g(K0) este de asemenea de lungime 56).
Algoritmul mai folose¸ ste doi parametriˆ ıntregi pozitivi m, t.ˆIn faza de precalcul, Oscar
define¸ ste msecvent ¸e arbitrare de 56 bit ¸i fiecare, notate X(i,0),1≤i≤m. Apoi, folosind
relat ¸ia de recurent ¸˘ a
X(i, j) =g(X(i, j−1)), 1≤i≤m,1≤j≤t,
Oscar determin˘ a valorile X(i, j),1≤j≤t, formˆ and cu ele o matrice Xm×t.
Din aceste valori, Oscar p˘ astreaz˘ a ˆ ıntr-o tabel˘ a Tnumai 2 mperechi
(X(i,0), X(i, t)), 1≤i≤m
(deci sunt memorate numai prima ¸ si ultima coloan˘ a a matricii X).
ˆIn momentul atacului, Oscar obt ¸ine textul criptat βal textului clar αales de el
(reamintim, este vorba de un atac cu text clar ales). El va c˘ auta cheia Kˆ ın cele tcoloane
ale matricii X, consultˆ and tabela T.
S˘ a presupunem K=X(i, t−j) pentru un j(1≤j≤t) dat ( Keste ˆ ın una din cele t
coloane ale lui X). Vom avea gj(K) =X(i, t), ¸ si
gj(K) =gj−1(g(K)) =gj−1(R(eK(α))) = gj−1(R(β)).
S˘ a calcul˘ am ¸ sirul βj(1≤j≤t) definit prin relat ¸ia de recurent ¸˘ a
βj=/braceleftBigg
R(β) dac˘ a j= 1
g(βj−1) dac˘ a 2≤j≤t
Dac˘ a K=X(i, t−j), vom avea βj=X(i, t).
De remarcat c˘ a reciproca nu este adev˘ arat˘ a: nu este suficient ca βj=X(i, t) pentru a
aveaK=X(i, t−j), deoarece funct ¸ia de reducere Rnu este injectiv˘ a ( Rreduce un spat ¸iu
de 264valori ˆ ın unul de 256valori, deci fiecare valoare provine ˆ ın general din 28= 256
elemente). Trebuie verificat˘ a egalitatea β=eX(i,t−j)(α), pentru a decide dac˘ a X(i, t−j)
este ˆ ıntr-adev˘ ar cheia.
Valoarea X(i, t−j) nu este disponibil˘ a ˆ ın memorie, dar ea se poate recalcula ˆ ın t−j
pa¸ si, plecˆ and de la X(i,0).
Oscar va folosi deci urm˘ atorul algoritm:
6.3. ATACUL MEET-IN-THE-MIDDLE 95
1. β1←R(β)
2.forj←−1totdo
2.1.if∃icuβj=X(i, t)then
2.1.1.calculeaz˘ a X(i, t−j) =gt−j(X(i,0))
2.1.2.ifβ=eX(i,t−j)(α)then K←X(i, t−j), STOP
2.2. βj+1←g(βj)
Analizˆ and probabilitatea de succes a algoritmului, se poate ar˘ ata c˘ a dac˘ a mt2≈N=
256, atunci probabilitatea s˘ a g˘ asim cheia Kˆ ın cele tcoloane ale matricii Xeste de circa
0,8mt/N . Coeficientul 0 ,8 provine din faptul c˘ a valorile X(i, t) pot s˘ a nu fie distincte. O
sugestie este de a alege m≈t≈N1/3¸ si de a construi N1/3tabele, fiecare cu alt˘ a funct ¸ie
de reducere R. Astfel, spat ¸iul de memorie necesar este de 112 ·N2/3bit ¸i (trebuie p˘ astrat ¸i
2N2/3valori de 56 bit ¸i). Timpul de precalcul este liniar O(N).
Timpul de calcul al atacului este mai dificil de evaluat. De remarcat c˘ a pasul 2 .1
poate fi implementat ˆ ın cel mai r˘ au caz ˆ ıntr-un timp O(log m ), utilizˆ and arbori binari de
c˘ autare. Dac˘ a acest pas e¸ sueaz˘ a (deci nu se g˘ ase¸ ste nici o valoare), timpul de calcul este
O(N2/3). Ceilalt ¸i pa¸ si care urmeaz˘ a cresc acest timp doar cu un factor constant.
6.3 Atacul meet-in-the-middle
Este un atac cu text clar ales, dezvoltat ˆ ın 1981 de Merkle ¸ si Hellman ca r˘ aspuns la ideea
unei duble cript˘ ari cu dou˘ a chei diferite, conform schemei
e e – –? ?
mxyK1 K2
Lema 6.1. Pentru un sistem de criptare bloc, o dubl˘ a criptare poate fi atacat˘ a folosind
O(2n)operat ¸ii ¸ siO(2n)spat ¸iu de memorie, unde neste lungimea cheii.
Demonstrat ¸ie : Fie ( α, β) o pereche (text clar, text criptat) obt ¸inut˘ a pe baza schemei de
mai sus.
1. Pentru fiecare din cele 2nchei posibile se calculeaz˘ a xi=eKi(α);
2. Se stocheaz˘ a ( xi, Ki) sortate (sau indexate) dup˘ a xi.
3. Pentru fiecare din cele 2nchei posibile:
(a) Se calculeaz˘ a xj=dKj(β);
(b) Se caut˘ a in lista creat˘ a la pasul anterior o pereche ( xi, Ki) cuxi=xj;
96 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
4. O pereche de chei posibile este ( Ki, Kj);
(deoarece eKi(α) =dKj(β), deci eKj(eKi(α)) =β).
Algoritmul se reia cu alte perechi ( α, β), pˆ an˘ a ce perechea de chei folosite este determinat˘ a
ˆ ın mod unic.
Exemplul 6.1. Un atac direct asupra unei duble cript˘ ari cu DES ar necesita un timp
de ordin 2112¸ si un spat ¸iu neglijabil. Dac˘ a se folose¸ ste un atac meet-in-the-middle, timpul
va fi 256iar spat ¸iul 256. Strategii complementare de genul compromisului spat ¸iu – timp pot
duce la variante de genul: 2pspat ¸iu, 2qtimp, unde p+q= 112 ([38]).
6.4 Criptanaliza diferent ¸ial˘ a
Unul din cele mai cunoscute atacuri ale DES -ului este criptanaliza diferent ¸ial˘ a , introdus˘ a
de Biham ¸ si Shamir ˆ ın 1991 ([6],[7],[8]). Cu toate c˘ a nu d˘ a o modalitate practic˘ a de
spargere a funct ¸iei DES ˆ ın 16 tururi, ea furnizeaz˘ a atacuri eficace pentru variantele de
DES cu un num˘ ar redus de runde. De exemplu, un DES cu 8 runde poate fi spart ˆ ın
cˆ ateva minute cu un PCobi¸ snuit. Ulterior, criptanaliza diferent ¸ial˘ a a fost extins˘ a ca
metod˘ a standard de atac pentru toate sistemele de criptare bloc.
6.4.1 Privire general˘ a
Un atac prin criptanaliz˘ a diferent ¸ial˘ a exploateaz˘ a faptul c˘ a anumite diferent ¸e dintre texte
clare s˘ a genereze – cu probabilitate semnificativ˘ a – diferent ¸e fixate ˆ ıntre mesajele criptate
corespunz˘ atoare.
Astfel, s˘ a consider˘ am un sistem de criptare pe blocuri de nbit ¸i, cu intrarea (textul
clar) α= (a1, a2, . . . , a n) ¸ si ie¸ sirea (textul criptat) β= (b1, b2, . . . , b n).
Fieα/prime¸ siα/prime/primedou˘ a blocuri de intrare, iar β/prime, respectiv β/prime/primeblocurile de ie¸ sire cores-
punz˘ atoare. Diferent ¸a dintre bit ¸ii de intrare este dat˘ a de
∆α=α/prime⊕α/prime/prime= (∆ a1,∆a2, . . .∆an)
unde ∆ ai=ai/prime⊕ai/prime/prime, iarai/prime¸ siai/prime/primereprezint˘ a al i-lea bit din α/prime, respectiv α/prime/prime.
Similar,
∆β=β/prime⊕β/prime/prime= (∆ b1,∆b2, . . . , ∆bn)
este diferent ¸a dintre mesajele de ie¸ sire (unde ∆ bi=bi/prime⊕bi/prime/prime).
ˆIntr-un sistem de criptare ideal, probabilitatea ca, fiind dat˘ a o diferent ¸˘ a de intrare
∆α, s˘ a apar˘ a o anumit˘ a diferent ¸˘ a de ie¸ sire ∆ β, este 1 /2n(unde neste m˘ arimea blocului
de criptare).
Criptanaliza diferent ¸ial˘ a exploateaz˘ a situat ¸ia cˆ and pentru o anumit˘ a diferent ¸˘ a de in-
trare ∆ α, o diferent ¸˘ a de ie¸ sire ∆ βapare cu o probabilitate pDsemnificativ mai mare decˆ at
1/2n. Perechea (∆ α,∆β) pentru care exist˘ a o astfel de situat ¸ie se nume¸ ste diferent ¸ial˘ a .
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 97
ˆIn esent ¸˘ a, criptanaliza diferent ¸ial˘ a este un atac cu text clar ales: Oscar alege perechi
de intr˘ ari ( α/prime, α/prime/prime), care verific˘ a o anumit˘ a diferent ¸˘ a ∆ α, ¸ stiind c˘ a pentru aceast˘ a valoare
∆α, exist˘ a o diferent ¸ial˘ a (∆ α,∆β).
Cel mai important pas const˘ a ˆ ın construirea unei diferent ¸iale (∆ α,∆β), folosind bit ¸ii
textului clar pentru α, ¸ si intrarea ˆ ın ultima rund˘ a a sistemului de criptare pentru β.
Aceasta se poate realiza examinˆ and diverse diferent ¸iale caracteristice . Odiferent ¸ial˘ a
caracteristic˘ a este o secvent ¸˘ a (∆ α1,∆α2, . . . , ∆αn) unde (∆ αi,∆αi+1) este o diferent ¸ial˘ a
a rundei idin sistemul de criptare (deci α1=α, α n=β).
Pe baza unei diferent ¸iale caracteristice putem exploata informat ¸ia care intr˘ a ˆ ın ultima
rund˘ a a sistemului, pentru a afla o parte din bit ¸ii cheii.
Deci, o prim˘ a problem˘ a const˘ a ˆ ın construirea de diferent ¸iale caracteristice. Pentru
aceasta vom examina ¸ si exploata diverse particularit˘ at ¸i ale S- boxurilor.
Practic, vom considera toate diferent ¸ele de intrare ¸ si ie¸ sire din fiecare S-box, deter-
minˆ and perechile (∆ α,∆β) cu probabilit˘ at ¸i mari. Combinˆ and aceste perechi de la o rund˘ a
la alta, astfel ca diferent ¸ele dintre dou˘ a ie¸ siri dintr-o rund˘ a s˘ a coincid˘ a cu diferent ¸ele din-
tre dou˘ a intr˘ ari ˆ ın runda urm˘ atoare, vom determina o diferent ¸ial˘ a ˆ ıntre dou˘ a texte clare ¸ si
intr˘ arile a dou˘ a texte ˆ ın ultima rund˘ a. ˆIn final, bit ¸ii ultimei sub-chei vor dispare (deoarece
sunt folosit ¸iˆ ın ambele texte ¸ si – prin diferent ¸iere cu operat ¸ia XOR – se anuleaz˘ a reciproc).
6.4.2 Analiza componentelor unui sistem de criptare
S˘ a examin˘ am perechile de diferent ¸e ale unui S-box.
Vom considera un 4 ×4S-box, cu intrarea α= (a1, a2, a3, a4) ¸ si ie¸ sirea β= (b1, b2, b3, b4).
4×4S-box? ???
????a1 a2a3 a4
b1 b2 b3 b4
Figura 1: Modelul unui 4 ×4S- box
Toate perechile de diferent ¸e (∆ α,∆β) ale unui astfel de S- box vor fi examinate;
fix˘ am o diferent ¸˘ a ∆ α¸ si calcul˘ am probabilit˘ at ¸ile de aparit ¸ie pentru toate diferent ¸ele de
ie¸ siri ∆ β, peste mult ¸imea perechilor de intrare ( α/prime, α/prime/prime) cuα/prime⊕α/prime/prime= ∆α.
98 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Deoarece ordinea perechilor nu este relevant˘ a, pentru un 4 ×4S-box sunt necesare
doar cele 16 valori posibile ale unei intr˘ ari α/prime; a doua intrare α/prime/primeva fi calculat˘ a cu formula
α/prime/prime=α/prime⊕∆α.
Toat˘ a construct ¸ia acestei sect ¸iuni va fi exemplificat˘ a folosind prima linie a primului
S-box din DES (am considerat cel mai semnificativ bit din notat ¸ia hexazecimal˘ a ca fiind
cel mai din stˆ anga bit al S-boxului):
Intrare 0 1 2 3 4 5 6 7 8 9 A B C D E F
Iesire E4D1 2 F B 8 3 A6C5 9 0 7
Tabela 1. Reprezentarea (in hexazecimal) a unui S- box
Fiecare pereche ( intrare, iesire ) poate fi considerat˘ a ca un 4 ×4S-box cu intr˘ ari ¸ si
ie¸ siri pe 4 bit ¸i.
Putem calcula diferent ¸a de ie¸ sire ∆ βpentru orice pereche de intrare ( α/prime, α/prime/prime=α/prime⊕∆α).
De exemplu, Tabela 2 prezint˘ a valorile (binare) pentru α, β, ¸ si valorile ∆ βpentru
perechile de intrare ( α, α⊕∆α), unde ∆ αare valorile
1011 ( hex B ),1000 ( hex8) ¸ si 0100 ( hex4).
α β ∆α= 1011 ∆α= 1000 ∆α= 0100
0000 1110 0010 1101 1100
0001 0100 0010 1110 1011
0010 1101 0111 0101 0110
0011 0001 0010 1011 1001
0100 0010 0101 0111 1100
0101 1111 1111 0110 1011
0110 1011 0010 1011 0110
0111 1000 1101 1111 1001
1000 0011 0010 1101 0110
1001 1010 0111 1110 0011
1010 0110 0010 0101 0110
1011 1100 0010 1011 1011
1100 0101 1101 0111 0110
1101 1001 0010 0110 0011
1110 0000 1111 1011 0110
1111 0111 0101 1111 1011
Tabela 2. Perechi de diferent ¸e ˆ ıntr-un S- box
De exemplu, pentru α= 0000 ¸ si ∆ α= 1011 avem α/prime=α⊕∆α= 1011. Ie¸ sirea (ˆ ın
binar) pentru intrarea α/primeeste, conform Tabelei 1, β/prime= 1100 ( hex C ), deci ∆ β=β⊕β/prime=
1110⊕1100 = 0010, valoare care apare pe coloana a treia din tabel˘ a.
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 99
Analizˆ and Tabela 2, vedem c˘ a num˘ arul aparit ¸iilor lui ∆ β= 0010 pentru ∆ α= 1011
(coloana 3) este 8 din 16 valori posibile (deci probabilitate 8 /16). Similar, num˘ arul de
aparit ¸ii ∆ β= 1011 pentru ∆ α= 1000 este 4 (din 16), iar num˘ arul de aparit ¸ii ale lui
∆β= 1010 pentru ∆ α= 0100 este 0 (din 16).
Putem aduna toate datele unui S- box ˆ ıntr-o tabel˘ a de distribut ¸ie a diferent ¸elor, ˆ ın
care liniile reprezint˘ a valorile ∆ α, iar coloanele – valorile ∆ β(toate ˆ ın hexazecimal).
Revenind la exemplul nostru, tabela de distribut ¸ie a diferent ¸elor pentru S-boxul din
Tabela 1, este dat˘ a de Tabela 3:
0 1 2 3 4 5 6 7 8 9 A B C D E F
016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0
20 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0
30 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4
40 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0
50 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2
60 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2
70 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4
80 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2
90 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0
A0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0
B0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2
C0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0
D0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0
E0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0
F0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0
Tabela 3. Tabela de distribut ¸ie a diferent ¸elor
Fiecare element al tabelei reprezint˘ a num˘ arul de aparit ¸ii ale diferent ¸ei de ie¸ sire ∆ β,
fiind dat˘ a diferent ¸a de intrare ∆ α.
Observat ¸ia 6.1.
1.ˆInafar˘ a de situat ¸ia special˘ a ( ∆α= 0,∆β= 0), cea mai mare valoare din tabel˘ a este
8; ea corespunde lui ∆α=B¸ si∆β= 2. Deci, pentru o pereche de intr˘ ari arbitrare
cu∆α=B, probabilitatea ca ∆β= 2este8/16 = 1 /2.
2. Cea mai mic˘ a valoare din tabel˘ a este 0; ˆ ın acest caz, probabilitatea de aparit ¸ie a
valorii ∆βpentru ∆αcorespunz˘ ator, este 0.
3. Suma elementelor pe fiecare linie este 2n= 16 ; similar, suma pe fiecare coloan˘ a este
tot2n= 16 .
100 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
4. Toate valorile din tabel sunt numere pozitive pare; motivul este acela c˘ a o pereche
de valori de intrare/ie¸ sire (α/prime, α/prime/prime)are aceea¸ si diferent ¸˘ a ∆αca ¸ si perechea (α/prime/prime, α/prime).
5. Pentru un S- box injectiv, o diferent ¸˘ a de intrare ∆α= 0va duce la o diferent ¸˘ a de
ie¸ sire ∆β= 0.
Ca o consecint ¸˘ a, prima linie ¸ si prima coloan˘ a vor fi 0, cu except ¸ia intersect ¸iei lor,
unde va fi valoarea 2n= 16 .
Dac˘ a s-ar putea construi un S- box ideal, care s˘ a nu ofere nici o informat ¸ie de
tip diferent ¸ial ˆ ıntre intr˘ ari ¸ si ie¸ siri, atunci toate valorile din tabela sa de distribut ¸ie a
diferent ¸elor vor fi egale cu 1, iar probabilitatea de aparit ¸ie a unei diferent ¸e ∆ βatunci
cˆ and diferent ¸a de intrare este ∆ α, va fi 1 /2n= 1/16.
Totu¸ si pe baza propriet˘ at ¸ilor ar˘ atate ˆ ın Observat ¸ia 6.1, un astfel de S- box ideal nu
este posibil.
6.4.3 Ret ¸ea substitut ¸ie – permutare
Oret ¸ea substitut ¸ie – permutare (Substitution Permutation Network –SPN ) este un sistem
de criptare bloc, format din mai multe runde, fiecare rund˘ a cont ¸inˆ and o substitut ¸ie ¸ si o
permutare. Cheia este expandat˘ a ˆ ın mod similar sistemelor uzuale ¸ si fiecare cheie de
rund˘ a va fi XOR -at˘ a cu mesajul la ˆ ınceputul fiec˘ arei runde.
UnSPN p˘ astreaz˘ a propriet˘ at ¸ile generale folosite ˆ ın construirea sistemelor de criptare
uzuale (inclusiv DES ¸ siAES ).
ˆIn prezentarea criptanalizei diferent ¸iale (¸ si apoi a celei liniare) vom utiliza un SPN
care cripteaz˘ a un text clar de 16 bit ¸i ˆ ıntr-un mesaj de 16 bit ¸i. Cheia are de asemenea 16
bit ¸i ¸ si este expandat˘ a ˆ ın 5 sub-chei de rund˘ a, de cˆ ate 16 bit ¸i fiecare. La fiecare rund˘ a, cei
16 bit ¸i de intrare sunt XOR – at ¸i cu cheia de rund˘ a, apoi sunt separat ¸i ˆ ın patru blocuri
de cˆ ate 4 bit ¸i, iar fiecare bloc trece prin cˆ ate un S- box. La sfˆ ar¸ situl rundei, cei 16 bit ¸i
sunt permutat ¸i.
ˆIn cazul nostru, vom folosi acela¸ si S- box pentru toate blocurile ¸ si toate rundele;
anume S- boxul definit de Tabela 1 (prima linie din S1- boxul definit ˆ ın DES ).
Permutarea utilizat˘ a este aceia¸ si pentru toate rundele:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
Tabela 4: O permutare utilizat˘ a ˆ ın construirea unui SPN
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 101
Figura 2 prezint˘ a schematic structura unui SPN :
XOR cu sub-cheia K5S41 S44 S42 S43XOR cu sub-cheia K4S31 S34 S32 S33XOR cu sub-cheia K3S21 S24 S22 S23XOR cu sub-cheia K2S11 S14 S12 S13XOR cu sub-cheia K1
runda 1
runda 2
runda 3
runda 4m1 m16. . . . . .text clar
y1. . . y16 . . . text criptat
Figura 2: Structura general˘ a a unui SPN.
102 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
6.4.4 Diferent ¸iala caracteristic˘ a ˆ ıntr-un SPN
ˆIn aceast˘ a sect ¸iune vom construi o modalitate de atac prin criptanaliz˘ a diferent ¸ial˘ a asupra
unui SPN , avˆ and ca scop aflarea unui set de bit ¸i din sub-cheia folosit˘ a ˆ ın ultima rund˘ a.
S˘ a consider˘ am SPN -ul din Figura 2.
Vom nota cu Uiintrarea ˆ ın S- boxurile din runda i, iar cu Vi– ie¸ sirea din S- boxuri
ˆ ın runda i.
S˘ a ˆ ıncepem cu dou˘ a texte clare, a c˘ aror diferent ¸˘ a este
∆U1= [0000 1011 0000 0000]
Deci singurul S- box activ ˆ ın prima rund˘ a este S12(celelalte S- boxuri sunt inactive:
intrarea este 0, deci ¸ si ie¸ sirea va fi tot 0). Folosind Tabela 2, obt ¸inem diferent ¸a de ie¸ sire
∆V1= [0000 0010 0000 0000]
Altfel spus,
S12: ∆ α=B16= 1011 =⇒ ∆β= 2 16= 0010 cu probabilitate 8 /16 = 1 /2.
Urm˘ arind acum permutarea de la sfˆ ar¸ situl primei runde, g˘ asim mesajul de intrare ˆ ın
S- boxurile celei de-a doua runde:
∆U2= [0000 0000 0100 0000]
cu probabilitate 1 /2.
ˆIn a doua rund˘ a, singurul S- box activ este S23. Vom avea perechea de diferent ¸e
S23: ∆ α= 4 16= 0100 =⇒ ∆β= 6 16= 0110 cu probabilitate 6 /16 = 3 /8.
Am obt ¸inut deci ie¸ sirea
∆V2= [0000 0000 0110 0000]
iar permutarea de la sfˆ ar¸ situl rundei a doua va da
∆U3= [0000 0010 0010 0000]
cu probabilitate 3 /8.
ˆIn a treia rund˘ a sunt active dou˘ a S- boxuri: S32¸ siS33:
S32: ∆ α= 2 16= 0010 =⇒ ∆β= 5 16= 0101 cu probabilitate 6 /16 = 3 /8,
S33: ∆ α= 2 16= 0010 =⇒ ∆β= 5 16= 0101 cu probabilitate 6 /16 = 3 /8.
Deci, ie¸ sirea din S- boxurile din runda a treia este
∆V3= [0000 0101 0101 0000]
iar intrarea ˆ ın runda a patra (dup˘ a efectuarea permut˘ arii) este
∆U4= [0000 0110 0000 0110]
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 103
Cu alte cuvinte,
∆U1= [0000 1011 0000 0000] = ⇒ ∆V3= [0000 0101 0101 0000]
¸ si
∆V3= [0000 0101 0101 0000] = ⇒ ∆U4= [0000 0110 0000 0110]
Rezult˘ a
∆U1= [0000 1011 0000 0000] = ⇒ ∆U4= [0000 0110 0000 0110]
Tabela 3 de distribut ¸ie a diferent ¸elor poate conduce la ideea unor probabilit˘ at ¸i condi-
t ¸ionale independente (not ¸iune f˘ ar˘ a utilizare ˆ ın matematic˘ a, dar extrem de intuitiv˘ a ˆ ın
aceast˘ a situat ¸ie):
Pr[∆β|∆α] = (∆ α,∆β)
Pe baza acestei relat ¸ii, diferent ¸ialele pot fi compuse. Astfel, pentru cazul studiat mai sus,
vom avea
(0000 1011 0000 0000 ,0000 0110 0000 0110) =1
2·3
8·3
8·3
8=27
1024
Altfel spus, diferent ¸iala caracteristic˘ a (0000 1011 0000 0000 ,0000 0110 0000 0110) apare
cu probabilitatea 27 /1024.
S˘ a vedem cum pot fi extra¸ si acum bit ¸ii din cheie, pe baza acestei informat ¸ii.
6.4.5 Extragerea bit ¸ilor din cheie
Dup˘ a ce am obt ¸inut diferent ¸iala caracteristic˘ a a rundelor, putem construi un atac din
care s˘ a rezulte o parte din bit ¸ii care formeaz˘ a cheia de criptare.
ˆIntr-un sistem de criptare bloc cu Nrunde, vom ataca runda N−1 . Astfel, ˆ ın cazul
ret ¸elei SPN , vom putea extrage bit ¸i din sub-cheia K5atacˆ and a patra rund˘ a.
Pentru o decriptare a textului obt ¸inut dup˘ a ultima rund˘ a, trebuie s˘ a mergem ˆ ın sens
invers: anume, realiz˘ am un XOR ˆ ıntre textul criptat ¸ si sub-cheia ultimei runde – care este
influent ¸at˘ a de diferent ¸ialele nenule – iar apoi trecem datele ˆ ın sens invers prin S-boxuri.
Operat ¸ia XOR o realiz˘ am folosind toate valorile posibile ale sub-cheii.
Rezumˆ and, vom face un XOR ˆ ıntre textul criptat cu toate sub-cheile posibile, dup˘ a
care vom aplica inversele S-boxelor.
Aceast˘ a c˘ autare a cheii poate fi mult redus˘ a dac˘ a lu˘ am numai perechile ”bune”
(perechile pentru care se obt ¸in diferent ¸iale caracteristice).
De exemplu, o pereche ”bun˘ a” a fost obt ¸inut˘ a ˆ ın sect ¸iunea precedent˘ a: ea are U41=
U43= 0000 iar U42¸ siU44cont ¸in diferent ¸iale nenule ( Uijreprezint˘ a intrarea ˆ ın S- boxul
jdin runda i).
104 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Decriptarea este obt ¸inut˘ a pentru toate perechile de mesaje criptate care corespund
perechilor de texte clare avˆ and diferent ¸a de intrare fixat˘ a ∆ α.
Figura 3 traseaz˘ a modalitatea de decriptare pentru diferent ¸iala caracteristic˘ a detaliat˘ a
ˆ ın sect ¸iunea precedent˘ a.
S41 S44 S42 S43S31 S34 S32 S33S21 S24 S22 S23S11 S14 S12 S13∆α= [0000 1011 0000 0000]
K5,5, . . . , K 5,8 K5,13, . . . , K 5,16∆U4,5,…,∆U4,8 ∆U4,13,…∆U4,16
XXXXXXXXXXXXXXXXX
? ??aaaaaaaa
?
Figura 3: Diferent ¸iala caracteristic˘ a, cu ∆ αca diferent ¸˘ a de intrare
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 105
Pentru fiecare sub-cheie posibil˘ a, ai c˘ arei bit ¸i sunt influent ¸at ¸i de diferent ¸ele nenule
din diferent ¸iale, definim cˆ ate un counter. Ace¸ sti counteri sunt incrementat ¸i atunci cˆ and
intrarea ˆ ın ultima rund˘ a coincide cu valoarea prev˘ azut˘ a de diferent ¸iala caracteristic˘ a.
ˆIn final, sub-cheia cu valoare maxim˘ a a counterului ata¸ sat va fi considerat˘ a drept cea
corect˘ a; restul bit ¸ilor din sub-cheie vor fi g˘ asit ¸i cu o c˘ autare prin fort ¸˘ a brut˘ a.
ˆIn exemplul din Figura 2, diferent ¸iala caracteristic˘ a a influent ¸at S- boxurile S42¸ siS44
din ultima rund˘ a; deci – pentru orice pereche de mesaje criptate – ˆ ıncerc˘ am toate cele
256 variante pentru [ K5,5. . . K 5,8, K5,13. . . K 5,16], ¸ si – de cˆ ate ori diferent ¸a la intrarea ˆ ın
ultima rund˘ a determinat˘ a de decriptare este
∆U4= [0000 0110 0000 0110]
va fi incrementat counterul asociat.
6.4.6 Criptanaliza diferent ¸ial˘ a pentru DES
ˆIntr-un astfel de atac se ignor˘ a permutarea init ¸ial˘ a IP¸ si inversa sa (ele nu joac˘ a nici un
rol ˆ ın criptanaliz˘ a). Ne vom m˘ argini la un DES restrˆ ans pe n(n≤16) runde.
Deci textul clar este L0R0, iar cel criptat – LnRn(vom ignora de asemenea inversarea
final˘ a dintre Ln¸ siRn).
Pentru criptanaliza diferent ¸ial˘ a vom considera dou˘ a texte clare L0R0, L∗
0R∗
0¸ si textele
criptate corespunz˘ atoare LnRnrespectiv L∗
nR∗
n.
Diferent ¸ele sunt L0/primeR0/prime=L0R0⊕L∗
0R∗
0¸ siLn/primeRn/prime=LnRn⊕L∗
nR∗
n.
Definit ¸ia 6.1. FieSj(1≤j≤8)unS- box din sistemul de criptare DES . Pentru
orice pereche (Bj, B∗
j)de ¸ siruri de 6bit ¸i, vom defini XOR -ul de intrare pentru Sjprin
Bj/prime=Bj⊕B∗
j, iar XOR -ul de ie¸ sire prin Sj(Bj)⊕Sj(B∗
j).
De remarcat c˘ a un XOR de intrare este o secvent ¸˘ a de 6 bit ¸i, iar un XOR de ie¸ sire
este o secvent ¸˘ a de 4 bit ¸i.
Definit ¸ia 6.2. Pentru orice Bj/prime∈Z6
2se noteaz˘ a ∆(Bj/prime)mult ¸imea perechilor (Bj, B∗
j)
care prin XOR dauB/prime
j.
Observat ¸ia 6.2.
•O mult ¸ime ∆(Bj/prime)cont ¸ine 26= 64 elemente;
•∆(Bj/prime) ={(Bj, Bj⊕Bj/prime)|Bj∈Z6
2}.
Pentru fiecare pereche din ∆( Bj/prime) vom calcula XOR -ul de ie¸ sire al lui Sj¸ si construim
o tabel˘ a de distribut ¸ii ale valorilor obt ¸inute (sunt 64 ie¸ siri pe un spat ¸iu de 24= 16 valori
posibile). Pe aceast˘ a tabel˘ a se va baza atacul de criptanaliz˘ a diferent ¸ial˘ a.
106 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Exemplul 6.2. S˘ a consider˘ am primul S- box S1¸ siXOR -ul de intrare 110100 . Vom
avea:
∆(110100) ={(000000 ,110100) ,(000001 ,110101) , . . . , (111111 ,001011)}.
Pentru fiecare pereche din ∆(110100) vom calcula XOR -ul de ie¸ sire al lui S1. De exemplu,
S1(000000) = E16= 1110 , S1(110100) = 9 16= 1001 deciXOR -ul de ie¸ sire S1al perechii
(000000 ,110100) este0111.
Efectuˆ and acest calcul pentru toate cele 64perechi din ∆(110100) , vom obt ¸ine distribu-
t ¸ia urm˘ atoare a XOR -urilor de ie¸ sire pentru S1:
0000 0001 0010 0011 0100 0101 0110 0111
0 8 16 6 2 0 0 12
1000 1001 1010 1011 1100 1101 1110 1111
6 0 0 0 0 8 0 6
ˆIn Exemplul 6.2 au ap˘ arut numai 8 din cele 16 valori de ie¸ sire posibile. ˆIn general,
dac˘ a se fixeaz˘ a un S- box Sj¸ si un XOR de intrare diferit de 000000, se constat˘ a c˘ a vor
apare aproximativ 75 −80 % din valorile posibile de ie¸ sire.
Definit ¸ia 6.3. Pentru 1≤j≤8¸ si secvent ¸ele Bj/prime, Cj/primede6respectiv 4bit ¸i, definim
INj(Bj/prime, Cj/prime) ={Bj∈Z6
2|Sj(Bj)⊕Sj(Bj⊕Bj/prime) =Cj/prime,
Nj(Bj/prime, Cj/prime) =card(INj(Bj/prime, Cj/prime)).
Distribut ¸ia dat˘ a ˆ ın Exemplul 6.2 d˘ a valorile N1(110100 , C1/prime), C 1/prime∈Z4
2. Toate aceste
valori se g˘ asesc ˆ ın Tabela 5.
Pentru fiecare din cele 8 S- boxuri exist˘ a 64 XOR -uri de intrare posibile; deci ˆ ın total
vor fi 512 date de distribuit, lucru u¸ sor de realizat cu un calculator.
Reamintim c˘ a intrarea ˆ ıntr-un S- box la runda iesteB=E⊕J, unde E=E(Ri−1)
este rezultatul expand˘ arii lui Ri−1, iarJ=Kieste un sub¸ sir reordonat al cheii K.XOR -ul
de intrare (al celor 8 S- boxuri) este deci
B⊕B∗= (E⊕J)⊕(E∗⊕J) =E⊕E∗.
De remarcat c˘ a XOR -urile de intrare nu depind de sub-cheia J, pe cˆ and XOR -urile de
ie¸ sire depind.
6.4. CRIPTANALIZA DIFERENT ¸IAL ˘A 107
XOR de ie¸ sire intr˘ ari posibile
0000
0001 000011 ,001111 ,011110 ,011111 ,101010 ,101011 ,110111 ,111011
0010 000100 ,000101 ,001110 ,010001 ,010010 ,010100 ,011010 ,011011
100000 ,100101 ,010110 ,101110 ,101111 ,110000 ,110001 ,111010
0011 000001 ,000010 ,010101 ,100001 ,110101 ,110110
0100 010011 ,100111
0101
0110
0111 000000 ,001000 ,001101 ,010111 ,011000 ,011101 ,100011 ,101001
101100 ,110100 ,111001 ,111100
1000 001001 ,001100 ,011001 ,101101 ,111000 ,111101
1001
1010
1011
1100
1101 000110 ,010000 ,010110 ,011100 ,100010 ,100100 ,101000 ,110010
1110
1111 000111 ,001010 ,001011 ,110011 ,111110 ,111111
Tabela 5: Distribut ¸ia valorilor intrare/ie¸ sire pentru S1
S˘ a detaliem pe grupuri de cˆ ate 6 bit ¸i, cuvintele cu care se lucreaz˘ a:
B=B1B2B3B4B5B6B7B8, E =E1E2E3E4E5E6E7E8, J =J1J2J3J4J5J6J7J8
ˆIn mod similar se scriu B∗¸ siE∗. S˘ a presupunem acum c˘ a se ¸ stiu valorile Ej¸ siE∗
jpentru
unj(1≤j≤8) dat, precum ¸ si valoarea XOR de ie¸ sire Cj/prime=Sj(Bj)⊕Sj(B∗
j) a lui Sj.
Vom avea
Ej⊕Jj∈INj(Ej/prime, Cj/prime)
unde Ej/prime=Ej⊕E∗
j.
Fie mult ¸imea test jdefinit˘ a astfel:
test j(Ej, E∗
j, Cj/prime) ={Bj⊕Ej|Bj∈INj(Ej/prime, Cj/prime)}
(s-au luat toate XOR -urile lui Ejcu elemente din INj(Ej/prime, Cj/prime)).
Din aceste considerat ¸ii rezult˘ a imediat teorema:
Teorema 6.1. Dac˘ a Ej, E∗
jsunt subsecvent ¸e construite pentru intrarea ˆ ın S- boxul Sj,
iarCj/primeesteXOR -ul de ie¸ sire al lui Sj, atunci bit ¸ii sub-cheii Jjapar ˆ ın test j(Ej, E∗
j, Cj/prime).
Cum se poate remarca, exist˘ a exact Nj(Ej/prime, Cj/prime) secvent ¸e de 6 bit ¸i ˆ ın test j(Ej, E∗
j, Cj/prime);
valoarea corect˘ a Jjeste una din acestea.
108 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Exemplul 6.3. S˘ a consider˘ am E1= 000001 , E∗
1= 110101 , C 1/prime= 1101 .Deoarece
N1(110100 ,1101) ={000110 ,010000 ,010110 ,011100 ,100010 ,101000 ,110010}are8ele-
mente, exist˘ a 8secvent ¸e posibile pentru J1, cumulate ˆ ın test 1(000001 ,110101 ,1101) =
{000111 ,010001 ,010111 ,011101 ,100011 ,100101 ,101001 ,110011}.
Dac˘ a se ia un alt triplet (E1, E∗
1, C1/prime), vom obt ¸ine alt˘ a mult ¸ime test 1cu valori pentru
J1, deci valoarea corect˘ a se va g˘ asi ˆ ın intersect ¸ia lor.
Atacul unui DES definit pe trei runde
S˘ a vedem cum se aplic˘ a aceste idei pentru un DES construit pe 3 runde. ˆIncepem cu o
pereche de texte clare L0R0¸ siL∗
0R∗
0, criptate ˆ ın L3R3respectiv L∗
3R∗
3. Vom avea
R3=L2⊕f(R2, K3) =R1⊕f(R2, K3) =L0⊕f(R0, K1)⊕f(R2, K3).
Construct ¸ia pentru R∗
3este similar˘ a. Deci
R3/prime=L0/prime⊕f(R0, K1)⊕f(R∗
0, K1)⊕f(R2, K3)⊕f(R∗
2, K3).
S˘ a presupunem c˘ a s-a ales R0=R∗
0, deci R0/prime= 00 . . .0.
Atunci f(R0, K1) =f(R∗
0, K1) ¸ si deci R3/prime=L0/prime⊕f(R2, K3)⊕f(R∗
2, K3).
R3/primese poate calcula pe baza textelor criptate, iar L0/prime– pe baza textelor clare; deci se
poate determina f(R2, K3)⊕f(R∗
2, K3) =R3/prime⊕L0/prime.
Avem f(R2, K3) =P(C), f(R∗
2, K3) =P(C∗) unde Crespectiv C∗sunt ie¸ sirile cores-
punz˘ atoare din cele 8 S- boxuri (reamintim, Peste o permutare fixat˘ a din descrierea
sistemului DES ). Deci P(C)⊕P(C∗) =R3/prime⊕L0, de unde
C/prime=C⊕C∗=P−1(R3/prime⊕L0/prime).
Acesta este XOR -ul de ie¸ sire din cele opt S- boxuri, dup˘ a a treia rund˘ a.
R2=L3¸ siR∗
2=L∗
3sunt cunoscute (componente ale textelor criptate); deci se poate
calcula
E=E(L3), E∗=E(L∗
3)
folosind funct ¸ia de expansiune E. Aceste valori sunt intr˘ arile ˆ ın S- boxuri la runda a
treia. Se cunosc deci E, E∗, C/primela a treia rund˘ a ¸ si se poate trece – a¸ sa cum am v˘ azut – la
construct ¸ia mult ¸imilor test 1, test 2, . . . , test 8de valori posibile pentru J1, J2, . . . , J 8.
Un algoritm pentru aceast˘ a metod˘ a este formalizat mai jos. Atacul folose¸ ste mai multe
triplete E, E∗, C/prime. Se utilizeaz˘ a opt tabele de valori ¸ si se determin˘ a astfel cei 48 bit ¸i ai
subcheii K3de la a treia rund˘ a. Cheia de 56 bit ¸i se calculeaz˘ a apoi printr-o c˘ autare
exhaustiv˘ a a celor 28= 256 posibilit˘ at ¸i pentru cei 8 bit ¸i r˘ ama¸ si necunoscut ¸i.
Intrare :L0R0, L∗
0R∗
0, L 3R3, L∗
3R∗
3cuR0=R∗
0.
1. C/prime←P−1(R3/prime⊕L0/prime)
2. E←E(L3), E∗←E(L∗
3)
3.forj:= 1 to8dotest j(Ej, E∗
j, Cj).
6.5. CRIPTANALIZA LINIAR ˘A 109
6.5 Criptanaliza liniar˘ a
Criptanaliza liniar˘ a este – ˆ ımpreun˘ a cu cea diferent ¸ial˘ a – unul din atacurile de baz˘ a
utilizate contra sistemelor de criptare bloc.
Autorul ei este Mitsuru Matsui, care a aplicat-o prima oar˘ a ˆ ın 1992, ca un atac asupra
sistemului de criptare FEAL ([32]). Ulterior, Matsui a publicat un atac similar asupra
sistemului DES , probabil prima criptanaliz˘ a experimental˘ a prezentat˘ a public asupra unui
sistem de criptare bloc ([34],[33],[35]).
Practic, un atac asupra sistemului DES nu este ˆ ıns˘ a viabil, el necesitˆ and 243texte
clare cunoscute.
Ulterior au fost construite diverse rafin˘ ari ale atacurilor prin criptanaliz˘ a liniar˘ a,
folosind aproxim˘ ari liniare multiple sau aproxim˘ ari locale cu expresii neliniare.
6.5.1 Modalitatea general˘ a de atac
Criptanaliza liniar˘ a este un atac cu text clar ales ¸ si folose¸ ste o relat ¸ie liniar˘ a de aproximare
pentru descrierea sistemului de criptare bloc. Fiind dat un num˘ ar suficient de mare de
perechi (text clar, text criptat) se pot obt ¸ine informat ¸ii despre cheie, cu o probabilitate
acceptabil˘ a.
Vom ilustra acest atac folosind aceia¸ si structur˘ a SPN definit˘ a ˆ ın Figura 2 pentru
criptanaliza difererent ¸ial˘ a. El este construit plecˆ and de la prima linie din S1- boxul DES
(privit˘ a ca un 4×4S- box) ¸ si permutarea definit˘ a ˆ ın Tabela 4.
Ideea de baz˘ a este de a aproxima statistic funct ¸ionarea unei port ¸iuni din sistemul de
criptare printr-o expresie liniar˘ a (fat ¸˘ a de operat ¸ia XOR ). O astfel de expresie este de
forma
ai1⊕ai2⊕. . .⊕aiu⊕bj1⊕bj2⊕. . .⊕bjv= 0 (1)
unde aireprezint˘ a al i-lea bit al intr˘ arii α= (a1, a2, . . .), iar bjreprezint˘ a al j-lea bit
al ie¸ sirii β= (b1, b2, . . .).
Scopul criptanalizei liniare este de a determina expresii de forma (1), cu o probabilitate
mare sau mic˘ a de aparit ¸ie (deci cˆ at mai diferit˘ a de 1 /2).
Evident, rezistent ¸a unui sistem de criptare la criptanaliza liniar˘ a este cu atˆ at mai mare
cu cˆ at astfel de relat ¸ii sunt mai put ¸ine. Existent ¸a unei relat ¸ii de tip (1) – cu probabilitate
mare sau mic˘ a – denot˘ a o abilitate sc˘ azut˘ a a sistemului de criptare privind difuzia datelor
criptate.
ˆIn general, dac˘ a alegem aleator valori pentru u+vbit ¸i ¸ si le plas˘ am ˆ ıntr-o relat ¸ie de
tip (1), probabilitatea ca relat ¸ia s˘ a fie verificat˘ a va fi 1 /2. Cu cˆ at o astfel de probabilitate
va fi mai dep˘ artat˘ a de 1 /2, cu atˆ at va fi mai u¸ sor pentru criptanalist s˘ a atace sistemul
folosind relat ¸ia respectiv˘ a.
110 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Dac˘ a o expresie de tip (1) are loc cu probabilitate pLpentru texte clare ¸ si texte criptate
alese aleator, vom nota tendint ¸a1relat ¸iei respective prin /epsilon1L=pL−1/2.
Cu cˆ at magnitudinea tendint ¸ei |pL−1/2|este mai mare, cu atˆ at mai put ¸ine texte clare
va avea nevoie un atac ca s˘ a reu¸ seasc˘ a.
Observat ¸ia 6.3. Dac˘ a pL= 1, atunci expresia liniar˘ a (1)reprezint˘ a ˆ ın totalitate com-
portarea sistemului de criptare; deci acesta nu va asigura nici o securitate.
Dac˘ a pL= 0, atunci (1)reprezint˘ a o relat ¸ie afin˘ a ˆ ın sistemul de criptare, de asemenea
indiciul unei sl˘ abiciuni catastrofice.
Dac˘ a operat ¸ia de adunare folosit˘ a este mod 2(deci XOR ), atunci o funct ¸ie afin˘ a este
complementara unei funct ¸ii liniare. Atˆ at aproxim˘ arile liniare cˆ at ¸ si cele afine, indicate de
pL>1/2respectiv pL<1/2, sunt folosite ˆ ın egal˘ a m˘ asur˘ a de criptanaliza liniar˘ a.
ˆIn mod natural apare ˆ ıntrebarea:
Cum pot fi g˘ asite expresii statistic liniare (deci utilizabile ˆ ın criptanal-
iza liniar˘ a) ?
Evident, problema se pune relativ la componenta neliniar˘ a a sistemelor de criptare, deci
relativ la S- boxuri. Cˆ and evalu˘ am propriet˘ at ¸ile neliniare ale unui S- box, este posibil s˘ a
g˘ asim aproxim˘ ari liniareˆ ıntre seturi de bit ¸i de intrare ¸ si de ie¸ sire din S- box. Ulterior, este
posibil s˘ a concaten˘ am astfel de aproxim˘ ari liniare ale diverselor S- boxuri, astfel ˆ ıncˆ at
s˘ a elimin˘ am bit ¸ii intermediari (aflat ¸i ˆ ın interiorul sistemului de criptare) ¸ si s˘ a obt ¸inem o
expresie liniar˘ a – cu tendint ¸˘ a semnificativ˘ a – ˆ ıntre seturi de bit ¸i din textul clar ¸ si bit ¸i de
intrare ˆ ın ultima rund˘ a.
6.5.2 Lema Piling-Up
FieX1, X 2dou˘ a variabile aleatoare. Relat ¸ia X1⊕X2= 0 este o expresie liniar˘ a, echiva-
lent˘ a cu X1=X2. Similar, X1⊕X2= 1 este o expresie afin˘ a echivalent˘ a cu X1/negationslash=X2.
S˘ a consider˘ am o probabilitate definit˘ a
Pr[X1=i] =/braceleftBigg
p1, dac˘ a i= 0
1−p1dac˘ a i= 1
¸ si
Pr[X2=i] =/braceleftBigg
p2, dac˘ a i= 0
1−p2dac˘ a i= 1
Dac˘ a cele dou˘ a variabile aleatoare sunt independente, atunci
Pr[X1=i, X 2=j] =
p1p2, dac˘ a i= 0, j= 0
p1(1−p2), dac˘ a i= 0, j= 1
(1−p1)p2, dac˘ a i= 1, j= 0
(1−p1)(1−p2),dac˘ a i= 1, j= 1
1ˆ ın englez˘ a bias.
6.5. CRIPTANALIZA LINIAR ˘A 111
¸ si se poate ar˘ ata imediat c˘ a
Pr[X1⊕X2= 0] = Pr[X1=X2] =Pr[X1= 0, X2= 0] + Pr[X1= 1, X2= 1] =
p1p2+ (1−p1)(1−p2)
Pentru a simetriza formulele, introducem o nou˘ a variabil˘ a numit˘ a tendint ¸˘ a definit˘ a
/epsilon1i=pi−1
2, /epsilon1 i∈/bracketleftbigg
−1
2,1
2/bracketrightbigg
Atunci
Pr[Xi= 0] =1
2+/epsilon1i, Pr [Xi= 1] =1
2−/epsilon1i
Lema 6.2. (Piling – up): Fie X1, X2, . . . X nvariabile aleatoare independente ¸ si pentru
1≤i1< i 2< . . . < i k≤n, fie/epsilon1i1,i2,…iktendint ¸a variabilei aleatoare Xi1⊕Xi2⊕. . .⊕Xik.
Atunci
/epsilon1i1,i2,…ik= 2k−1k/productdisplay
j=1/epsilon1ij.
sau – echivalent:
Pr[X1⊕. . .⊕Xk= 0] = 1 /2 + 2k−1k/productdisplay
i=1/epsilon1i
Demonstrat ¸ie. Prin induct ¸ie dup˘ a k. Pentru k= 1 egalitatea este banal˘ a. Pentru k= 2
se verific˘ a u¸ sor relat ¸ia /epsilon1i1,i2= 2/epsilon1i1/epsilon1i2.
Presupunem egalitatea adev˘ arat˘ a pentru k=p¸ si s˘ a o ar˘ at˘ am pentru k=p+ 1. Din
faptul c˘ a tendint ¸a lui Xi1⊕. . .⊕Xipeste 2p−1p/productdisplay
j=1/epsilon1ijrezult˘ a
Pr[Xi1⊕. . .⊕Xip= 0] =1
2+ 2p−1p/productdisplay
j=1/epsilon1ij¸ si
Pr[Xi1⊕. . .⊕Xip= 1] =1
2−2p−1p/productdisplay
j=1/epsilon1ij
De aici putem calcula
Pr[Xi1⊕. . .⊕Xip⊕Xip+1= 0] =
1
2+ 2p−1p/productdisplay
j=1/epsilon1ij
/parenleftbigg1
2+/epsilon1ip+1/parenrightbigg
+
1
2−2p−1p/productdisplay
j=1/epsilon1ij
/parenleftbigg1
2−/epsilon1ip+1/parenrightbigg
=1
2+ 2pp+1/productdisplay
j=1/epsilon1ij.
Corolarul 6.1. Fie/epsilon1i1,i2,…,iktendint ¸a variabilei aleatoare Xi1⊕. . . X ik.
1. Dac˘ a∃jcu/epsilon1ij= 0atunci /epsilon1i1,i2,…,ik= 0.
2. Dac˘ a /epsilon1ij=±1/2,(j= 1, . . . , k )atunci /epsilon1i1,i2,…,ik=±1/2.
Exemplul 6.4. S˘ a consider˘ am patru variabile aleatoare independente X1, X2, X3, X4. Fie
Pr[X1⊕X2= 0] = 1 /2 +/epsilon11,2¸ siPr[X2⊕X3= 0] = 1 /2 +/epsilon12,3.
112 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Suma X1⊕X3poate fi obt ¸inut˘ a adunˆ and X1⊕X2cuX2⊕X3. Deci
Pr[X1⊕X3= 0] = Pr[(X1⊕X2)⊕(X2⊕X3) = 0] .
Deci prin combinarea expresiilor liniare se vor obt ¸ine expresii liniare noi.
Considerˆ and c˘ a variabilele aleatoare X1⊕X2¸ siX2⊕X3sunt independente, putem
aplica lema Piling – Up, pentru a determina
Pr[X1⊕X3= 0] = 1 /2 + 2 /epsilon11,2/epsilon12,3
Deci /epsilon11,3= 2/epsilon11,2/epsilon12,3.
6.5.3 Relat ¸ii de aproximare a S- boxurilor
S˘ a folosim S- boxul 4×4 definit de Figura 1.
Vom lua ca exemplu expresia liniar˘ a a2⊕a3⊕b1⊕b3⊕b4= 0 sau – echivalent
–a2⊕a3=b1⊕b3⊕b4, unde ( a1, a2, a3, a4) este reprezentarea ˆ ın binar a intr˘ arii din
Figura 1, iar ( b1, b2, b3, b4) este reprezentarea binar˘ a a ie¸ sirii. Aplicˆ and la intrare toate
cele 24= 16 valori posibile ¸ si examinˆ and valorile de ie¸ sire corespunz˘ atoare, se poate
observa (din Tabela 6) c˘ a expresia este verificat˘ a pentru 12 din cele 16 cazuri.
Deci tendint ¸a de probabilitate este 12 /16−1/2 = 1 /4.
(a1, a2, a3, a4)(b1, b2, b3, b4)a2⊕a3b1⊕b3⊕b4a1⊕a4a3⊕a4b1⊕b4
(0,0,0,0) (1,1,1,0) 0 0 0 0 1
(0,0,0,1) (0,1,0,0) 0 0 1 1 0
(0,0,1,0) (1,1,0,1) 1 0 0 1 0
(0,0,1,1) (0,0,0,1) 1 1 1 0 1
(0,1,0,0) (0,0,1,0) 1 1 0 0 0
(0,1,0,1) (1,1,1,1) 1 1 1 1 0
(0,1,1,) (1,0,1,1) 0 1 0 1 0
(0,1,1,1) (1,0,0,0) 0 1 1 0 1
(1,0,0,0) (0,0,1,1) 0 0 1 0 1
(1,0,0,1) (1,0,1,0) 0 0 0 1 1
(1,0,1,0) (0,1,1,0) 1 1 1 1 0
(1,0,1,1) (1,1,0,0) 1 1 0 0 1
(1,1,0,0) (0,1,0,1) 1 1 1 0 1
(1,1,0,1) (1,0,0,1) 1 0 0 1 0
(1,1,1,0) (0,0,0,0) 0 0 1 1 0
(1,1,1,1) (0,1,1,1) 0 0 0 0 1
Tabela 6: Exemple de aproxim˘ ari liniare ale unui S- box
6.5. CRIPTANALIZA LINIAR ˘A 113
Similar, pentru relat ¸ia a1⊕a4=b2tendint ¸a de probabilitate este 0, iar pentru a3⊕a4=
b1⊕b4tendint ¸a este 2 /16−1/2 =−3/8.
ˆIn general se pot construi 28= 256 expresii liniare cu ( a1, a2, a3, a4) ¸ si (b1, b2, b3, b4).
Pentru fiecare din ele se poate da o reprezentare uniform˘ a de tipul:
/parenleftBigg4/circleplusdisplay
i=1xi·ai/parenrightBigg
⊕/parenleftBigg4/circleplusdisplay
i=1yi·bi/parenrightBigg
unde xi, yi∈ {0,1},(1≤i≤4) iar operat ¸iile folosite sunt AND (·) ¸ siXOR (⊕).
Vectorii binari ( x1, x2, x3, x4) – numit ¸i sume de intrare ¸ si (y1, y2, y3, y4) (sume de ie¸ sire )
vor fi codificat ¸i prin cifre hexazecimale.
Astfel, fiecare din cele 256 expresii liniare se va scrie ˆ ın mod unic ca o pereche de dou˘ a
cifre hexazecimale.
a1a2a3a4b1b2b3b4
0 0 0 0 1 1 1 0
0 0 0 1 0 1 0 0
0 0 1 0 1 1 0 1
0 0 1 1 0 0 0 1
0 1 0 0 0 0 1 0
0 1 0 1 1 1 1 1
0 1 1 0 1 0 1 1
0 1 1 1 1 0 0 0
1 0 0 0 0 0 1 1
1 0 0 1 1 0 1 0
1 0 1 0 0 1 1 0
1 0 1 1 1 1 0 0
1 1 0 0 0 1 0 1
1 1 0 1 1 0 0 1
1 1 1 0 0 0 0 0
1 1 1 1 0 1 1 1
Exemplul 6.5. Expresia a1⊕a4⊕b2va avea suma de intrare (1,0,0,1)care este 9ˆ ın
hexazecimal, iar suma de ie¸ sire este (0,1,0,0), care este 4ˆ ın hexazecimal. Deci perechea
ata¸ sat˘ a variabilei este (9,4).
Pentru o expresie avˆ and suma de intrare x= (x1, x2, x3, x4) ¸ si suma de ie¸ sire y=
(y1, y2, y3, y4), fie NL(x, y) num˘ arul octet ¸ilor binari ( x1, x2, x3, x4, y1, y2, y3, y4) cu
/parenleftBigg4/circleplusdisplay
i=1xi·ai/parenrightBigg
⊕/parenleftBigg4/circleplusdisplay
i=1yi·bi/parenrightBigg
= 0
Tendint ¸a unei astfel de expresii (alese aleator) este
/epsilon1(x, y) =NL(x, y)−8
16.
114 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
O enumerare complet˘ a a tuturor tendint ¸elor pentru S- boxul folosit de sistemul nostru
de criptare, este dat˘ a de tabela de aproxim˘ ari liniare (pentru a evita fract ¸iile, nu s-a
efectuat ˆ ımp˘ art ¸irea la 16):
0 1 2 3 4 5 6 7 8 9ABCDEF
0+8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0−2−20 0−2+6 +2 +2 0 0+2 +2 0 0
20 0−2−20 0−2−20 0+2 +2 0 0−6+2
30 0 0 0 0 0 0 0+2−6−2−2+2 +2−2−2
40+2 0−2−2−4−20 0−20+2 +2−4+2 0
50−2−20−20+4 +2−20−4+2 0−2−20
60+2−2+4 +2 0 0+2 0−2+2 +4−20 0−2
70−20+2 +2−4+2 0−20+2 0+4 +2 0+2
80 0 0 0 0 0 0 0−2+2 +2−2+2−2−2−6
90 0−2−20 0−2−2−40−2+2 0+4 +2−2
A0+4−2+2−40+2−2+2 +2 0 0+2 +2 0 0
B0+4 0−4+4 0+4 0 0 0 0 0 0 0 0 0
C0−2+4−2−20+2 0+2 0+2 +4 0+2 0−2
D0+2 +2 0−2+4 0+2−4−2+2 0+2 0 0+2
E0+2 +2 0−2−40+2−20 0−2−4+2−20
F0−2−4−2−20+2 0 0−2+4−2−20+2 0
Tabela 7: Tabela de aproxim˘ ari liniare
Exemplul 6.6. Tendint ¸a relat ¸iei liniare a3⊕a4=b1⊕b4(intrare hex 3¸ si ie¸ sire hex 9) este
−6/16 =−3/8; deci probabilitatea ca aceast˘ a relat ¸ie liniar˘ a s˘ a aib˘ a loc este 1/2−3/8 =
1/8.
Din construct ¸ia de mai sus se pot obt ¸ine imediat cˆ ateva propriet˘ at ¸i:
•Probabilitatea ca pentru o intrare 0 s˘ a obt ¸inem o anumit˘ a sum˘ a nevid˘ a de bit ¸i de
ie¸ sire este 1 /2 (deoarece pentru un S- box bijectiv, orice combinat ¸ie liniar˘ a de bit ¸i
de ie¸ sire trebuie s˘ a cont ¸in˘ a un num˘ ar egal de 0 ¸ si 1).
•Dac˘ a suma bit ¸ilor de ie¸ sire este 0, atunci suma bit ¸ilor de intrare este 0; deci o
tendint ¸˘ a +1 /2 ¸ si o valoare +8 ˆ ın Tabela 7. ˆIn consecint ¸˘ a, prima linie din Tabela 7
este 0, cu except ¸ia primului element. Aceea¸ si proprietate o are ¸ si prima coloan˘ a.
•Suma elementelor pe o linie sau coloan˘ a este ±8 (u¸ sor de verificat).
6.5.4 Construirea aproxim˘ arilor liniare pentru un sistem bloc
Odat˘ a ce au fost stabilite aproxim˘ ari liniare pentru S- boxurile unui SPN , putem merge
mai departe, determinˆ and o aproximare liniar˘ a de forma (1) pentru ˆ ıntreg sistemul de
6.5. CRIPTANALIZA LINIAR ˘A 115
criptare bloc. Aceasta se va realiza prin concatenarea aproxim˘ arilor liniare ale S-boxurilor
consecutive.
Dup˘ a ce s-a obt ¸inut o aproximare liniar˘ a bazat˘ a pe bit ¸i din textul clar ¸ si bit ¸i care intr˘ a
ˆ ın ultima rund˘ a a cript˘ arii, vom putea ataca sistemul g˘ asind un sebset de bit ¸i din cheia
folosit˘ a ˆ ın ultima rund˘ a.
Ca ¸ si la criptanaliza diferent ¸ial˘ a, vom ilustra acest procedeu printr-un exemplu.
S˘ a consider˘ am – conform Figurii 4 – aproxim˘ ari liniare pentru S12, S22, S32¸ siS34.
Anume:
S12:a1⊕a3⊕a4=b2cu probabilitate 12 /16 ¸ si tendint ¸˘ a +1 /4;
S22:a2=b2⊕b4cu probabilitate 4 /16 ¸ si tendint ¸˘ a−1/4;
S32:a2=b2⊕b4cu probabilitate 4 /16 ¸ si tendint ¸˘ a−1/4;
S34:a2=b2⊕b4cu probabilitate 4 /16 ¸ si tendint ¸˘ a−1/4.
Reamintim, Ui(Vi) va reprezenta un bloc de 16 bit ¸i care formeaz˘ a intrarea (ie¸ sirea)
dinS- boxuri la runda i, iarUi,j(Vi,j) va representa al j-lea bit din blocul Ui(Vi) (bit ¸ii
sunt numerotat ¸i de la 1 la 16).
Similar, Kiva reprezenta sub-cheia care se combin˘ a prin XOR cu bit ¸ii de intrare ˆ ın
runda i(o except ¸ie: sub-cheia K5se combin˘ a prin XOR cu bit ¸ii de ie¸ sire din runda 4).
Deci U1=P⊕K1unde P= (P1, . . . , P 16) reprezint˘ a textul clar (de 16 bit ¸i). Folosind
aproximarea liniar˘ a de la prima rund˘ a, avem
V1,6=U1,5⊕U1,7⊕U1,8= (P5⊕K1,5)⊕(P7⊕K1,7)⊕(P8⊕K1,8) (2)
cu probabilitate 3 /4.
Aproximarea din runda 2 va da relat ¸ia
V2,6⊕V2,8=U2,6
cu probabilitate 1 /4. Deoarece U2,6=V1,6⊕K2,6, putem g˘ asi o aproximare de forma
V2,6⊕V2,8=V1,6⊕K2,6
cu probabilitate 1 /4.
Combinˆ and aceast˘ a relat ¸ie cu (2) (care are loc cu probabilitate 3 /4), se obt ¸ine
V2,6⊕V2,8⊕P5⊕P7⊕P8⊕K1,5⊕K1,7⊕K1,8⊕K2,6= 0 (3)
cu probabilitate 1 /2 + 2(3 /4−1/2)(1/4−1/2) = 3 /8 (deci o tendint ¸˘ a −1/8) obt ¸inut˘ a
prin aplicarea Lemei 6.2.
Observat ¸ia 6.4. ˆIn toat˘ a aceast˘ a sect ¸iune folosim prezumt ¸ia c˘ a aproxim˘ arile S- boxurilor
sunt independente; ipotetic, aceast˘ a ipotez˘ a nu este foarte corect˘ a, dar practic ea este
valabil˘ a pentru aproape toate sistemele de criptare bloc.
116 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
S41 S44 S42 S43S31 S34 S32 S33S21 S24 S22 S23S11 S14 S12 S13K1,5 K1,7 K1,8
K2,6
K3,6 K3,14
K4,6 K4,8 K4,14 K4,16
K5,5K5,6K5,7K5,8 K5,13 … K 5,16P5P7P8
?
U4,6 U4,8 U4,14 U4,16?
Figura 4: Exemplu de aproximare liniar˘ a
Pentru runda 3, ret ¸inem c˘ a
V3,6⊕V3,8=U3,6
cu probabilitate 1 /4 ¸ si
V3,14⊕V3,16=U3,14
tot cu probabilitate 1 /4.
Deci, pentru c˘ a U3,6=V2,6⊕K3,6¸ siU3,14=V2,8⊕K3,14, aplic˘ am din nou Lema 6.2 ¸ si
obt ¸inem
6.5. CRIPTANALIZA LINIAR ˘A 117
V3,6⊕V3,8⊕V3,14⊕V3,16⊕V2,6⊕K3,6⊕V2,8⊕K3,14= 0 (4)
cu probabilitate 1 /2 + 2(1 /4−1/2)2 = 5 /8 (deci, cu o tendint ¸˘ a +1 /8).
Combin˘ am acum relat ¸iile (3) ¸ si (4) pentru a ˆ ıncorpora toate cele patru aproxim˘ ari ale
S- boxurilor. Vom avea
V3,6⊕V3,8⊕V3,14⊕V3,16⊕P5⊕P7⊕P8⊕K1,5⊕K1,7⊕K1,8⊕K2,6⊕K3,6⊕K3,14= 0.
T ¸inem cont c˘ a U4,6=V3,6⊕K4,6, U 4,8=V3,14⊕K4,8, U 4,14=V3,8⊕K4,14, U 4,16=
V3,16⊕K4,16¸ si putem rescrie aceast˘ a relat ¸ie sub forma
U4,6⊕U4,8⊕U4,14⊕U4,16⊕P5⊕P7⊕P8⊕σK= 0
unde
σK=K1,5⊕K1,7⊕K1,8⊕K2,6⊕K3,6⊕K3,14⊕K4,6⊕K4,8⊕K4,14⊕K4,16
De remarcat c˘ a σKeste o valoare fixat˘ a (0 sau 1), dependent˘ a de cheia sistemului de
criptare.
Aplicˆ and Lema 6.2, aceast˘ a expresie are loc cu probabilitate 1 /2+23(3 /4−1/2)(1/4−
1/2)3 = 15 /32 (deci o tendint ¸˘ a −1/32).
Deoarece σKeste fixat, deducem c˘ a relat ¸ia
U4,6⊕U4,8⊕U4,14⊕U4,16⊕P5⊕P7⊕P8= 0 (5)
are loc cu probabilitate 15 /32 sau (1−15/32) = 17 /32 (dup˘ a cum σK= 0, respectiv 1).
Am obt ¸inut deci o aproximare liniar˘ a a primelor trei runde ale sistemului de criptare,
cu o tendint ¸˘ a 1 /32, remarcabil de bun˘ a pentru construirea unui atac.
S˘ a vedem cum o putem folosi aceast˘ a tendint ¸˘ a pentru a determina o parte din bit ¸ii
cheii.
6.5.5 Extragerea bit ¸ilor cheii
Dup˘ a ce am aflat o aproximare liniar˘ a pentru N−1 runde dintr-un sistem de criptare
cuNrunde, aproximare avˆ and o tendint ¸˘ a semnificativ de mare, putem ataca sistemul
c˘ autˆ and bit ¸i din ultima sub-cheie. ˆIn cazul nostru, avˆ and o aproximare liniar˘ a pentru 3
runde, este posibil s˘ a g˘ asim bit ¸i din subcheia K5.
Vom numi sub-cheie t ¸int˘ a setul de bit ¸i din ultima sub-cheie, asociat ¸i S- boxurilor
active din ultima rund˘ a ( S- boxuri influent ¸ate de bit ¸ii utilizat ¸i ˆ ın aproximarea liniar˘ a
g˘ asit˘ a). Pentru fiecare valoare posibil˘ a a sub-cheii t ¸int˘ a este definit un contor (init ¸ializat
cu zero).
Procesul este similar celui folosit la criptanaliza diferent ¸ial˘ a. Anume, pentru toate
valorile posibile ale sub-cheii t ¸int˘ a, bit ¸ii din textul criptat sunt XOR -at ¸i cu bit ¸ii din
sub-cheia t ¸int˘ a ¸ si rezultatul este trecut ˆ ın sens invers prin S- boxurile corespunz˘ atoare.
Aceast˘ a procedur˘ a este efectuat˘ a pentru perechile (text clar, text criptat) folosite ˆ ın
atac. Dac˘ a aproximarea liniar˘ a este verificat˘ a pentru bit ¸ii din textul clar folosit ¸ si pentru
rezultatul obt ¸inut de procedur˘ a, contorul asociat sub-cheii respective este incrementat.
118 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
Sub-cheia t ¸int˘ a al c˘ arei contor difer˘ a cel mai mult de jum˘ atatea num˘ arului de perechi
de texte folosite, este cel mai probabil cea corect˘ a. Aceasta rezult˘ a din faptul c˘ a pentru
sub-cheia t ¸int˘ a respectiv˘ a, tendint ¸a este maxim˘ a. Dac˘ a valoarea acestui contor este mai
mare sau mai mic˘ a decˆ at 1 /2 depinde de faptul dac˘ a aproximarea folosit˘ a este o relat ¸ie
liniar˘ a sau afin˘ a (lucru care depinde la rˆ andul s˘ au de valorile necunoscute ale bit ¸ilor
sub-cheii folosit ¸i implicit ˆ ın aproximare).
Pentru o sub-cheie incorect˘ a rezultat˘ a dintr-o alegere aleatoare, aproximarea asociat˘ a
este verificat˘ a ˆ ın general cu o probabilitate foarte apropiat˘ a de 1 /2.
Exemplul 6.7. ([24]). Expresia liniar˘ a (5)afecteaz˘ a intr˘ arile ˆ ın S- boxurile S42¸ siS44
din ultima rund˘ a. Deci, pentru fiecare pereche (text clar, text criptat) ales pentru atac,
vom ˆ ıncerca toate cele 28= 256 valori ale sub-cheii t ¸int˘ a [K5,5, . . . , K 5,8, K5,13, . . . , K 5,16].
Pentru fiecare valoare a sub-cheii t ¸int˘ a vom incrementa contorul respectiv ori de cˆ ate
ori relat ¸ia (5)este verificat˘ a (valorile [U4,5, . . . , U 4,8, U4,13, . . . , U 4,16]sunt determinate tre-
cˆ and datele ˆ ın sens invers prin sub-cheia t ¸int˘ a ¸ si S- boxurile S24¸ siS44).
Contorul care difer˘ a cel mai mult de jum˘ atate din num˘ arul de perechi (text clar, text
criptat) folosite ˆ ın atac va indica sub-cheia t ¸int˘ a prezumtiv corect˘ a. Valorile bit ¸ilor din
sub-cheie folosit ¸i ˆ ın calculul lui σKvor indica dac˘ a tendint ¸a este pozitiv˘ a sau negativ˘ a.
Cˆ and σK= 0, aproximarea liniar˘ a (5)va servi ca estimare cu probabilitate <1/2, iar
cˆ and σK= 1, relat ¸ia (5)va avea loc cu probabilitate >1/2.
K5,5. . . K 5,8, K5,13. . . K 5,16|tendinta|K5,5. . . K 5,8, K5,13. . . K 5,16|tendinta|
1C 0.0031 2A 0.0044
1D 0.0078 2B 0.0186
1E 0.0071 2C 0.0094
1F 0.0170 2D 0.0053
2 0 0.0025 2E 0.0062
2 1 0.0220 2F 0.0133
2 2 0.0211 3 0 0.0027
2 3 0.0064 3 1 0.0050
2 4 0.0336 3 2 0.0075
2 5 0.0106 3 3 0.0162
2 6 0.0096 3 4 0.0218
2 7 0.0074 3 5 0.0052
2 8 0.0224 3 6 0.0056
2 9 0.0054 3 7 0.0048
Tabela 8. Rezultate experimentale pentru un atac liniar
ˆIn [24] este simulat un atac folosind 10000 perechi cunoscute (text clar, text crip-
tat) ¸ si urmˆ and procedura de criptare pentru valorile sub-cheii part ¸iale [K5,5, . . . , K 5,8] =
0010 ( hex2)respectiv [K5,13, . . . , K 5,16] = 0100 ( hex4). Contorul care difer˘ a cel mai mult
6.5. CRIPTANALIZA LINIAR ˘A 119
de valoarea 5000 corespunde – a¸ sa cum este de a¸ steptat – valorii sub-cheii t ¸int˘ a [2,4]hex,
confirmˆ and c˘ a atacul a g˘ asit corect bit ¸ii respectivi ai cheii.
Tabela 8prezint˘ a doar part ¸ial rezultatele relative la contori (un tabel complet va avea
256linii, cˆ ate una pentru fiecare valoare posibil˘ a a sub-cheii t ¸int˘ a ). Valorile din tabel
indic˘ a magnitudinea tendint ¸ei, conform formulei |tendinta|=|cont−5000|/10000 , unde
”cont” corespunde contorului asociat valorii respective date sub-cheii t ¸int˘ a.
Dup˘ a cum se vede, cea mai mare tendint ¸˘ a apare pentru valoarea
[K5,5. . . K 5,8, K5,13. . . K 5,16] = [2 ,4],
rezultat care r˘ amˆ ane valabil pentru toat˘ a tabela cu 256valori.
Valoarea 0.0336 g˘ asit˘ a experimental este foarte apropiat˘ a de valoarea estimat˘ a 1/32 =
0.03125 . De remarcat c˘ a ˆ ın tabel apar ¸ si alte valori destul de mari ale tendint ¸ei (de¸ si
teoretic, ele ar trebui s˘ a fie foarte apropiate de zero). Ele rezult˘ a – printre altele – din
alegerea aleatoare a perechilor de test, a propriet˘ at ¸ilor particulare ale S- boxurilor, a
impreciziei ipotezei de independent ¸˘ a (cerut˘ a de Lema 6.2).
6.5.6 Criptanaliza liniar˘ a pentru DES
Cea mai bun˘ a aproximare liniar˘ a pentru un S- box din DES este
a2⊕b1⊕b2⊕b3⊕b4= 0
asociat˘ a lui S5. Aceast˘ a relat ¸ie are probabilitatea 12 /64.
Dac˘ a se analizeaz˘ a componentele liniare ale funct ¸iei f, va rezulta c˘ a aceast˘ a relat ¸ie
conduce la aproximarea
a15⊕f(α, K)7⊕f(α, K)18⊕f(α, K)24⊕f(α, K)29⊕K22= 0 (6)
avˆ and tot probabilitatea 16 /24. Relat ¸ia (6) poate fi folosit˘ a cu succes pentru un atac
contra sistemului DES cu 3 runde.
Pentru a ataca un DES complet (cu 16 runde) sunt folosite aproxim˘ arile liniare:
a15⊕f(X, K )7⊕f(X, K )18⊕f(X, K )24⊕f(X, K )29⊕K22= 0
a27⊕a28⊕a30⊕a31⊕f(X, K )15⊕K42⊕K43⊕K45⊕K46= 0
a29⊕f(X, K )15⊕K44= 0
a15⊕f(X, K )7⊕f(X, K )18⊕f(X, K )24⊕K22= 0
a12⊕a16⊕f(X, K )7⊕f(X, K )18⊕f(X, K )24⊕K19⊕K23= 0
Atacul unui DES ˆ ın3runde
Pentru atacul unui DES ˆ ın 3 runde vom folosi structura din Figura 5 (care define¸ ste un
astfel de sistem DES simplificat), ˆ ımpreun˘ a cu aproximarea (6).
120 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
k
??
?f +
kf +?
? ?
k+?
? ?fK1
K2
K3α.H α.L
X2
X2
β.H β.L
Figure 5: Structura unui DES cu 3 runde
Ele conduc la relat ¸ia
α.L 15⊕(α.H 7⊕X27)⊕(α.H 18⊕X218)⊕(α.H 24⊕X224)⊕(α.H 29⊕X229)⊕K122= 0
avˆ and probabilitatea tot 12 /64 (s-a notat sub-cheia de la runda icuKi).
Bitul K122din cheie este constant ¸ si poate fi eliminat din relat ¸ie (el doar face distinct ¸ia
dintre valorile de probabilitate 12 /64 sau 1−12/64, diferent ¸˘ a care nu ne intereseaz˘ a).
De remarcat c˘ a blocul X2 trece neschimbat prin runda a doua, deci va fi o intrare
ˆ ın ultima rund˘ a. Rezult˘ a c˘ a va trebui s˘ a parcurgem aceast˘ a rund˘ a ˆ ın sens invers ¸ si s˘ a
determin˘ am cei 4 bit ¸i din X2 care apar ˆ ın relat ¸ia (6). Din Figura 5 avem
X2 =β.H⊕f(β.L, K 3),
unde singura necunoscut˘ a este sub-cheia K3.
Trebuie s˘ a g˘ asim cei patru bit ¸i [ X27, X218, X224, X229] folosind doar o sub-cheie. Dac˘ a
studiem funct ¸ia f, vedem c˘ a ace¸ sti bit ¸i apar dup˘ a o permutare ¸ si o trecere prin S- boxuri.
Cum sunt numai 4 bit ¸i, ei nu pot ie¸ si decˆ at din maxim 4 S- boxuri diferite. Pentru a
calcula fiecare din aceste S- boxuri sunt necesari 6 bit ¸i din cheie. Deci, ˆ ın total sunt
necesari 24 bit ¸i din sub-cheia K3, pentru a g˘ asi cei patru bit ¸i din X2.
Folosind o c˘ autare exhaustiv˘ a vom lua toate cele 224valori posibile ale bit ¸ilor din
sub-cheie – pentru toate perechile (text clar, text criptat) – ¸ si vom verifica dac˘ a relat ¸ia
(6) este verificat˘ a. Valorile pentru care (6) se verific˘ a ˆ ın minim jum˘ atate din cazuri, dau
bit ¸ii probabil corect ¸i din K3.
6.5. CRIPTANALIZA LINIAR ˘A 121
Atacul unui DES ˆ ın16runde
Pentru a ataca un sistem DES complet vor fi necesare toate cele cinci relat ¸ii descrise
anterior. Utilizarea lor ca aproxim˘ ari ale funct ¸iilor fpentru un DES redus la 15 runde,
conduce la aproximarea liniar˘ a:
α.H[7,8,24]⊕α.L[12,16]⊕β.H15[7,18,24,29]⊕β.L15
15⊕σkey= 0 (7)
unde β.L15¸ siβ.H15sunt componentele stˆ anga/dreapta ale textului criptat prin acest
DES redus, iar σkeyeste o valoare fixat˘ a, rezultat˘ a printr-un XOR ˆ ıntre mai mult ¸i bit ¸i
de cheie din diverse runde. Conform cu Matsui, aceasta este cea mai bun˘ a aproximare a
unui DES ˆ ın 15 runde, iar tendint ¸a ei este 1 .19−22.
Putem extinde acest DES redus la un sistem DES normal, pe 16 runde, prin ad˘ au-
garea unei ultime runde.
Deoarece runda 15 nu va mai fi ultima, va trebui s˘ a invers˘ am sub-blocurile β.L15¸ si
β.H15. S˘ a not˘ am β.H15=X.L15¸ siβ.L15=X.H15.
Vom obt ¸ine din (7) urm˘ atoarea aproximare (omit ¸ˆ and σkey):
α.H[7,8,24]⊕α.L[12,16]⊕X.L15[7,18,24,29]⊕X.H15
15= 0 (8)
Relat ¸ia (8) va fi aproximarea care trebuie verificat˘ a dup˘ a trecerea ˆ ın sens invers prin
ultima rund˘ a (a 16-a) din DES .
Fieβ.L¸ siβ.H componentele stˆ anga/dreapta ale textului criptat obt ¸inut dup˘ a runda
16. Putem trece prin ultima rund˘ a ˆ ın sens invers, pentru a g˘ asi blocurile X.L15respectiv
X.H15de intrare ˆ ın ultima rund˘ a. Din construct ¸ia sistemului DES avem:
X.L15=β.L
¸ si
X.H15=β.H⊕f(X.L15, K16) = β.H⊕f(β.L, K 16)
ˆInlocuind ˆ ın (8), putem verifica dac˘ a aproximarea respectiv˘ a are loc pentru o sub-cheie
K16 dat˘ a, verificˆ and pur ¸ si simplu egalitatea
α.H[7,18,24]⊕α.L[12,16]⊕β.L[7,18,24,29]⊕β.H15
15⊕f(β.L, K 16) 15= 0
Singura component˘ a care nu este dat˘ a de o pereche (text clar, text criptat) folosit˘ a ˆ ın
atac, este bitul f(β.L, K 16) 15. Acest bit este afectat de un singur S- box al lui f, deci
sunt necesari numai 6 bit ¸i din K16 pentru a verifica egalitatea (8) (remintim, S- boxurile
DES folosesc intr˘ ari de 6 bit ¸i).
Putem obt ¸ine ˆ ın acest fel 6 bit ¸i din cheie. Restul bit ¸ilor se vor obt ¸ine folosind eventual
un atac prin fort ¸˘ a brut˘ a.
ˆIn [59] Matsui folose¸ ste simetria rundelor DES pentru a g˘ asi alt˘ a aproximare liniar˘ a
similar˘ a cu (7), avˆ and aceea¸ si tendint ¸˘ a. Pe baza ei se pot g˘ asi alt ¸i 6 bit ¸i din cheie. Deci,
ˆ ın total pot fi descoperit ¸i 12 bit ¸i din cheie. ˆIn [34], Matsui ˆ ımbun˘ at˘ at ¸e¸ ste algoritmul,
122 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
folosind o aproximare pentru un DES pe 14 runde, obt ¸inˆ and ˆ ın final 26 bit ¸i din sub-cheia
K16 (care are ˆ ın total 48 bit ¸i).
Dup˘ a estimarea lui Matsui, atacul originar necesit˘ a 247perechi (text clar, text criptat)
pentru a avea succes cu probabilitate mare, iar atacul ˆ ımbun˘ at˘ at ¸it reduce acest num˘ ar
la 243perechi. Cercet˘ ari experimentale ulterioare ([26]) sugereaz˘ a c˘ a sunt suficiente 241
perechi pentru ca atacul ˆ ımbun˘ at˘ at ¸it al lui Matsui s˘ a dea rezultate.
6.6 Comparare ˆ ıntre criptanaliza diferent ¸ial˘ a
¸ si liniar˘ a
ˆIntre cele dou˘ a tipuri de criptanaliz˘ a exist˘ a multe similarit˘ at ¸i remarcabile. Astfel:
•Diferent ¸ialele caracteristice corespund aproxim˘ arilor liniare. Tabelele de distribut ¸ie
a diferent ¸elor sunt ˆ ınlocuite cu tabelele de aproximare liniar˘ a.
•Regula de combinare a diferent ¸ialelor caracteristice: ”substituie diferent ¸ele ¸ si ˆ ınmul-
t ¸e¸ ste probabilit˘ at ¸ile” corespunde regulii de combinare a aproxim˘ arilor liniare (Lema
piling-up): ”substituie elementele comune ¸ si ˆ ınmult ¸e¸ ste tendint ¸ele”.
•Algoritmii de c˘ autare pentru cea mai bun˘ a caracteristic˘ a sau cea mai bun˘ a aproxi-
mare liniar˘ a sunt ˆ ın esent ¸˘ a identici.
Cele mai importante distinct ¸ii ˆ ıntre cele dou˘ a metode de atac sunt:
•Criptanaliza diferent ¸ial˘ a lucreaz˘ a cu blocuri de bit ¸i, ˆ ın timp ce criptanaliza liniar˘ a
lucreaz˘ a ˆ ın esent ¸˘ a cu un singur bit.
•Tendint ¸a unei aproxim˘ ari liniare este un num˘ ar cu semn. Deci, fiind date dou˘ a
aproxim˘ ari cu acelea¸ si structuri de intrare ¸ si ie¸ sire, aceia¸ si probabilitate, dar semne
opuse, aproximarea rezultat˘ a va avea tendint ¸a zero (datorit˘ a faptului c˘ a cele dou˘ a
aproxim˘ ari se vor anula reciproc).
6.7 Exercit ¸ii
6.1. FieS- boxul πS:{0,1}3−→{ 0,1}3definit prin tabela
x 0 1 2 3 4 5 6 7
πS(x)0 2 3 4 5 6 7 1
Se dau dou˘ a mesaje s1, s2∈{0,1}3. S˘ a se afle cheia k∈{0,1}3¸ stiind c˘ a
s1⊕k= 5, s 2⊕k= 3, π S(s1)⊕πS(s2) = 2 .
6.7. EXERCIT ¸II 123
6.2. S˘ a se construiasc˘ a aproxim˘ ari liniare pentru S- boxul din exercit ¸iul precedent.
6.3. FieX1, X2, X3variabile aleatoare independente cu valori ˆ ın {0,1}de tendint ¸e /epsilon11, /epsilon12
respectiv /epsilon13. Demonstrat ¸i c˘ a X1⊕X2¸ siX2⊕X3sunt indepedente dac˘ a ¸ si numai dac˘ a
/epsilon11= 0, /epsilon13= 0sau/epsilon12=±1/2.
6.4. Pentru fiecare din cele opt S- boxuri DES calculat ¸i tendint ¸a variabilei aleatoare
X2⊕Y1⊕Y2⊕Y3⊕Y4.
6.5.S- boxul DES S4are cˆ ateva propriet˘ at ¸i specifice:
1. Ar˘ atat ¸i c˘ a a doua linie din S4poate fi obt ¸inut˘ a din prima linie folosind operat ¸ia
(y1, y2, y3, y4)−→(y2, y1, y4, y3)⊕(0,1,1,0)
2. Ar˘ atat ¸i c˘ a orice linie din S4poate fi transformat˘ a ˆ ın orice alt˘ a linie printr-o operat ¸ie
similar˘ a.
6.6. FieπS:{0,1}m−→{ 0,1}nunS- box. Demonstrat ¸i c˘ a:
1.NL(0,0) = 2m;
2.NL(a,0) = 2m−1,∀a∈[0,2m−1];
3.2m−1/summationdisplay
a=02n−1/summationdisplay
b=0NL(a, b)∈{2n+2m−1,2n+2m−1+ 2n+m−1}.
6.7. UnS- box πS:{0,1}m−→{ 0,1}neste ”balansat” dac˘ a
|πs−1(y)|= 2n−m
pentru orice y∈{0,1}n.
Demonstrat ¸i urm˘ atoarele afirmat ¸ii despre NLpentru un S- box balansat:
1.NL(0, b) = 2m−1,∀b∈[0,2n−1];
2.∀a∈[0,2m−1],2n−1/summationdisplay
b=0NL(a, b) = 2m+n−1−2n−1+i2n
unde ieste un num˘ ar ˆ ıntreg din intervalul [0,2m−n].
6.8. FieS- boxul 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 C6 3 D A 5E7F B 9 0
Determinat ¸i tabela de aproximat ¸ie liniar˘ a.
124 CAPITOLUL 6. ATACURI ASUPRA SISTEMELOR DE CRIPTARE BLOC
6.9. Fie un sistem de criptare P=C=Kcare asigur˘ a un secret perfect; deci, din
eK(α) =eK1(α)rezult˘ a K=K1. Not˘ amP=Y={β1, β2, . . . , β N}. Fie αun bloc de text
clar fixat. Definim funct ¸ia g:Y−→Ypring(β) =eβ(α). Definim un graf orientat Γ
avˆ and ca noduri mult ¸imea 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 Tun parametru de timp fixat. Consider˘ am o mult ¸ime Z={γ1, . . . , γ m}⊆Y,
astfel ca pentru orice βi∈Y, β ieste ˆ ıntr-un ciclu de lungime cel mult T, sau
exist˘ a un element γj/negationslash=βiastfel c˘ a distant ¸a de la βilaγ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 complexitateO(N/T).
3. Pentru fiecare γ−j∈Z, definim g−1(γj)ca fiind acel element βiastfel c˘ a gT(β−i) =
γj, unde gTeste funct ¸ia gaplicat˘ a de Tori.
Construit ¸i tabela Xa perechilor (γj, g−1(γj)), ordonate dup˘ a prima coordonat˘ a.
Un algoritm care g˘ ase¸ ste cheia Kastfel ca β=eK(α), este urm˘ atorul:
1. β 0←β;
2. flag←True ;
3.while g(β)/negationslash=β0do
3.1.if∃j β=γjandflagthen
3.1.1. β−→g−1(γj)
3.1.2. flag−→False
else
3.1.3. β−→g(β);
3.2. K =β.
Ar˘ atat ¸i c˘ a el determin˘ a Kˆ ın maxim Tetape (compromisul spat ¸iu – timp este deci
O(N)).
4. Dat ¸i un algoritm care construie¸ ste o mult ¸ime Zˆ ın timpO(NT), f˘ ar˘ a a folosi tablouri
de m˘ arine N.
Capitolul 7
Sisteme de criptare cu cheie public˘ a
7.1 Considerat ¸ii generale
ˆIn sistemele de criptare clasice, Alice ¸ siBobˆ ı¸ si aleg o cheie secret˘ a Kcare define¸ ste
regulile de criptare ( eK) ¸ si decriptare ( dK).ˆIn aproape toate cazurile dK¸ sieKcoincideau
sau se puteau deduce imediat una din alta. Astfel de sisteme sunt numite sisteme cu
cheie privat˘ a (sau sisteme simetrice ) deoarece publicarea lui eKface sistemul extrem de
vulnerabil.
Un punct slab al sistemelor cu cheie privat˘ a este acela c˘ a necesit˘ a o comunicare pre-
alabil˘ a a cheii ˆ ıntre Alice ¸ siBobprintr-un canal sigur, ˆ ınainte de transmiterea mesajului
criptat. Practic, ˆ ın condit ¸iile cererii tot mai mari de securizare a comunicat ¸iilor, acest
lucru este din ce ˆ ın ce mai dificil de realizat.
Obiectivul sistemelor de criptare cu cheie public˘ a este acela de a face ”imposibil”
(asupra acestui termen vom reveni) de obt ¸inut cheia dKplecˆ and de la eK. Astfel, regula
de criptare eKpoate fi f˘ acut˘ a public˘ a, fiind accesibil˘ a oricui. Avantajul const˘ a ˆ ın faptul
c˘ aAlice (sau oricare alt˘ a persoan˘ a) poate trimite lui Bob un mesaj criptat cu eKf˘ ar˘ a
a intra ˆ ın prealabil ˆ ın contact direct. Bob este singura persoan˘ a capabil˘ a s˘ a decripteze
textul, utilizˆ and informat ¸ia sa secret˘ a dK.
Ideea de sistem de criptare cu cheie public˘ a apare ˆ ın 1976 ¸ si este prezentat˘ a de Diffie ¸ si
Hellman (vezi [17])1. De atunci au ap˘ arut diverse astfel de sisteme, a c˘ aror securitate este
bazat˘ a pe probleme calculatorii ( NP complete). Cele mai cunoscute sisteme de criptare
cu cheie public˘ a sunt:
•Sistemul RSA: se bazeaz˘ a pe dificultatea descompunerii ˆ ın factori primi a numerelor
mari (de sute de cifre). Este sistemul cel mai larg utilizat ˆ ın acest moment.
1Se pare c˘ a prima idee de cheie public˘ a este schit ¸at˘ a ˆ ın ianuarie 1970 de c˘ atre britanicul James
Ellis – membru ˆ ın Communication-Electronic Security Group – ˆ ın articolul The possibility of non-secret
encryption . Informat ¸ia este f˘ acut˘ a public˘ a de c˘ atre British Government Communications Headquarters
abia in 1997.
125
126 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
•Sistemul El Gamal : se bazeaz˘ a pe dificultatea calculului logaritmului discret ˆ ıntr-un
corp finit.
•Sistemul Merkle – Hellman : primul sistem definit cu cheie public˘ a, bazat pe problema
{0,1}a rucsacului .
•Sistemul McEliece : este bazat pe teoria algebric˘ a a codurilor, decodificarea unui cod
liniar fiind de asemenea o problem˘ a NP – complet˘ a.
•Curbe eliptice : Sunt sisteme de criptare care ˆ ı¸ si desf˘ a¸ soar˘ a calculele pe mult ¸imea
punctelor unei curbe eliptice (ˆ ın locul unui inel finit Zn).
7.2 Funct ¸ii neinversabile
O observat ¸ie important˘ a este aceea c˘ a un sistem cu cheie public˘ a nu este sigur ˆ ın mod
necondit ¸ionat; oricine – putˆ and s˘ a efectueze cript˘ ari – are posibilitatea s˘ a g˘ aseasc˘ a anu-
mite puncte slabe care s˘ a ˆ ıi permit˘ a s˘ a ¸ si decripteze mesajele. Ideea de baz˘ a folosit˘ a este
aceea de funct ¸ie neinversabil˘ a . S˘ a clarific˘ am put ¸in acest aspect.
Exemplul 7.1. Ne putem imagina u¸ sor str˘ azile cu sens unic dintr-un ora¸ s. Astfel, este
u¸ sor ca mergˆ and pe astfel de str˘ azi s˘ a ajungi de la punctul Ala punctul B, dar este
imposibil s˘ a ajungi de la BlaA.ˆIn acest mod, criptarea este privit˘ a ca direct ¸ia A→B;
de¸ si este foarte u¸ sor de parcurs drumul ˆ ın aceast˘ a direct ¸ie, nu te pot ¸i ˆ ıntoarce ˆ ınapoi spre
A(adic˘ a s˘ a decriptezi mesajul).
Exemplul 7.2. S˘ a consider˘ am cartea de telefon a unui ora¸ s mare2; cu ajutorul ei este
foarte u¸ sor 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 o
cre¸ stere exagerat˘ a a timpului.
Aceasta d˘ a o sugestie de construct ¸ie a unui sistem de criptare cu cheie public˘ a. Cripta-
rea 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 constitui criptarea. Sistemul este homofonic; dou˘ a aparit ¸ii diferite ale aceleia¸ si litere
vor fi codificate foarte probabil cu numere diferite.
De exemplu, textul clar SOLIST se poate cripta astfel:
2O carte de telefon expirat˘ a va duce la cre¸ sterea dificult˘ at ¸ii decript˘ arii ilegale.
7.2. FUNCT ¸II NEINVERSABILE 127
S Simion Pavel 6394502
O Olaru S ¸tefan 7781594
L Lambru Stelian 6300037
I Ilie Romeo 3134971
S Solovean Raluca 6281142
T Tecuceanu Paul 3359962
Deci, textul criptat va fi
639450 277815 946300 037313 497162 811423 359962 .
De remarcat c˘ a metoda este nedeterminist˘ a; din acela¸ si text clar se pot obt ¸ine enorm
de multe texte criptate. Pe de-alt˘ a parte, orice text criptat conduce la un text clar unic.
Bob va avea la dispozit ¸ie pentru decriptare o carte de telefon ordonat˘ a cresc˘ ator dup˘ a
numere. Aceasta ˆ ıi va permite s˘ a decripteze mesajele cu un algoritm de complexitate
O(log n ).
ˆIn general, o funct ¸ie neinversabil˘ a ftrebuie s˘ a verifice dou˘ a condit ¸ii:
•Fiind dat x,f(x) este u¸ sor de calculat;
•Calculul lui xdinf(x) este imposibil.
De remarcat c˘ a, din punct de vedere strict matematic, nu se cunosc astfel de funct ¸ii. A
demonstra c˘ a exist˘ a funct ¸ii neinversabile este echivalent cu a demonstra relat ¸ia P/negationslash=NP,
conjectur˘ a care st˘ a la baza ˆ ıntregii teorii criptografice (a se vedea [65], [66]). De aceea,
termenii folosit ¸i sunt relativi la complexitatea calculatorie. Astfel, o problem˘ a este:
1.u¸ soar˘ a – dac˘ a se poate rezolva cu un algoritm cel mult liniar;
2.grea– dac˘ a se poate rezolva cu un algoritm polinomial neliniar;
3.imposibil˘ a – dac˘ a esteNP – complet˘ a.
Am listat la ˆ ınceput o serie de probleme NP – complete care stau la baza principalelor
sisteme de criptare cu cheie public˘ a.
Exemplul 7.3. S˘ a consider˘ am ”problema rucsacului” (a se vedea sistemul de criptare
Merkle Hellman prezentat ˆ ın Capitolul 11). Ea const˘ a dintr-un vector A= (a1, a2, . . . , a n)
cunelemente numere ˆ ıntregi, pozitive, distincte, ¸ si un num˘ ar ˆ ıntreg pozitiv k. Trebuiesc
aflat ¸i acei aidinA(dac˘ a exist˘ a) a c˘ aror sum˘ a este k. Numele intuitiv dat problemei este
evident. De exemplu, fie
A= (43 ,129,215,473,903,302,561,1165,696,1523) ¸ sik= 3231 .
Se determin˘ a 3231 = 129 + 473 + 903 + 561 + 1165 , care este o astfel de solut ¸ie (vom
da mai tˆ arziu o definit ¸ie formal˘ a riguroas˘ a a problemei).
ˆIn principiu o solut ¸ie se poate g˘ asi parcurgˆ and sistematic toate submult ¸imile lui A¸ si
verificˆ and dac˘ a suma elementelor lor este k.ˆIn cazul de sus, aceasta ˆ ınseamn˘ a 210−1 =
1023 submult ¸imi (f˘ ar˘ a mult ¸imea vid˘ a), dimensiune acceptabil˘ a ca timp de lucru.
128 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Ce se ˆ ıntˆ ampl˘ a ˆ ıns˘ a dac˘ a Aare cˆ ateva sute de componente ? ˆIn acest caz se cunoa¸ ste
faptul c˘ a problema rucsacului este NP – complet˘ a.
Cu ajutorul lui Ase poate defini o funct ¸ie fastfel:
Fiex∈[0,2n−1];xpoate fi reprezentat ˆ ın binar ca un cuvˆ ant de lungime n(com-
pletˆ and eventual ˆ ın fat ¸˘ a cu 0- uri). f(x)va fi num˘ arul obt ¸inut din Aprin ˆ ınsumarea
tuturor numerelor aiaflate pe pozit ¸iile marcate cu 1ˆ ın reprezentarea binar˘ a a lui x.
Formal,
f(x) =A·BT
x
unde Bxeste 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 nbit ¸i (eventual ultimul
bloc este completat la sfˆ ar¸ sit cu zerouri). Fiecare bloc rezultat este apoi criptat calculˆ and
valoarea corespunz˘ atoare a funct ¸iei f.
Pentru alfabetul latin sunt suficient ¸i 5bit ¸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−00010
C−00011 D−00100 E−00101
F−00110 G−00111 H−01000
I−01001 J−01010 K−01011
L−01100 M−01101 N−01110
O−01111 P−10000 Q−10001
R−10010 S−10011 T−10100
U−10101 V−10110 W−10111
X−11000 Y−11001 Z−11010
S˘ a consider˘ am un text clar; FLOARE DE COLT de exemplu. Cum fiecare caracter se
codific˘ a ˆ ın 5bit ¸i, ˆ ın fiecare bloc intr˘ a dou˘ a caractere:
FL OA RE D E CO LT.
Codificˆ and cu ajutorul vectorului rucsac Adefinit anterior, se obt ¸in ¸ sapte blocuri de
cˆ ate 10bit ¸i:
0011001100 0111100001 1001000101 0000000100 0000000101 0001101111 0110010100
care conduc la textul criptat:
(2414 ,3243,3204,1165,1118,5321,1811) .
S˘ a consider˘ am sistemul de criptare definit ˆ ın Exemplul 7.3. Dac˘ a ˆ ıl privim ca un
sistem clasic (cu cheie privat˘ a), criptanalistul trebuie s˘ a afle vectorul de baz˘ a A¸ si apoi s˘ a
rezolve problema rucsacului.
7.3. TRAPA SECRET ˘A 129
Dac˘ a el folose¸ ste un atac cu text clar ales, ˆ ıl va afla u¸ sor pe A: este suficient s˘ a trimit˘ a
ntexte clare cu cˆ ıte un singur 1 iar restul 0. Problema apare ˆ ın momentul rezolv˘ arii
problemei rucsacului; aici atˆ at Bobcˆ at ¸ si Oscar sunt pu¸ si ˆ ın fat ¸a acelaia¸ si probleme NP
– complete. Ori, practic, doar Oscar trebuie s˘ a rezolve o problem˘ a dificil˘ a, nu ¸ si Bob.
O alt˘ a problem˘ a ridicat˘ a de acest sistem de criptare: este obligatoriu ca un text criptat
s˘ a determine ˆ ın mod unic un text clar. Aceasta ˆ ınseamn˘ a c˘ a nu trebuie s˘ a existe dou˘ a
submult ¸imi ale lui Acare s˘ a aib˘ a aceea¸ si sum˘ a. Astfel, dac˘ a se ia A= (17 ,103,50,81,33),
textul criptat (131 ,33,100,234,33) poate fi decriptatˆ ın dou˘ a moduri: SAUNA ¸ si FAUNA.
7.3 Trapa secret˘ a
Pentru ca Bob s˘ a nu fie pus ˆ ın acea¸ si situat ¸ie ca ¸ si Oscar , el trebuie s˘ a dispun˘ a de
un procedeu care s˘ a ˆ ıi permit˘ a s˘ a transforme problema NP – complet˘ a public˘ a, ˆ ıntr-o
problem˘ a u¸ soar˘ a. Acest procedeu este numit trap˘ a secret˘ a .ˆIn primul exemplu, trapa
secret˘ a era cartea de telefon ordonat˘ a dup˘ a numerele de telefon, nu dup˘ a abonat ¸i. S˘ a
vedem care este trapa secret˘ a ˆ ın sistemul de criptare definit ˆ ın Exemplul 7.3:
Exemplul 7.4. Sunt clase de probleme ale rucsacului u¸ sor de rezolvat; una din ele o
formeaz˘ a vectorii cu cre¸ stere mare.
Spunem c˘ a vectorul rucsac A= (a1, a2, . . . , a n)este super-cresc˘ ator dac˘ a
∀j≥2, a j>j−1/summationdisplay
i=1ai.
ˆIn acest caz, pentru a rezolva problema rucsacului este suficient s˘ a parcurgem vectorul
Ade 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, annu poate apart ¸ine sumei pe care o
c˘ aut˘ am. Dac˘ a ˆ ıns˘ a se obt ¸ine TRUE, antrebuie s˘ a fie ˆ ın sum˘ a, deoarece toate elementele
air˘ amase nu pot dep˘ a¸ si ˆ ın sum˘ a pe k.
Vom defini
k1=/braceleftBigg
k dac˘ a an> k
k−andac˘ a an≤k
¸ si repet˘ am procedeul pentru k1¸ sian−1. Algoritmul se va opri la valoarea a1.
S˘ a presupunem c˘ a avem vectorul rucsac super-cresc˘ ator
A= (1,3,5,11,21,44,87,175,349,701)
¸ si vrem s˘ a decodific˘ am mesajul 278. Vom parcurge 10pa¸ si, sumarizat ¸i ˆ ın Tabelul 1.
130 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Num˘ ar Componenta lui A Bit rezultat
278 701 0
278 349 0
278 175 1
103 87 1
16 44 0
16 21 0
16 11 1
5 5 1
0 3 0
0 1 0
Tabelul 1:
ˆIn final se obt ¸ine secvent ¸a binar˘ a 00110 01100 (aflat˘ a pe ultima coloan˘ a) care – conform
codific˘ arii din Exemplul 7.3 corespunde perechii de litere FL.
Dac˘ a se folose¸ ste ˆ ıns˘ a public o astfel de informat ¸ie, orice utilizator – inclusiv Oscar
– poate decripta mesajele folosind un algoritm liniar. Ori s-a presupus (Capitolul 1) c˘ a,
pentru orice intrus, ˆ ıncercarea de aflare a mesajului clar trebuie s˘ a conduc˘ a la rezolvarea
unei problemeNP – complete.
Exemplul 7.5. Pentru sistemul bazat pe problema rucsacului, Bob va proceda astfel: va
alege un num˘ ar m(m >m/summationdisplay
i+1ai) numit modul ¸ si un num˘ ar t, cmmdc (m, t) = 1 numit
multiplicator . Exist˘ a atunci un num˘ ar sastfel ca t·s≡1 (mod m ).
Plecˆ and de la vectorul super-cresc˘ ator A= (a1, a2, . . . , a n)Bob genereaz˘ a vectorul
B= (b1, b2, . . . , b n)unde bi=t·ai(mod m ).
Vectorul Beste declarat public pentru criptare, iar m, t¸ sisvor forma trapa secret˘ a a
luiBob.
Astfel, dac˘ a lu˘ am m= 1590 ¸ sit= 43 , vectorul super-cresc˘ ator
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 7.3. ˆIn plus, s=t−1= 37 .3
Cum se va proceda: Cel care dore¸ ste s˘ a trimit˘ a lui Bob un mesaj criptat va folosi
vectorul rucsac B¸ si va cripta mesajul xˆ ıny=B·BT
x, conform Exemplului 7.3.
La recept ¸ie, Bob va calcula ˆ ıntˆ ai z=s·y(mod m ), dup˘ a care va decripta mesajul z
folosind vectorul super-cresc˘ ator A. Se poate ar˘ ata u¸ sor c˘ a solut ¸ia este chiar x.
Astfel, de exemplu Alice poate cripta mesajul FLˆ ın2414 (cf. Exemplului 7.3). La
primirea acestui num˘ ar, Bobva determina ˆ ıntˆ ai s·2414 = 37·2414 ( mod 1590) = 278 .ˆIn
Exemplul 7.4 s-a v˘ azut c˘ a decriptarea mesajului 278cu vectorul Aconduce la textul clar
FL.
3Pentru calculul inversului unui num˘ ar se poate folosi algoritmul lui Euclid extins, prezentat ˆ ın Anex˘ a.
7.4. SECURITATEA SISTEMELOR DE CRIPTARE CU CHEIE PU-BLIC ˘A 131
Putem trasa acum cˆ ateva principii generale de construire a unui sistem de criptare cu
cheie public˘ a ([45]):
1. Se ˆ ıncepe cu o problem˘ a dificil˘ a P; rezolvarea lui Peste imposibil˘ a ˆ ın conformitate
cu teoria complexit˘ at ¸ii (nu se cunoa¸ ste nici un algoritm determinist de complexitate
polinomial˘ a care s˘ a rezolve P).
2. Se selecteaz˘ a o subproblem˘ a P1a lui P, rezolvabil˘ a ˆ ın timp polinomial (preferabil
liniar).
3. Se aplic˘ a o transformare problemei P1astfel ˆ ıncˆ at s˘ a se obt ¸in˘ a o problem˘ a P2care
s˘ a nu semene cu P1dar s˘ a fie foarte apropiat˘ a de problema P.
4. Se face public˘ a problema P2¸ si se descrie algoritmul de criptare bazat pe aceasta.
Informat ¸ia referitoare la modul ˆ ın care se obt ¸ine P1dinP2este o trap˘ a secret˘ a.
5. Se construiesc detaliile sistemului de criptare, astfel ˆ ıncˆ at principiile de lucru s˘ a
difere esent ¸ial pentru destinatar fat ¸˘ a de criptanalist; astfel, ˆ ın timp ce primul va
folosi trapa secret˘ a ¸ si va rezolva problema P1, al doilea va trebui s˘ a rezolve problema
P2, imposibil˘ a datorit˘ a asem˘ an˘ arii ei cu problema P.
ˆIn funct ¸ie de aceste principii generale, aparˆ ın detalii de construct ¸ie multe alte probleme
pe care constructorii sistemelor de criptare trebuie s˘ a le rezolve.
7.4 Securitatea sistemelor de criptare cu cheie pu-
blic˘ a
ˆIn majoritatea sistemelor de criptare, aparatul matematic folosit este bazat pe teoria nu-
merelor, teoria funct ¸iilor recursive ¸ si teoria probabilit˘ at ¸ilor. Pe o scar˘ a mult mai restrˆ ans˘ a
apar funct ¸iile eliptice, teoria automatelor, calcul neconvent ¸ional (cuantic, molecular etc).
Sistemele de criptare cu cheie public˘ a au un avantaj major fat ¸˘ a de sistemele clasice:
aici nu mai este necesar efortul transmiterii cheii. Un contact prealabil ˆ ıntre Alice ¸ siBob
pentru a pune la punct detaliile sistemului de criptare este inutil.
Un sistem de criptare cu cheie public˘ a nu ofer˘ a ˆ ıns˘ a o securitate absolut˘ a. Aceasta se
datoreaz˘ a faptului c˘ a Oscar are oricˆ and posibilitatea s˘ a lanseze atacuri pasive sau active.
Anume:
•Dac˘ a un text criptat yeste interceptat de criptanalist, acesta poate c˘ auta exhaustiv
un text clar xastfel ca eK(x) =y. Singura ap˘ arare contra unui astfel de atac const˘ a
ˆ ın gradul de complexitate al sistemului.
132 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
•Un criptanalist activ poate efectua cu succes un atac numit man-in-the-middle (a
nu se confunda cu meet-in-the-middle prezentat ˆ ın capitlul anterior).
S˘ a presupunem c˘ a Alice ¸ siBob doresc s˘ a stabileasc˘ a un contact. Ei fac publice
cheile de criptare eArespectiv eB. Dac˘ a contactul este nepersonalizat, Oscar poate
controla mesajele schimbate ˆ ıntre cei doi, ˆ ın felul urm˘ ator:
Alice
OscarBob
? – -66
6-
?(eA, eB)e1
B e1
A
y1=e1
B(m) y=eB(m)
1.Oscar ”opacizeaz˘ a” printr-un mijloc oarecare aceste chei, ¸ si trimite lui Alice
cheia e1
Bca din partea lui Bob; substituie – similar – pentru Bobcheia eAcu
e1
A.
2. Fie mmesajul pe care Alice vrea s˘ a ˆ ıl trimit˘ a lui Bob. Ea va cripta ¸ si va trimite
y1=e1
B(m).
3.Oscar intercepteaz˘ a mesajul (reamintim, toate canalele sunt nesigure) ¸ si afl˘ a
m=d1
B(y1).
4.Oscar recripteaz˘ a y=eB(m) ¸ si trimite yluiBob.
Bineˆ ınt ¸eles, dac˘ a dore¸ ste, Oscar poate modifica, interschimba sau ˆ ıntˆ arzia mesajele
interceptate.
Din aceast˘ a cauz˘ a, ˆ ın toate sistemele de criptare cu cheie public˘ a apare necesitatea
autentific˘ arii mesajului sau a expeditorului, precum ¸ si aceea a confident ¸ialit˘ at ¸ii.
Definit ¸ia 7.1. Confident ¸ialitatea4asigur˘ a accesul la informat ¸ie doar p˘ art ¸ilor autorizate
de a avea acest acces.
Definit ¸ia 7.2. Autentificarea5este 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 se poate autentifica un expeditor uman, sunt clasificate ˆ ın:
1. ”ceva ce utilizatorul este ” (de exemplu amprente digitale, de retin˘ a, de voce, secvent ¸˘ a
DNA, recunoa¸ sterea semn˘ aturii, identificatori biometrici).
2. ”ceva de utilizatorul are ” (de exemplu card ID, date de securitate soft aflate pe
calculator sau telefon).
4conform International Standards Organization ( ISO).
5de la grecescul ”authentes” – autor.
7.4. SECURITATEA SISTEMELOR DE CRIPTARE CU CHEIE PU-BLIC ˘A 133
3. ”ceva ce utilizatorul ¸ stie ” (de exemplu un password, o parol˘ a, un num˘ ar de identi-
ficare – PIN).
4. Orice combinat ¸ie ˆ ıntre metodele anterioare (de exemplu un card bancar cu PIN
asigur˘ a o dubl˘ a autentificare).
Alt termen frecvent utilizat este cel de integritate . El se refer˘ a la validitatea datelor.
Definit ¸ia 7.3. Integritatea este sigurant ¸a c˘ a datele la care se refer˘ a un utilizator pot fi
accesate ¸ si eventual modificate numai de cei autorizat ¸i s˘ a o fac˘ a.
ˆIn general integritatea poate fi compromis˘ a ˆ ın dou˘ a moduri:
1. Prin alterare intent ¸ionat˘ a (de exemplu modificarea unui cont bancar, a unei adrese
de e-mail, a unui document de identitate);
2.ˆIn mod accidental (transmisii perturbate de zgomote de canal, zgˆ arierea harddiscu-
lui)6.
S˘ a presupunem c˘ a Alice ¸ siBobsunt doi utilizatori, cu posibile conflicte de interese.
Cˆ and Alice trimite un mesaj lui Bob, ambele p˘ art ¸i trebuie s˘ a se asigure c˘ a:
•Mesajul nu este trimis de o tert ¸˘ a persoan˘ a care pretinde a fi Alice ;
•Bobs˘ a nu poat˘ a obliga pe Alice s˘ a t ¸in˘ a cont de mesaje care nu-i apart ¸in, iar Alice
s˘ a nu poat˘ a repudia propriile mesaje.
ˆIntr-o oarecare m˘ asur˘ a, cele dou˘ a condit ¸ii sunt contradictorii: conform primei condit ¸ii,
Bob trebuie s˘ a ¸ stie ceva despre modul de criptare al lui Alice , care ˆ ıi va permite s˘ a
autentifice mesajul, iar conform celei de-a doua condit ¸ii, el nu trebuie s˘ a ¸ stie prea mult.
O modalitate frecvent utilizat˘ a pentru autentificarea mesajelor este folosirea codurilor de
autentificare.
Exemplul 7.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.
Dac˘ a se solicit˘ a ¸ si autentificarea partenerilor, atunci se folose¸ ste de obicei semn˘ atura
electronic˘ a.
6De recuperarea informat ¸iei pierdut˘ a ˆ ın acest mod se ocup˘ a Teoria Codurilor detectoare ¸ si corectoare
de erori.
134 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Exemplul 7.7. S˘ a presupunem c˘ a Alice vrea s˘ a trimit˘ a lui Bob mesajul m. Dac˘ a se
folose¸ ste 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 parteneri, 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 man-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.
7.5 Comparat ¸ie ˆ ıntre criptarea simetric˘ a ¸ si cea cu
cheie public˘ a
Avantaje ale sistemelor de criptare cu cheie simetric˘ a:
1. Pot transmite volume mari de date. Exist˘ a implement˘ ari hard care pentru unele
sisteme de criptare asigur˘ a rate de criptare de sute de mega-octet ¸i pe secund˘ a (sunt
¸ si implement˘ ari soft cu rate de mega-octet ¸i pe secund˘ a).
2. Cheile sunt relativ scurte.
3. Pot fi folosite ca baz˘ a de construct ¸ie a diverselor mecanisme de criptare, cum ar fi
generatori de numere pseudo-aleatoare, generatori de funct ¸ii de dispersie, scheme
de semn˘ atur˘ a.
4. Prin compunere pot conduce la sisteme de criptare puternice.
5. Au o istorie bogat˘ a ˆ ın evenimente ¸ si experient ¸˘ a.
Dezavantaje ale sistemelor de criptare cu cheie simetric˘ a:
1. Cheia trebuie s˘ a r˘ amˆ an˘ a permament secret˘ a ˆ ın (cel put ¸in) dou˘ a locuri distincte.
2. Cu cˆ at lungimea unui mesaj criptat este mai mare, cu atˆ at el este mai u¸ sor de spart.
3.ˆIn ret ¸ele mari, o gestionare a cheilor devine extrem de dificil˘ a.
4. Necesit˘ a un canal sigur de comunicare, cel put ¸in pentru transmiterea cheii. Acest
lucru devine dificil mai ales pentru sistemele care necesit˘ a schimb˘ ari frecvente ale
cheilor de criptare/decriptare.
7.6. EXERCIT ¸II 135
Avantaje ale sistemelor de criptare cu cheie public˘ a:
1. Sistemul este ideal pentru transmiterea informat ¸iei prin canale nesigure.
2. Sistemele cu cheie public˘ a sunt simplu de definit ¸ si elegante matematic.
3. Doar cheia de decriptare trebuie t ¸inut˘ a secret˘ a, la un singur˘ a adres˘ a (destinatar).
4.ˆIn funct ¸ie de modul de utilizare, o pereche de chei (public˘ a, privat˘ a) poate fi p˘ astrat˘ a
o perioad˘ a mai lung˘ a de timp.
5. Conduc la aplicat ¸ii de mare ˆ ıntindere: semn˘ aturi electronice, algoritmi de autentifi-
care, componente de comert ¸ electronic etc.
Dezavantaje ale sistemelor de criptare cu cheie public˘ a:
1. Sunt semnificativ mai lente decˆ at sistemele simetrice.
2. Sunt necesare chei de lungimi mult mai mari.
3. Nu se poate garanta securitatea absolut˘ a a nici unei scheme de criptare cu cheie
public˘ a.
4. Implementarea trebuie realizat˘ a cu foarte mare grij˘ a. Sisteme cu grad teoretic ridi-
cat de securitate pot fi sparte u¸ sor printr-o implementare neglijent˘ a.
Dup˘ a cum se observ˘ a, cele dou˘ a clase de sisteme de criptare dispun de o serie de avantaje
complementare. Acest lucru face ca ele s˘ a fie folosite combinat.
Exemplul 7.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 autenticitate a mesajelor.
7.6 Exercit ¸ii
7.1. Justificat ¸i modul ˆ ın care un sistem de criptare simetric asigur˘ a condit ¸iile de confiden-
t ¸ialitate, autentificare ¸ si integritate.
7.2. Construit ¸i exemple de funct ¸ii neinversabile.
7.3. Fief(x)¸ sig(x)dou˘ a funct ¸ii neinversabile. Dat ¸i un argument auristic pentru a
ar˘ ata c˘ a nici una din funct ¸iile f(x) +g(x), f(x)·g(x), f(g(x))nu este ˆ ın mod obligatoriu
neinversabil˘ a.
136 CAPITOLUL 7. SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
7.4. Alice ¸ siBob aleg public un nun˘ ar prim p. Dup˘ a aceea, fiecare alege ¸ si p˘ astreaz˘ a
secret cˆ ate dou˘ a numere (eA, dA)respectiv (eB, dB)astfel ca eX·dX≡1 (mod p−1).
Dac˘ a Alice dore¸ ste s˘ a transmit˘ a lui Bob mesajul m, se va urma protocolul:
1.Alice trimite lui Bob textul x=meA;
2.Bob r˘ aspunde cu mesajul y=xeB;
3.Alice trimite ˆ ınapoi mesajul z=ydA.
Ar˘ atat ¸i c˘ a Bob este capabil s˘ a decripteze mesajul ¸ si discutat ¸i problemele de securitate
implicate.
Capitolul 8
Sistemul de criptare RSA
8.1 Descrierea sistemului RSA
Sistemul de criptare RSA (Rivest – Shamir – Adleman) este ˆ ın acest moment cel mai
cunoscut ¸ si utilizat sistem cu cheie public˘ a1. Aceasta se datoreaz˘ a ˆ ın primul rˆ and modali-
t˘ at ¸ii foarte simple de criptare ¸ si decriptare, care se realizeaz˘ a similar – cu acelea¸ si module
de calcul (proprietate ˆ ıntˆ alnit˘ a la multe sisteme simetrice: Beaufort, Enigma, AES etc).
Iat˘ a ˆ ın ce const˘ a sistemul de criptare RSA :
Fiep, qnumere prime impare distincte ¸ si n=pq.
Indicatorul s˘ au Euler este φ(n) = (p−1)(q−1).
FieP=C=Zn. Se define¸ ste
K={(n, p, q, a, b )|n=pq, ab≡1 (mod φ (n))}
Pentru K= (n, p, q, a, b ) se definesc (∀x, y∈Zn):
eK(x) =xb(mod n )
¸ si
dK(y) =ya(mod n )
Valorile n¸ sibsunt publice, iar p, q¸ siasunt secrete.
Deoarece ab≡1 (mod φ (n)), avem ab=tφ(n) + 1.
Atunci, pentru un x∈Z∗
n=Zn\{0}, putem scrie (toate calculele se fac ˆ ın Zn):
(xb)a≡xtφ(n)+1≡/parenleftBig
xφ(n)/parenrightBigtx≡1tx≡x.
Pentru x= 0 afirmat ¸ia este banal˘ a.
Exemplul 8.1. S˘ a presupunem c˘ a Bob alege p= 101 , q= 113 . Atunci n= 11413 ,
φ(n) = 11200 . Deoarece 11200 = 26527, un num˘ ar bpoate fi utilizat ca exponent de
1Sistemul este prezentat ˆ ın 1977 de Ron Rivest, Adi Shamir ¸ si Len Adleman ˆ ın cadrul unui proiect
de cercetare la MIT. Totu¸ si, dup˘ a declasificarea ˆ ın 1997 a unor documente din Marea Britanie, se pare
c˘ a matematicianul Clifford Cocks a elaborat ˆ ın 1973 un sistem echivalent, prezentat ˆ ıntr-un document
intern GCHQ (Government Communications Headquarters).
137
138 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
criptare dac˘ a ¸ si numai dac˘ a nu este divizibil cu 2,5sau7(deci Bobpoate s˘ a nu factorizeze
φ(n); este suficient s˘ a verifice dac˘ a cmmdc (φ(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 ¸ sib= 3533 .
Dac˘ a Alice dore¸ ste s˘ a-i transmit˘ a lui Bob mesajul m= 9726 , ea calculeaz˘ a
97263533(mod 11413) = 5761
¸ si trimite prin canal textul criptat c= 5761 . Cˆ and Bobprime¸ ste acest num˘ ar, el determin˘ a
57616597(mod 11413) = 9726 .
Securitatea sistemului de criptare RSA se bazeaz˘ a pe ipoteza c˘ a funct ¸ia de criptare
eK(x) =xbmod n este neinversabil˘ a din punct de vedere al complexit˘ at ¸ii, deci este imposi-
bil pentru Oscar s˘ a o determine. Trapa secret˘ a de care dispune Bob pentru decriptare
este descompunerea n=pq. Deoarece Bob ¸ stie aceast˘ a factorizare, el poate calcula
φ(n) = (p−1)(q−1) ¸ si apoi determina exponentul de decriptare afolosind algoritmul lui
Euclid extins (a se vedea Anexa ).
8.2 Implementarea sistemului RSA
Pentru a realiza criptarea, Bob trebuie s˘ a efectueze urm˘ atorii pa¸ si (fiecare din ei va fi
detaliat mai tˆ arziu):
Tabelul 8.1:
1. Genereaz˘ a dou˘ a numere prime mari p, q.
2. Calculeaz˘ a n=pq¸ siφ(n) = (p−1)(q−1).
3. Alege aleator un num˘ ar b(1< b < φ (n)) astfel ca cmmdc (b, φ(n)) = 1.
4. Calculeaz˘ a a=b−1mod φ (n) folosind algoritmul lui Euclid extins.
5. Face public n¸ sib.
Un atac evident al sistemului const˘ a ˆ ın ˆ ıncercarea de factorizare a lui n. Dac˘ a se
realizeaz˘ a aceasta, este u¸ sor de determinat φ(n) = (p−1)(q−1) ¸ si de calculat exponentul
de decriptare aplecˆ and de la b.
8.2. IMPLEMENTAREA SISTEMULUI RSA 139
Deci, pentru ca sistemul RSA s˘ a fie sigur, este necesar ca ns˘ a fie suficient de mare
pentru ca factorizarea sa s˘ a fie imposibil˘ a (din punct de vedere al complexit˘ at ¸ii). Algorit-
mii de factorizare actuali pot descompune rapid numere de pˆ an˘ a la 200 cifre zecimale. Se
recomand˘ a de aceea – pentru sigurant ¸˘ a – s˘ a se lucreze cu numere prime p¸ siqde cel put ¸in
300 cifre fiecare, deci nva avea peste 500 cifre. Aproape toate implement˘ arile actuale ale
sistemului folosesc chei de 1024 −2048 bit ¸i2.
Cu intent ¸ia c˘ a vom reveni asupra problemelor legate de numere prime mari, s˘ a studiem
ˆ ıntˆ ai operat ¸iile necesare pentru criptare ¸ si decriptare. Orice astfel de calcul se bazeaz˘ a
pe o exponent ¸iere modulo n. Cum neste foarte mare, vom utiliza aritmetica numerelor
mari pentru lucrul ˆ ın Zn, timpul de calcul necesar fiind direct proport ¸ional cu num˘ arul
de bit ¸i ai lui n.
Dac˘ a nocup˘ a kbit ¸i ˆ ın memorie (deci k= [log2n] + 1), prin metode de calcul uzuale
se ajunge la concluzia c˘ a suma a dou˘ a numere de kbit ¸i se face ˆ ın O(k), iar ˆ ınmult ¸irea ˆ ın
O(k2). La fel ¸ si reducerea modulo n. Deci, pentru x, y∈Zn, num˘ arul xy mod n se poate
determina prin calcule de complexitate O(k2). Vom numi aceast˘ a operat ¸ie multiplicare
modular˘ a .
S˘ a cercet˘ am acum exponent ¸ierea modular˘ a xcmod n . O modalitate de calcul const˘ a ˆ ın
efectuarea de c−1 multiplic˘ ari modulare – proces foarte ineficient pentru cmare, deoarece
algoritmul devine de complexitate exponent ¸ial˘ a.
Exist˘ a ˆ ıns˘ a un algoritm de exponent ¸iere rapid˘ a, care realizeaz˘ a xcmod n cu complexi-
tateO(k3) (deci polinomial). Acesta utilizeaz˘ a descompunerea binar˘ a a lui c,
c=s−1/summationdisplay
i=0ci2i
unde s(s≤k) este num˘ arul de bit ¸i ai lui c, iarci∈{0,1}.
Exponent ¸ierea se face doar prin ridic˘ ari la p˘ atrat ¸ si maxim sˆ ınmult ¸iri modulare,
conform algoritmului:
z←−1;
fori←−s−1downto 0do
z←−z2(mod n );
ifci= 1then z←−z·x(mod n )
Exemplul 8.2. S˘ a relu˘ am datele din Exemplul 8.1. Calculul lui 97263533mod 11413 se
efectueaz˘ a cu algoritmul de sus ˆ ın numai 12pa¸ si; anume:
2Un num˘ ar nde maxim 256 bit ¸i poate fi factorizat de un PC obi¸ snuit ˆ ın cˆ ateva ore, folosind un soft
free. Dac˘ a nare pˆ an˘ a la 512 bit ¸i, el poate fi factorizat folosind o ret ¸ea de cˆ ateva sute de calculatoare,
conform unei scheme prezentate ˆ ın 1999. ˆIn 2003 a fost pus˘ a sub semnul ˆ ıntreb˘ arii securitatea modulelor
de 1024 bit ¸i.
140 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
ici z
111 12·9726 = 9726
10197262·9726 = 2659
90 26592= 5634
8156342·9726 = 9167
7191672·9726 = 4958
6149582·9726 = 7783
50 77832= 6298
40 62982= 4629
3146292·9726 = 10185
21101852·9726 = 105
10 1052= 11025
01110252·9726 = 5761
Deci textul clar 9726 este criptat de Alice ˆ ın5761.
Pentru aplicarea sistemului de criptare RSA , trebuie generate ˆ ıntˆ ai numerele prime
p, q– despre care vom discuta ˆ ın sect ¸iunea urm˘ atoare. Etapa a doua (din Tabelul 8.1)
se efectueaz˘ a evident ˆ ın O((log2n)2). Etapele 3 ¸ si 4 folosesc algoritmul lui Euclid extins.
Ca rezultat general, calculul celui mai mare divizor comun dintre a¸ sib(cmmdc (a, b)) cu
a > b se poate realiza cu complexitatea O((log2a)2).
ˆIn general, un algoritm RSA este cam de 1000 ori mai lent decˆ at DES pentru o
implementare harwdare ¸ si cam de 100 ori la o implementare software. ˆIn [46] se dau
cˆ ateva tabele cu astfel de valori comparative, la nivelul anului 1995.
8.3 Teste de primalitate probabiliste
ˆIn realizarea sistemului de criptare RSA trebuie s˘ a gener˘ am aleator numere prime cu
num˘ ar mare de cifre. Practic, se realizeaz˘ a secvent ¸e de numere, a c˘ aror primalitate se
testeaz˘ a, pˆ an˘ a se ajunge la un num˘ ar prim. Pentru teste se folosesc algoritmi probabili¸ sti,
al c˘ aror avantaj este rapiditatea (complexitatea lor este log n ) dar care pot afirma uneori
primalitatea unor numere care nu sunt prime. Aceste erori se pot reduce la o marj˘ a
acceptabil˘ a prin multiplicarea testelor.
Problema gener˘ arii aleatoare este posibil˘ a din urm˘ atorul considerent. Un rezultat din
teoria numerelor (numit Teorema rarefierii numerelor prime ) afirm˘ a c˘ a sunt circa n/log n
numere prime mai mici decˆ at n. Astfel, pentru un modul de 512 bit ¸i, un num˘ ar pde 256
bit ¸i are o probabilitate 1 /logp≈1/177 de a fi prim. Deci se fac ˆ ın medie cam 177 gener˘ ari
de numere ppentru a obt ¸ine un num˘ ar prim (dac˘ a se folose¸ ste ¸ si faptul c˘ a se genereaz˘ a
numai numere impare, aceasta reduce la jum˘ atate num˘ arul de ˆ ıncerc˘ ari). Rezult˘ a c˘ a este
practic s˘ a se construiasc˘ a numere mari, care sunt probabil prime , pe baza c˘ arora s˘ a se
realizeze criptarea RSA . Vom detalia acest procedeu.
Definit ¸ia 8.1. O problem˘ a de decizie este o problem˘ a care pune o ˆ ıntrebare al c˘ arui
r˘ aspuns este dicotomic (Da/Nu).
8.3. TESTE DE PRIMALITATE PROBABILISTE 141
Un algoritm probabilist este un algoritm care folose¸ ste numere aleatoare.
Definit ¸ia 8.2. Un algoritm Monte – Carlo pozitiv este un algoritm probabilist care rezolv˘ a
o problem˘ a de decizie ˆ ın care orice r˘ aspuns pozitiv este corect, dar pentru care un r˘ aspuns
negativ poate fi incorect.
ˆIn mod similar se define¸ ste algoritmul Monte – Carlo negativ.
Un algoritm Monte – Carlo pozitiv are o probabilitate de eroare /epsilon1dac˘ a pentru orice
problem˘ a al c˘ arei r˘ aspuns ar trebui s˘ a fie pozitiv, algoritmul d˘ a un r˘ aspuns negativ cu
probabilitatea cel mult /epsilon1.
Problema de decizie folosit˘ a aici, numit˘ a Problema de descompunere este
Fiind dat un num˘ ar ˆ ıntreg n, se poate el descompune ˆ ın produs de alte numere suprau-
nitare mai mici ?
Vom prezenta ˆ ın aceast˘ a sect ¸iune doi algoritmi de tip Monte Carlo pozitiv care rezolv˘ a
aceast˘ a problem˘ a de de decizie.
8.3.1 Algoritmul Solovay – Strassen
S˘ a reamintim ˆ ıntˆ ai cˆ ateva not ¸iuni matematice:
Definit ¸ia 8.3. Fiep≥3num˘ ar prim ¸ si a∈Z∗
p. Spunem c˘ a aeste rest (reziduu) p˘ atratic
modulo pdac˘ a ecuat ¸ia x2≡a(mod p )are solut ¸ie ˆ ın Zp.
ˆIn caz contrar, un num˘ ar a/negationslash= 0nu este rest p˘ atratic.
Exemplul 8.3. Resturile p˘ atratice modulo 11sunt 1,3,4,5,9Aceasta deoarece ˆ ın Z11
avem (±1)2= 1,(±5)2= 3,(±2)2= 4,(±4)2= 5,(±3)2= 9.
Problema resturilor p˘ atratice const˘ a ˆ ın a decide dac˘ a un num˘ ar ndat este sau nu un
rest p˘ atratic. Un algoritm determinist pentru rezolvarea acestei probleme se bazeaz˘ a pe
Teorema 8.1. (Criteriul lui Euler). Dac˘ a p≥3este prim, un num˘ ar aeste rest p˘ atratic
modulo pdac˘ a ¸ si numai dac˘ a
ap−1
2≡1 (mod p )
Demonstrat ¸ie. S˘ a presupunem a≡x2(mod p ). Cum xp−1≡1 (mod p ) (Teorema lui
Fermat) pentru x/negationslash≡0 (mod p ),vom avea
ap−1
2≡(x2)p−1
2≡xp−1≡1 (mod p ).
Invers, fie ap−1
2≡1 (mod p ) ¸ sib∈Zpun element primitiv (de ordin p−1). Atunci
a≡bi(mod p ) pentru un anumit i. Calcul˘ am
1≡ap−1
2≡(bi)p−1
2≡bi(p−1)
2(mod p ).
Ordinul p−1 al lui bva divide i(p−1)/2. Deci ieste par ¸ si r˘ ad˘ acinile p˘ atrate ale lui a
sunt±bi/2.
142 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
Definit ¸ia 8.4. Dac˘ a p≥3este prim, pentru orice num˘ ar a≥0se define¸ ste simbolul
Legendre prin
/parenleftBigga
p/parenrightBigg
=
0dac˘ a a≡0 (mod p )
1dac˘ a aeste rest p˘ atratic modulo p
−1dac˘ a anu este rest p˘ atratic modulo p
Teorema 8.1 asigur˘ a c˘ a a(p−1)/2≡1 (mod p ) dac˘ a ¸ si numai dac˘ a aeste rest p˘ atratic
modulo p. Dac˘ a aeste multiplu de p, evident a(p−1)/2≡0 (mod p ).ˆIn sfˆ ar¸ sit, dac˘ a anu
este rest p˘ atratic modulo p, avem a(p−1)/2≡−1 (mod p ) deoarece ap−1≡1, a(p−1)/2/negationslash≡
1 (mod p ) ¸ si−1 este singura r˘ ad˘ acin˘ a p˘ atrat˘ a diferit˘ a de 1 modulo p. Este deci adev˘ arat˘ a
teorema urm˘ atoare:
Teorema 8.2. Dac˘ a peste num˘ ar prim impar, atunci
/parenleftBigga
p/parenrightBigg
≡ap−1
2(mod p )
Simbolul lui Legendre se poate generaliza astfel:
Definit ¸ia 8.5. Fien=pe1
1. . . pek
kun num˘ ar impar descompus ˆ ın factori primi. Dac˘ a
a≥0este un num˘ ar ˆ ıntreg, se define¸ ste simbolul Jacobi prin
/parenleftbigga
n/parenrightbigg
=k/productdisplay
i=1/parenleftBigga
pi/parenrightBiggei
Exemplul 8.4. S˘ a calcul˘ am simbolul Jacobi/parenleftbigg6278
9975/parenrightbigg
. Descompunerea ˆ ın factori primi a
lui9975 este9975 = 3·52·7·19. Avem atunci
/parenleftbigg6278
9975/parenrightbigg
=/parenleftbigg6278
3/parenrightbigg/parenleftbigg6278
5/parenrightbigg2/parenleftbigg6278
7/parenrightbigg/parenleftbigg6278
19/parenrightbigg
=/parenleftbigg2
3/parenrightbigg/parenleftbigg3
5/parenrightbigg2/parenleftbigg6
7/parenrightbigg/parenleftbigg8
19/parenrightbigg
=
= (−1)(−1)2(−1)(−1) =−1
Fien >1 un num˘ ar impar.
Dac˘ a neste prim, atunci pentru orice a, avem/parenleftbigga
n/parenrightbigg
≡an−1
2(mod n ).
Invers, dac˘ a nnu este prim, este posibil ca egalitatea de sus s˘ a fie fals˘ a. Dac˘ a
congruent ¸a se verific˘ a, spunem c˘ a nestenum˘ ar Euler pseudo – prim pentru baza a.
De exemplu, 91 este pseudo-prim pentru baza 10 deoarece
/parenleftbigg10
91/parenrightbigg
=−1 = 1045(mod 91).
Putem enunt ¸a acum testul de primalitate Solovay – Strassen pentru un num˘ ar impar n:
8.3. TESTE DE PRIMALITATE PROBABILISTE 143
1. Se genereaz˘ a aleator un num˘ ar a∈Z∗
n;
2.x←−/parenleftbigga
n/parenrightbigg
;
3.ifx= 0then ”nnu este prim”
4.y←−an−1
2(mod n );
5.ifx≡y(mod n )then ”neste prim”,
else ”nnu este prim”.
Pentru evaluarea an−1
2(mod n ) se poate folosi un algoritm de complexitate O((log n )3).
Problema este cum putem evalua simbolul Jacobi x←−/parenleftbigga
n/parenrightbigg
f˘ ar˘ a a factoriza pe n(altfel
ne ˆ ınvˆ artim ˆ ıntr-un cerc vicios !!).
Acest lucru se poate realiza folosind cˆ ateva propriet˘ at ¸i. Anume:
Lema 8.1. Fienun ˆ ıntreg pozitiv impar. Atunci
1. Dac˘ a x≡y(mod n )atunci/parenleftbiggx
n/parenrightbigg
=/parenleftbiggy
n/parenrightbigg
;
2./parenleftbigg2
n/parenrightbigg
=/braceleftBigg
1dac˘ a n≡±1 (mod 8)
−1dac˘ a n≡±3 (mod 8)
3./parenleftbiggx·y
n/parenrightbigg
=/parenleftbiggx
n/parenrightbigg
·/parenleftbiggy
n/parenrightbigg
;
Lema 8.2. Fiem, n dou˘ a numere ˆ ıntregi pozitive impare. Atunci
/parenleftbiggm
n/parenrightbigg
=
−/parenleftBig
n
m/parenrightBig
dac˘ a m≡3 (mod 4), n≡3 (mod 4)/parenleftBig
n
m/parenrightBig
altfel
L˘ as˘ am ca exercit ¸iu demonstrat ¸iile celor dou˘ a leme.
Exemplul 8.5. S˘ a calcul˘ am simbolul Jacobi/parenleftbigg7411
9283/parenrightbigg
. Vom avea succesiv:
/parenleftbigg7411
9283/parenrightbigg
=−/parenleftbigg9283
7411/parenrightbigg
=−/parenleftbigg1872
7411/parenrightbigg
=−/parenleftbigg2
7411/parenrightbigg4/parenleftbigg117
7411/parenrightbigg
=−/parenleftbigg117
7411/parenrightbigg
=
=−/parenleftbigg7411
117/parenrightbigg
=−/parenleftbigg40
117/parenrightbigg
=−/parenleftbigg2
117/parenrightbigg3/parenleftbigg5
117/parenrightbigg
=/parenleftbigg5
117/parenrightbigg
=/parenleftbigg117
5/parenrightbigg
=/parenleftbigg2
5/parenrightbigg
=−1
144 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
O analiz˘ a sumar˘ a arat˘ a c˘ a se poate calcula simbolul Jacobi/parenleftBig
m
n/parenrightBig
folosind cel mult
O(log n ) reduceri modulare, fiecare ˆ ın timp O((log n )2). Deci complexitatea poate fi
estimat˘ a laO((log n )3)3.
Se poate ar˘ ata c˘ a num˘ arul de baze apentru care un num˘ ar neprim neste pseudo –
prim Euler, este cel mult n/2. Aceasta duce la concluzia c˘ a testul de primalitate Solovay
– Strassen este un algoritm Monte Carlo pozitiv pentru problema de descompunere, cu
probabilitate de eroare 1 /2.
Un studiu referitor la complexitatea aplic˘ arii acestui test de primalitate ¸ si a proba-
bilit˘ at ¸ii de eroare se poate g˘ asi ˆ ın [53].
8.3.2 Algoritmul Miller – Rabin
Acest algoritm este cunoscut ¸ si sub numele de testul de tare pseudo – primalitate . Forma
sa este:
1. Se descompune n−1 = 2kmunde meste impar;
2. Se alege aleator ˆ ıntregul a∈[2, n−2];
3.b←−am(mod n )
4.ifb≡1 (mod n )then ”neste prim”, Stop;
5.fori←−0tok−1do
5.1.ifb≡−1 (mod n )then ”neste prim”, Stop,
elseb←−b2(mod n )
6 ”nnu este prim”, Stop
Evident, algoritmul este polinomial, de complexitate O((log n )3).
Teorema 8.3. Algoritmul Miller – Rabin este un algoritm Monte Carlo pozitiv pentru
problema de descompunere.
Demonstrat ¸ie. S˘ a presupunem prin absurd c˘ a algoritmul r˘ aspunde c˘ a un num˘ ar prim n
se poate descompune, adic˘ a am/negationslash≡1 (mod n ). Vom urm˘ ari ¸ sirul de valori pe care le ia b.
Cum la fiecare iterare beste ridicat la p˘ atrat, acest ¸ sir este am, a2m, . . . , a2k−1m.
Vom avea deci
a2im/negationslash≡−1 (mod n ) pentru 0≤i≤k−1.
3O analiz˘ a mai detaliat˘ a poate reduce aceast˘ a complexitate la O((log n )2).
8.3. TESTE DE PRIMALITATE PROBABILISTE 145
Deoarece neste prim, teorema lui Fermat d˘ a a2km≡1 (mod n ). Deci a2k−1meste o
r˘ ad˘ acin˘ a p˘ atrat˘ a a lui 1 modulo n.
Din faptul c˘ a neste prim, singurele r˘ ad˘ acini p˘ atrate ale lui 1 sunt ±1. Aceast˘ a
afirmat ¸ie se poate ar˘ ata astfel:
xeste r˘ ad˘ acin˘ a p˘ atrat˘ a a lui 1 modulo ndac˘ a ¸ si numai dac˘ a n|(x−1)(x+ 1). Cum n
este prim, avem n|(x−1) (deci x≡1 (mod n )) sau n|(x+ 1) (adic˘ a x≡−1 (mod n )).
Cum prin ipotez˘ a a2k−1m/negationslash≡−1 (mod n ), avem a2k−1m≡1 (mod n ).
Atunci a2k−2mtrebuie s˘ a fie r˘ ad˘ acin˘ a p˘ atrat˘ a a lui 1, diferit˘ a de −1, deci
a2k−2m≡1 (mod n ).
Procedˆ and iterativ, se ajunge la am≡1 (mod n ), ceea ce contrazice faptul c˘ a algorit-
mul nu s-a oprit la Pasul 4.
Dac˘ a neste un num˘ ar impar neprim, atunci maxim 1 /4 din numerele a∈Z∗
nconduc
la un rezultat fals. ˆIn [38] se apreciaz˘ a c˘ a num˘ arul maxim de astfel de valori este φ(n)/4,
pentru n/negationslash= 9.
De exemplu, pentru n= 91 (neprim), mult ¸imea valorilor apentru care algoritmul
d˘ a r˘ aspuns incorect este {9,10,12,16,17,22,29,38,53,62,69,74,75,79,81,82}. Pentru
n= 105 orice valoare a lui aconduce la un rezultat corect.
Deci, algoritmul Miller-Rabin este un algoritm Monte-Carlo pozitiv de probabilitate
/epsilon1= 1/4.
ˆIn general se consider˘ a c˘ a testul Miller – Rabin este mai bun decˆ at Solovay – Strassen.
Cˆ ateva motive:
1. Solovay – Strassen este mai complex computat ¸ional.
2. Implementarea lui Solovay – Strassen este mai dificil˘ a din cauza calculului simbolului
Jacobi.
3. Probabilitatea de eroare pentru Solovay – Strassen este 1 /2, pe cˆ and la Miller –
Rabin ea se reduce la 1 /4.
4. Deoarece orice valoare a lui apentru care testul Miller – Rabin este gre¸ sit este
un num˘ ar Euler pseudo-prim (vezi Exercit ¸iul 8.6), un test Miler – Rabin nu este
niciodat˘ a inferior unui test Solovay – Strassen.
Deoarece orice implementare a unui sistem RSA trebuie ˆ ınsot ¸it˘ a de un generator de
numere prime mari, sunt necesare construct ¸ii care s˘ a genereze rapid astfel de numere.
Bruce Schneier propune urm˘ atoarea variant˘ a ([46]):
1. Se genereaz˘ a un num˘ ar aleator pdenbit ¸i.
2. Se verific˘ a dac˘ a primul ¸ si ultimul bit sunt 1.
146 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
3. Se verific˘ a dac˘ a pnu este divizibil cu numere prime mici (3 ,5,7,11, . . .)4.
4. Se aplic˘ a testul Miller – Rabin cu o valoare aleatoare a. Dac˘ a ptrece testul, se
ia alt˘ a valoare pentru a. Cinci teste sunt suficiente. Pentru vitez˘ a, se recomand˘ a
s˘ a se ia valori mici pentru a. Dac˘ a pe¸ sueaz˘ a la unul din cele cinci teste, se reia
algoritmul.
Se apreciaz˘ a c˘ a utilizarea pasului 3, cu o testare a tuturor numerelor prime pˆ an˘ a la 256
elimin˘ a aproape 80% din cazurile nefavorabile.
8.4 Securitatea sistemului RSA
Vom trece ˆ ın revist˘ a cˆ ateva modalit˘ at ¸i de atac ale sistemelor de criptare RSA .
Ca o prim˘ a observat ¸ie, RSA nu rezist˘ a la un atac de tipul man-in-the middle , strategia
fiind cea prezentat˘ a ˆ ın cazul general al sistemelor de criptare cu cheie public˘ a. De aceea,
un sistem RSA este ˆ ınsot ¸it permanent de un certificat generat conform unui protocol
PKI (Public Key Infrastructure) ¸ si – bineˆ ınt ¸eles – de un generator de numere prime.
8.4.1 Informat ¸ii despre p¸ siq
Evident, cunoa¸ sterea lui φ(n) este suficient˘ a pentru spargerea sistemului. ˆIn acest caz,
totul se reduce la rezolvarea ˆ ın N×Na sistemului
/braceleftBigg
pq=n
(p−1)(q−1) = φ(n)
sau – dup˘ a substitut ¸ie – a ecuat ¸iei
X2−(n−φ(n) + 1) X+n= 0
Deci, dac˘ a Oscar determin˘ a φ(n), el poate factoriza n¸ si sparge sistemul.
Cu alte cuvinte, calculul lui φ(n) nu este mai simplu decˆ at factorizarea lui n.
De asemenea, o sl˘ abiciune const˘ a ˆ ın alegerea unor numere p, qprime apropiate unul
de altul. ˆIn acest caz (cu p > q ), vom avea ( p−q)/2 un num˘ ar foarte mic, iar ( p+q)/2
un num˘ ar foarte apropiat de√n.ˆIn plus,
(p+q)2
4−n=(p−q)2
4,
deci membrul stˆ ang este p˘ atrat perfect.
Atunci, pentru factorizarea lui nse testeaz˘ a toate numerele ˆ ıntregi x >√npˆ an˘ a se
g˘ ase¸ ste unul astfel ˆ ıncˆ at x2−neste p˘ atrat perfect; fie acesta y2. Atunci vom avea imediat
p=x+y, q=x−y.
4Multe implement˘ ari testeaz˘ a divizibilitatea cu numerele prime mai mici decˆ at 256. Eficient ¸a este
crescut˘ a dac˘ a se merge pˆ an˘ a la 2000
8.4. SECURITATEA SISTEMULUI RSA 147
Exemplul 8.6. Pentru n= 97343 se g˘ ase¸ ste√n= 311 ,998. Apoi 3122−n= 1, ceea ce
conduce la factorizarea p= 313 , q= 311 .
Deci, ˆ ın general este recomandabil ca cele dou˘ a numere prime p¸ siqs˘ a difere – ˆ ın
reprezentarea binar˘ a – prin num˘ arul de bit ¸i.
8.4.2 Exponentul de decriptare
Factorizarea modulului ¸ stiind exponentul de decriptare
Dac˘ a exist˘ a un algoritm care calculeaz˘ a exponentul de decriptare af˘ ar˘ a a-l cunoa¸ ste pe
φ(n), acesta poate fi utilizat ca oracol5ˆ ıntr-un algoritm probabilist care descompune n.
Deci, se poate spune c˘ a dac˘ a aeste descoperit, secretul factoriz˘ arii lui neste compromis;
atunci Bobva trebui s˘ a schimbe nu numai exponentul de decriptare, ci ¸ si modulul n.
Algoritmul de descompunere care va fi descris este de tip Las Vegas.
Definit ¸ia 8.6. Fie/epsilon1(0≤/epsilon1 <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 e¸ sua ¸ si s˘ a nu dea nici un r˘ aspuns, cu probabilitate /epsilon1.
Observat ¸ia 8.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, de¸ si
acesta uneori este incorect.
Deci, dac˘ a avem un algoritm Las Vegas pentru rezolvarea unei probleme, putem s˘ a ˆ ıl
apel˘ am de mai multe ori, pˆ an˘ a se obt ¸ine un r˘ aspuns. Probabilitatea ca el s˘ a nu r˘ aspund˘ a
lamtentative consecutive este /epsilon1m.
S˘ a consider˘ am un algoritm ipotetic Acare calculeaz˘ a exponentul de decriptare a
plecˆ and de la exponentul de criptare b. Se poate descrie atunci un algoritm Las Vegas
care utilizeaz˘ a Aca oracol. El este bazat pe studiul r˘ ad˘ acinilor p˘ atrate ale unit˘ at ¸ii modulo
n, cˆ and n=pq, p ¸ siqfiind numere prime impare.
ˆIn acest caz x2≡1 (mod p ) are ca singure solut ¸ii x≡±1 (mod p ). La fel, x2≡
1 (mod q ) are solut ¸iile x≡±1 (mod q ).
Din Teorema chinez˘ a a resturilor (a se vedea Anexa 2) rezult˘ a c˘ a congruent ¸a x2≡
1 (mod n ) este echivalent˘ a cu x2≡1 (mod p ) ¸ six2≡1 (mod q ).
Vom avea deci patru r˘ ad˘ acini p˘ atrate ale unit˘ at ¸ii modulo n, care pot fi calculate cu
Teorema chinez˘ a a resturilor. Dou˘ a sunt solut ¸iile triviale±1 (mod n ), iar celelalte –
numite netriviale – sunt opuse modulo n.
Exemplul 8.7. Fien= 403 = 13·31. Cele patru r˘ ad˘ acini p˘ atrate ale lui 1modulo 403
sunt 1,92,311¸ si402.
5program care r˘ aspunde numai cu Da/Nu la o ˆ ıntrebare – tip a utilizatorului
148 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
S˘ a presupunem acum c˘ a xeste o r˘ ad˘ acin˘ a p˘ atrat˘ a netrivial˘ a a lui 1 modulo n, deci o
solut ¸ie a ecuat ¸iei x2≡1 (mod n ). Avem
n|(x−1)(x+ 1)
Darnnu 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 f˘ ar˘ a a ¸ sti descompunerea
luin, aplicˆ and algoritmul de mai jos, care folose¸ ste Aca oracol:
1.Se genereaz˘ a aleator w∈Z∗
n, w/negationslash= 1;
2. x←−cmmdc (w, n);
3.ifx >1then Stop (cu p=xsauq=x);
4. a←−A(b);
5.Se descompune ab−1 = 2sr, rimpar;
6. v←−wr(mod n );
7.ifv≡1 (mod n )then Stop (e¸ sec);
8.while v/negationslash≡1 (mod n )do
8.1. v 0←−v;
8.2. v←−v2(mod n );
9.ifv0≡−1 (mod n )then Stop (e¸ sec);
elsex←−cmmdc (v0+1, n), Stop ( p=xsauq=x).
Deci, cunoa¸ sterea unei r˘ ad˘ acini p˘ atrate netriviale a lui 1 modulo ndetermin˘ a descom-
punerea lui nprintr-un calcul de complexitate polinomial˘ a.
Exemplul 8.8. Fien= 89855713 , b= 34986517 , a= 82330933 ¸ si s˘ a consider˘ am c˘ a s-a
generat aleator w= 5. Vom avea:
ab−1 = 23·360059073378795 .
La pasul 6se obt ¸ine v= 85877701 , iar la pasul 8.2,v= 1. La pasul 9se va obt ¸ine
atunci cmmdc (85877702 , n) = 9103 .
Acesta este un factor al lui n; cel˘ alalt este n/9103 = 9871 .
Trebuie demonstrat˘ a urm˘ atoarea afirmat ¸ie:
Afirmat ¸ia 8.1. Procedeul descris este un algoritm.
Demonstrat ¸ie. Ca o prim˘ a observat ¸ie, dac˘ a exist˘ a suficient˘ a ¸ sans˘ a ¸ si weste multiplu de
psauq, atunci el se factorizeaz˘ a imediat (pasul 2).
Dac˘ a weste prim cu n, atunci se calculeaz˘ a succesiv wr, w2r, . . .prin ridic˘ ari succesive
la p˘ atrat, pˆ an˘ a se ajunge la un tcuw2tr≡1 (mod n ). Deoarece ab−1 = 2sr≡
0 (mod φ (n)), se ¸ stie c˘ a w2sr≡1 (mod n ). Deci bucla while va efectua maxim siterat ¸ii.
La sfˆ ar¸ situl buclei se va g˘ asi o valoare v0/negationslash≡1 (mod n ) cu v2
0≡1 (mod n ). Dac˘ a
v0≡−1 (mod n ), algoritmul e¸ sueaz˘ a; altfel, v0este o r˘ ad˘ acin˘ a p˘ atrat˘ a netrivial˘ a a lui 1
modulo ncare – la pasul 12 – permite descompunerea lui n.
Se poate ar˘ ata ([53]) c˘ a acest algoritm se termin˘ a cu succes cu probabilitate 1 /2.
8.4. SECURITATEA SISTEMULUI RSA 149
Atacul lui Wiener
ˆIn [54] este dezvoltat un atac asupra sistemului de criptare RSA ˆ ın care exponentul de
decriptare aeste mic; mai exact, trebuie verificate condit ¸iile
3a < n1/4, q < p < 2q.
Deci, dac˘ a narejbit ¸i, atunci atacul va fi eficient pentru orice sistem de criptare RSA ˆ ın
careaare mai put ¸in de j/4−1 bit ¸i, iar p¸ siqau valori suficient de apropiate6.
Din condit ¸ia a·b≡1 (mod φ (n)) rezult˘ a c˘ a exist˘ a un num˘ ar ˆ ıntreg tastfel ca
a·b−t·φ(n) = 1 .
Relat ¸ia se poate rescrie/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingleb
φ(n)−t
a/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle=1
a·φ(n)
Pe de-alt˘ a parte, din n=p·q > q2rezult˘ a q <√n; deci
0< n−φ(n) =p·q−(p−1)·(q−1) = p+q−1<2q+q−1<3q <3√n
Pe baza acestor relat ¸ii, putem evalua
/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingleb
n−t
a/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle=/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsinglea·b−t·n
a·n/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle=/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle1 +t·(φ(n)−n)
a·n/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle<3t√n
a·n=3·t
a√n
Deoarece t < a (evident), vom avea 3 ·t <3·a < n1/4¸ si deci
/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingleb
n−t
a/vextendsingle/vextendsingle/vextendsingle/vextendsingle/vextendsingle<1
a·n1/4<1
3·a2.
Rezult˘ a c˘ a valoarea fract ¸iei t/aeste foarte apropiat˘ a de valoarea lui b/n. Din teoria
fract ¸iilor continue se ¸ stie c˘ a orice aproximare suficient de bun˘ a a lui b/neste una din
convergent ¸ele dezvolt˘ arii ˆ ın fract ¸ie continu˘ a a lui b/n. S˘ a descriem acest procedeu.
Definit ¸ia 8.7. O fract ¸ie continu˘ a (finit˘ a) este un m-tuplu [q1, q2, . . . , q m]de numere natu-
rale care reprezint˘ a notarea expresiei
q1+1
q2+1
q3+…+1
qm
6Bob poate fi tentat s˘ a aleag˘ a astfel de parametri, pentru cre¸ sterea vitezei de decriptare; reamintim,
RSA este un sistem relativ lent.
150 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
Fiea, bdou˘ a numereˆ ıntregi pozitive primeˆ ıntre ele ¸ si ( q1, q2, . . . , q m) secvent ¸a cˆ aturilor
obt ¸inute prin aplicarea algoritmului lui Euclid. Se verific˘ a u¸ sor c˘ aa
b= [q1, q2, . . . , q m].
Vom spune c˘ a [ q1, q2, . . . , q m]este dezvoltarea ˆ ın fract ¸ie continu˘ a a lui a/b.
Acum, pentru fiecare j(1≤j≤m) definim Cj= [q1, q2, . . . , q j] ca fiind a j-a
convergent ¸˘ a a lui [ q1, q2, . . . , q m]. Fiecare Cjse poate scrie ca un num˘ ar rat ¸ional cj/dj,
unde valorile cj¸ sidjse pot defini recursiv astfel:
cj=
1 dac˘ a j= 0
q1 dac˘ a j= 1
qj·cj−1+cj−2dac˘ a j≥2dj=
0 dac˘ a j= 0
1 dac˘ a j= 1
qj·dj−1+dj−2dac˘ a j≥2
Exemplul 8.9. S˘ a dezvolt˘ am num˘ arul rat ¸ional 34/99ˆ ın fract ¸ie continu˘ a. Folosind algo-
ritmul lui Euclid se obt ¸ine [0,2,1,10,3], care este notarea fract ¸iei
34
99= 0 +1
2 +1
1+1
10+1
3
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 adev˘ arat˘ a urm˘ atoarea teorem˘ a ([54],[53]):
Teorema 8.4. Dac˘ a cmmdc (a, b) =cmmdc (c, d) = 1 ¸ si
/vextendsingle/vextendsingle/vextendsingle/vextendsinglea
b−c
d/vextendsingle/vextendsingle/vextendsingle/vextendsingle<1
2·d2
atunci c/deste una din convergent ¸ele dezvolt˘ arii ˆ ın fract ¸ie continu˘ a a lui a/b.
S˘ a revenim acum la sistemul de criptare RSA .ˆIn condit ¸iile 3 a < n1/4¸ siq < p < 2q,
putem da urm˘ atorul algoritm de factorizare a lui n:
1. Plecˆ and de la n¸ sib(publice), se afl˘ a dezvoltarea ˆ ın fract ¸ie continu˘ a a lui b/n
(folosind algoritmul lui Euclid).
2. Se parcurg pe rˆ and convergent ¸ele acestei dezvolt˘ ari. Dac˘ a exist˘ a convergent ¸a t/a
care verific˘ a t|(a·b−1), se calculeaz˘ a φ(n) =a·b−1
t.
3. Cu n¸ siφ(n) se afl˘ a p¸ siq, conform metodei din sect ¸iunea 8 .4.1.
8.4. SECURITATEA SISTEMULUI RSA 151
Dac˘ a sunt ˆ ındeplinite ipotezele de la ˆ ınceputul acestui paragraf, Teorema 8.4 asigur˘ a
existent ¸a unei convergent ¸e care satisface pasul 2 al algoritmului.
T ¸inˆ and cont de observat ¸iile anterioare, algoritmul lui Wiener poate fi detaliat:
Intrare : [q1, q2, . . . , q m] – dezvoltarea ˆ ın fract ¸ie continu˘ a a lui b/n.
Algoritm :
1c0←−1, c 1←−q1, d 0←−0, d 1←−1;
2.forj←−1tomdo
2.1.ifcj|(dj·b−1)then
2.1.1. m←−(dj·b−1)/cj;
2.1.2.Fiep, qr˘ ad˘ acinile ecuat ¸iei x2−(n−m+ 1)x+n= 0
2.1.3.ifp, q∈Znthen return (p, q);
2.2. j←−j+ 1;
2.3. c j←−qj·cj−1+ck−2, d j←−qj·dj−1+dj−2;
3.return(”e¸ sec”) ;
Exemplul 8.10. S˘ a presupunem c˘ a n= 160523347 , b= 60728973 . Dezvoltarea ˆ ın fract ¸ie
continu˘ a a lui b/neste
[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/37avem
ˆ ıns˘ a:
m=37·60728973−1
14= 160498000 .
Rezolvˆ and ecuat ¸ia x2−25348 x+ 160523347 = 0 obt ¸inem r˘ ad˘ acinile 12347 ¸ si13001 . Deci
avem factorizarea
160523347 = 12347 ·13001
8.4.3 Informat ¸ie part ¸ial˘ a despre textul clar
S˘ a studiem put ¸in informat ¸ia din textul clar care ar putea tr˘ ada sistemul de criptare RSA .
S ¸tiind c˘ a y=eK(x), vom considera dou˘ a exemple de informat ¸ie part ¸ial˘ a dat˘ a de ydespre
x:
1.par(y) – d˘ a valoarea ultimului bit din scrierea binar˘ a a lui x;
2.jum(y) – va da 0 dac˘ a 0 ≤x < n/ 2,1 dac˘ a n/2≤x≤n−1.
152 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
Vom ar˘ ata ([45]) c˘ a orice algoritm care poate calcula par(y) sau jum(y) poate fi utilizat
ca oracol pentru reg˘ asirea textului clar x. Altfel spus, a calcula una din aceste funct ¸ii este
la fel de dificil cu a decripta tot textul y.
Faptul c˘ a cele dou˘ a funct ¸ii sunt polinomial echivalente rezult˘ a din
jum(y) =par(y·eK(2)mod n ) par(y) =jum(y·eK(2−1)mod n )
¸ si din relat ¸ia eK(x1x2) =eK(x1)eK(x2).
S˘ a ar˘ at˘ am acum cum se poate calcula x=dK(y) cu ajutorul unui oracol care d˘ a
valoarea jum(y):
1. k←−[log2n];
2.fori= 0tokdo
2.1. y i←−jum(y)
2.2. y←−(y·eK(2))mod n
3. jos←−0;
4. sus←−n;
5.fori= 0tokdo
5.1. mijloc←−(jos+sus)/2;
5.2.ifyi= 1then jos←−mijloc
elsesus←−mijloc
6. x←−[sus]
La pasul 2 se calculeaz˘ a yi=jum(y·(eK(2))i) =jum(eK(x·2i)) pentru 0≤i≤[log2n].
Se observ˘ a c˘ a
jum(eK(x)) = 0⇐⇒x∈/bracketleftbigg
0,n
2/parenrightbigg
jum(eK(2x)) = 0⇐⇒x∈/bracketleftbigg
0,n
4/parenrightbigg
∪/bracketleftbiggn
2,3n
4/parenrightbigg
jum(eK(4x)) = 0⇐⇒x∈/bracketleftbigg
0,n
8/parenrightbigg
∪/bracketleftbiggn
4,3n
8/parenrightbigg
∪/bracketleftbiggn
2,5n
8/parenrightbigg
∪/bracketleftbigg3n
4,7n
8/parenrightbigg
, etc.
ˆIn acest mod, xse poate localiza printr-o c˘ autare binar˘ a, realizat˘ a la pa¸ sii 7 −11.
Exemplul 8.11. Fien= 1457 , b= 779 , iar textul criptat este y= 722 . Calcul˘ am
eK(2) = 946 . S˘ a presupunem c˘ a oracolul jum din pasul 2.1.d˘ a urm˘ atoarele r˘ aspunsuri:
i012345678910
yi10101111100
C˘ autarea binar˘ a este realizat˘ a ˆ ın tabelul:
8.4. SECURITATEA SISTEMULUI RSA 153
i jos mijloc sus
0 0,00 728,501457,00
1728,501092,751457,00
2728,50 910,621092,75
3910,621001,691092,75
4910,62 956,161001,69
5956,16 978,921001,69
6978,92 990,301001,69
7990,30 996,001001,69
8996,00 998,841001,69
9998,841000,261001,69
10998,84 999,551000,26
998,84 999,55 999,55
Textul clar este deci x= [999 ,55] = 999 .
8.4.4 Algoritmi de descompunere ˆ ın factori primi
Sunt extrem de numeroase lucr˘ arile care trateaz˘ a descompunerea numerelor ˆ ın factori
primi. De aceea aici vom face doar o trecere ˆ ın revist˘ a a celor mai cunoscut ¸i algoritmi de
factorizare.
Astfel, cel mai simplu pare a fi ciurul lui Eratostene care const˘ a ˆ ın ˆ ıncercarea de
ˆ ımp˘ art ¸i num˘ arul nimpar prin toate numerele ˆ ıntregi impare din intervalul [3 ,√n]. Pentru
n <1012tehnica este destul de eficient˘ a.
Metoda p−1
Un algoritm simplu care se poate aplica uneori ¸ si la numere mari este metoda p−1
enunt ¸at˘ a de Pollard ˆ ın 1974. ˆIn esent ¸˘ a, el folose¸ ste trei variabile de intrare: num˘ arul
n(impar) care trebuie descompus, o margine B¸ si un num˘ ar oarecare g∈[2, n−1].
Descrierea algoritmului este:
Intrare :n, B, g .
1. a←−g
2.forj= 2toBdoa←−ajmod n
3. d←−cmmdc (a−1, n)
4.ifd >1then ”deste factor al lui n”,Stop
else ”nu s-a g˘ asit divizor al lui n”
S˘ a vedem cum funct ¸ioneaz˘ a acest algoritm:
Presupunem c˘ a peste un divizor prim al lui n¸ si c˘ a tot ¸i divizorii primi ai lui p−1 – la
puterile la care apar ˆ ın descompunerea lui p−1 – sunt mai mici decˆ at B. Atunci p−1|B!.
La terminarea ciclului de la pasul 2, avem
a≡gB!(mod n ) deci a≡gB!(mod p )
154 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
deoarece p|n. Cum gp−1≡1 (mod p ), conform teoremei lui Fermat (ˆ ın afar˘ a de cazul
cˆ and p|g) ¸ si cum ( p−1)|B!, se obt ¸ine a≡1 (mod p ).
Deci, la pasul 3 se ajunge la p|(a−1) ¸ sip|n, de unde rezult˘ a p|d=cmmdc (a−1, n).
Num˘ arul deste un divizor netrivial al lui n(ˆ ın afar˘ a de cazul a= 1 la pasul 3).
Avˆ and un divizor netrivial d, procesul se poate itera.
Exemplul 8.12. S˘ a consider˘ am n= 15770708441 . Aplicˆ and metoda p−1cuB= 180 ,
se g˘ ase¸ ste a= 11620221425 , iar d= 135979 . Se ajunge la descompunerea final˘ a
15770708441 = 135979 ·115979 .
Descompunerea a reu¸ sit deoarece 135978 are numai factori primi ”mici”:
135978 = 2·3·131·173. Luˆ and deci B≥173se obt ¸ine 135978|B!.
Observat ¸ia 8.2. Condit ¸ia ca metoda s˘ a funct ¸ioneze este ca divizorii primi la puterile
la care apar ˆ ın descompunerea luip−1s˘ a fie mai mici decˆ at b. Dac˘ a s-ar solicita ca
doar divizorii primi s˘ a verifice aceast˘ a condit ¸ie, rezultatul ar fi fals. Astfel, s˘ a consider˘ am
p= 17 ¸ siB= 3. Atunci p−1 = 24. Vom avea 2<3dar16nu este un divixor al lui 3!!
Pentru valori relativ mici ale lui Balgoritmul este de complexitate polinomial sc˘ azut˘ a
(O(BlogB (log n )3)). Dac˘ a Bcre¸ ste pˆ an˘ a la√n, el va reu¸ si totdeauna, dar nu va fi mai
rapid decˆ at ciurul lui Eratostene.
Deci sl˘ abiciunea metodei rezid˘ a ˆ ın faptul c˘ a ntrebuie s˘ a admit˘ a un divizor pcu
proprietatea ca p−1 s˘ a aib˘ a numai factori primi mici.
Pentru a rezista la acest atac, se recomand˘ a folosirea numerelor prime tari .
Definit ¸ia 8.8. Se nume¸ ste num˘ ar prim tare un num˘ ar prim pcare verific˘ a condit ¸iile:
1. p−1are un divizor prim mare r;
2. p+ 1are un divizor prim mare;
3. r−1are un divizor prim mare.
Exist˘ a diver¸ si algoritmi pentru generarea numerelor prime tari. Pentru exemplificare
am ales algoritmul lui Gordon:
1.Se genereaz˘ a aleator dou˘ a numere prime mari distincte s, t.
2.Se alege un num˘ ar aleator i0. Se afl˘ a primul num˘ ar prim de forma 2 ·i·t+ 1, unde
i←−i0, i0+ 1, . . .. Fie r= 2·i·t+ 1 acest num˘ ar prim.
3. p 0←−2·(sr−2(mod r ))·s−1;
4.Se alege un num˘ ar aleator j0. Se afl˘ a primul num˘ ar prim de forma p0+ 2·j·r·s,
unde j←−j0, j0+ 1, . . .. Fie p=p0+ 2·j·r·sacest num˘ ar prim.
5.return (p)
Teorema 8.5. Num˘ arul pgenerat de algoritmul Gordon este un num˘ ar prim tare.
8.4. SECURITATEA SISTEMULUI RSA 155
Demonstrat ¸ie. Cum r/negationslash=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 rdrept divizor prim.
(2) p+ 1 = p0+ 2·j·r·s+ 1≡0 (mod s ), deci seste un divizor prim al lui p+ 1.
(3) r−1 = 2·i·t≡0 (mod t ), deci num˘ arul prim tdivide pe r−1.
Practic, generarea unui num˘ ar prim tare se realizeaz˘ a ˆ ın trei pa¸ si:
(i) Cu un generator de numere aleatoare, se genereaz˘ a numerele s, t, i 0, j0;
(ii) Se testeaz˘ a dac˘ a s¸ sitsunt numere prime, folosind algoritmul Miller – Rabin;
(iii)ˆIn caz afirmativ, se aplic˘ a algoritmul lui Gordon, bazat de asemenea pe algoritmul
Miller – Rabin.
De multe ori, pentru criptarea RSA este suficient s˘ a se foloseasc˘ a numere prime mari
pcu proprietatea c˘ ap−1
2este de asemenea num˘ ar prim.
Exemplul 8.13. ˆIn practic˘ a este folosit frecvent exponentul de criptare b= 3.ˆIn acest
caz ˆ ıns˘ a, este necesar ca p−1¸ siq−1s˘ a nu fie divizibile cu 3. Rezultatul este o criptare
extrem de rapid˘ a, deoarece se folose¸ ste o singur˘ a ˆ ınmult ¸ire modular˘ a ¸ si o singur˘ a ridicare
la p˘ atrat modular˘ a.
De asemenea este utilizat frecvent ¸ si exponentul b= 216+ 1 = 65537 . Acest num˘ ar are
numai doi de 1ˆ ın reprezentarea binar˘ a, a¸ sa c˘ a o criptare folose¸ ste 16ridic˘ ari la p˘ atrat
modulare ¸ si o singur˘ a ˆ ınmult ¸ire modular˘ a.
Algoritmul lui Dixon ¸ si sita p˘ atratic˘ a
Algoritmul lui Dixon se bazeaz˘ a pe o idee extrem de simpl˘ a: dac˘ a se pot afla dou˘ a
numere x, ycux/negationslash≡y(mod n ) dar x2≡y2(mod n ), atunci cmmdc (x−y, n) este un
divizor netrivial al lui n.
Metoda utilizeaz˘ a o baz˘ a Bde factori primi ”mici”. Se caut˘ a ˆ ıntˆ ai mai multe numere
xpentru care divizorii primi ai lui x2mod n sunt ˆ ınB. Se formeaz˘ a apoi produse cu
aceste numere, ˆ ın a¸ sa fel ˆ ıncˆ at fiecare factor prim al p˘ atratului produsului s˘ a apar˘ a de un
num˘ ar par de ori. Aceasta conduce la o relat ¸ie x2≡y2(mod n ) care va da – eventual –
o descompunere a lui n.
Exemplul 8.14. Fien= 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 )
156 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
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.
FieB={p1, p2, . . . , p B}; consider˘ am un num˘ ar C”put ¸in” mai mare decˆ at B(o posi-
bilitate este C=B+ 10) ¸ si presupunem c˘ a am g˘ asit Crelat ¸ii de forma
x2
j≡pα1j
1·pα2j
2·. . .·pαBj
B,(1≤j≤C).
Pentru fiecare jse consider˘ a vectorul binar (elementele sale se iau modulo 2)
αj= (α1j, . . . , αBj)∈ZB
2.
Dac˘ a se poate determina o submult ¸ime, format˘ a din astfel de vectori, a c˘ aror sum˘ a modulo
2 s˘ a fie (0 ,0, . . . , 0), atunci p˘ atratul produsului elementelor xjcorespunz˘ atoare va avea ˆ ın
Btot ¸i divizorii reprezentat ¸i de un num˘ ar par de ori.
Exemplul 8.15. Revenind la Exemplul 8.14, 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 c˘ auta o submult ¸ime de Cvectori de sum˘ a nul˘ a modulo 2 revine la a c˘ auta o
relat ¸ie de dependent ¸˘ a liniar˘ a (ˆ ın Z2) ˆ ıntre ace¸ sti vectori. Dac˘ a C > B , o asemenea relat ¸ie
exist˘ a ¸ si poate fi g˘ asit˘ a u¸ sor prin eliminare gaussian˘ a.
Ar mai fi de v˘ azut cum se pot obt ¸ine acei xjpentru care x2
jadmit descompuneri ˆ ın
factori primi din baza B. Sunt mai multe metode posibile pentru aceasta; de exemplu,
ciurul p˘ atratic – construit de Pomerance – folose¸ ste numere ˆ ıntregi de forma
xj=j+ [√n], j= 1,2, . . . .
De remarcat c˘ a dac˘ a Beste mare, este foarte posibil ca un ˆ ıntreg xjs˘ a se descompun˘ a
ˆ ınB, dar num˘ arul acestor xjtrebuie s˘ a creasc˘ a pentru a c˘ auta relat ¸iile de dependent ¸˘ a.
Se arat˘ a c˘ a alegerea optim˘ a pentru Beste ˆ ın jur de/radicalBig
e√
logn log logn.
8.4.5 Alte tipuri de atac
Atac bazat pe propriet˘ at ¸i multiplicative ale cript˘ arii RSA
Fiem1, m2dou˘ a texte clare ¸ si c1respectiv c2textele criptate corespunz˘ atoare. Vom avea
(m1m2)b≡mb
1mb
2≡c1c2(mod n )
8.4. SECURITATEA SISTEMULUI RSA 157
Aceast˘ a proprietate de homomorfism a cript˘ arii poate oferi unui adversar activ posibili-
tatea unui atac cu text clar ales.
S˘ a presupunem c˘ a Oscar vrea s˘ a decripteze mesajul c=mb(mod n ) trimis de Boblui
Alice , iarAlice are amabilitatea s˘ a ˆ ıi decripteze lui Oscar orice text criptat primit (ˆ ınafar˘ a
dec, bineint ¸eles).
Atunci Oscar va alege un num˘ ar aleator x∈Z∗
n, va calcula c1=c·xb(mod n ) ¸ si va
solicita decriptarea lui. Alice va decripta pentru el m1=ca
1(mod n ). Deoarece
m1≡ca
1≡ca(xb)a≡mx(mod n )
Oscar va afla imediat m=m1·x−1(mod n ).
Acest tip de atac este prevenit de obicei impunˆ and anumite structuri speciale asupra
textelor clare.
Atac bazat pe un exponent mic de criptare
Asa cum s-a ar˘ atat ˆ ın Exemplul 8.13, pentru m˘ arirea vitezei de criptare se prefer˘ a
exponent ¸i mici de criptare (cum este b= 3). Aceast˘ a alegere are unele sl˘ abiciuni, care
permit atacuri ˆ ın anumite condit ¸ii.
Astfel, s˘ a presupunem c˘ a Alice dore¸ ste s˘ a trimit˘ a acela¸ si text clar mla trei destinatari
diferit ¸i, care au modulele ni, dar acela¸ si exponent de criptare b= 3. Deci textele criptate
vor fi ci=m3(mod n i)i= 1,2,3.Oscar le intercepteaz˘ a ¸ si rezolv˘ a sistemul
x≡c1(mod n 1), x≡c2(mod n 2), x≡c3(mod n 3)
folosind teorema chinez˘ a a resturilor, care asigur˘ a existent ¸a unui x∈[0, n1·n2·n3).
Deoarece m3< n 1·n2·n3, va rezulta c˘ a x=m3.
Deci Oscar va afla textul clar mextr˘ agˆ and r˘ ad˘ acina de ordinul 3 din solut ¸ia x.
ˆIn general, exponent ¸i mici de criptare asigur˘ a o securitate redus˘ a pentru mesajele mici
m: dac˘ a m < n1/batunci textul clar poate fi dedus din textul criptat c=mbcalculˆ and
r˘ ad˘ acina de ordin ba lui c.
Folosirea unui modul comun de criptare de c˘ atre mai mult ¸i utilizatori permite de
asemenea un atac u¸ sor. S˘ a presupunem c˘ a Alice trimite acela¸ si mesaj mc˘ atre doi utiliza-
tori care au cheile publice b1, b2dar acela¸ si modul n. Deci
c1≡mb1(mod n ), c 2≡mb2(mod n ).
F˘ ar˘ a a mic¸ sora generalitatea, putem presupune c˘ a cmmdc (b1, b2) = 1. Oscar va folosi
algoritmul lui Euclid pentru a determina numerele ˆ ıntregi r, sastfel ca
r·b1+s·b2= 1
Unul din numerele rsauseste negativ; s˘ a presupunem c˘ a este r(pentru snegativ se
procedeaz˘ a analog). Atunci Oscar obt ¸ine textul clar mfolosind egalitatea
(c−1
1)−r·cs
2≡m(mod n )
158 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
Atacuri ciclice
Fiec=mb(mod n ) un text criptat ¸ si kun ˆ ıntreg pozitiv astfel ca
cbk≡c(mod n )
(un astfel de kexist˘ a totdeauna, deoarece criptarea RSA este de fapt o permutare ˆ ın
spat ¸iul Znal textelor clare). Rezult˘ a c˘ a
cbk−1≡m(mod n )
Aceast˘ a observat ¸ie conduce la un atac ciclic :Oscar calculeaz˘ a cbi(mod n ) pentru
i= 1,2, . . . pˆ an˘ a g˘ ase¸ ste un kastfel ca cbk≡c(mod n ). Atunci va decripta cˆ ın
cbk−1≡m(mod n ).
Unatac ciclic generalizat const˘ a ˆ ın aflarea celui mai mic ˆ ıntreg pozitiv kastfel ca
cmmdc (cbk−c, n)>1. Vom avea implicat ¸ia
cbk≡c(mod p ), cbk/negationslash≡c(mod q ) =⇒ k=p
¸ si similar
cbk/negationslash≡c(mod p ), cbk≡c(mod q ) =⇒ k=q
ˆIn ambele cazuri s-a obt ¸inut factorizarea lui n.
Pe de-alt˘ a parte, dac˘ a
cbk≡c(mod p ), cbk≡c(mod q ) =⇒ k=n¸ sicbk≡c(mod n )
ˆIn acest caz s-a reu¸ sit decriptarea m=cbk−1(mod n ).
Folosirea unor numere prime tari asigur˘ a o protect ¸ie suficient˘ a pentru acest gen de
atac.
8.5 Sisteme de criptare ˆ ınrudite cu RSA
8.5.1 Sistemul de criptare Rabin
Sistemul de criptare Rabin (propus ˆ ın 1979) este o variant˘ a a sistemului RSA , care ofer˘ a
o securitate de calcul echivalent˘ a. Descrierea sa este:
Fien=pqunde p, qsunt numere prime distincte, p, q≡3 (mod 4). Se ia
P=C=Zn¸ siK={(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) =/radicalBigg
B2
4+y−B
2
8.5. SISTEME DE CRIPTARE ˆINRUDITE CU RSA 159
Observat ¸ia 8.3. Numerele prime ncun≡3 (mod 4)se numesc ”numere Blum”.
Exist˘ a patru texte clare distincte care se pot cripta ˆ ın acela¸ si text. S˘ a detaliem aceast˘ a
afirmat ¸ie:
Fieαuna din cele patru r˘ ad˘ acini p˘ atrate modulo nale unit˘ at ¸ii, ¸ si x∈Zn. Efectu˘ am
calculele
eK/parenleftbigg
α/parenleftbigg
x+B
2/parenrightbigg
−B
2/parenrightbigg
=α2/parenleftbigg
x+B
2/parenrightbigg2
−/parenleftbiggB
2/parenrightbigg2
=x2+Bx=eK(x)
(calculele s-au realizat ˆ ın Zn, iar ˆ ımp˘ art ¸irea la 2 ¸ si 4 s-a f˘ acut prin ˆ ınmult ¸irea ˆ ın Zncu
2−1respectiv 4−1).
Cele patru texte clare care se cifreaz˘ a ˆ ın eK(x) sunt
x,−x−B, α (x+B/2)−B/2 ¸ si−α(x+B/2)−B/2,
unde αeste o r˘ ad˘ acin˘ a p˘ atrat˘ a netrivial˘ a modulo na unit˘ at ¸ii.
Verificarea este imediat˘ a.
ˆIn general, dac˘ a nu dispune de informat ¸ii suplimentare, Bobnu are nici un mijloc de
a distinge care din cele patru mesaje este cel corect.
S˘ a vedem cum se realizeaz˘ a decriptarea. Bobprime¸ ste mesajul criptat y¸ si ˆ ıncearc˘ a
s˘ a s˘ a determine xastfel ca x2+Bx≡y(mod n ).
Aceasta este o ecuat ¸ie de gradul doi ˆ ın x. Termenul de gradul 1 se poate elimina
folosind substitut ¸ia x1=x+B/2 (sau – echivalent – x=x1−B/2).
Se ajunge la ecuat ¸ia
x2
1≡B2
4+y(mod n ).
Notˆ and membrul drept cu C, aceast˘ a ecuat ¸ie se scrie x2
1≡C(mod n ). Deci decriptarea
se reduce la extragerea r˘ ad˘ acinilor p˘ atrate modulo n; operat ¸ie echivalent˘ a cu rezolvarea
sistemului
x2
1≡C(mod p ) x2
1≡C(mod q )
care, prin combinarea solut ¸iilor fiec˘ arei ecuat ¸ii va da patru r˘ ad˘ acini p˘ atrate modulo n.
ˆIntr-o criptare corect˘ a, Ceste totdeauna un rest p˘ atratic modulo p¸ siq. Dac˘ a p≡
3 (mod 4), exist˘ a o formul˘ a simpl˘ a pentru extragerea r˘ ad˘ acinilor p˘ atrate dintr-un rest
p˘ atratic Cmodulo p. Avem (calculele se fac modulo p):
/parenleftBig
±C(p+1)/4/parenrightBig2≡C(p+1)/2≡C(p−1)/2C≡C
(s-a folosit Teorema 8.1). Cele patru r˘ ad˘ acini sunt deci
±C(p+1)/4(mod p ),±C(q+1)/4(mod q )
Acestea, prin combinare folosind teorema chinez˘ a a resturilor, dau cele patru r˘ ad˘ acini
p˘ atrate ale lui C.
160 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
Observat ¸ia 8.4. Nu se cunoa¸ ste un algoritm polinomial determinist pentru extragerea
r˘ ad˘ acinilor p˘ atratice modulo ppentru p≡1 (mod 4); ˆ ın aceast˘ a situat ¸ie exist˘ a doar
algoritmi Las Vegas.
Dup˘ a determinarea acestor r˘ ad˘ acini x1, se afl˘ a x=x1−B/2, rezultat care d˘ a formula
de decriptare din enunt ¸ul metodei Rabin.
Exemplul 8.16. Fien= 77 = 7·11¸ siB= 9. Funct ¸ia de criptare este
eK(x) =x2+ 9x(mod 77)
iar cea de decriptare
dK(y) =/radicalBig
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 23modulo 7¸ si11. Cum aceste dou˘ a module sunt congruente cu
3modulo 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 23modulo 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.
S˘ a studiem acum securitatea sistemului de criptare Rabin. S˘ a presupunem c˘ a exist˘ a
un algoritm de decriptare A; acesta poate fi atunci utilizat ˆ ıntr-un algoritm Las Vegas
care descompune modulul ncu probabilitate 1 /2; algoritmul este urm˘ atorul:
1.Se alege aleator r∈Zn;
2. y←−r2−B2/4mod n ;
3. x←−A(y);
4. x 1←−x+B/2;
5.ifx1≡±r(mod n )then Stop (e¸ sec)
else cmmdc (x1+r, n) =psauq, Stop
S˘ a observ˘ am ˆ ıntˆ ai c˘ a y=eK/parenleftbigg
r−B
2/parenrightbigg
, deci la pasul 3 se decripteaz˘ a xsub forma r−B/2.
Cum la pasul 5 .avem x2
1≡r2(mod n ), rezult˘ a x1≡±r(mod n ) sau x1≡±αr(mod n ),
unde αeste o r˘ ad˘ acin˘ a netrivial˘ a modulo na unit˘ at ¸ii.
8.6. EXERCIT ¸II 161
ˆIn al doilea caz, n|(x1−r)(x1+r) ¸ sinnu divide nici unul din cei doi factori. Deci,
calculul lui cmmdc (x1+r, n) sau cmmdc (x1−r, n) va da psauq, adic˘ a o descompunere
a lui n.
S˘ a calcul˘ am probabilitatea de succes a algoritmului ([45]), din n−1 extrageri posibile
ale lui r. Pentru dou˘ a resturi nenule r1, r2, se define¸ ste
r1∼r2⇐⇒ r2
1≡r2
2(mod n )
Aceasta este evident o relat ¸ie de echivalent ¸˘ a. Toate clasele de echivalent ¸˘ a din Z∗
nau cˆ ate
patru elemente, fiecare clas˘ a fiind de forma [ r] ={±r,±αr}.ˆIn algoritmul anterior, dou˘ a
valori dintr-o clas˘ a de echivalent ¸˘ a conduc la acela¸ si y.
S˘ a consider˘ am un x1calculat plecˆ and de la valoarea xreturnat˘ a de oracolul Apentru
unydat.x1este un element din [ r]. Dac˘ a x1=±r, algoritmul e¸ sueaz˘ a; dac˘ a x1=±αr, el
reu¸ se¸ ste s˘ a descompun˘ a n. Cum reste aleator, cele patru posibilit˘ at ¸i sunt echi-probabile,
deci algoritmul d˘ a reu¸ sit˘ a ˆ ın 50% din cazuri.
8.6 Exercit ¸ii
8.1. Demonstrat ¸i lemele 8.1 ¸ si 8.2.
8.2. Fiep, qnumere 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 ¸ sib= 7, calculat ¸i valoarea exponentului aatˆ at ˆ ın acest
sistem cˆ at ¸ si ˆ ın sistemul RSA normal.
8.3. O modalitate curent˘ a de a m˘ ari viteza de decriptare folose¸ ste teorema chinez˘ a a
resturilor. S˘ a presupunem c˘ a n=pq¸ sidK(y) =ya(mod n ). Definim dp=d(mod (p−
1)), dq=d(mod (q−1))¸ siMp=q−1(mod p ), M q=p−1(mod q ).
Vom considera algoritmul
1. x p←−ydp(mod p );
2. x q←−ydq(mod q );
3. x←−Mp·q·xp+Mq·p·xq(mod n );
4.return (x).
(a)Demonstrat ¸i c˘ a valoarea xreturnat˘ a este de fapt yd(mod n ).
162 CAPITOLUL 8. SISTEMUL DE CRIPTARE RSA
(b)Pentru p= 1511 , q= 2003 calculat ¸i dp, dq, Mp, Mq¸ si apoi decriptat ¸i textul y=
152702 folosind algoritmul din acest exercit ¸iu.
8.4. Pentru n= 837 ,851 1189 aflat ¸i num˘ arul de baze bpentru care num˘ arul neste Euler
pseudo-prim.
8.5. Scriet ¸i un program pentru calculul simbolului Jacobi, folosind Lemele 8.1 ¸ si 8.2.
Singura operat ¸ie de factorizare permis˘ a este ˆ ımp˘ art ¸irea la 2. Valori de test:
/parenleftbigg610
987/parenrightbigg
,/parenleftbigg20964
1987/parenrightbigg
,/parenleftbigg1234567
11111111/parenrightbigg
8.6. S˘ a se arate c˘ a orice num˘ ar apentru 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).
8.7. Fiepun num˘ ar prim impar ¸ si cmmdc (a, p) = 1 .
a)S˘ a presupunem c˘ a i≥2¸ sib2≡a(mod pi−1). Demonstrat ¸i c˘ a exist˘ a un x∈Zpunic
astfel ca x2≡a(mod pi)¸ six≡b(mod pi−1).
G˘ asit ¸i o modalitate eficient˘ 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 17modulo 192¸ si modulo 193.
(c)Ar˘ atat ¸i c˘ a num˘ arul solut ¸iilor congruent ¸ei x2≡a(mod pi)este0sau2,(∀i≥1).
8.8. Folosind metoda p−1¸ si diverse margini B, factorizat ¸i 262063 ¸ si9420457 . Cˆ at este
Bpentru fiecare caz ?
8.9. Fien= 317940011 ¸ sib= 7753781 . Descompunet ¸i nˆ ın factori, folosind algoritmul
lui Wiener.
8.10. Consider˘ am algoritmul lui Rabin cu p= 199 , q= 211 , n=pq¸ siB= 1357 .
(a)Criptat ¸i mesajul 32767 ;
(b)Determinat ¸i cele 4mesaje clare care duc la textul criptat y=eK(32767) .
Capitolul 9
Sistemul de criptare El Gamal
9.1 Descrierea algoritmului de criptare El Gamal
Sistemul de criptare El Gamal1, prezentatˆ ın 1985 (vezi [21]) de Taher ElGamal, se bazeaz˘ a
pe problema logaritmului discret ( PLD ), care este urm˘ atoarea:
Fiepnum˘ ar prim ¸ si α, β∈Zp, β/negationslash= 0.
S˘ a se determine a∈Zp−1astfel ca
αa≡β(mod p ).
Acest ˆ ıntreg a– dac˘ a exist˘ a – este unic ¸ si se noteaz˘ a logαβ.
Exemplul 9.1. Fiep= 11 ¸ siα= 6. Toate elementele din Z∗
11pot fi exprimate ca puteri
ale lui α:
a 0 1 2 3 4 5 6 7 8 9
6a(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 10
log6β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 9
3a(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 Z11pentru aceste valori ale lui β.
1Implement˘ ari ale sistemului sunt cont ¸inute ˆ ın softuri pentru GNU Privacy Guard ¸ si PGP – pentru a
lista doar cele mai cunoscute aplicat ¸ii.
163
164 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
Observat ¸ia 9.1. Pentru problema logaritmului discret, nu este obligatoriu ca ps˘ a fie
num˘ ar prim. Important este ca αs˘ a fie r˘ ad˘ acin˘ a primitiv˘ a de ordinul p−1a unit˘ at ¸ii:
∀i(0< i < p−1), αi/negationslash≡1 (mod p ). Teorema lui Fermat asigur˘ a αp−1≡1 (mod p ).
La o alegere convenabil˘ a a lui p,PLD esteNP – complet˘ a. Pentru sigurant ¸˘ a, pse
alege de minim 512 bit ¸i2iarp−1 s˘ a aib˘ a cel put ¸in un divizor prim ”mare”. Pentru un
astfel de modul p, spunem c˘ a problema logaritmului discret este dificil˘ a ˆ ın Zp. Utilitatea
acestei cerint ¸e rezid˘ a ˆ ın faptul c˘ a, de¸ si este foarte dificil de calculat un logaritm discret,
operat ¸ia invers˘ a – de exponent ¸iere – este foarte simpl˘ a (dup˘ a cum s-a v˘ azut la sistemul
RSA ).
Sistemul de criptare El Gamal este urm˘ atorul:
Fiepnum˘ ar prim pentru care PLD este dificil˘ a ˆ ın Zp, ¸ si fie α∈Z∗
pprimitiv.
DefinimP=Z∗
p,C=Z∗
p×Z∗
p¸ siK={(p, α, a, β )|β≡αa(mod p )}.
Valorile p, α, β sunt publice, iar aeste secret.
Pentru K= (p, α, a, β ) ¸ sik∈Zp−1aleator (secret) se define¸ ste
eK(x, k) = (y1, y2)
unde y1=αk(mod p ), y 2=x·βk(mod p ).
Pentru y1, y2∈Z∗
pse define¸ ste
dK(y1, y2) =y2·(ya
1)−1(mod p )
Verificarea este imediat˘ a:
y2·(ya
1)−1≡x·βk·(αka)−1≡x·βk(βk)−1≡x(mod p )
Sistemul este evident nedeterminist: criptarea depinde de x¸ si de o valoare aleatoare
aleas˘ a de Alice . Exist˘ a deci mai multe texte criptate corespunz˘ atoare unui anumit text
clar.
Exemplul 9.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 prime¸ ste mesajul criptat y= (435 ,2396) , el va determina
x= 2396·(435765)−1= 1299 ( mod 2579) .
2Pentru o securitate pe termen lung se recomand˘ a 1024 bit ¸i ([38]).
9.2. CALCULUL LOGARITMULUI DISCRET 165
Observat ¸ia 9.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),(z1, z2)sunt textele criptate ale mesajelor m1, m2atunci se poate
deduce imediat un text criptat pentru m1m2: (y1z1, y2z2). Similar poate fi dedus˘ a o
criptare pentru 2m1(sau 2m2). Acest lucru face sistemul El Gamal permeabil 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 keste esent ¸ial˘ a: astfel, s˘ a prsupunem c˘ a mesajele m1, m2au fost criptate ˆ ın
(y1, y2)respectiv (z1, z2)folosind acela¸ si k. Atunci y2/z2=m1/m2¸ si cunoa¸ sterea unuia
din mesaje ˆ ıl determin˘ a imediat pe cel˘ alalt.
9.2 Calculul logaritmului discret
ˆIn aceast˘ a sect ¸iune vom presupune c˘ a peste num˘ ar prim, iar αeste o r˘ ad˘ acin˘ a primitiv˘ a
de ordinul p−1 a unit˘ at ¸ii. Aceste dou˘ a valori fiind fixate, PLD se poate reformula astfel:
Fiind dat un β∈Z∗
p, s˘ a se determine exponentul a∈Zp−1astfel ca αa≡β(mod p ).
Evident aceast˘ a problem˘ a se poate rezolva printr-o c˘ autare direct˘ a (se calculeaz˘ a puterile
luiα) ˆ ın timp O(p) ¸ si folosindO(1) memorie. Pe de-alt˘ a parte, dac˘ a se calculeaz˘ a anterior
ˆ ıntr-o tabel˘ a toate valorile ( a, αamod p ), aflarea valorii c˘ autate se poate face ˆ ın O(1), dar
cu un spat ¸iu de complexitate O(p).
Tot ¸i algoritmii construit ¸i pentru calculul logaritmului discret folosesc un compromis
spat ¸iu – timp.
9.2.1 Algoritmul Shanks
Fiem=/ceilingleftbigg/radicalBig
p−1/ceilingrightbigg
. Algoritmul Shanks este:
1.Se construie¸ ste lista L1={(j, αmj(mod p ))|0≤j≤m−1};
2.Se construie¸ ste lista L2={(i, βα−i(mod p ))|0≤i≤m−1};
3.Se determin˘ a perechile ( j, y)∈L1,(i, y)∈L2(identice pe a doua pozit ¸ie);
4.Se define¸ ste logαβ=m·j+i(mod (p−1))
De remarcat c˘ a prin alegerea perechilor ( j, y)∈L1,(i, y)∈L2vom avea
αmj=y=βα−i,deciαmj+i=β.
Invers, pentru orice βputem scrie logαβ=m·j+icu 0≤i, j≤m−1; deci c˘ autarea
de la pasul 3 se termin˘ a totdeauna cu succes.
Implementarea acestui algoritm se poate face ˆ ın timp O(m) ¸ si spat ¸iu O(m).
166 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
Exemplul 9.3. Fiep= 809 ¸ si s˘ a determin˘ am log3525. Avem deci
α= 3, β= 525 , m=⌈√
808⌉= 29 , iar α29mod 809 = 99 .
Lista L1a perechilor (j,99j(mod 809)) ,0≤j≤28este:
(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 L2a cuplurilor (i,525·(3i)−1(mod 809)) ,0≤i≤28este:
(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˘ ase¸ ste (10,644)∈L1,(19,644)∈L2.
Se poate scrie deci
log3525 = 29·10 + 19 = 309 .
Se verific˘ a u¸ sor c˘ a 3309≡525 (mod 809).
9.2.2 Algoritmul Pohlig – Hellman
Mai ˆ ıntˆ ai, un rezultat matematic:
Lema 9.1. Fiex∈Zpun element primitiv. Atunci
xm≡xn(mod p )⇐⇒ m≡n(mod (p−1))
Demonstrat ¸ie. Relat ¸ia xm≡xn(mod p ) se poate rescrie xm−n≡1 (mod p ). Dar –
conform Teoremei lui Fermat – xp−1≡1 (mod p ) ¸ sixi/negationslash≡1 (mod p ) pentru 0 < i < p−1.
Deci p−1|m−n, sau m−n≡0 (mod (p−1)), relat ¸ie echivalent˘ a cu m≡n(mod (p−
1)).
Revenind la sistemul de criptare El Gamal, s˘ a consider˘ am descompunerea ˆ ın factori
primi
p−1 =k/productdisplay
i=1qci
i.
9.2. CALCULUL LOGARITMULUI DISCRET 167
Dac˘ a s-ar putea calcula a(mod qci
i) pentru tot ¸i i= 1, . . . , k , atunci – folosind Teorema
chinez˘ a a resturilor – s-ar putea determina a mod (p−1).
Fiequn num˘ ar prim astfel ca p−1≡0 (mod qc) ¸ sip−1/negationslash≡0 (mod qc+1). S˘ a ar˘ at˘ am
cum se poate calcula atunci x≡a(mod qc) pentru orice x,(0≤x≤qc−1).
S˘ a descompunem ˆ ıntˆ ai xˆ ın baza qfolosind egalitatea
x=c−1/summationdisplay
i=0aiqi,(0≤ai≤q−1).
Atunci se poate scrie a=x+qc·spentru un anumit num˘ ar ˆ ıntreg pozitiv s.
La primul pas trebuie calculat a0. Se porne¸ ste de la observat ¸ia c˘ a
β(p−1)/q≡α(p−1)a0/q(mod p ).
Pentru a ar˘ ata aceasta, deoarece β(p−1)/q≡α(p−1)(x+qcs)/q(mod p ), este suficient s˘ a se
verifice c˘ a α(p−1)(x+qcs)/q≡α(p−1)a0/q(mod p ).
Aceast˘ a relat ¸ie este adev˘ arat˘ a dac˘ a ¸ si numai dac˘ a
(p−1)(x+qcs)
q≡(p−1)a0
q(mod (p−1)),
ceea ce se poate verifica prin calcul direct:
(p−1)(x+qcs)
q−(p−1)a0
q=p−1
q(x+qcs−a0) =p−1
q/parenleftBiggc−1/summationdisplay
i=0aiqi+qcs−a0/parenrightBigg
=
=p−1
q/parenleftBiggc−1/summationdisplay
i=1aiqi+qcs/parenrightBigg
= (p−1)/parenleftBiggc−1/summationdisplay
i=1aiqi−1+qc−1s/parenrightBigg
≡0 (mod (p−1)).
Putem acum s˘ a ˆ ıncepem calculul lui β(p−1)/q(mod p ). Dac˘ a β(p−1)/q≡1 (mod p ),
atunci a0= 0. Altfel se calculeaz˘ a ˆ ın Zpγ=α(p−1)/q, γ2, . . .pˆ an˘ a se obt ¸ine un num˘ ar
ˆ ıntreg pozitiv ipentru care γi≡β(p−1)/q. Atunci a0=i.
Dac˘ a c= 1, algoritmul se termin˘ a; altfel, ( c >1), se caut˘ a valoarea lui a1. Pentru
aceasta se define¸ ste
β1=βα−a0
¸ si se noteaz˘ a x1=logαβ1(mod qc).
Deoarece (evident) x1=c−1/summationdisplay
i=1aiqi, se va ajunge la relat ¸ia β(p−1)/q2
1≡α(p−1)a1/q(mod p ).
Se calculeaz˘ a atunci β(p−1)/q2
1 (mod p ) ¸ si se caut˘ a iastfel ca
γi≡β(p−1)/q2
1 (mod p ).
Se ia a1=i.
Dac˘ a c= 2, s-a terminat; ˆ ın caz contrar, se mai efectueaz˘ a c−2 pa¸ si pentru deter-
minarea coeficient ¸ilor a2, . . . , a c−1.
168 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
Formal, algoritmul Pohlig – Hellman este urm˘ atorul:
1.Se calculeaz˘ a γi=α(p−1)i/q(mod p ),0≤i≤q−1;
2. β 0←−β;
3.forj= 0toc−1do
3.1δ←−β(p−1)/qj+1
j (mod p );
3.2.Se caut˘ a iastfel ca δ=γi;
3.3. a j←−i;
3.4. β j+1←−βjα−ajqjmod p .
Algoritmul calculeaz˘ a a0, a1, . . . , a c−1unde logαβ(mod qc) =c−1/summationdisplay
i=0aiqi.
Exemplul 9.4. Fiep= 29 . Avem n=p−1 = 28 = 2271.
S˘ a alegem α= 2, β= 18 ¸ si ne punem problema determin˘ arii lui a= log218. Pentru
aceasta se va calcula a(mod 4)¸ sia(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/4
1= 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
¸ sia≡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 ˆ ınZ29.
9.2.3 Algoritmul Pollard Rho
Fiepun num˘ ar prim ¸ si α∈Zpun element de ordin n(n < p ). Vom considera Gα⊆Zp
subgrupul ciclic generat de α. Ne punem problema calcul˘ arii lui logαβ, unde β∈Gαeste
arbitrar.
FieZp=S1∪S2∪S3o partit ¸ie a lui Zpˆ ın trei mult ¸imi de dimensiuni aproximativ
egale; consider˘ am funct ¸ia
f:Gα×Zn×Zn−→Gα×Zn×Zn
definit˘ a prin
f(x, a, b ) =
(βx, a, b + 1) dac˘ a x∈S1
(x2,2a,2b) dac˘ a x∈S2
(αx, a + 1, b) dac˘ a x∈S3
Pe baza acestei funct ¸ii vom genera recursiv triplete ( x, a, b ) cu proprietatea x=αaβb.
9.2. CALCULUL LOGARITMULUI DISCRET 169
Fie (1 ,0,0) tripletul init ¸ial (el are aceast˘ a proprietate). ˆIn continuare
(xi, ai, bi) =/braceleftBigg
(1,0,0) dac˘ a i= 0
f(xi−1, ai−1, bi−1) dac˘ a i≥1
ˆIn etapa a doua, se compar˘ a tripletele ( x2i, a2i, b2i) ¸ si (xi, ai, bi) pˆ an˘ a se g˘ ase¸ ste o valoare
a lui ipentru care x2i=xi.ˆIn acel moment,
αa2iβb2i=αaiβbi.
Notˆ and c=logαβ, relat ¸ia poate fi rescris˘ a
αa2i+cb2i=αai+cbi.
Cum αare ordinul n, rezult˘ a
a2i+cb2i≡ai+cbi(mod n )
sau
c(b2i−bi)≡ai−a2i(mod n ).
Dac˘ a cmmdc (b2i−bi, n) = 1, atunci se poate obt ¸ine c:
c= (ai−a2i)·(b2i−bi)−1(mod n )
Exemplul 9.5. S˘ a consider˘ am p= 809 ¸ siα= 89 ; ordinul lui αˆ ınZ∗
809esten= 101 . Se
verific˘ a u¸ sor c˘ a β= 618∈G89. Vom calcula log89618.
S˘ a presupunem c˘ a alegem partit ¸ia
S1={x|x∈Z809, x≡1 (mod 3)}
S2={x|x∈Z809, x≡0 (mod 3)}
S3={x|x∈Z809, x≡2 (mod 3)}
Pentru i= 1,2,3, . . .se obt ¸in 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)
170 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
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).
O formalizare a algoritmului Pollard Rho pentru calculul logaritmului discret3este:
Algoritm Pollard Rho (Zp, n, α, β )
1 Se define¸ ste partit ¸ia Zp=S1∪S2∪S3;
2.(x, a, b )←−f(1,0,0), (x1, a1, b1)←−f(x, a, b )
3.while x/negationslash=x1do
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.ifcmmdc (b1−b, n)>1then return (E¸ sec)
else return ((a−a1)·(b1−b)−1(mod n ))
procedure f(x, a, b )
1.ifx∈S1then f←−(β·x, a, (b+ 1) ( mod n ));
2.ifx∈S2then f←−(x·x,2·a(mod n ),2·b(mod n ));
3.ifx∈S3then f←−(α·x,(a+ 1) ( mod n ), b);
4.return (f).
end procedure
ˆIn cazul cmmdc (b1−b, n) =d > 1, congruent ¸a c·(b1−b)≡a−a1(mod n ) are d
solut ¸ii posibile. Dac˘ a deste destul de mic, aceste solut ¸ii se pot afla, iar o simpl˘ a c˘ autare
exhaustiv˘ a printre ele va determina solut ¸ia corect˘ a.
9.2.4 Metoda de calcul a indicelui
Aceast˘ a metod˘ a seam˘ an˘ a cu unul din cei mai buni algoritmi de descompunere ˆ ın factori.
Vom da doar o descriere informal˘ a a acestui algoritm.
Se folose¸ ste o baz˘ a de divizoriBcompus˘ a din Bnumere prime ”mici”. Prima etap˘ a
const˘ a ˆ ın aflarea logaritmilor elementelor din baza B.
ˆIn a doua etap˘ a, folosind ace¸ sti logaritmi, se va determina logaritmul discret al lui β.
I: Se construiesc C=B+ 10 congruent ¸e modulo pde forma
αxj≡paij
1pa2j
2. . . paBj
B(mod p ), (1≤j≤C).
Cu aceste Cecuat ¸ii de necunoscute logαpi(1≤i≤B) se ˆ ıncearc˘ a aflarea unei solut ¸ii
unice modulo ( p−1).ˆIn caz de reu¸ sit˘ a, primul pas este ˆ ıncheiat.
3Un algoritm similar Pollard Rho poate fi construit pentru factorizarea unui num˘ ar. Detalii se g˘ asesc
de exemplu ˆ ın [53].
9.3. SECURITATEA PLD FAT ¸˘A DE INFORMAT ¸II PART ¸IALE 171
Problema ar fi cum s˘ a se g˘ aseasc˘ a aceste Ccongruent ¸e. O metod˘ a elementar˘ a const˘ a
din trei pa¸ si: alegerea aleatoare a unui x, calculul lui αx(mod p ) ¸ si verificarea dac˘ a acest
num˘ ar are tot ¸i divizorii ˆ ın B.
II: Acum se poate determina logαβcu un algoritm de tip Las Vegas. Se alege aleator
un num˘ ar ˆ ıntreg s(1≤s≤p−2) ¸ si se determin˘ a γ=βαs(mod p ).
Se ˆ ıncearc˘ a apoi descompunerea lui γˆ ın bazaB. Dac˘ a acest lucru este posibil, se
obt ¸ine o relat ¸ie de forma
βαs≡pc1
1pc2
2. . . pcB
B(mod p )
care poate fi transformat˘ a ˆ ın
logαβ+s≡c1logαp1+. . .+cBlogαpB(mod (p−1)).
De aici – prin evaluarea membrului drept, se poate determina logαβ.
Exemplul 9.6. Fiep= 10007 ¸ siα= 5(element primitiv). S˘ a consider˘ am B={2,3,5,7}
ca baz˘ a de divizori. Cum – evident – log55 = 1 , trebuie 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.
Pe baza lor se obt ¸in alte dou˘ a relat ¸ii:
log52 + 3 log53≡5136 ( mod 10006) ,
3log53 +log57≡9865 ( mod 10006) .
Rezolvarea acestui sistem de trei ecuat ¸ii ˆ ın Z10006 conduce la solut ¸ia unic˘ a
log52 = 6578 , log 53 = 6190 , log 57 = 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 = 4 log52+log53+2log55+log57−s= 4·6578+6190+2·1+1301−7736 = 6057 ,
calculele fiind realizate modulo 10006 .
Se verific˘ a u¸ sor c˘ a 56057≡9451 ( mod 10007) .
9.3 Securitatea PLD fat ¸˘ a de informat ¸ii part ¸iale
ˆIn aceast˘ a sect ¸iune vom considera un tip de atac care ˆ ıncearc˘ a s˘ a determine valoarea unuia
sau mai multor bit ¸i din reprezentarea binar˘ a a logaritmilor discret ¸i.
Mai exact se ˆ ıncearc˘ a calculul lui Li(β): ali-lea bit (num˘ arˆ and de la cel mai put ¸in bit
semnificativ) din scrierea ˆ ın binar a lui logαβpeste Z∗
p; deci 1≤i≤⌈log2(p−1)⌉.
172 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
Afirmat ¸ia 9.1. L1(β)poate fi calculat printr-un algoritm de complexitate polinomial˘ a.
Demonstrat ¸ie. S˘ a consider˘ am funct ¸ia f:Z∗
p←−Z∗
pdefinit˘ a
f(x) =x2(mod p ).
Not˘ am RP(p) mult ¸imea resturilor p˘ atratice modulo p:
RP(p) ={x|∃y∈Z∗
p, x≡y2(mod p )}.
Pe baza observat ¸iilor
1.f(x) =f(p−x),
2.×2≡y2(mod p )⇐⇒ x=±y(mod p )
rezult˘ a card(RP(p)) = ( p−1)/2 (deci exact jum˘ atate din elementele lui Z∗
psunt resturi
p˘ atratice).
S˘ a presupunem acum c˘ a α∈Zpeste primitiv. Deci αi∈RP(p) pentru ipar. Cum
(p−1)/2 astfel de puteri sunt distincte, rezult˘ a
RP(p) =/braceleftbigg
α2i/vextendsingle/vextendsingle/vextendsingle/vextendsingle0≤i≤p−3
2/bracerightbigg
.
Deci βeste rest p˘ atratic dac˘ a ¸ si numai dac˘ a logαβeste par, adic˘ a L1(β) = 0.
Conform Teoremei 8 .1 (Capitolul 8), βeste rest p˘ atratic dac˘ a ¸ si numai dac˘ a
βp−1
2≡1 (mod p )
fapt care poate fi testat cu un algoritm de complexitate polinomial˘ a. Deci putem da o
formul˘ a pentru calculul lui L1(β):
L1(β) =/braceleftBigg
0 dac˘ a β(p−1)/2≡1 (mod p )
1 altfel
Afirmat ¸ia 9.2. Dac˘ a p−1 = 2s(2t+ 1), atunci
1.Calculul lui Li(β)pentru 1≤i≤seste u¸ sor.
2.Orice algoritm (sau oracol) care poate calcula Ls+1(β)permite rezolvarea problemei
logaritmului discret ˆ ın Zp.
Prima parte a afirmat ¸iei este simpl˘ a.
Vom demonstra a doua parte pentru cazul s= 1. Mai exact,vom ar˘ ata c˘ a dac˘ a peste
prim ¸ si p≡3 (mod 4), atunci orice oracol care d˘ a L2(β) poate fi folosit la rezolvarea
problemei logaritmului discret ˆ ın Zp.
Se ¸ stie (algoritmul de criptare al lui Rabin, Capitolul 8) c˘ a dac˘ a βeste rest p˘ atratic ˆ ın
Zp¸ sip≡3 (mod 4), atunci r˘ ad˘ acinile p˘ atrate ale lui βmodulo psunt±β(p+1)/4(mod p ).
9.3. SECURITATEA PLD FAT ¸˘A DE INFORMAT ¸II PART ¸IALE 173
Lema 9.2. Dac˘ a p≡3 (mod 4)¸ siβ/negationslash= 0, atunci L1(p−β) = 1−L1(β).
Demonstrat ¸ie. Fieαa≡β(mod p ). Atunci αa+(p−1)/2≡−β(mod p ). Deoarece p≡
3 (mod 4), num˘ arul ( p−1)/2 este impar. Deci L1(β)/negationslash=L1(p−β).
Fie acum β=αapentru 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 dou˘ a variante (cu +
sau−) este corect˘ a. Acest lucru este folosit de urm˘ atorul algoritm care d˘ a valoarea loga-
ritmului discret logαβ(s-a presupus c˘ a valoarea L2(β) se poate afla, folosind de exemplu
un oracol):
Algoritm aflare bit (p, α, β )
1. x 0←−L1(β);
2. β←−β/αx0(mod p )
3. i←−1;
4.while β/negationslash= 1do
4.1. x i←−L2(β);
4.2. γ←−β(p+1)/4(mod p );
4.3.ifL1(γ) =xithen β←−γ
else β←−p−γ;
4.4. β←−β/αxi(mod p );
4.5. i←−i+ 1;
5.return (xi−1, xi−2, . . . , x 0).
ˆIn final, se obt ¸ine
logαβ=/summationdisplay
j≥0xj·2j.
Exemplul 9.7. Fiep= 19, α= 2, β= 6. Deoarece numerele sunt foarte mici, se pot
determina u¸ sor valorile pentru L1¸ siL2; ele sunt cele din tabelul
x L 1(x)L2(x)x L 1(x)L2(x)x L 1(x)L2(x)
1 0 0 7 0 1 13 1 0
2 1 0 8 1 1 14 1 1
3 1 0 9 0 0 15 1 1
4 0 1 10 1 0 16 0 0
5 0 0 11 0 0 17 0 1
6 0 1 12 1 1 18 1 0
174 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
Pe baza acestor informat ¸ii, aplic˘ am algoritmul. Se obt ¸ine:
x0←−0, β←−6, i←−1;
x1←−L2(6) = 1 , γ←−5, L 1(5) = 0/negationslash=x1, β←−14, β←−7, i←−2;
x2←−L2(7) = 1 , γ←−11, L 1(11) = 0/negationslash=x2, β←−8, β←−4, i←−3;
x3←−L2(4) = 1 , γ←−17, L 1(17) = 0/negationslash=x3, β←−2, β←−1, i←−4.
return (1,1,1,0).
Deci log26 = 1110 2= 14 .
9.4 Generalizarea sistemului de criptare El Gamal
Sistemul de criptare El Gamal se poate construi pentru orice grup (ˆ ın locul grupului
multiplicativ Z∗
n) ˆ ın care problema logaritmului (definit˘ a corespunz˘ ator) este dificil˘ a.
Fie (G,◦) un grup finit. Problema logaritmului discret ( PLD ) se define¸ ste ˆ ın Gastfel:
Fieα∈G¸ siH={αi|i≥0}subgrupul generat de α. Dac˘ a β∈H, s˘ a se determine
una(unic) (0≤a≤card(H)−1) cu αa=β, unde αa=α◦α◦. . .◦α/bracehtipupleft/bracehtipdownright/bracehtipdownleft/bracehtipupright
aori
Definirea sistemului de criptare El Gamal ˆ ın subgrupul Hˆ ın loc de Z∗
neste u¸ sor de
realizat; anume:
Fie (G,◦) un grup ¸ si α∈Gpentru care PLD ˆ ınH={αi|i≥0}este dificil˘ a.
FieP=G,C=G×G¸ siK={(G, α, a, β )|β=αa}.
Valorile α, β sunt publice iar aeste secret.
Pentru K= (G, α, a, β ) ¸ si un k∈Zcard (H)aleator (secret), se define¸ ste
eK(x, k) = (y1, y2) unde y1=αk, y2=x◦βk.
Pentru y= (y1, y2), decriptarea este
dK(y) =y2◦(ya
1)−1.
De remarcat c˘ a pentru criptare/decriptare nu este necesar˘ a cunoa¸ sterea ordinului card(H)
de m˘ arime al subgrupului; Alice poate alege aleator un k,(0≤k≤card(G)−1) cu care
cele dou˘ a procese funct ¸ioneaz˘ a f˘ ar˘ a probleme.
Se poate observa de asemenea c˘ a Gnu este neap˘ arat abelian ( Hˆ ın schimb este, fiind
subgrup ciclic).
S˘ a studiem acum problema logaritmului discret ”generalizat”. Deoarece Heste sub-
grup ciclic, orice versiune a problemei este echivalent˘ a cu PLD ˆ ıntr-un grup ciclic.
ˆIn schimb, se pare c˘ a dificultatea problemei depinde mult de reprezentarea grupului
utilizat.
9.5. EXERCIT ¸II 175
Astfel ˆ ın grupul aditiv Zn, problema este simpl˘ a; aici exponent ¸ierea αaeste de fapt
ˆ ınmult ¸irea cu amodulo n. Deci, PLD const˘ a ˆ ın aflarea unui num˘ ar ˆ ıntreg aastfel ca
aα≡β(mod n ).
Dac˘ a se alege αastfel ca cmmdc (α, n) = 1 ( αeste generator al grupului), αare un
invers multiplicativ modulo n, care se determin˘ a u¸ sor cu algoritmul lui Euclid extins.
Atunci,
a=logαβ=βα−1(mod n ).
S˘ a vedem cum se reprezint˘ a PLD ˆ ın grupul multiplicativ Z∗
pcupprim. Acest grup
este ciclic de ordin p−1, deci izomorf cu grupul aditiv Zp−1. Deoarece PLD se poate
rezolva u¸ sor ˆ ıntr-un grup aditiv, apare ˆ ıntrebarea dac˘ a putem rezolva aceast˘ a problem˘ a
ˆ ınZ∗
preducˆ and-o la Zp−1.
S ¸tim c˘ a exist˘ a un izomorfism φ:Z∗
p−→Zp−1, deci pentru care
φ(xy mod p ) = (φ(x) +φ(y)) (mod (p−1).)
ˆIn particular, φ(αamod p ) =aφ(α) (mod (p−1)), adic˘ a
β≡αa(mod p )⇐⇒ aφ(a)≡φ(β) (mod (p−1)).
Acum, determinarea lui ase realizeaz˘ a cu logαβ=φ(β)(φ(α))−1(mod (p−1)).
Deci, dac˘ a se g˘ ase¸ ste o metod˘ a eficace pentru calculul izomorfismului φ, se obt ¸ine un
algoritm eficace pentru calculul logaritmului discret ˆ ın Z∗
p.
Problema este c˘ a nu se cunoa¸ ste nici o metod˘ a general˘ a de construct ¸ie a lui φpentru
un num˘ ar prim poarecare. De¸ si se ¸ stie c˘ a cele dou˘ a grupuri sunt izomorfe, nu exist˘ a ˆ ınc˘ a
un algoritm eficient pentru construct ¸ia explicit˘ a a unui astfel de izomorfism.
Aceast˘ a metod˘ a se poate aplica problemei logaritmului discret ˆ ıntr-un grup finit ar-
bitrar. Implement˘ arile au fost realizate ˆ ın general pentru Zp, GF(2p) (unde PLD este
dificil˘ a) sau curbe eliptice.
9.5 Exercit ¸ii
9.1. Implementat ¸i algoritmul Shanks pentru aflarea logaritmului discret. Aplicat ¸ii pentru
aflarea log10612375 ˆ ınZ∗
24691 ¸ silog6248388 ˆ ınZ∗
458009 .
9.2. Num˘ arul p= 458009 este prim ¸ si α= 2are ordinul 57251 ˆ ınZ∗
p. Folosind algoritmul
Pollard Rho, calculat ¸i log256851 ˆ ınZ∗
p.
Luat ¸i valoarea init ¸ial˘ a x0= 1¸ si partit ¸ia din Exemplul 9.5.
176 CAPITOLUL 9. SISTEMUL DE CRIPTARE EL GAMAL
9.3. Fiepun num˘ ar prim impar ¸ si kun num˘ ar pozitiv. Grupul multiplicativ Z∗
pkare
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
α, α+peste element primitiv modulo p2.
(b)Descriet ¸i cum se poate poate verifica eficient c˘ a 3este o r˘ ad˘ acin˘ a primitiv˘ a modulo
29¸ si modulo 292. Ar˘ atat ¸i ˆ ıntˆ ai c˘ a dac˘ a αeste o r˘ ad˘ acin˘ a primitiv˘ a modulo p¸ si modulo
p2, atunci ea este r˘ ad˘ acin˘ a primitiv˘ a modulo pjpentru orice jˆ ıntreg.
(c)G˘ asit ¸i un ˆ ıntreg αcare este r˘ ad˘ acin˘ a primitiv˘ a modulo 29dar nu este r˘ ad˘ acin˘ a
primitiv˘ a modulo 292.
(d)Folosit ¸i algoritmul Pohlig – Hellman pentru a calcula log33344 ˆ ınZ∗
24389.
9.4. S˘ a implement˘ am sistemul de criptare El Gamal ˆ ın GF(33). Polinomul x3+ 2×2+ 1
este ireductibil peste Z3[x]¸ si deci GF(33) =Z[x]/(x3+ 2×2+ 1). Asociem cele 26litere
ale alfabetului cu cele 26elemente nenule ale corpului (ordonate lexicografic):
A↔1 B↔2 C↔x
D↔x+ 1 E↔x+ 2 F↔2x
G↔2x+ 1 H↔2x+ 2 I↔x2
J↔x2+ 1 K↔x2+ 2 L↔x2+x
M↔x2+x+ 1 N↔x2+x+ 2 O↔x2+ 2x
P↔x2+ 2x+ 1 Q↔x2+ 2x+ 2 R↔2×2
S↔2×2+ 1 T↔2×2+ 2 U↔2×2+x
V↔2×2+x+ 1 W↔2×2+x+ 2 X↔2×2+ 2x
Y↔2×2+ 2x+ 1 Z↔2×2+ 2x+ 2
S˘ a presupunem c˘ a Bob folose¸ ste α=x¸ sip= 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)
9.5. Fiep= 227 . Elementul α= 2este primitiv ˆ ın Z∗
p.
(a)Calculat ¸i α32, α40, α59¸ siα156modulo 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, log 25, log 27, log 211folosind facto-
rizarea anterioar˘ a.
(c)S˘ a presupunem c˘ a vrem s˘ a calcul˘ am log2173.ˆInmult ¸im 173cu valoarea ”aleatoare”
2177(mod p ). Factorizat ¸i rezultatul peste baza de factori dat˘ a mai sus ¸ si determinatˆ ı
log2173.
9.6. Implementat ¸i algoritmul Pohlig – Hellman de calcul al logaritmului discret ˆ ın Zp,
unde peste num˘ ar prim ¸ si αprimitiv. Folosit ¸i programul pentru a afla log58563 ˆ ınZ28703
¸ silog1012611 ˆ ınZ31153.
Capitolul 10
Sisteme de criptare bazate pe curbe
eliptice
Toate sistemele de criptare prezentate pˆ an˘ a ˆ ın acest moment se bazeaz˘ a pe operat ¸ii efec-
tuate ˆ ıntr-un inel multiplicativ Zn; securitatea lor s-a redus ˆ ın general la probleme mate-
maticeNP – complete.
ˆIn 1985, Victor Miller ¸ si Neal Koblitz propun – independent unul de altul – o crip-
tografie ˆ ın care baza de calcul s˘ a fie mult ¸imea punctelor unei curbe eliptice. Se pare c˘ a
sunt dou˘ a motive pentru care aceast˘ a modalitate este exploatat˘ a cu tot mai mult succes:
•Este asigurat˘ a o eficient ¸˘ a sporit˘ a a algoritmilor (din punct de vedere timp/spat ¸iu).
Conform NSA (National Security Agency), ” criptografia pe curbe eliptice asigur˘ a o
securitate sporit˘ a, precum ¸ si performant ¸e superioare tehnicilor de criptare cu cheie
public˘ a cunoscute pˆ an˘ a acum. ”
O estimare oferit˘ a de NIST a m˘ arimii cheilor (ˆ ın bit ¸i) pentru un nivel echivalent
de securitate arat˘ a astfel:
Sistem simetric RSA Sistem pe curbe eliptice
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 521
•Ofer˘ a variante de implementare superioare pentru noi aparate matematice de calcul
(cum ar fi de exemplu aplicat ¸iile biliniare).
Vom aborda ˆ ın acest capitol o scurt˘ a prezentare a curbelor eliptice, precum ¸ si a princi-
palelor direct ¸ii de studiu referitoare la ECC (Elliptic Curve Cryptography).
177
178 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
10.1 Aritmetica curbelor eliptice
Pentru ˆ ınceput, s˘ a definim not ¸iunea de curb˘ a eliptic˘ a .
Definit ¸ia 10.1. O curb˘ a eliptic˘ a Epeste un corp Keste definit˘ a de ecuat ¸ia
E:y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
unde a1, a2, a3, a4, a6∈K¸ si∆/negationslash= 0, unde ∆este discriminantul lui E, definit prin
∆ =−d2
2d8−8d3
4−27d2
6+ 9d2d4d6, (2)
iar
d2=a2
1+ 4a2,
d4= 2a4+a1a3,
d6=a2
3+ 4a6,
d8=a2
1a6+ 4a2a6−a1a3a4+a2a2
3−a4.
Dac˘ a Leste o extensie oarecare a lui K, atunci mult ¸imea punctelor curbei EpeLeste
E(L) ={(x, y)∈L×L|y2+a1xy+a3y−x3+a2x2+a4x+a6= 0}/uniondisplay
{O}
undeOeste ” punctul de la infinit ”1.
Elementele lui E(L) se numesc punctele L- rat ¸ionale ale curbei E.
ˆIn general vom lucra cu un corp K=Zp, unde peste un num˘ ar prim. Prin extensie,
vom numi curb˘ a eliptic˘ a peste Zpmult ¸imea ( x, y)∈Zp×Zpa solut ¸iilor ecuat ¸iei
y2+a1xy+a3y≡x3+a2x2+a4x+a6(mod p )
¸ si dintr-un punct la infinit O.
Observat ¸ia 10.1.
1. Ecuat ¸ia (1)este numit˘ a ecuat ¸ie Weierstrass.
2. Condit ¸ia ∆/negationslash= 0 asigur˘ a lucrul cu o curb˘ a eliptic˘ a ”neted˘ a” (f˘ ar˘ a puncte ˆ ın care
curba are dou˘ a sau mai multe tangente distincte).
ˆIn funct ¸ie de valorile caracteristicii pa corpului K, se disting urm˘ atoarele cazuri:
1.p= 2. Apar dou˘ a subcazuri:
(a) Dac˘ a a1/negationslash= 0, atunci curba eliptic˘ a Epoate fi adus˘ a (prin schimb˘ ari de variabile)
la forma
y2+xy=x3+ax+b (3)
unde a, b∈K. O asemenea curb˘ a se nume¸ ste non-supersingular˘ a , iar discri-
minantul ei este ∆ = b.
1ElementulOeste introdus pentru a satisface forma proiectiv˘ a a ecuat ¸iei (1) ¸ si pentru a permite
construirea unei structuri algebrice convenabile pe E(L).
10.1. ARITMETICA CURBELOR ELIPTICE 179
(b) Dac˘ a a1= 0, atunci ecuat ¸ia curbei Epoate fi adus˘ a la forma
y2+cy=x3+ax+b (4)
unde a, b, c∈K. O asemenea curb˘ a este numit˘ a supersingular˘ a , iar discrimi-
nantul ei este ∆ = c4.
2.p= 3. Apar ¸ si aici dou˘ a subcazuri:
(a) Dac˘ a a2
1/negationslash=−a2, atunci curba eliptic˘ a Ese poate transforma ˆ ın
y2=x3+ax2+b (5)
cua, b∈K. Curba este numit˘ a non-supersingular˘ a , iar discriminantul ei este
∆ =−a3b.
(b) Dac˘ a a2
1=−a2, atunci Ese aduce la forma
y2=x3+ax+b (6)
cua, b∈K. Curba este supersingular˘ a , de discriminant ∆ = −a3.
3. Pentru p >3, curba eliptic˘ a Epoate fi adus˘ a (prin schimb˘ ari de variabile) la forma
y2=x3+ax+b (7)
unde a, b∈K. Descriminantul ei este ∆ = −16(4a3+ 27b2).
Marea majoritate a curbelor eliptice utilizate ˆ ın protocoale criptografice sunt definite
pentru cazul p >3 sau (ˆ ıntr-o m˘ asur˘ a mai mic˘ a) pentru curbele non-supersingulare.
ˆIn continuare vom lucra cu definit ¸ia (7) a unei curbe eliptice (cazul corpurilor de
caracteristic˘ a p >3).
O astfel de curb˘ a eliptic˘ a Ese poate structura ca un grup abelian finit. Legea de
compozit ¸ie (notat˘ a aditiv) este definit˘ a astfel:
FieP, Q∈E(L), P = (x1, y1), Q= (x2, y2).
Dac˘ a x2=x1, y2=−y1, atunci P+Q=O; altfel, P+Q= (x3, y3) unde
x3=λ2−x1−x2, y 3=λ(x1−x3)−y1,
iar
λ=
y2−y1
x2−x1dac˘ a P/negationslash=Q
3×2
1+a
2y1dac˘ a P=Q
Se mai define¸ ste P+O=O+P=P,∀P∈E.
Verificarea propriet˘ at ¸ilor de grup este banal˘ a. Elementul neutru este O.
De remarcat c˘ a inversa lui ( x, y) (notat˘ a−(x, y)) este ( x,−y).
180 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
Operat ¸ia poate fi explicat˘ a mult mai sugestiv geometric.
FieP= (x1, y1) ¸ siQ= (x2, y2) dou˘ a puncte distincte pe curba eliptic˘ a E. Suma
R=P+Qeste definit˘ a astfel: linia PQtaie curba ˆ ıntr-un al treilea punct. Reste
simetricul acestui punct fat ¸˘ a de axa xx/prime(figura ( a)).
P=(x1,y1)Q=(x2,y2)
R=(x3,y3)P=(x1,y1)
R=(x3,y3)xy y
x
(a) Adunarea P+Q=R (b) Dublarea: P+P=R
Dac˘ a P¸ siQcoincid, atunci tangenta ˆ ın Pva t˘ aia din nou curba eliptic˘ a E.Reste
simetricul acestui nou punct fat ¸˘ a de axa xx/prime(figura ( b)).
Exemplul 10.1. FieEcurba eliptic˘ a y2=x3+x+ 5peste Z19. S˘ a calcul˘ am la ˆ ınceput
punctele lui E. Aceasta se face astfel: ∀x∈Z11se calculeaz˘ a z=x3+x+ 5 ( mod 19);
apoi se testeaz˘ a dac˘ a zeste rest p˘ atratic.
ˆIn caz afirmativ, deoarece 19≡3 (mod 4), exist˘ a o formul˘ a (a se vedea sistemul de
criptare Rabin, Capitolul 8) care conduce direct la calculul r˘ ad˘ acinilor p˘ atrate ale lui z:
±z(19+1) /4(mod 19) =±z5(mod 19).
Rezultatele sunt strˆ anse ˆ ın tabelele urm˘ atoare (toate calculele se realizeaz˘ a modulo 19):
a0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
a20 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 y
0 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 ,1513 11 7 ,1214 8 −
15 13 − 16 13 − 17 14 −
18 3 −
10.1. ARITMETICA CURBELOR ELIPTICE 181
Curba eliptic˘ a Eadmite deci 15puncte; 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), y 3= 18·(0−1)−9 =−27≡11 (mod 19),
deci2α= (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 , y 3= 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 curb˘ a eliptic˘ a definit˘ a pe Zp(p > 3 prim) are aproximativ ppuncte. Num˘ arul
punctelor din E(Zp) este numit ordinul lui Epeste Zp. O teorem˘ a a lui Hasse ([20])
stabile¸ ste un interval pentru acest num˘ ar:
p+ 1−2√p≤card(E(Zp))≤p+ 1 + 2√p
Valoarea t= 2√pse nume¸ ste urma lui Epeste Zq, iar intervalul [ p+ 1−t, p+ 1 + t]
este numit interval Hasse .
Calculul efectiv al lui card(E(Zp)) este destul de dificil ¸ si vom trece peste el2. Exist˘ a
un algoritm al lui Schoof ([20], pag 137-140) de num˘ arare a punctelor unei curbe eliptice,
dar complexitatea lui este destul de mare: O(log6p) (O(log9p) ˆ ın versiunea original˘ a)
ˆ ınmult ¸iri ¸ si inversiuni, ¸ si O(log3p) spat ¸iu de memorie. ˆIn plus implementarea sa este
destul de greoaie ¸ si nu a fost realizat˘ a complet pˆ an˘ a ˆ ın prezent.
ˆIn cazul curbelor eliptice construite peste extensii, se poate da urm˘ atoarea teorem˘ a:
Teorema 10.1. Fiep=qm. Exist˘ a o curb˘ a eliptic˘ a Edefinit˘ a peste Zp, cucard(E(Zp)) =
p+ 1−tdac˘ a ¸ si numai dac˘ a este verificat˘ a una din condit ¸iile:
•t/negationslash≡0 (mod q )¸ sit2≤4p.
2Nu se cunoa¸ ste nici o formul˘ a care s˘ a dea valoarea card(E(Zp)); exist˘ a o conjectur˘ a Birch and
Swinnerton-Dyer ˆ ın leg˘ atur˘ a cu acest subiect, conjectur˘ a inclus˘ a printre cele ¸ sapte probleme ale mileniului
(ˆ ımpreun˘ a cu ”problema ” Pversus NP”).
182 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
•meste impar ¸ si
–t= 0, sau
–t2= 2p¸ siq= 2, sau
–t2= 3p¸ siq= 3.
•meste par ¸ si
–t2= 4p, sau
–t2=p¸ siq/negationslash≡1 (mod 3), sau
–t= 0¸ siq/negationslash≡1 (mod 4).
O informat ¸ie util˘ a referitoare la structura de grup a lui E(Zp) este dat˘ a de teorema
urm˘ atoare:
Teorema 10.2. (Teorema lui Ruck) Fie Eo curb˘ a eliptic˘ a peste Zpcup >3num˘ ar prim.
Atunci exist˘ a dou˘ a numere ˆ ıntregi n1, n2astfel ca E(Zp)s˘ a fie izomorf˘ a cu Zn1×Zn2, iar
n2|n1, n2|(p−1).
Demonstrat ¸ia poate fi g˘ asit˘ a ˆ ın [20], pag. 107.
O consecint ¸˘ a a acestei teoreme este evaluarea card(E(Zp)) = n1·n2. Dac˘ a n2= 1,
atunci E(Zp) este grup ciclic. Dac˘ a n2>1, atunci spunem c˘ a E(Zp) are rangul 2. Dac˘ a
valoarea lui n2este mic˘ a ( n2≤4), spunem c˘ a E(Zp) este aproape ciclic . Cum n2divide n1
¸ sip−1, se a¸ steapt˘ a ca E(Zp) s˘ a fie ciclic sau aproape ciclic pentru majoritatea curbelor
eliptice peste Zp.
10.2 Sisteme de criptare construite pe curbe eliptice
Pe spat ¸iul curbelor eliptice se pot realiza diverse tehnici de criptare cu cheie public˘ a; unele
din ele sunt doar adapt˘ ari ale sistemelor deja prezentate, altele sunt aplicat ¸ii specifice.
Principala atract ¸ie a sistemelor construite pe curbe eliptice const˘ a ˆ ın dimensiuni mici
ale cheilor, ceea ce le face aplicabile pe sisteme portabile (smart-carduri de exemplu).
ˆIn general, sistemele de criptare se bazeaz˘ a pe problema logaritumuluin discret ¸ si sunt
inspirate de algoritmul El Gamal .
Exemplul 10.2. S˘ a vedem cum se realizeaz˘ a o criptare El Gamal pentru curba eliptic˘ a
definit˘ a ˆ ın Exemplul 10.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.
10.2. SISTEME DE CRIPTARE CONSTRUITE PE CURBE ELIPTICE 183
Pentru decriptare se folose¸ ste 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α.
10.2.1 Sistemul Menezes – Vanstone
ˆIn acest sistem de criptare – de fapt o variant˘ a a lui El Gamal – curba eliptic˘ a este utilizat˘ a
pentru ”mascare”, domeniile de valori al textelor clare ¸ si criptate fiind mult mai largi.
Prezentarea algoritmului este:
FieEo curb˘ a eliptic˘ a peste Zp(p >3 prim) care cont ¸ine un subgrup ciclic Hˆ ın
care problema logaritmului discret este dificil˘ a.
AlegemP=Z∗
p×Z∗
p,C=E×Z∗
p×Z∗
p¸ si
K={(E, α, a, β )|α∈E, a∈Z∗
p, β=a·α}.
Valorile α, β sunt publice, iar aeste secret.
Pentru K= (E, α, a, β ), k∈Zcard (H)ales aleator (secret) ¸ si x= (x1, x2)∈P,
definim
eK(x, k) = (y0, y1, y2),
unde y0=k·α,(c1, c2) =k·β, y i=ci·xi(mod p ), i= 1,2.
Pentru un text criptat y= (y0, y1, y2) se define¸ ste
dK(y) = (y1·c−1
1(mod p ), y2·c−1
2(mod p )),
unde a·y0= (c1, c2).
Exemplul 10.3. Revenind la curba y2=x3+x+ 5peste Z19definit˘ a ˆ ın Exemplul 10.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 dore¸ ste 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)¸ sik·β= 4(12 ,15) = (1 ,8)
decic1= 1, c2= 8.
184 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
Apoi se calculeaz˘ a (modulo 19):
y1=c1·x1= 1·5 = 5 ¸ siy2=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−1
1(mod 19), y2·c−1
2(mod 19)) = (5·1−1,12·8−1) = (5 ,12·12) = (5 ,11).
10.3 Problema logaritmului discret pe curbe eliptice
Dup˘ a cum am v˘ azut anterior, principalele sisteme de criptare pe curbe eliptice folosesc
problema logaritmului discret. ˆIn cazul curbelor eliptice, ea se enunt ¸˘ a ˆ ın felul urm˘ ator:
Problema logaritmului discret pe curbe eliptice (ECDLP) :
Fiind dat˘ a o curb˘ a eliptic˘ a Epeste corpul Zp, un punct P∈E(Zp) de ordin n¸ si
Q∈[P] ={sP|1≤s≤n−1}, s˘ a se determine kastfel ˆ ıncˆ at Q=kP.
Num˘ arul keste numit logaritmul discret al lui Aˆ ın baza P:k=logPQ.
Vom prezenta o serie de atacuri generale asupra ECDLP , atacuri care nu exploateaz˘ a
eventuale sl˘ abiciuni particulare ale anumitor curbe eliptice. Deoarece ele au fost detaliate
pentru sistemele de criptare El Gamal sauRSA , vom detalia doar modalitatea lor de
scriere ˆ ın cazul curbelor eliptice.
10.3.1 Atacul Pohlig – Hellman
Cea mai simpl˘ a metod˘ a de atac este prin fort ¸˘ a brut˘ a: se calculeaz˘ a R=kPpentru
k= 1,2,3, . . ., verificˆ andu-se permanent egalitatea R=Q. Atunci cˆ and egalitatea este
verificat˘ a, s-a g˘ asit valoarea k=logPQ. Algoritmul nu solicit˘ a mult˘ a memorie, dar timpul
de rulare esteO(n), unde neste ordinul lui P.
Pohlig ¸ si Hellman au observat c˘ a problema logaritmului discret ˆ ıntr-un grup Gare
acela¸ si ordin de dificultate ca ¸ si problema logaritmului discret ˆ ın cel mai mare subgrup
prim din G. Ca o consecint ¸˘ a pentru criptografia pe curbe eliptice, se vor selecta curbe
eliptice Ecu proprietatea card(E(Zp)) =n=h·s, unde seste un num˘ ar prim mare, iar
heste un num˘ ar foarte mic (de obicei h= 1,2 sau 4). ˆIn acest caz, ECDLP este dificil˘ a.
Ideile de baz˘ a ale atacului Pohling – Hellman (adaptate criptografiei pe curbe eliptice)
sunt:
10.3. PROBLEMA LOGARITMULUI DISCRET PE CURBE ELIPTICE 185
Fien=pe1
1pe2
2. . . perr.
1. Se calculeaz˘ a ki=k(mod pei
i) (1≤i≤r).
2. Se rezolv˘ a sistemul de congruent ¸e
x≡ki(mod pei
i) (1≤i≤r).
Teorema chinez˘ a a resturilor asigur˘ a existent ¸a unei solut ¸ii unice k=x∈[0, n−1].
S˘ a ar˘ at˘ am c˘ a determinarea fiec˘ arui kise poate reduce la aflarea exponentului eiˆ ıntr-un
subgrup ciclic [ P] de ordin pi; pentru simplificare, vom nota picup.
S˘ a reprezent˘ am kiˆ ın baza p; vom avea ki=ei−1/summationdisplay
j=0zjpj, unde zj∈[0, p−1].
Pentru determinarea lui z0:
•Se calculeaz˘ a P0= (n/p)P, Q 0= (n/p)Q;
•Deoarece ordinul lui P0estep, avem Q0=n
pQ=k/parenleftBiggn
pP/parenrightBigg
=kP0≡z0P0(mod p )
Deci z0=logP0Q0poate fi obt ¸inut rezolvˆ and o instant ¸˘ a ECDLP ˆ ın grupul ciclic [ P].
La pasul urm˘ ator se determin˘ a Q1=/parenleftBiggn
p2/parenrightBigg
(Q−z0P). Vom avea:
Q1=/parenleftBiggn
p2/parenrightBigg
(Q−z0P) =n
p2(k−z0)P= (k−z0)/parenleftBiggn
p2P/parenrightBigg
= (z0+z1p−z0)/parenleftBiggn
p2P/parenrightBigg
=
=z1/parenleftBiggn
pP/parenrightBigg
≡z1P0(mod p )
Valoarea z1=logP0Q1se poate obt ¸ine deci rezolvˆ and o instant ¸˘ a ECDLP ˆ ın [P].
ˆIn general, dac˘ a numerele z0, z1, . . . , z t−1au fost calculate, atunci zt=logP0Qt, unde
Qt=n
pt+1/parenleftBig
Q−z0P−z1pP−z2p2P−. . .−zt−1pt−1P/parenrightBig
.
Pentru detalii referitoare la corectitudinea algoritmului, se poate relua sect ¸iunea 9 .2.2
care trateaz˘ a algoritmul Pohlig – Hellman ˆ ın varianta general˘ a.
10.3.2 Atacul BSGS (Baby-Step/Giant-Step)
Ca o consecint ¸˘ a a atacului Pohlig Hellman, ne putem concentra atent ¸ia asupra rezolv˘ arii
problemei logaritmului discret ˆ ın grupuri ciclice de ordin prim. Atacul BSGS este atacul
Shanks (prezentat ˆ ın sect ¸iunea 9 .2.1) adaptat pentru curbe eliptice.
FieG= [P] un subgrup ciclic de ordin p(pprim) al unui grup E(Zq) al unei curbe
eliptice. Fiind dat Q∈G, problema cere aflarea unei valori k(1≤k < p ) astfel ˆ ıncˆ at
Q=kP.
186 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
Consider˘ am reprezentarea
k=k0+k1⌊√p⌋
unde k0, k1∈[0,⌊√p⌋).
1. Se calculeaz˘ a lista A={(Pi, i)|Pi=iP, 0≤i <⌊√p⌋}(faza ”Baby –
Step”).
2. Fie R=⌊√p⌋P. Se calculeaz˘ a lista B={(Qj, j)|Qj=Q−jR, 0≤j <
⌊√p⌋}(faza ”Giant – Step”).
Cele dou˘ a liste sunt ordonate cresc˘ ator dup˘ a prima component˘ a.
3. Se caut˘ a ( Pi, i)∈A,(Qj, j)∈Bastfel ca Pi=Qj.
Dac˘ a a¸ sa ceva exist˘ a, atunci k0=i, k 1=j.
Justificare: Avem iP=Q−j⌊√p⌋P, deci ( i+j⌊√p⌋)P=Q.
Dup˘ a cum se ¸ stie, complexitatea spat ¸iu ¸ si complexitatea timp a unui astfel de atac
sunt ambele egale cu O(⌊√p⌋). Shoup ([49]) arat˘ a c˘ a atacul BSGS este cea mai rapid˘ a
metod˘ a pentru rezolvarea problemei logaritmului discret ˆ ıntr-un grup ”cutie neagr˘ a”3.
10.3.3 Atacul Pollard Rho
Ideea de baz˘ a ˆ ın algoritmul Pollard Rho const˘ a ˆ ın g˘ asirea a dou˘ a perechi distincte ( c1, d1),
(c2, d2) de numere ˆ ıntregi din Zpastfel ˆ ıncˆ at
c1P+d1Q=c2P+d2Q.
De aici va rezulta ( c1−c2)P= (d2−d1)Q= (d2−d1)kP, deci
(c1−c2)≡(d2−d1)k(mod p ),
¸ si valoarea k=logPQse obt ¸ine imediat prin
k= (c1−c2)(d2−d1)−1(mod p )
O metod˘ a ingenioas˘ a de aflare a unor astfel de perechi const˘ a ˆ ın selectarea aleatoare a
dou˘ a valori c, d∈Zp¸ si memorarea ˆ ıntr-o tabel˘ a a tripletului ( c, d, cP +dQ). Procedeul se
repet˘ a (tabela se completeaz˘ a eventual sortat˘ a dup˘ a a treia component˘ a), pˆ an˘ a se obt ¸ine
a doua oar˘ a un punct cP+dQ.
3Un grup ”cutie neagr˘ a” este un grup ˆ ın care nu se folose¸ ste nici o structur˘ a prestabilit˘ a pentru
reprezentarea elementelor sale.
10.3. PROBLEMA LOGARITMULUI DISCRET PE CURBE ELIPTICE 187
Neajunsul acestui atac const˘ a ˆ ın necesitatea de stocare a/radicalBig
πp/2 triplete.
Algoritmul Pollard Rho g˘ ase¸ ste perechile ( c1, d1),(c2, d2) cam ˆ ın acela¸ si timp ca ¸ si
metoda de mai sus, dar folosind o cantitate neglijabil˘ a de memorie. Ideea – similar˘ a celei
din sect ¸iunea 9 .2.3 – este de a defini o funct ¸ie recursiv˘ a f: [P]−→[P] astfel ˆ ıncˆ at, fiind
datX∈[P] ¸ sic, d∈ZpcuX=cP+dQ, sunt u¸ sor de calculat X/prime=f(X) ¸ sic/prime, d/prime∈Zp
cuX/prime=c/primeP+d/primeQ.
ˆIn plus, far trebui s˘ a aib˘ a caracteristicile unei funct ¸ii aleatoare.
Algoritmul Pollard Rho este:
Intrare :P∈E(Zq), ord (P) =pnum˘ ar prim, ¸ si Q∈[P].
Ie¸ sire :k=logPQ.
1. Selecteaz˘ a num˘ arul Lal ramificat ¸iilor (ˆ ın 9 .2.3 s-a definit apriori L= 3).
2. Selecteaz˘ a o funct ¸ie de partit ¸ie H: [P]−→{ 1,2, . . . , L}cu proprietatea
card(H−1(i))/similarequalp/L, (1≤i≤L).
3.forj←−1toLdo
3.1. Selecteaz˘ a (aleator) aj, bj∈Zp.
3.2. Calculeaz˘ a Rj=ajP+bjQ.
4. Selecteaz˘ a (aleator) c/prime, d/prime∈Zp¸ si calculeaz˘ a X/prime=c/primeP+d/primeQ.
5.X”←−X/prime, c”←−c/prime, d”←−d/prime.
6.repeat
6.1. Calculeaz˘ a j=H(X/prime).
X/prime←−X/prime+Rj, c/prime←−c/prime+aj(mod p ), d/prime←−d/prime+bj(mod p ).
6.2.fori←−1to2do
6.2.1. Calculeaz˘ a j=H(X”).
X”←−X”+Rj, c”←−c”+aj(mod p ), d”←−d”+bj(mod p ).
until X/prime=X”.
7.ifd/prime=d”then return (”e¸ sec”)
else return k= (c/prime−c”)(d”−d/prime)−1(mod p ).
8.Stop
Dup˘ a cum se observ˘ a, algoritmul Pollard Rho este un algoritm probabilist de tip Las
Vegas. Probabilitatea de e¸ sec este neglijabil˘ a.
Exemplul 10.4. S˘ a consider˘ am L= 32 ¸ si fie{S1, S2, . . . , S 32}o partit ¸ie a lui [P]definit˘ a
astfel: dac˘ a X∈[P]¸ si ultimii ultimii 5bit ¸i semnificativi ai primei coordonate a lui X
reprezint˘ a num˘ arul j, atunci H(X) =j+ 1. Mult ¸imile Sj={X|H(X) =j}au acela¸ si
num˘ ar de elemente pentru orice j= 1,2, . . . , 32.
S˘ a detaliem put ¸in algoritmul Pollard Rho:
Fieaj, bj∈Zp. Se define¸ ste funct ¸ia f: [P]−→[P] prin
f(X) =X+ajP+bjQ unde j=H(X).
188 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
Se observ˘ a c˘ a dac˘ a X=cP+dQ, atunci f(X) =X/prime=c/primeP+d/primeQunde c/prime=c+aj(mod p )
¸ sid/prime=d+bj(mod p ).
Acum, pentru un punct arbitrar X0∈[P] se poate determina o secvent ¸˘ a de puncte
{Xi}i≥0definit˘ a Xi=f(Xi−1) pentru i≥1.
Cum toate aceste puncte sunt din grupul finit [ P], la un moment dat secvent ¸a va
ˆ ıncepe s˘ a se repete (¸ si s˘ a cicleze). Deci exist˘ a un tminim pentru care Xt=Xt+scus≥1.
Valoarea tse nume¸ ste ” lungimea cozii ”, iar s– ”lungimea ciclului ”.
Dac˘ a feste o funct ¸ie cu propriet˘ at ¸i aleatoare, atunci t/similarequal/radicalBig
πp/8, s/similarequal/radicalBig
πp/8, deci
secvent ¸a va ˆ ıncepe s˘ a se repete dup˘ a aproximativ/radicalBig
πp/2 termeni.
Algoritmul lui Floyd de aflare a dou˘ a puncte Xi, XjcuXi=Xj¸ sii/negationslash=j, exploreaz˘ a
perechile de puncte de forma ( Xi, X2i) pˆ an˘ a g˘ ase¸ ste un indice icuXi=X2i. Dup˘ a
calcularea unei perechi, perechea anterioar˘ a de puncte poate fi eliminat˘ a; astfel memoria
utilizat˘ a este de m˘ arime neglijabil˘ a. Num˘ arul nal perechilor calculate pˆ an˘ a se obt ¸ine
egalitatea Xi=X2iverific˘ a relat ¸ia t≤n≤t+s. Dac˘ a feste o funct ¸ie aleatoare, atunci
n/similarequal1,0308√p, deci num˘ arul de operat ¸ii pe grupul curbelor eliptice este 3√p.
10.4 Factoriz˘ ari bazate pe curbe eliptice
ˆIn cadrul sistemului de criptare RSA la sect ¸iunea 8.4.4. a fost prezentat˘ a metoda p−1 de
factorizare a unui num˘ ar. Ideea sa era de a efectua operat ¸ii ˆ ıntr-un grup Z∗
psensibil mai
mic decˆ at grupul multiplicativ Z∗
n(unde peste un divizor al lui n) ˆ ın care sunt definite
toate calculele. Aceast˘ a concept ¸ie – de a restrˆ ange de facto domeniul de calcul – poate fi
extins˘ a ¸ si la alte grupuri, ˆ ın particular la grupul definit pe mult ¸imea punctelor unei curbe
eliptice. Metoda folosit˘ a este numit˘ a ECM (Elliptic Curve Method) ¸ si este descris˘ a mai
jos.
S˘ a gener˘ am aleator dou˘ a numere a, b∈Zn, ¸ si s˘ a construim curba Ea,bde ecuat ¸ie
y2≡x3+ax+b(mod n ) (8)
Vom considera pe aceast˘ a curb˘ a diverse calcule modulo p(de¸ si pnu se cunoa¸ ste),
calcule ”ascunse” de calculele modulo n. Ordinul grupului Ea,b(Zp) este un num˘ ar aleator
ˆ ın intervalul [ p+ 1−2√p, p+ 1 + 2√p]. Dac˘ a acest ordin are divizorii primi (la puterile
cu care apar) mai mici decˆ at marginea Bstabilit˘ a de metoda p−1, putem aplica aceast˘ a
metod˘ a (adaptat˘ a la grupul definit pe E(Zn)), cu o complexitate de O(B) operat ¸ii arit-
metice. Succesul ei corespunde deci probabilit˘ at ¸ii ca ordinul grupului Ea,b(Zp) s˘ a aib˘ a tot ¸i
divizorii primi mai mici decˆ at B. Aceast˘ a probabilitate este estimat˘ a ˆ ın [31] la u−uunde
u=log p
log B.
Exemplul 10.5. S˘ a ˆ ıncerc˘ am factorizarea num˘ arului n= 44023 (pentru care metoda
p−1definit˘ a ˆ ın 8.4.4. e¸ sueaz˘ a).
10.5. EXERCIT ¸II 189
Prima problem˘ a care apare este alegerea unui punct (init ¸ial) Xpe curba (8). Aceast˘ a
alegere nu este simpl˘ a, deoarece trebuie s˘ a rezolv˘ am o ecuat ¸ie algebric˘ a modulo un num˘ ar
na c˘ arui factorizare nu se cunoa¸ ste. Pentru a evita aceast˘ a dificultate, ˆ ın loc de a alege
a, b¸ si apoi X, vom genera ˆ ıntˆ ai a, X ¸ si ulterior b.
S˘ a alegem a= 13 ¸ siX= (x, y) = (23482 ,9274) . Vom avea imediat
b=y2−x3−ax≡21375 ( mod 44203)
Conform metodei p−1, vom calcula Xi=i!X= (xi, yi)pentru i= 1,2, . . .pˆ an˘ a se ajunge
la un punct Xi/negationslash=O(ˆ ınEa,b(Zn)), care este punctul de la infinit ˆ ın Ea,b(Zp). Aceste lucru
se poate ˆ ıntˆ ampla la aparit ¸ia unei operat ¸ii imposibile – de obicei ˆ ımp˘ art ¸irea la un element
neinversabil. Elementele neinversabile din Z∗
nconduc, prin calcularea unui cel mai mare
divizor comun, la un factor al lui n(deci la factorizare).
Determinarea lui X1este u¸ soar˘ a: X1=X= (23482 ,9274) . Urmeaz˘ a:
X2= 2X1= (18935 ,21838) ,
X3= 3X2= 2X2+X2= (15187 ,29168) ,
X4= 4X3= 2(2 X3) = (10532 ,5412)
¸ si ajungem la X5= 5X4= 2(2 X4) +X4.
Aici calcul˘ am ˆ ıntˆ ai 2X4= (30373 ,40140) , apoi 2(2X4) = (27556 ,42335) .
ˆIn momentul cˆ and vrem s˘ a adun˘ am acest punct cu X4, ajungem la calculul valorii
λ=42335−5412
27556−10532(mod 44023)
care nu se poate efectua, deoarece 27556−10532 = 17024 nu este inversabil modulo n.
Atunci cˆ and ˆ ıncerc˘ am s˘ a calcul˘ am inversul folosind algoritmul lui Euclid extins, ajungem
lacmmdc (17024 ,44023) = 133 , care este un factor al lui n= 44023 .
10.5 Exercit ¸ii
10.1. S˘ a se verifice propiet˘ at ¸ile de grup ale operat ¸iei aditive definite pe E(L).
10.2. FieEcurba eliptic˘ a y2=x3+x+ 28 peste Z71.
1. Determinat ¸i num˘ arul de puncte din E(Z71);
2. Ar˘ atat ¸i c˘ a grupul E(Z71)nu este ciclic;
3. Care este ordinul maxim al unui element din E(Z71)? G˘ asit ¸i un astfel de element.
10.3. FieEcurba eliptic˘ a y2=x3+x+ 13 definit˘ a pe Z31. Se poate ar˘ ata c˘ a E(Z31)are
34puncte ¸ si c˘ a (9,10)este de ordinul 34ˆ ınE. Sistemul de criptare Mezenes – Vanstome
definit pe Eadmite ca spat ¸iu al textelor clare Z∗
34×Z∗
34. Fie a= 25 exponentul secret al
lui Bob.
190 CAPITOLUL 10. SISTEME DE CRIPTARE BAZATE PE CURBE ELIPTICE
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).
10.4. FieEcurba eliptic˘ a y2=x3+x+ 6peste Z11.
(a)S˘ a se calculeze punctele lui E(Z11).
(b)Se aleg parametrii α= (2,7)¸ sia= 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 aceia¸ si parametri, s˘ a se crip-
teze mesajul x= (9,1).
10.5. Fiep >3un num˘ ar prim impar ¸ si a, b∈Zp. Dac˘ a ecuat ¸ia x3+ax+b≡0 (mod p )
are trei r˘ ad˘ acini distincte ˆ ın Zp, ar˘ atat ¸i c˘ a grupul curbei eliptice corespunz˘ atoare (E,+)
nu este ciclic.
10.6. FieEo curb˘ a eliptic˘ a definit˘ a peste Zpunde p > 3este un num˘ ar prim. S˘ a
presupunem c˘ a n=card(E)este prim ¸ si fie P∈E, P/negationslash=O.
(a)Ar˘ atat ¸i c˘ a logP(−P) =n−1.
(b)Dat ¸i un algoritm de calcul pentru nde complexitateO(p1/4)folosind teorema lui
Hasse ¸ si algoritmul BSGS .
10.7. Fie curba eliptic˘ a y2=x3+ 9x+ 17. Un generator al lui E(Z23)esteP= (16 ,5).
S˘ a se calculeze logaritmul punctului Q= (4,5).
10.8. O reprezentare binar˘ a (an−1, an−2, . . . , a 0)a num˘ arului ˆ ıntreg aeste ˆ ın ”forma ne-
adiacent˘ a” (forma NAF ) 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 NAF a lui 87, calculat ¸i 87P, unde P= (2,6)este un punct
pe curba eliptic˘ a y2=x3+x+ 26 definit˘ a peste Z27.
Capitolul 11
Alte sisteme de criptare cu cheie
public˘ a
11.1 Sistemul de criptare Merkle – Hellman
Sistemul de criptare Merkle – Hellman sau ”sistemul de criptare rucsac” a fost prezentat ˆ ın
linii mari ˆ ın Capitolul 7, ca exemplificare pentru ideea de criptare cu cheie public˘ a (ap˘ arut
ˆ ın 1978 ˆ ın [36], a fost oficial primul astfel de sistem de criptare). ˆIn aceast˘ a sect ¸iune vom
face o analiz˘ a a sistemului, ˆ ınsot ¸it˘ a de un atac cu succes asupra variantei init ¸iale.
11.1.1 Considerente generale
Numim vector rucsac un tablou unidimensional A= (a1, a2, . . . , a n) (n≥3) cu elemente
numere ˆ ıntregi pozitive distincte.
Oaparit ¸ie a problemei rucsacului este o pereche ( A, x) unde Aeste un vector rucsac,
iarx- un num˘ ar ˆ ıntreg pozitiv.
O solut ¸ie a aparit ¸iei problemei ( A, x) este un vector B= (ai1, . . . , a ik) de elemente din
Aastfel ca x=k/summationdisplay
j=1aij.
Cea mai obi¸ snuit˘ a abordare a problemei rucsacului este de a decide dac˘ a o anumit˘ a
aparit ¸ie ( A, x) a problemei rucsacului are solut ¸ie sau nu. Varianta utilizat˘ a ˆ ın criptografie
const˘ a ˆ ın obt ¸inerea acestei solut ¸ii pentru ( A, x), ¸ stiind c˘ a ea exist˘ a. Ambele probleme
suntNP – complete.
Dup˘ a cum am v˘ azut ˆ ın Capitolul 7, un vector rucsac este folosit pentru criptarea unui
blocCdenbit ¸i realizˆ and suma acelor elemente din Aa c˘ aror pozit ¸ie corespunde lui 1 ˆ ın
C. Matematic, privind Cca un vector coloan˘ a, criptarea este realizat˘ a de produsul scalar
x=A·C
191
192 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Decriptarea revine la a determina C¸ stiind xsau – pentru varianta cu cheie public˘ a a
sistemului de criptare rucsac – de a afla CdinA¸ six.
Exemplul 11.1. Fien= 6¸ si vectorul rucsac A= (3,41,5,1,21,10). Atunci textul clar
C1= (1,1,0,0,1,0)este criptat ˆ ın x1= 65 , iar C2= (1,0,1,1,0,1)ˆ ınx2= 19 . Pentru
vectorul Aastfel definit, mult ¸imea textelor criptate este inclus˘ a ˆ ın intervalul [0,81].
Pentru a putea fi utilizat ˆ ın criptare, un vector rucsac Atrebuie s˘ a fie injectiv : pentru
orice x∈N, aparit ¸ia problemei rucsacului ( A, x) are cel mult o solut ¸ie.
Exemplul 11.2. Pentru vectorul rucsac A= (14 ,28,56,82,90,132,197,284,341,455)
textul criptat x= 515 se poate obt ¸ine din trei texte clare distincte:
(1,1,0,0,0,1,0,0,1,0),(0,1,1,0,1,0,0,0,1,0),(1,0,0,1,1,1,1,0,0,0).
Sunt anumit ¸i vectori Apentru care toate aparit ¸iile ( A, x) sunt u¸ sor de rezolvat. Am
v˘ azut c˘ a vectorii cu cre¸ stere mare au aceast˘ a proprietate.
Definit ¸ia 11.1. Un vector rucsac A= (a1, a2, . . . , a n)este cresc˘ ator (super-cresc˘ ator)
dac˘ a
∀j≥2, a j> aj−1(respectiv aj>j−1/summationdisplay
i=1ai).
Evident, orice vector super-cresc˘ ator este cresc˘ ator.
Pentru un vector rucsac A= (a1, . . . , a n) definim max(A) =max{aj|1≤j≤n}.
FieAun vector rucsac, m > max (A) ¸ sit∈(0, m) astfel ca cmmdc (t, m) = 1. Dac˘ a
B= (b1, b2, . . . , b n) este un vector definit prin
bi≡t·ai(mod m ) (1≤i≤n)
spunem c˘ a Brezult˘ a din Aprin ˆ ınmult ¸ire modular˘ a ˆ ın raport cu perechea (m, t).
Dup˘ a cum ¸ stim, condit ¸ia cmmdc (t, m) = 1 asigur˘ a existent ¸a unui element u∈(1, m)
(obt ¸inut prin algoritmul lui Euclid extins), astfel ca t·u≡1 (mod m ).
Deci va avea loc ¸ si proprietatea reciproc˘ a: vectorul rucsac Arezult˘ a din Bprin
ˆ ınmult ¸ire modular˘ a ˆ ın raport cu ( m, u)1.
Dac˘ a relat ¸ia m > max (A) este ˆ ınlocuit˘ a cu condit ¸ia m >n/summationdisplay
i=1ai, spunem c˘ a Brezult˘ a
dinAprin ˆ ınmult ¸ire modular˘ a tare ˆ ın raport cu (m, t).ˆIn acest caz nu va mai rezulta
valabilitatea propriet˘ at ¸ii inverse, deoarece inegalitatea m >n/summationdisplay
i=1binu mai este adev˘ arat˘ a
totdeauna. Se poate spune ˆ ıns˘ a, evident, c˘ a Arezult˘ a din Bprin ˆ ınmult ¸ire modular˘ a ˆ ın
raport cu ( m, u).
1Evident, m > max (B), pentru c˘ a bi< m pentru orice i= 1, . . . , n .
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 193
Construct ¸ia sistemului de criptare rucsac este imediat˘ a:
1.Bob alege numerele m, t prime ˆ ıntre ele, precum ¸ si vectorul super-cresc˘ ator
A= (a1, . . . , a n), astfel ca m >n/summationdisplay
i=1ai.
2. Determin˘ a vectorul rucsac Bobt ¸inut din Aprin inmult ¸ire modular˘ a tare ˆ ın
raport cu ( m, t).
3. Face public B¸ si p˘ astreaz˘ a drept cheie secret˘ a elementele A, m, t ¸ siu≡
t−1(mod m ).
Dac˘ a Alice dore¸ ste s˘ a cripteze un mesaj, va proceda ˆ ın felul urm˘ ator:
1. Sparge mesajul ˆ ın blocuri Bx∈Zn
2(n– lungimea vectorului B), unde x∈[0,2n−1)
areBxdrept reprezentare binar˘ a.
2. Calculeaz˘ a y=B·BT
x¸ si ˆ ıl trimite lui Bob.
ˆIn acest fel, un criptanalist va trebui s˘ a rezolve aparit ¸ia ( B, y) a problemei rucsacului.
Bobva determina ˆ ıntˆ ai x≡u·y(mod m ), dup˘ a care va rezolva aparit ¸ia ( A, x).
Aceast˘ a simplificare este asigurat˘ a de lema:
Lema 11.1. Presupunem c˘ a A= (a1, a2, . . . , a n)este un vector super-cresc˘ ator, iar B
rezult˘ a din Aprin ˆ ınmult ¸ire modular˘ a tare ˆ ın raport cu (m, t). Fie u≡t−1(mod m ), y
un ˆ ıntreg arbitrar ¸ si x≡u·y(mod m ). Atunci asert ¸iunile urm˘ atoare sunt adev˘ arate:
1. Problema rucsacului (A, x)este rezolvabil˘ a ˆ ın timp liniar. Dac˘ a solut ¸ia exist˘ a, ea
este unic˘ a.
2. Problema rucsacului (B, y)are cel mult o solut ¸ie.
3. Dac˘ a exist˘ a o solut ¸ie pentru (B, y), atunci ea este egal˘ a cu solut ¸ia aparit ¸iei (A, x).
Demonstrat ¸ie. Am ar˘ atat ˆ ın Capitolul 7 c˘ a orice aparit ¸ie a problemei rucsacului avˆ and
Asuper-cresc˘ ator poate fi rezolvat˘ a printr-un algoritm liniar (Exemplul 7 .4), parcurgˆ and
Ade la dreapta spre stˆ anga. Metoda arat˘ a de asemenea ¸ si faptul c˘ a exist˘ a cel mult o
solut ¸ie.
Pentru celelalte dou˘ a sert ¸iuni, s˘ a presupunem c˘ a vectorul D∈Zn
2este solut ¸ie a
aparit ¸iei problemei rucsacului ( B, y); deci y=B·DT. Atunci
x≡u·y=u·B·DT=u·(t·A)·DT≡A·DT(mod m )
194 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Pentru c˘ a mdep˘ a¸ se¸ ste suma componentelor lui A, trebuie s˘ a avem A·DT< m. Cum de
asemenea x < m (din definit ¸ia lui x), deducem x=A·DT. Deci vectorul Deste unica
solut ¸ie a aparit ¸iei problemei ( A, x) a rucsacului.
Deoarece s-a folosit o solut ¸ie arbitrar˘ a a lui ( B, y), va rezulta ¸ si asert ¸iunea (3).
Exemplul 11.3. Fien= 10 ¸ si vectorul super-cresc˘ ator
A= (103 ,107,211,430,863,1718,3449,6907,13807 ,27610)
Alegem modulul m= 55207 (care este mai mare decˆ at suma componentelor lui A) ¸ sit=
25236 . Deoarece cmmdc (t, m) = 1 , algoritmul lui Euclid extins va calcula u=t−1= 1061 .
Ca rezultat al ˆ ınmult ¸irii modulare tari ˆ ın raport cu (m, t)se obt ¸ine vectorul rucsac
B= (4579 ,50316 ,24924 ,30908 ,27110 ,17953 ,32732 ,16553 ,22075 ,53620)
Acest vector Beste cheia public˘ a de criptare, ˆ ın timp ce elementele A, t, m, u formeaz˘ a
trapa secret˘ a.
Folosind cheia public˘ a B, s˘ a cript˘ am textul clar PELIN DE MAI.
ˆIn prima faz˘ a acesta se ˆ ımparte ˆ ın perechi de c˘ ate dou˘ a litere, care se codific˘ a ˆ ın
secvent ¸e binare de 10bit ¸i (folosind codificarea propus˘ a ˆ ın Capitolul 7). Obt ¸inem
PE 10000 00101 74.752
LI 01100 01001 161.592
N 01110 00000 106.148
DE 00100 00101 95.097
MA 01101 00001 155.970
I 01001 00000 77.426
Pe ultima coloan˘ a sunt scrise cript˘ arile blocurilor de cˆ ate dou˘ a litere (aflate pe prima
coloan˘ a).
S˘ a decript˘ am primul bloc: 74.752(cu celelalte se procedeaz˘ a analog). Avem
74752·1061 = 79311872 = 1436 ·55207 + 34620
Consider˘ am aparit ¸ia problemei rucsacului (A,34.620). Solut ¸ia se obt ¸ine parcurgˆ and
vectorul Ade la dreapta spre stˆ anga:
Num˘ ar Componenta lui A Bit
35.620 27 .610 1
7.010 13 .807 0
7.010 6 .907 1
103 3 .449 0
103 1 .718 0
103 863 0
103 430 0
103 211 0
103 107 0
103 103 1
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 195
Citind ultima coloan˘ a din tabel, de jos ˆ ın sus, obt ¸inem 10000 00101 , care este codificarea
binar˘ a pentru perechea de litere PE.
S˘ a ˆ ıncerc˘ am s˘ a proced˘ am invers: s˘ a cript˘ am textul clar PEfolosind vectorul A. Se
obt ¸ine, evident, 34.620. Aplic˘ am ˆ ınmult ¸irea modular˘ a tare ˆ ın raport cu (55.207,25.236) ¸ si
avem
34620·25236 = 873670320 = 15825 ·55207 + 19545
Dar aparit ¸ia (B,19.545) nu are solut ¸ie, lucru evident pentru c˘ a, ˆ ın B, singurele numere
mai mici decˆ at 19.545sunt 4.579,19.953¸ si16.553, iar 19.545nu se poate obt ¸ine din nici
o combinat ¸ie a lor.
Exemplul 11.4. Datele din Exemplul 11.3 sunt simple, putˆ and fi prelucrate ¸ si cu un
calculator de buzunar. Cript˘ arile reale folosesc numere mult mai mari. Tot ˆ ın exemple
se folose¸ ste frecvent ¸ si varianta n= 20, m= 53939986 , t= 54377 (cu inversa t−1=u=
17521047 ). Un exemplu de vector super-cresc˘ ator cu 20componente este
A= (101 ,102,206,412,823,1.647,3.292,6.584,13.169,26.337,52.676,105.352,210.703,
421.407,842.812,1.685.624,3.371.249,6.742.497,13.484.996,26.969.992)
11.1.2 Criptanaliza sistemului de criptare rucsac
Ne afl˘ am ˆ ın fat ¸a urm˘ atoarei probleme de criptanaliz˘ a: se ¸ stie un vector rucsac B=
(b1, b2, . . . , b n) folosit drept cheie public˘ a de criptare ˆ ın maniera descris˘ a anterior. Se
¸ stie de asemenea c˘ a Beste obt ¸inut dintr-un vector super-cresc˘ ator Aprintr-o ˆ ınmult ¸ire
modular˘ a tare ˆ ın raport cu un modul m¸ si un ˆ ınmult ¸itor t. Nu cunoa¸ stem A, m, t ; vrem
s˘ a le afl˘ am. Dac˘ a determin˘ am m¸ siu=t−1, putem g˘ asi imediat vectorul super-cresc˘ ator
A¸ si decripta mesajele interceptate. Calculul lui uplecˆ and de la t(sau invers) se bazeaz˘ a
pe Algoritmul extins al lui Euclid ¸ si nu prezint˘ a nici o dificultate.
ˆIn aceast˘ a sect ¸iune vom dezvolta metoda de criptanaliz˘ a a lui Adi Shamir ([48]).
Algoritmul opereaz˘ a ˆ ın timp polinomial, gradul polinomului de complexitate fiind
determinat de num˘ arul ¸ si m˘ arimea componentelor vectorului B. Shamir face o analiz˘ a
detaliat˘ a asupra stabilirii acestui grad, analiz˘ a care poate fi studiat˘ a ˆ ın [48].
Atacul are ca prim scop g˘ asirea valorilor m¸ siu. O prim˘ a observat ¸ie: nu este necesar˘ a
aflarea exact a valorilor pe care le-a definit Bobpentru sistemul de criptare. Orice pereche
(m, u) care, plecˆ and de la vectorul Bduce la un vector super-cresc˘ ator A, poate fi utilizat˘ a
la decriptare. Astfel de perechi se numesc ” perechi trap˘ a ”. Odat˘ a g˘ asit˘ a o astfel de pereche
trap˘ a, Lema 11.1 devine valabil˘ a ¸ si se poate ˆ ıncepe decriptarea. Existent ¸a cel put ¸in a unei
perechi trap˘ a este asigurat˘ a de faptul c˘ a sistemul de criptare rucsac se bazeaz˘ a pe o astfel
de construct ¸ie.
ˆIn aflarea unei perechi trap˘ a, vom considera graful funct ¸iei fi(u) = biu(mod m )
pentru i= 1,2, . . . , n . Acesta este format din segmente de linii paralele, ”rupte” ˆ ın
punctele u=p·m/b i, p= 1,2, . . .
196 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
-6
ubiu
m
m
ˆIn particular, a1≡b1u(mod m ). Pentru c˘ a a1este prima component˘ a ˆ ıntr-un vector
super-cresc˘ ator, iar mdep˘ a¸ se¸ ste suma tuturor componentelor, elementul a1trebuie s˘ a fie
foarte mic ˆ ın comparatt ¸ie cu m. Deci valoarea lui utrebuie s˘ a fie suficient de aproape
de un minim al grafului y=f1(u), corespunz˘ ator lui b1. O exprimare explicit˘ a – cˆ at
de aproape trebuie s˘ a fie de acest minim – trebuie s˘ a t ¸in˘ a cont de anumite considerente
relative la m˘ arimile a1, b1¸ sim. De obicei raportul bi/aieste foarte mare pentru valori
mici ale lui i(bineˆ ınt ¸eles, Bobpoate t ¸ine seama de acest lucru ¸ si s˘ a construiasc˘ a sistemul
ˆ ın a¸ sa fel ˆ ıncˆ at aceast˘ a remarc˘ a s˘ a nu fie valabil˘ a; atunci ˆ ıns˘ a vor apare alte particularit˘ at ¸i
de care un bun criptanalist se poate folosi).
Similar, observ˘ am c˘ a valoarea lui udin perechea trap˘ a ( m, u) trebuie s˘ a fie destul de
apropiat˘ a de un minim al grafului lui f2(u). Aceasta duce, pe baza inegalit˘ at ¸ii triunghi-
ului, la concluzia c˘ a dou˘ a minime ale lui f1(u) ¸ sif2(u) trebuie s˘ a fie apropiate. Putem
proceda ˆ ın acest fel ¸ si pentru alte valori. Faptul c˘ a valoarea lui ueste apropiat˘ a de un
minim al fiec˘ arei curbe fi(u) implic˘ a faptul c˘ a aceste minime sunt apropiate unul de altul.
Deci, ˆ ın loc s˘ a afl˘ am pe u, vom c˘ auta puncte de acumulare ale minimelor curbelor
fi(u). Ele vor duce la determinarea unor intervale de valori reale, ˆ ın care se afl˘ a astfel de
minime. ˆIn final se va alege un udintr-un astfel de interval.
Prin argumente ¸ si calcule euristice, Shamir arat˘ a c˘ a ˆ ın general sunt suficiente patru
astfel de curbe pentru aflarea unei mult ¸imi rezonabil de mic˘ a de astfel de intervale (sau –
echivalent – puncte de acumulare).
S˘ a ”traducem” aceste idei sub o form˘ a matematic˘ a.
Primul obstacol: nu ¸ stim nici o valoare a lui m(care apare ˆ ın perechea trap˘ a). Vom
considera temporar valoarea m= 1. Aceast˘ a particularizare este de fapt o normalizare a
graficelor ¸ si nu afecteaz˘ a localizarea punctelor de acumulare care ne intereseaz˘ a.
Algoritmul const˘ a din dou˘ a p˘ art ¸i: ˆ ın prima etap˘ a vom afla o mult ¸ime de numereˆ ıntregi
pcu proprietatea c˘ a al p-lea punct de minim al curbei f1(u) este punct de acumulare.
Pentru a evita generarea unui num˘ ar prea mare de valori p, se fixeaz˘ a o limit˘ a: un
parametru rcare s˘ a indice num˘ arul maxim de valori posibile permise. Dac˘ a prima parte
a algoritmului genereaz˘ a mai mult de rvalori, el se va termina cu e¸ sec.
ˆIn etapa urm˘ atoare vom explora pe rˆ and punctele de acumulare g˘ asite anterior. Unul
din teste va reu¸ si, deoarece valoarea lui ufolosit˘ a de Bobˆ ın sistemul de criptare desem-
neaz˘ a un astfel de punct de acumulare.
I. Coordonata ua celui de-al p-lea punct de minim al curbei f1(u) este p/b 1(reamintim,
momentan m= 1). Deci condit ¸ia ca minimele curbelor f1(u) ¸ sif2(u) s˘ a fie apropiate
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 197
este
−e <p
b1−q
b2< e, 1≤p≤b1−1,1≤q≤b2−1
unde eeste o valoare rezonabil de mic˘ a. ˆInmult ¸ind aceast˘ a relat ¸ie cu b1b2se obt ¸ine
−δ < b 2p−b1q < δ, 1≤p≤b1−1,1≤q≤b2−1.
Consider˘ am sastfel de puncte de minim ¸ si scriem s−1 inegalit˘ at ¸i de acest tip,
pentru b1, b2, . . . , b s. Relativ la o valoare estimativ˘ a a lui δ, Shamir arat˘ a c˘ a dac˘ a
se alege δ </radicalBig
b1/2, atunci probabilitatea ca algoritmul s˘ a e¸ sueze este mai mic˘ a de
(2/r)s−1.
Prima parte a algoritmului rezolv˘ a acest sistem de inecuat ¸ii, aflˆ and toate valorile
luippentru care exist˘ a q, . . . astfel ˆ ıncˆ at s˘ a fie satisf˘ acute cele s−1 inecuat ¸ii.
II. Fie pun punct de minim fixat arbitrar. Toate punctele de discontinuitate ale curbe-
lorfi(u) (1≤i≤n) aflate ˆ ın intervalul/bracketleftbiggp
b1,p+ 1
b1/bracketrightbigg
sunt ordonate cresc˘ ator. Con-
sider˘ am xj, xj+1dou˘ a puncte consecutive de discontinuitate. Atunci ˆ ın intervalul
[xj, xj+1] fiecare curb˘ a fi(u) este un segment reprezentat prin fi(u) =biu−cj
i, unde
cj
ieste o constant˘ a care depinde de valorile lui i, j¸ sip.
Construim sistemul de inecuat ¸ii liniare
xj≤u≤xj+1
n/summationdisplay
i=1(biu−cj
i)<1
(b1u−cj
1) +. . .+ (bi−1u−cj
i−1)< biu−cj
i, (2≤i≤n)
Solut ¸ia acestui sistem este un subinterval (posibil vid) al lui [ xj, xj+1].
O condit ¸ie necesar˘ a ¸ si suficient˘ a ca dou˘ a numere u, m s˘ a formeze o pereche trap˘ a
este s˘ a existe un p¸ si un jastfel ca u/m s˘ a apart ¸in˘ a unui astfel de subinterval.
ˆIntr-adev˘ ar, ˆ ın sistemul de sus, a doua inecuat ¸ie asigur˘ a un mmai mare decˆ at suma
componentelor, iar ultimele n−1 inecuat ¸ii reprezint˘ a condit ¸ia de super-cre¸ stere.
Deci etapa a doua face o c˘ autare exhaustiv˘ a printre perechile ( p, j), unde peste dat
de prima etap˘ a a algoritmului, iar jeste un index al listei ordonate de puncte de
discontinuitate din intervalul dat de p. C˘ autarea se face pˆ an˘ a la aflarea unui interval
nevid (solut ¸ie care exist˘ a totdeauna). La un astfel de interval corespunde cel put ¸in
o pereche trap˘ a.
Exemplul 11.5. S˘ a presupunem c˘ a vectorul public este B= (7,3,2)(exemplul este
extrem de simplu, dar va permite detalierea algoritmului).
Prima etap˘ a a algoritmului solicit˘ a rezolvarea unui sistem de dou˘ a inegalit˘ at ¸i duble:
−δ <3p−7q < δ,−δ <2p−7r < δ, (1≤p≤6,1≤q≤2, r= 1).
198 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Valoarea recomandat˘ a pentru δeste/radicalBig
b1/2 =/radicalBig
7/2 = 1 ,87. Aceast˘ a alegere nu d˘ a ˆ ıns˘ a
nici o solut ¸ie pentru p(de fapt, pe exemple mici, orice rezultat asimptotic poate fi eronat).
Vom trece la etapa a doua, considerˆ and drept candidat ¸i pentru testare toate valorile lui p.
Deci ˆ ımp˘ art ¸im intervalul (0,1)ˆ ın subintervalele/parenleftbigg
0,1
7/parenrightbigg
,/parenleftbigg1
7,2
7/parenrightbigg
,/parenleftbigg2
7,1
3/parenrightbigg
,/parenleftbigg1
3,3
7/parenrightbigg
,/parenleftbigg3
7,1
2/parenrightbigg
,/parenleftbigg1
2,4
7/parenrightbigg
,/parenleftbigg4
7,2
3/parenrightbigg
,/parenleftbigg2
3,5
7/parenrightbigg
,/parenleftbigg5
7,6
7/parenrightbigg
,/parenleftbigg6
7,1/parenrightbigg
.
ˆIn fiecare din aceste subintervale, cele trei curbe sunt de forma fi(u) =biu−cj
i(i=
1,2,3, iar indicele jindic˘ a intervalul). Toate intervalele sunt deschise, pentru c˘ a nici un
punct de discontinuitate nu va corespunde unei perechi trap˘ a.
Pentru fiecare subinterval consider˘ am inecuat ¸iile
(7u−i1) + (3 u−i2) + (2 u−i3)<1
7u−i1<3u−i2
(7u−i1) + (3 u−i2)<2u−i3
cu0≤i1≤6,0≤i2≤2,0≤i3≤1. Acest sistem se poate rescrie
12u < i, 4u < j, 8u < k
unde s-a notat i= 1 + i1+i2+i3, j=i1−i2, k=i1+i2−i3.
List˘ am ˆ ıntr-un tabel toate variantele posibile:
/parenleftBig
0,1
7/parenrightBig /parenleftBig
1
7,2
7/parenrightBig /parenleftBig
2
7,1
3/parenrightBig /parenleftBig
1
3,3
7/parenrightBig /parenleftBig
3
7,1
2/parenrightBig /parenleftBig
1
2,4
7/parenrightBig /parenleftBig
4
7,2
3/parenrightBig /parenleftBig
2
3,5
7/parenrightBig /parenleftBig
5
7,6
7/parenrightBig /parenleftBig
6
7,1/parenrightBig
i1 0 1 2 2 3 3 4 4 5 6
i2 0 0 0 1 1 1 1 2 2 2
i3 0 0 0 0 0 1 1 1 1 1
i 1 2 3 4 5 6 7 8 9 10
j 0 1 2 1 2 2 3 2 3 4
k 0 1 2 3 4 3 4 5 6 7
12u < i PT PT NU NU NU NU PT NU PT NU
4u < j NU PT DA NU DA NU DA NU PT DA
8u < k NU NU NU PT DA NU NU NU PT PT
Pentru fiecare subinterval am notat: DA – dac˘ a inegalitatea din prima coloan˘ a este
adev˘ arat˘ a, NU – dac˘ a nu este adev˘ arat˘ a, ¸ si PT– dac˘ a este part ¸ial adev˘ arat˘ a (verifi-
cat˘ a doar la unul din capete). Un interval genereaz˘ a perechi trap˘ a numai dac˘ a pe coloana
sa apar numai DA sau PT.
ˆIn cazul nostru, singurul interval valid este (5/7,6/7). Alegem numere rat ¸ionale u/m
din acest interval, care s˘ a verifice cele trei inecuat ¸ii. C˘ autˆ and cei mai mici numitori
posibili, primul num˘ ar rat ¸ional care verific˘ a este 8/11. Deci lu˘ am u= 8 ¸ sim= 11 .
Atunci relat ¸ia ai≡biu(mod 11)transform˘ a vectorul B= (7,3,2)ˆ ın vectorul cu cre¸ stere
mare A= (1,2,5).
Evident, aceasta nu este singura solut ¸ie posibil˘ a. Alte solut ¸ii pot fi de exemplu:
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 199
•(u, m) = (41 ,56)care transform˘ a Bˆ ın vectorul super-cresc˘ ator A= (7,11,26),
•(u, m) = (61 ,84)care conduce la vectorul super-cresc˘ ator A= (7,15,38),
•(u, m) = (223 ,308) care conduce la vectorul super-cresc˘ ator A= (25 ,35,138).
Exemplul 11.6. S˘ a consider˘ am vectorul rucsac public
B= (43 ,129,215,473,903,302,561,1165,697,1523)
Este mult prea dificil s˘ a scriem lista complet˘ a a punctelor de discontinuitate din toate
intervalele/parenleftBig
p
43,p+1
43/parenrightBig
; de exemplu, numai funct ¸ia f10(u)(pentru p= 1253 ) are 35puncte
de discontinuitate. Totu¸ si, Bcont ¸ine destul de multe sl˘ abiciuni criptografice pentru a
permite scurtarea algoritmului de atac.
Inegalit˘ at ¸ile din prima etap˘ a pot fi scrise sub forma
|129p−43q|≤δ,|215p−43r|≤δ,|473p−43s|≤δ
Pentru c˘ a 129,215¸ si473sunt multipli de 43, rezult˘ a c˘ a p= 1 este un candidat posi-
bil. Nu mai c˘ aut˘ am alte valori pentru p¸ si restrˆ angem investigat ¸ia la intervalul/parenleftBig
1
43,2
43/parenrightBig
.
Considerˆ and ¸ si puncte de discontinuitate ale altor curbe ˆ ın acest interval, vom putea res-
trˆ ange subintervalul solut ¸iilor la/parenleftBig
1
43,36
1523/parenrightBig
. Cele 10curbe sunt definite aici sub forma
segmentelor de dreapt˘ a de ecuat ¸ii
f1(u) = 43 u−1, f 2(u) = 129 u−3, f 3(u) = 215 u−5, f 4(u) = 473 u−11,
f5(u) = 903 u−21f6(u) = 302 u−7, f 7(u) = 561 u−13, f 8(u) = 1165 u−27,
f9(u) = 697 u−16, f 10(u) = 1523 u−35.
Inecuat ¸ia a doua (care se refer˘ a la m˘ arimea modulului) este10/summationdisplay
i=1fi(u)<1sau
6011u−139<1, care duce la solut ¸ia u < 140/6011. Pentru c˘ a 140/6011 <36/1523,
g˘ asim un nou interval – mai restrˆ ans – al solut ¸iilor:/parenleftBig
1
43,140
6011/parenrightBig
.
List˘ am inecuat ¸iile care exprim˘ a condit ¸ia de super-cre¸ stere, ˆ ımpreun˘ a cu solut ¸iile lor:
129u−3>43u−1 u >1/43
215u−5>172u−4 u >2/43
473u−11>387u−9 u >1/43
903u−21>860u−20 u >1/43
302u−7>1763u−41 u <34/1461
561u−13>2065u−48 u <35/1504
1165u−27>2626u−61 u <34/1461
697u−16>3791u−88 u <72/3094
1523u−35>4488u−104 u <69/2965
Cea mai mic˘ a margine superioar˘ a dintre toate aceste solut ¸ii este 72/3094 = 36 /1547.
ˆIn final se obt ¸ine intervalul/parenleftBig
1
43,36
1547/parenrightBig
. Alegˆ and num˘ arul 37/1590 din acest interval se
obtine vectorul super-cresc˘ ator Adin Exemplul 7.4., Capitolul 7. Pentru num˘ arul 72/3095
se obt ¸ine vectorul super-cresc˘ ator A= (1,3,5,11,21,79,157,315,664,1331) .
200 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
11.1.3 Vectori rucsac cu densitate mare
Spargerea sistemului de criptare rucsac definit de Merkle ¸ si Hellman nu ˆ ınseamn˘ a re-
zolvarea problemei rucsacului, ci numai exploatarea sl˘ abiciunii provenite din modul de
alegere a cheii secrete. Ulterior au fost generate ¸ si alte construct ¸ii de cripto-sisteme ruc-
sac.ˆIn aceast˘ a setiune prezent˘ am un astfel de sistem, prezentat de Arto Salomaa ([45]).
ˆIn varianta Merkle – Hellman, sistemul de criptare rucsac se baza pe vectori cu den-
sitate mic˘ a, ˆ ın sensul c˘ a elementele vectorului erau foarte rare ˆ ın raport cu num˘ arul lor.
Noul sistem propune o construct ¸ie bazat˘ a pe vectori rucsac cu densitate mare.
Fiepun num˘ ar prim ¸ si h≥1. Un element αeste algebric de gradul hpeste Zpdac˘ a
satisface o ecuat ¸ie polinomial˘ a P(x) = 0 de gradul h¸ si nici o ecuat ¸ie de grad mai mic
(adic˘ a P(x) este un polinom ireductibil peste Zp). Considerˆ and atunci extensia Galois
GF(ph), elementele sale pot fi reprezentate sub forma
x=h−1/summationdisplay
j=0cjαj(0≤cj≤p−1)
Exemplul 11.7. Fiep= 3, h= 2¸ siαo r˘ ad˘ acin˘ a a ecuat ¸iei X2−X−1 = 0 . Elementele
corpului GF(32)pot fi exprimate ˆ ın funct ¸ie de αastfel:
GF(32) ={0,1,2, α, α + 1, α+ 2,2α,2α+ 1,2α+ 2}
Similar aritmeticii modulare definite pe Zp, putem folosi not ¸iunea de logaritm discret
¸ si ˆ ın extensiile Galois GF(ph). Un element βeste un generator al lui GF(ph)\{0}dac˘ a
pentru orice x∈GF(ph)\{0}exist˘ a un ˆ ıntreg i∈[0, ph−1] astfel ca x=βi. Deci
i=logβx.
Exemplul 11.8. Pentru extensia GF(32)construit˘ a ˆ ın Exemplul 11.7, αeste un gene-
rator. Logaritmii elementelor nenule din aceast˘ a extensie sunt:
x 1 2 α α + 1 α+ 2 2 α2α+ 1 2 α+ 2
logαx8 4 1 2 7 5 3 6
Tot un generator al lui GF(32)\{0}este ¸ si 2α+ 1. Tabela de logaritmi ˆ ın aceast˘ a baz˘ a
este
x 1 2 α α + 1 α+ 2 2 α2α+ 1 2 α+ 2
log2α+1×8 4 3 6 5 7 1 2
ˆIn 1936 a fost enunt ¸at˘ a o problem˘ a interesant˘ a, cu aplicat ¸ii ˆ ın domeniu. Anume, fiind
date numerele ˆ ıntregi pozitive n¸ sih, exist˘ a un vector A= (a1, a2, . . . , a n) cu elemente
nenegative distincte, astfel ˆ ıncˆ at toate sumele de exact hcomponente de elemente (nu
neap˘ arat distincte) din A, sunt diferite. Un astfel de vector Aeste u¸ sor de construit,
luˆ and ai=hi−1(1≤i≤n). Construct ¸ia corespunde vectorilor rucsac cu densitate mic˘ a
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 201
(categorie ˆ ın care intr˘ a ¸ si vectorii super-cresc˘ atori). ˆIn cazul vectorilor rucsac cu densitate
mare (unde valorile componentelor lui Acresc doar polinomial ˆ ın n), Bose ¸ si Chowla au
dat o rezolvare, prezentat˘ a ˆ ın Lema urm˘ atoare:
Lema 11.2. Fiepun num˘ ar prim ¸ si hun num˘ ar ˆ ıntreg, (h≥2). Atunci exist˘ a un vector
rucsac A= (a1, a2, . . . , a p)care satisface condit ¸iile
1.1≤ai≤ph−1,(1≤i≤p),
2. Dac˘ a x,yi(1≤i≤p)sunt numere ˆ ıntregi nenegative cu
(x1, x2, . . . , x p)/negationslash= (y1, y2, . . . , y p)iarp/summationdisplay
i=1xi=p/summationdisplay
i=1yi=h,
atuncip/summationdisplay
i=1aixi/negationslash=p/summationdisplay
i=1aiyi.
Demonstrat ¸ie. S˘ a consider˘ am extensia Galois GF(ph); fie αun element algebric de grad
hpeste Zp, iarg– un generator al lui GF(ph)\{0}. Definim
ai=logg(α+i−1), (1≤i≤p)
Condit ¸ia (1) este evident satisf˘ acut˘ a. Pentru a ar˘ ata ¸ si (2), s˘ a presupunem prin absurd
c˘ a exist˘ a numerele xi, yi(1≤i≤p) care verific˘ a ipoteza, darp/summationdisplay
i=1aixi=p/summationdisplay
i=1aiyi. Deci
g/summationtextp
i=1aixi=g/summationtextp
i=1aiyi
sau
(α+ 0)x1. . .(α+p−1)xp= (α+ 0)y1. . .(α+p−1)yp.
T ¸inˆ and cont ¸ si de ipotez˘ a, aceast˘ a expresie este un polinom ˆ ın αde grad cel mult h−1,
ceea ce contrazice faptul c˘ a αeste algebric de gradul h.
Demonstrat ¸ia r˘ amˆ ane valabil˘ a ¸ si pentru p=qn, qnum˘ ar prim. De asemenea, se poate
ˆ ınlocui concluzia Lemei 11.2 cu un rezultat mai tare:
p/summationdisplay
i=1aixi/negationslash≡p/summationdisplay
i=1aiyi (mod ph−1)
Pe baza acestor rezultate, s˘ a construim un sistem de criptare rucsac. Textul clar va
cont ¸ine cuvinte (blocuri) de pbit ¸i, astfel ˆ ıncˆ at ˆ ın fiecare bloc sunt exact hbit ¸i egali cu 1.
ˆIn general, un text clar arbitrar nu poate fi segmentat ˆ ın astfel de blocuri; totu¸ si, se pot
defini codific˘ ari convenabile premerg˘ atoare ale textului clar. O astfel de codificare este
asigurat˘ a de rezultatul urm˘ ator:
202 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Lema 11.3. Fien≥3¸ sih < n . Atunci exist˘ a o aplicat ¸ie injectiv˘ a a mult ¸imii secvent ¸elor
binare de lungime ⌊log2Ch
n⌋ˆ ın mult ¸imea secvent ¸elor binare de nbit ¸i ˆ ın care apar hde1.
Demonstrat ¸ie. S˘ a consider˘ am secvent ¸ele binare de lungime ⌊log2Ch
n⌋ca reprezent˘ ari bina-
re de numere a.
– Ordon˘ am cresc˘ ator secvent ¸ele binare de lungime navˆ and hde 1.
– Stabilim o corespundent ¸˘ a ˆ ıntre secvent ¸a binar˘ a asociat˘ a num˘ arului a¸ si al ( a+ 1) –
lea bloc binar astfel ordonat.
Aplicat ¸ia definit˘ a de aceast˘ a corespondent ¸˘ a este injectiv˘ a; ˆ ın plus, deoarece Ch
n<2n,
nu sunt epuizate toate secvent ¸ele binare.
Exemplul 11.9. Fien= 5¸ sih= 2. Atunci⌊log2C2
5⌋= 3; deci putem codifica blocuri
de3bit ¸i. Corespondent ¸a se realizeaz˘ a dup˘ a tabelul:
0 0 0−→ 0 0 0 1 1
0 0 1−→ 0 0 1 0 1
0 1 0−→ 0 0 1 1 0
0 1 1−→ 0 1 0 0 1
1 0 0−→ 0 1 0 1 0
1 0 1−→ 0 1 1 0 0
1 1 0−→ 1 0 0 0 1
1 1 1−→ 1 0 0 1 0
Secvent ¸ele 10100 ¸ si11000 r˘ amˆ an neutilizate.
S˘ a descriem acum sistemul de criptare:
•Se alege un num˘ ar prim p¸ si fie h < p . Se alege αalgebric de gradul hpeste
Zp¸ si un generator gal lui GF(ph)\{0}.
•Se calculeaz˘ a A= (a1, a2. . . , a p) definit prin
ai=logg(α+i−1),(1≤i≤p) (1)
•Se define¸ ste vectorul B= (b1, b2, . . . , b p) prin bi=aπ(i)+d,
unde π∈Speste o permutare, iar d(0≤d≤ph−2) este o constant˘ a arbitrar˘ a.
Cheia public˘ a de criptare este B, p, h . Trapa secret˘ a const˘ a din α, g, d, π .
FieCo secvent ¸˘ a binar˘ a de lungime pˆ ın care suma elementelor este h. Considerat sub
forma unui vector, Ceste criptat prin produsul scalar
e(C) =B·CT(mod ph−1)
Protocolul de decriptare urmat de Bobeste:
11.1. SISTEMUL DE CRIPTARE MERKLE – HELLMAN 203
•Dac˘ a xeste mesajul criptat, ˆ ın prima faz˘ a se determin˘ a y=x−h·d(mod ph−1).
•Se calculeaz˘ a gyˆ ınGF(ph). Acesta este un polinom ˆ ın α, de grad cel mult h−1.
Pe de alt˘ a parte, αsatisface o ecuat ¸ie de forma αh=r(α), unde r(X)∈Zq[X]
este un polinom de grad cel mult h−1.
•Polinomul s(α) =αh+gy−r(α) se descompune ˆ ın factori liniari peste Zp(lucru
posibil deoarece s(α) este un produs de puteri ale lui g, fiecare exponent fiind de
forma (1)). Fie s(α) = (α+i1−1)(α+i2−1). . .(α+ih−1) aceast˘ a descompunere.
•Pozit ¸ia elementelor 1 din textul clar este dat˘ a de valorile
(π−1(i1), π−1(i2), . . . , π−1(ih)).
Unicitatea decript˘ arii este asigurat˘ a de Lema 11.2.
Exemplul 11.10. Pentru facilitarea ˆ ınt ¸elegerii, vom face abstract ¸ie de permutarea π¸ si
deplasarea d. Fie extensia GF(32)definit˘ a ˆ ın Exemplele 11.7 ¸ si 11.8, ˆ ın care αverific˘ a
ecuat ¸ia X2=X+1, iar 2α+1este generatorul extensiei. Deoarece logaritmii elementelor
α, α+ 1¸ siα+ 2sunt 3,6¸ si respectiv 5, se obt ¸ine cheia public˘ a de criptare A= (3,6,5)
(ˆ ın acest exemplu B=A).ˆIn plus, p= 3¸ sih= 2.
Un text clar este compus din vectori binari cu 3componente, ˆ ın care suma componen-
telor este 2.
S˘ a consider˘ am vectorii (2,0,0)¸ si(0,1,1). Ei sunt criptat ¸i ˆ ın numerele 6respectiv 3
(calculele se efectueaz˘ a modulo ph−1 = 8 ).
La decriptare, Bob:
– calculeaz˘ a ˆ ıntˆ ai puterile (2α+ 1)6=α+ 1¸ si(2α+ 1)3=α.
– La ambele expresii, adun˘ a α2−α−1, rezultˆ and polinoamele α2respectiv α2−a=
(α+ 1)( α+ 2).
– Se deduc textele clare (2,0,0)respectiv (0,1,1).
Exemplul 11.11. S˘ a rel˘ am elementele principale din Exemplul 11.10, ¸ si s˘ a construim
vectorul public, aplicˆ and lui Apermutarea π=/parenleftBigg
1 2 3
2 3 1/parenrightBigg
urmat˘ a de deplasarea d= 7.
Vectorul rezultat este B= (5,4,2); acesta, ˆ ımpreun˘ a cu p= 3¸ sih= 2constituie cheia
public˘ a. Trapa secret˘ a este format˘ a din π, d, polinomul X2−X−1¸ si generatorul 2α+ 1.
Atunci, textul clar (0,1,1)este criptat ˆ ın 6.
La recept ¸ie, Bob calculeaz˘ a ˆ ıntˆ ai 6−2·7 (mod 8) = 0 .
Pe urm˘ a determin˘ a α2+ (2α+ 1)0−α−1 =α2−α=α(α+ 2), care conduce la vectorul
(1,0,1). Acestuia i se aplic˘ a permutarea invers˘ a π−1=/parenleftBigg
1 2 3
3 1 2/parenrightBigg
pentru a obt ¸ine textul
clar(0,1,1).
204 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
11.2 Sistemul de criptare McEliece
Sistemul de criptare McEliece – propus ˆ ın 1978 – este destul de apropiat de problema
rucsacului. El utilizeaz˘ a drept cadru teoria codurilor liniare (pentru detalii vezi [2]); aici,
ˆ ın general decodificarea unui cod liniar binar corector de erori este o problem˘ a NP- com-
plet˘ a. Pentru unele clase de coduri sunt construit ¸i algoritmi de decodificare polinomiali;
o astfel de clas˘ a o formeaz˘ a codurile Goppa, care constituie baza sistemului de criptare
McEliece .
Definit ¸ia 11.2. Fiek, n∈N(k≤n). Un (n, k)- cod liniar binar este un subspat ¸iu liniar
C⊆Zn
2de dimensiune k.
O matrice generatoare a lui Ceste o matrice binar˘ a k×nale c˘ arei linii formeaz˘ a o
baz˘ a a lui C.
Pentru a∈Zn
2se define¸ ste ponderea w(a) =num˘ arul de elemente nenule din a.
Pentru a,b∈Zn
2a= (a1, . . . , a n),b= (b1, . . . , b n), se define¸ ste distant ¸a Hamming
prind(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/negationslash=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 modific˘ ari aleatoare care apar ˆ ın
transmiterea unui set de date (binare) printr-un canal. ˆIn linii mari, acesta funct ¸ioneaz˘ a
astfel: dac˘ a aeste un mesaj de informat ¸ie de kbit ¸i, Alice ˆ ıl codific˘ a ˆ ıntr-un cuvˆ ant de n
bit ¸ib=aG, unde Geste matricea generatoare a codului.
Bobprime¸ ste un mesaj r∈Zn
2(eventual r=b) ¸ si caut˘ a un cuvˆ ant b1∈Ccud(r,b1)
minim posibil. Va decodifica rˆ ınb1dup˘ a care va calcula un mesaj de informat ¸ie a1astfel
cab1=a1G. Cazul ideal este acela cˆ and b1=b,a1=a(adic˘ a erorile au fost acoperite
corect). Se cunoa¸ ste c˘ a, dac˘ a num˘ arul de erori care apar nu dep˘ a¸ se¸ ste ( d−1)/2, acest
procedeu corecteaz˘ a efectiv erorile.
Dac˘ a Bobcaut˘ a cuvˆ antul – cod cel mai apropiat comparˆ and rpe rˆ and cu fiecare element
dinC, cum sunt 2kastfel de cuvinte, algoritmul va fi exponent ¸ial, deci nefunct ¸ional.
Majoritatea algoritmilor de decodificare se bazeaz˘ a pe not ¸iunea de sindrom , definit
astfel:
Matricea de control a unui ( n, k, d ) – cod liniar binar de matrice generatoare Geste o
matrice Hde dimensiune ( n−k)×nale c˘ arei linii formeaz˘ a o baz˘ a a unui spat ¸iu liniar
ortogonal. Evident, G·HT=0.
Pentru un cuvˆ ant r∈Zn
2, se nume¸ ste sindrom secvent ¸a de n−kbit ¸i definit˘ a H·rT.
Teorema 11.1. a este un cuvˆ ant – cod dac˘ a ¸ si numai dac˘ a H·aT=0.
ˆIn plus, dac˘ a a∈C,e∈Zn
2¸ sir=a+e, atunci H·rT=H·eT.
11.2. SISTEMUL DE CRIPTARE MCELIECE 205
Pentru demonstrat ¸ie se poate consulta de asemenea [2].
epoate fi considerat drept vectorul de erori care au ap˘ arut ˆ ın transmiterea mesajului
a. Teorema anterioar˘ a afirm˘ a c˘ a sindromul depinde doar de erori, nu ¸ si de cuvˆ antul – cod
transmis.
Aceast˘ a observat ¸ie sugereaz˘ a o metod˘ a de decodificare bazat˘ a pe sindrom. Se cal-
culeaz˘ a ˆ ıntˆ ai s=H·rT. Dac˘ a s=0, decodificarea lui reste tot r. Altfel, se ˆ ıncearc˘ a
toate cuvintele de pondere 1. Pentru fiecare astfel de cuvˆ ant ese calculeaz˘ a H·eT. Dac˘ a
s-a g˘ asit un ecuH·eT=s,rse decodific˘ a ˆ ın r−e.ˆIn caz contrar se ˆ ıncearc˘ a vectorii de
pondere 2 ,3, . . . , [(d−1)/2]. Dac˘ a nu s-a g˘ asit nici un cuvˆ ant ecuH·eT=s, se deduce
c˘ a au ap˘ arut mai mult de [( d−1)/2] erori ˆ ın cursul transmisiei.
Metoda prezentat˘ a funct ¸ioneaz˘ a pentru toate codurile liniare. Pentru anumite clase
speciale de coduri exist˘ a algoritmi polinomiali de decodificare ¸ si corectare a erorilor; ˆ ın
cazul general ˆ ıns˘ a problema este NP – complet˘ a.
Algoritmul de criptare McElliece se bazeaz˘ a pe aceast˘ a idee. Trapa sa secret˘ a o con-
stituie o clas˘ a de coduri pentru care exist˘ a algoritmi eficace de decodificare – codurile
Goppa. ˆIn plus, exist˘ a un num˘ ar mare de coduri Goppa neechivalente, avˆ and aceia¸ si
parametri.
Algoritmul de criptare McEliece este urm˘ atorul:
FieGmatricea generatoare a unui ( n, k, d ) – cod Goppa cu n= 2m, d= 2t+1, k=
n−m·t.
Se definesc:
-S– matrice inversabil˘ a k×kpeste Z2,
-P– matrice de permutare n×n(matrice ˆ ın care pe fiecare linie ¸ si coloan˘ a exist˘ a
o valoare 1, iar restul elementelor sunt 0).
FieP=Zk
2,C=Zn
2,K={(G, S, P, G/prime)|G/prime=S·G·P}.
G/primeeste public˘ a iar G, S, P sunt secrete.
Pentru K= (G, S, P, G/prime) se define¸ ste
eK(a,e) =a·G/prime+e
unde e∈Zn
2este un cuvˆ ant aleator de pondere t.
Bobdecripteaz˘ a un mesaj b∈Zn
2astfel:
1.Calculeaz˘ a b1=b·P−1;
2.Decodific˘ a b1obt ¸inˆ and b1=a1+e1unde a1∈C;
3.Calculeaz˘ a a0∈Zk
2astfel ca a0·G=a1;
4.Calculeaz˘ a a=a0·S−1.
De remarcat c˘ a sistemul McElliece este primul sistem de criptare cu cheie public˘ a care
a folosit alegerea unei valori aleatoare ˆ ın procesul de criptare, idee reluat˘ a de ulterior de
sistemul El Gamal .
206 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
Corectitudinea algoritmului de decriptare:
Deoarece b1=b·P−1= (a·G/prime+e)·P−1= (a·S·G·P+e)·P−1= (a·S)·G+e·P−1
iare·P−1este un vector de pondere cel mult t, algoritmul de decodificare al codului de
matrice generatoare Gpoate decodifica corect pe b1¸ si obt ¸ine un mesaj surs˘ a a0=a·S.
La ultimul pas se afl˘ a mesajul init ¸ial a=a0·S−1.
Nu vom intra ˆ ın detalii privind definit ¸ia codurilor Goppa ([2]). Acestea pot fi privite
ˆ ıns˘ a drept coduri liniare cu parametrii n= 2m, d= 2t+ 1, k=n−m·t. Pentru o
implementare practic˘ a referitor la criptare, McEliece sugereaz˘ a m= 10, t= 50, ceea ce
corespunde unui (1024 ,524,101) – cod Goppa2. Un text clar este o secvent ¸˘ a de 524 bit ¸i,
iar un text criptat este o secvent ¸˘ a de 1024 bit ¸i. Cheia public˘ a este o matrice binar˘ a de
dimensiuni 524×1024.
Exemplul 11.12. Vom exemplifica algoritmul pe un (8,2,5)- cod Goppa (deci n=
23, k= 2, d= 5). Acest cod – extrem de mic (are doar 4cuvinte) este generat de
matricea
G=/parenleftBigg
0 0 1 1 1 1 1 1
1 1 0 0 1 0 1 1/parenrightBigg
S˘ a presupunem c˘ a Bob alege matricile
S=/parenleftBigg
1 0
1 1/parenrightBigg
cu S−1=/parenleftBigg
1 0
1 1/parenrightBigg
¸ si
P=
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
cu P−1=
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
Matricea public˘ a generat˘ a este deci
G/prime=S·G·P=/parenleftBigg
1 0 1 0 1 1 1 1
1 1 0 1 0 1 1 0/parenrightBigg
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=a·G/prime+e= (1,1,1,1,0,0,1,0).
2O analiz˘ a a securit˘ at ¸ii recomand˘ a parametrii n= 1024 , t= 38, k≥644.
11.3. EXERCIT ¸II 207
Dup˘ a recept ¸ionarea mesajului, Bob calculeaz˘ a ˆ ıntˆ ai
b1=b·P−1= (1,1,1,1,1,0,0,0),
pe care ˆ ıl scrie sub forma a1+e1unde a1= (1,1,1,1,0,1,0,0)este un cuvˆ ant – cod,
iare1= (0,0,0,0,1,1,0,0)/negationslash=e(din cauza ˆ ınmult ¸irii cu P−1).
Bob calculeaz˘ a apoi mesajul a0= (1,1), singurul cu proprietatea a0·G=a1.
Ultimul pas este determinarea lui a=S−1·a0= (0,1), care este textul clar expediat
deAlice .
Algoritmul McElliece s-a dovedit sigur. Acest lucru rezult˘ a din analiza celor dou˘ a
tipuri de atac posibile:
1. Din informat ¸ia public˘ a, Oscar ˆ ıncearc˘ a s˘ a afle matricea Gsau o matrice G1a unui
cod Goppa echivalent (avˆ and aceea¸ si parametri). Nu se cunoa¸ ste nici un algoritm
eficient pentru un astfel de demers.
2.Oscar ˆ ıncearc˘ a s˘ a afle mesajul clar adirect din textul criptat b. El ia aleator k
coloane din matricea public˘ a G/prime. Notˆ and G/prime
k,bk,ekrestrict ¸iile lui G/prime,brespectiv e
la aceste kcoloane, vom avea a·G/prime
k=bk+ek. Dac˘ a bk=0¸ siG/prime
keste nesingular˘ a,
atunci apoate fi aflat rezolvˆ and sistemul liniar a·G/prime
k=bk. Probabilitatea ca cei
kbit ¸i selectat ¸i s˘ a nu fac˘ a parte din eroare (deci ek=0) este Ck
n−t/Ck
n, neglijabil˘ a
pentru valorile alese ale parametrior n, k, t .
Interesant, dar aceast˘ a securitate este mult diminuat˘ a dac˘ a se folose¸ ste alt˘ a clas˘ a de coduri
liniare ˆ ın locul codurilor Goppa.
Totu¸ si, ˆ ın ciuda securit˘ at ¸ii sale ¸ si a vitezei relativ mari de criptare/decriptare sistemul
McElliece nu este folosit practic. Cauza principal˘ a o constituie cheia sa excesiv de mare.
De exemplu, pentru n= 1024 , t= 38, k≥644, cheia are aproximativ 219bit ¸i.
11.3 Exercit ¸ii
11.1. Folosind vectorul rucsac public B= (228 ,325,346,485,556,525) criptat ¸i textul clar
CASA DE PIATRA .
11.2. Se ¸ stiu parametrii m= 523 , u= 28 ¸ si vectorul public
B= (355 ,131,318,113,21,135,215).
1. Aflat ¸i vectorul rucsac super-cresc˘ ator A= (a1, a2, a3, a4, a5, a7);
2. Decriptat ¸i mesajul (113,689,379,350,346,697,355,355).
11.3. Folosind vectorul rucsac public B= (102 ,238,3400,284,1044,2122,425) criptat ¸i
textul clar FRUNZA DE STEJAR .
208 CAPITOLUL 11. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC ˘A
11.4. Se ¸ stiu parametrii m= 3989 , u= 352 ¸ si vectorul public
B= (102 ,238,3400,284,1044,2122,425).
1. Aflat ¸i vectorul rucsac super-cresc˘ ator A= (a1, a2, a3, a4, a5, a7);
2. Decriptat ¸i mesajul (1753 ,2122,5624,1566,1809,3450,2360,1049,0).
11.5. Plecˆ and de la criptanaliza vectorului rucsac din din Exemplul 11.6, s˘ a se constru-
iasc˘ a vectorul super-cresc˘ ator corespunz˘ ator valorii 720/30949 .
11.6. FieA= (a1, a2, . . . , a n)un vector rucsac. Un ˆ ıntreg pozitiv xeste reprezentat de
Adac˘ a ¸ si numai dac˘ a xpoate fi exprimat ca o sum˘ a de aiˆ ın care fiecare element din A
apare cel mult odat˘ a. Dac˘ a Aeste un vector injectiv, atunci este clar c˘ a 2n−1valori
ˆ ıntregi sunt reprezentate de A. Acesta este cel mai mare num˘ ar posibil de valori. Care
este cel mai mic num˘ ar posibil de valori (ˆ ın funct ¸ie de n) ?
11.7. Folosind parametrii din Exemplul 11.12 criptat ¸i mesajele x= (1,1)¸ siy= (1,0).
Capitolul 12
Generatori de numere pseudo –
aleatoare
12.1 Numere aleatoare ¸ si numere pseudo-aleatoare
Aproape toate sistemele de criptare ¸ si protocoalele folosite ˆ ın criptografie au un punct
central comun: alegerea unor numere arbitrare, necunoscute apriori, imprevizibile; denu-
mirea standard este de ” numere aleatoare ” sau ” numere generate aleator ”.ˆIn general nu
se poate vorbi de un singur num˘ ar aleator decˆ at ˆ ıntr-un context statistic. Termenul corect
este acela de ” ¸ sir de numere aleatoare ”.
Folosirea calculatorului reduce termenul de numere aleatoare la un ¸ sir de bit ¸i generat ¸i
aleator, grupat ¸i dup˘ a o anumit˘ a regul˘ a. Matematic, nu exist˘ a o modalitate mai scurt˘ a de
a specifica ¸ sirul decˆ at secvent ¸a ˆ ıns˘ a¸ si .
Definit ¸ia 12.1. Un generator de numere aleatoare, sau ”generator real aleator” ( GA)
este un dispozitiv sau un algoritm care produce o secvent ¸˘ a de numere independente ¸ si
nepredictibile (care nu ofer˘ a informat ¸ii asupra valorilor ulterioare).
ˆIn majoritatea cazurilor, un GAproduce secvent ¸e binare, care ulterior sunt convertite
ˆ ın numere ˆ ıntregi.
Statistica ofer˘ a destul de put ¸ine informat ¸ii despre bit ¸ii generat ¸i aleator. De exemplu,
se ¸ stie c˘ a 0 trebuie s˘ a apar˘ a la fel de frecvent ca 1, c˘ a 00 trebuie s˘ a apar˘ a de dou˘ a ori
mai rar decˆ at 0 (sau 1) ¸ si la fel de des ca 11 ,10,01. Exist˘ a ¸ si teste statistice (distribut ¸ie
normal˘ a standard, distribut ¸ie χ2- Kolmogorov) care estimeaz˘ a cˆ at de aleatoare sunt
numerele dintr-un secvent ¸˘ a.
ˆIn criptografie este esent ¸ial ca un num˘ ar aleator s˘ a nu poat˘ a fi aflat. Un num˘ ar perfect
aleator este acela pe care Oscar nu-l poate ghici decˆ at prin fort ¸˘ a brut˘ a. O parte destul de
important˘ a din criptanaliz˘ a se bazeaz˘ a pe exploatarea imperfect ¸iunilor unor funct ¸ii care
genereaz˘ a numere aleatoare.
209
210 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
O generare de numere pur aleatoare se realizeaz˘ a prin colectarea ¸ si procesarea de date
obt ¸inute dintr-o surs˘ a de entropie exterioar˘ a calculatorului. Sursa de entropie poate fi
foarte simpl˘ a, ca de exemplu variat ¸iile mi¸ sc˘ arii mouse-ului, sau intervalul de timp dintre
ap˘ asarea a dou˘ a taste. Surse foarte bune de entropie pot fi cele radioactive sau cele care
folosesc zgomote din atmosfer˘ a.
Proprietatea de a fi aleator a fost introdus˘ a ˆ ın domeniul tehnicii de calcul cu ajutorul
generatorilor de numere pseudo-aleatoare .
Definit ¸ia 12.2. Fiem, k (0< k < m )numere ˆ ıntregi. Un (k, m)generator de numere
pseudo-aleatoare este o aplicat ¸ie recursiv˘ a
f:Zk
2←−Zm
2
calculabil˘ a ˆ ın timp polinomial.
ˆIn aplicat ¸ii, m=h(k) unde heste o funct ¸ie polinomial˘ a.
Un generator de numere pseudo-aleatoare trebuie s˘ a satisfac˘ a anumite cerint ¸e:
•S˘ a fie simplu ¸ si rapid.
•S˘ a produc˘ a ¸ siruri de numere de lungime arbitrar˘ a care s˘ a nu cont ¸in˘ a repetit ¸ii.
Deoarece un calculator nu poate genera decˆ at numere mai mici decˆ at un num˘ ar
dat, nu se poate construi un generator cu perioad˘ a infinit˘ a. Generatorul trebuie s˘ a
aib˘ a totu¸ si o perioad˘ a de repetit ¸ie cˆ at mai mare.
•S˘ a produc˘ a numere independente unul de altul (sau cu o corelare cˆ at mai vag˘ a).
•S˘ a genereze numere cu o repartit ¸ie uniform˘ a ˆ ın spat ¸iul valorilor.
Putem defini un generator de numere pseudo-aleatoare folosind arhitectura calculatorului.
Astfel, dac˘ a S= (Q, f) este un circuit secvent ¸ial cu m=card(Q) st˘ ari ¸ si funct ¸ie de
tranzit ¸ie f:Q−→Q, atunci secvent ¸a
xn=f(xn−1), x 0oarecare,
este o secvent ¸˘ a de numere pseudo-aleatoare.
Un astfel de generator este cu atˆ at mai eficient cu cˆ at satisface mai bine cerint ¸ele
anterioare.
12.2 Generatori simpli de numere pseudo-aleatoare
12.2.1 Generatori liniari congruent ¸iali
Un astfel de generator (construit de Lehmer ˆ ın 1949) este definit de formula
xn+1=axn+b(mod m )
12.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 211
Valorile a(multiplicatorul ),b(incrementul ) ¸ sim(modulul ) sunt constante. Cheia de
generare este valoarea init ¸ial˘ a x0.
Cˆ and b= 0, generatorul se nume¸ ste multiplicativ .
Perioada maxim˘ a a unui generator liniar este evident m. Ea poate fi atins˘ a pentru
anumite valori ale perechii ( a, b) (de exemplu dac˘ a cmmdc (b, m) = 1).
Un generator liniar congruent ¸ial de perioad˘ a mse nume¸ ste generator de perioad˘ a maxi-
mal˘ a. O analiz˘ a a strategiei de select ¸ie a valorilor pentru a asigura o perioad˘ a maximal˘ a se
poate g˘ asi ˆ ın [28] ¸ si [58]. O analiz˘ a teoretic˘ a detaliat˘ a a generatorilor liniari congruent ¸iali
se g˘ ase¸ ste ˆ ın [53].
ˆIn Tabelul 1 se afl˘ a listat ¸i cˆ at ¸iva generatori de perioad˘ a maximal˘ a.
a b m a b m
105 1283 6075 1277 24749 117128
211 1663 7875 2311 25367 120050
421 1663 7875 3877 29573 139968
430 2531 11979 8121 28411 134456
171 11213 53125 9301 49297 233280
141 28411 134456 2416 374441 1771875
421 17117 81000 17221 107839 510300
1093 18257 86436 84589 45989 217728
Tabelul 1
Avantajul generatorilor liniari congruent ¸iali este viteza de calcul.
O generalizare a relat ¸iei de recurent ¸˘ a este
xn+k= (akxn+ (ak−1)c/b) (mod m )
care d˘ a un generator de perioad˘ a maximal˘ a cˆ and:
•cmmdc (c, m) = 1;
•b=a−1 este multiplu de p, pentru orice num˘ ar prim pcare divide m;
•b(mod 4) = 0 dac˘ a m(mod 4) = 0.
Dezavantajul generatorilor liniari congruent ¸iali este acela c˘ a ei nu mai pot fi folosit ¸i ˆ ın
criptografie; ¸ stiind prima valoare, numerele pot fi g˘ asite u¸ sor. Criptanaliza a fost realizat˘ a
de Jim Reeds ˆ ın 1977 (cu complet˘ ari ˆ ın 1979) ¸ si Joan Boyar ˆ ın 1982. Ea a spart ¸ si
generatorii p˘ atratici
xn+1= (ax2
n+bxn+c) (mod m )
¸ si cubici
xn+1= (ax3
n+bx2
n+cxn+d) (mod m )
Alt ¸i cercet˘ atori au extins metodele de atac pentru spargerea oric˘ arui generator poli-
nomial congruent ¸ial.
212 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
Acum, acest tip de generator de numere pseudo-aleatoare este folosit cu predilect ¸ie ˆ ın
aplicat ¸ii necriptografice; de exemplu, ˆ ın simulare el asigur˘ a o comportare statistic˘ a bun˘ a
ˆ ın majoritatea testelor.
12.2.2 Generatori Ranrot
Clasa generatorilor Ranrot a fost definit˘ a de danezul Agner Fog ˆ ın 1997 ([22]), init ¸ial
pentru algoritmi de tip Monte Carlo . Ei se bazeaz˘ a pe generatoare de numere Fibonacci,
completate cu operat ¸ia de deplasare ciclic˘ a pe bit ¸i. Sunt cunoscute ¸ si studiate trei variante
de generatoare Ranrot :
•Tip A : xn= ((xn−j+xn−k) (mod 2b))/greatermuchr;
•Tip B : xn= ((xn−j/greatermuchr1) + (xn−k/greatermuchr2)) (mod 2b);
•Tip B3 : xn= ((xn−i/greatermuchr1) + (xn−j/greatermuchr2) + (xn−k/greatermuchr3)) (mod 2b);
•Tip W : zn= ((yn−j/greatermuchr3) + (yn−k/greatermuchr1)) (mod 2b/2),
yn= ((zn−j/greatermuchr4) + (zn−k/greatermuchr2)) (mod 2b/2),
xn=yn+zn·2b/2.
S-au folosit urm˘ atoarele convent ¸ii:
1. Toate numerele xsunt ˆ ıntregi binare pe bbit ¸i;
2. 0< i < j < k≤nnumere ˆ ıntregi;
3.α/greatermuchseste rotat ¸ia secvent ¸ei αspre dreapta cu spozit ¸ii;
4. 0≤ri≤b−1 pentru primele dou˘ a tipuri, 0 ≤bi≤b/2 pentru tipul W.
Valorile sunt calculate ˆ ıntr-un vector (buffer) de kelemente, numit stare Sn.
Starea init ¸ial˘ a este
S1= (x1, x2, . . . , x k)
iar trecerea de la o stare la alta se realizeaz˘ a printr-o deplasare spre stˆ anga de forma
(xn−k, xn−k+1, . . . , x n−1)←−(xn−k+1, . . . , x n−1, xn)
unde xneste calculat conform formulei specifice tipului s˘ au.
Fiep=cmmdc (j, k). Dac˘ a p >1, atunci sistemul se poate descompune ˆ ın psisteme
independente. Deci o prim˘ a condit ¸ie de performant ¸˘ a este cmmdc (j, k) = 1, ceea ce asigur˘ a
inter-dependent ¸a tuturor numerelor din stare.
Din acela¸ si motiv, la tipul Wtrebuie ca num˘ arul k−js˘ a fie prim.
Din modul de implementare al adun˘ arii binare rezult˘ a o scurgere de informat ¸ie (prin
bitul de transport – carry ) de la bit ¸ii cei mai put ¸in semnificativi c˘ atre cei mai semnificativi,
informat ¸ie care nu se transfer˘ a ˆ ın sens contrar. Pentru eliminarea acestui neajuns s-au
12.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 213
ˆ ıncercat diverse variante, cum ar fi adunarea transportului la bitul cel mai put ¸in semni-
ficativ (ˆ ın loc de cel mai semnificativ) – operat ¸ie care ˆ ımbun˘ at˘ at ¸e¸ ste lungimea perioadei,
dar nu ¸ si caracterul aleator. Varianta considerat˘ a a fost aceea de deplasare ciclic˘ a a bit ¸ilor
sumei rezultate. ˆIn plus, pentru ca toate elementele din Ss˘ a r˘ amˆ an˘ a interdependente,
trebuie ca cel put ¸in un rs˘ a fie nenul. Din experimente a rezultat c˘ a cele mai bune valori
pentru num˘ arul de pozit ¸ii rotite este aproape deb
2pentru tipul A, aproape deb
3¸ si2b
3
pentru tipul B¸ si aproape deb
4,b
2,3b
4pentru tipul B3.
Lungimea maxim˘ a a unei perioade la un generator Ranrot este (2k−1)·2b−1.
Nu se cunoa¸ ste ˆ ınc˘ a un algoritm de obt ¸inere de generatori Ranrot de perioad˘ a maxi-
mal˘ a; cei cunoscut ¸i au fost g˘ asit ¸i prin test˘ ari. Cel mai mare generator analizat are 232
st˘ ari.
Exemplul 12.1. Un generator Ranrot de tipul Acuj= 1, k= 4, b= 7, r= 4 are24
cicluri de perioade 1,5,9,11,14,21,129,6576,8854,16124 ,17689 ,135756 ,310417 ,392239 ,
488483 ,1126126 ,1355840 ,1965955 ,4576377 ,7402465 ,8393724 ,57549556 ,184256986 .
Important ¸a restrict ¸iilor impuse diverselor tipuri de generatori Ranrot este listat˘ a ˆ ın
Tabelul 2.
Regula A B B3W
cmmdc (j, k) =cmmdc (j, i) =cmmdc (k, i) = 1 *** *** *** ***
1< i < j < k−1 ** * * *
k−jimpar – – -***
unr/negationslash= 0 *** *** *** **
tot ¸ir/negationslash= 0 *** ** * –
rdistinct ¸i – ** ** **
r >1 *** ** * *
cmmdc (r, b) = 1 * * * *
cmmdc (b, k) = 1 * * * *
Tabelul 2
S-a notat cu:−o regul˘ a f˘ ar˘ a important ¸˘ a, ∗- important ¸˘ a minor˘ a, ∗∗- nerespectarea ei
duce la aparit ¸ia unor cicluri de perioad˘ a mic˘ a, ∗∗∗ – regul˘ a important˘ a.
S ¸i ace¸ sti generatori sunt u¸ sor de spart, deoarece starea init ¸ial˘ a se poate deduce u¸ sor
dinkvalori consecutive ale lui x. Dac˘ a ˆ ıns˘ a parametrii nu se cunosc, generatorii Ranrot
pot fi folosit ¸i cu succes ˆ ın criptografie, avˆ and o securitate sporit˘ a.
Exemplul 12.2. S˘ a consider˘ am o variant˘ a de generator Ranrot :
xn= ((xn−1/greatermuchr1) + (xn−2/greatermuchr2) +. . .+ (xn−k/greatermuchrk) +h) (mod 2b)
unde heste un num˘ ar ˆ ıntreg arbitrar din [0,2b]. Pentru fiecare rsuntbkvalori posibile.
Astfel, pentru k= 17, b= 32 num˘ arul de variante distincte este 1,6·1035
Exist˘ a un sistem de criptare ( Power Crypto ) bazat pe generatorul Ranrot de tip B3.
214 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
12.2.3 Generatorul Blum – Blum – Shub
Cel mai simplu ¸ si – se pare – cel mai eficient generator de numere pseudo – aleatoare este
Blum – Blum – Shub (numit ¸ si generator rezidual p˘ atratic ).
Definit ¸ia 12.3. Fiep, qdou˘ a numere prime. Dac˘ a
p≡3 (mod 4), q≡3 (mod 4)
atunci num˘ arul n=pqse nume¸ ste ˆ ıntreg Blum.
Algoritmul Blum – Blum – Shub (BBS pe scurt) de generare de numere pseudo-
aleatoare (prezentat ca un ( k, m) generator) este:
Fien=pqun ˆ ıntreg Blum, unde p, qsunt numere prime pe k/2 bit ¸i.
Fiex0un reziduu p˘ atratic modulo n. Se define¸ ste secvent ¸a
xi+1=x2
i(mod n )
Dac˘ a zi=xi(mod 2) pentru 1≤i≤m, atunci num˘ arul aleator generat este
f(x0) =z1z2. . . z m.
Generarea bit ¸ilor nu este de fapt recursiv˘ a, deoarece zi(1≤i≤m) se poate calcula direct
cu formula
zi=x2i(mod (p−1)(q−1))
0 (mod 2)
Exemplul 12.3. Fiep= 383 , q= 503 ; deci n= 192649 . Alegˆ and x0= 1013552(mod n )
= 20749 , generatorul BBS va produce ¸ sirul pseudo-aleator 1100111000010011101 .
Detaliind
i 0 1 2 3 4 5 6 7 8 9
xi20749 143135 177671 97048 89992 174051 80649 45663 69442 186894
zi− 1 1 0 0 1 1 1 0 0
i 10 11 12 13 14 15 16 17 18 19
xi177046 137922 123175 8630 114386 14863 133015 106065 45870 137171
zi 0 0 1 0 0 1 1 1 0 1
Securitatea acestui generator se bazeaz˘ a pe dificultatea factoriz˘ arii lui n.npoate fi
f˘ acut public; oricine poate genera o secvent ¸˘ a pseudo-aleatoare pe baza lui. Totu¸ si, dac˘ a
nnu se descompune ˆ ın factori, nimeni nu poate prezice ie¸ sirea; nici m˘ acar o afirmat ¸ie de
genul: Urm˘ atorul bit este 1cu probabilitate 51%.
Mai mult, fiind dat˘ a o parte a secvent ¸ei, nu exist˘ a nici o modalitate de a prezice bitul
anterior sau cel ulterior secvent ¸ei.
Algoritmul BBS este destul de lent, dar are unele implement˘ ari mai rapide. Astfel,
dac˘ a neste lungimea lui xi, pot fi p˘ astrat ¸i ultimii ⌊log2xi⌋bit ¸i.
ˆIn acest moment BBS este considerat cel mai bun generator de numere pseudo-
aleatoare pentru protocoale de generare ¸ si distribut ¸ie a cheii.
12.3. CIRCUITE LINIARE 215
12.3 Circuite liniare
Circuitele liniare1sunt folosite pe scar˘ a larg˘ a ˆ ın teoria codurilor detectoare ¸ si corectoare
de erori (codurile ciclice ¸ si codurile convolut ¸ionale) precum ¸ si ˆ ın unele sisteme de criptare
liniare ( AES de exemplu). Avantajul lor const˘ a ˆ ın modalitatea extrem de rapid˘ a de
calcul.
Teoria circuitelor liniare a fost stabilit˘ a ˆ ın 1965 ([50]) de Ernst Selmer, ¸ seful biroului de
criptografie al guvernului norvegian. Pentru detalii ¸ si rezultate teoretice poate fi consultat
cartea de teoria codurilor [2].
UnLFSR (Linear Feedback Shift Register ) este un circuit liniar format dintr-un regis-
tru serial ¸ si o funct ¸ie de ˆ ıntoarcere ( feedback ). Dac˘ a registrul este compus din nflip-flopuri
de date ( DF−F), vom avea un n−LFSR .
Funct ¸ie de ˆ ıntoarcerebn bn−1. . . b2 b1-
?? ??
6-
Funct ¸ia de ˆ ıntoarcere este o adunare modulo 2 ( XOR ) a anumitor bit ¸i din registru; uneori
ea este numit˘ a configurat ¸ie Fibonacci (vezi generatoarele Ranrot ).
Exemplul 12.4. S˘ a consider˘ am un 4−LFSR dat de schema:
- – – –
? 6-
?s s
+
Funct ¸ia de ˆ ıntoarcere este format˘ a dintr-un singur XOR ˆ ıntre primul ¸ si ultimul bit. S˘ a
presupunem c˘ a init ¸ial cei patru bit ¸i din registru sunt 1001. La fiecare tact se va obt ¸ine o
nou˘ a configurat ¸ie, anume:
0100,0010,0001,1000,1100,1110,1111,0111,1011,0101,1010,1101,0110,0011
dup˘ a care apare din nou 1001.
La ie¸ sire va apare secvent ¸a 1001000111101011 . Acest circuit asigur˘ a un generator de
perioad˘ a 16.
Unn−LFSR poate avea maxim 2n−1 st˘ ari distincte (starea 00 . . .0 este exclus˘ a
deoarece ea formeaz˘ a un ciclu de lungime 1, neinteresant pentru generarea de numere
pseudo-aleatoare).
Fieg(X)∈Z2[X], g(X) = 1 + g1X+. . .+gnXnpolinomul asociat unui n−LFSR ,
unde gi= 1 dac˘ a ¸ si numai dac˘ a bitul iparticip˘ a la o adunare modulo 2. Astfel, ˆ ın
Exemplul 12.4 polinomul este g(X) = 1 + X+X4.
1Termenul din englez˘ a este Shift Register .
216 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
S˘ a consider˘ am un polinom g(X)∈Z2[X], grad (g(X)) =n¸ si fie mcel mai mic num˘ ar
astfel ca g(X)|Xm+1. Atunci secvent ¸a binar˘ a generat˘ a de un n−LFSR asociat lui g(X)
are perioada m(este o m- secvent ¸˘ a).
Dac˘ a g(X) este un polinom ireductibil peste Z2, atunci m= 2n−1, iar aceasta este
valoarea maxim˘ a posibil˘ a (egaleaz˘ a num˘ arul de st˘ ari distincte posibile din n−LFSR ).
Toate detaliile teoretice care justific˘ a aceste afirmat ¸ii se g˘ asesc ˆ ın [2].
Lema 12.1. Un polinom g(X)∈Z2[X]este ireductibil dac˘ a ¸ si numai dac˘ a
1. Are un num˘ ar impar de termeni;
2. Cel put ¸in un termen este de forma X2p+1.
Demonstrat ¸ie : Exercit ¸iu.
ˆIn [46] pag. 376 este dat un tabel cu aproape 300 polinoame ireductibile.
Evident, un n−LFSR este un generator de secvent ¸e, dar proprietatea lor pseudo-
aleatoare este extrem de slab˘ a; o stare intern˘ a ofer˘ a urm˘ atorii nbit ¸i din secvent ¸a de
ie¸ sire. Chiar dac˘ a funct ¸ia de ˆ ıntoarcere nu este cunoscut˘ a, ea poate fi determinat˘ a pe
baza a 2 nbit ¸i de ie¸ sire (Algoritmul de decodificare Berlekamp – Massey , [2]). Totu¸ si, prin
combinarea mai multor circuite LFSR se pot obt ¸ine generatori acceptabili de secvent ¸e
pseudo – aleatoare.
12.4 Generatori bazat ¸i pe LFSR
12.4.1 Generatorul Geffe
Generatorul Geffe combin˘ aˆ ıntr-o form˘ a neliniar˘ a trei LFSR , conform schemei urm˘ atoare2:
LFSR 1LFSR 3LFSR 2
EMUX-
–
-6-i0
i1
LFSR 1formeaz˘ a funct ¸ia de select ¸ie a multiplexorului elementar, intr˘ arile fiind asigurate
de celelalte dou˘ a LFSR -uri. Dac˘ a a1, a2, a3sunt ie¸ sirile din cele trei LFSR -uri, ie¸ sirea
din generatorul Geffe este dat˘ a de relat ¸ia
2Pentru not ¸iunile elementare de arhitectura calculatorului se poate folosi referint ¸a [3].
12.4. GENERATORI BAZAT ¸I PE LFSR 217
b= (a1∧a2)⊕(a1∧a3)
Perioada generatorului este cel mai mic multiplu comun al perioadelor celor trei
LFSR -uri. Deci, dac˘ a cele trei polinoame care definesc circuitele au grade prime ˆ ıntre
ele, perioada generatorului Geffe este produsul celor trei perioade.
Din punct de vedere criptografic generatorul nu rezist˘ a unui atac prin corelare . Ie¸ sirea
din generator coincide cu ie¸ sirea din LFSR 2cam 75% din timp. Deci, dac˘ a definit ¸iile
polinomiale ale circuitelor sunt cunoscute se poate ghici valoarea init ¸ial˘ a din LFSR 2¸ si
genera secvent ¸a sa de ie¸ sire. Apoi se num˘ ar˘ a de cˆ ate ori ie¸ sirea din LFSR 2coincide cu
ie¸ sirea din generator. Statistic, dac˘ a nu s-a ghicit corect, cele dou˘ a secvent ¸e coincid cam
50%; dac˘ a s-a ghicit corect, ele coincid cam 75%.
Similar, ie¸ sirea generatorului coincide cu cea din LFSR 3cam 75% din timp.
Cu aceste corel˘ ari secvent ¸a poate fi ghicit˘ a complet. ˆIntr-un articol din 1991, Zeng ¸ s.a.
([56]) arat˘ a c˘ a dac˘ a polinoamele ireductibile au cˆ ate trei termeni iar cel mai mare LFSR
este de lungime n, atunci o secvent ¸˘ a de 37 nbit ¸i la ie¸ sirea din generator este suficient˘ a
pentru determinarea st˘ arilor interne din cele trei circuite LFSR .
Generatorul Geffe poate fi extins la 2k+1LFSR legat ¸i printr-un MUX k. Acest lucru
nu va m˘ ari ˆ ıns˘ a securitatea generatorului.
12.4.2 Generatori ”Stop-and-Go”
•Cel mai cunoscut este generatorul Beth – Piper (dup˘ a numele autorilor); structura
sa este urm˘ atoarea:
LFSR 3LFSR 2
LFSR 1
-6-6–
?–6
-6–6
ss
CKa1(t)a2(t)
a3(t)b(t)
Acest generator controleaz˘ a ceasurile celor trei circuite. Astfel, ceasul de intrare ˆ ın
LFSR 2este controlat de ie¸ sirea din LFSR 1; ˆ ın acest fel, LFSR 2¸ si schimb˘ a starea
la momentul tnumai dac˘ a ie¸ sirea din LFSR 1a fost 1 la momentul t−1.
Nu se cunosc studii asupra complexit˘ at ¸ii acestui generator. El totu¸ si nu a rezistat
atacurilor corelate ([56]).
•Stop-and-Go alternativ : Aceast˘ a variant˘ a folose¸ ste trei LFSR de lungimi diferite,
legate ˆ ıntr-un circuit de forma:
218 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
LFSR 3LFSR 2LFSR 1
-
?-XXe-
-6-6
–
?-6
–
?-6-
?-
-6–
sss
CK
Cˆ and ie¸ sirea din LFSR 1este 1 ea activeaz˘ a LFSR 2; ˆ ın caz contrar este activat
LFSR 3. Ie¸ sirea din generator este un XOR dintre cele dou˘ a ie¸ siri.
Acest generator are o perioad˘ a mare. Exist˘ a un atac prin corelare asupra sa (mai
precis asupra LFSR 1), dar acesta nu i-a sl˘ abit substant ¸ial securitatea.
•Generator Gollmann : Este o legare serial˘ a ”ˆ ın cascad˘ a” a mai multor circuite LFSR ,
ceasul fiec˘ arui LFSR fiind controlat de circuitul anterior.
LFSR 1
LFSR 2
LFSR 2
-6-
6-
6–
?-6–
?-6?-6-
?-6-
?-
–
s ss
ss1
CK . . .. . .
Dac˘ a la momentul t−1 ie¸ sirea din LFSR ieste 1, atunci la momentul teste activat
LFSR i+1. Ie¸ sirea din generator este ie¸ sirea din ultimul LFSR . Dac˘ a toate circuitele
liniare au aceia¸ si lungime n, complexitatea unui generator Gollmann cuk LFSR -uri
esten·(2n−1)k−1.
12.5 Alt ¸i generatori de numere pseudo-aleatoare
12.5.1 Generatorul Blum – Micali
Fiegun num˘ ar prim, pun num˘ ar prim impar ¸ si x0o valoare init ¸ial˘ a. Se genereaz˘ a
numerele
xi+1=gxi(mod p )
Ie¸ sirea din generator este 1 dac˘ a xi<p−1
2¸ si 0 altfel.
Securitatea acestui sistem se bazeaz˘ a pe problema logaritmului discret. Dac˘ a peste
suficient de mare astfel ca problema logaritmului discret s˘ a fie dificil˘ a, generatorul este
sigur.
12.5.2 Generatorul RSA
Sistemul de criptare RSA poate fi folosit ¸ si pentru generare de numere aleatoare.
Fien=pqun modul obt ¸inut prin produsul a dou˘ a numere prime mari, un num˘ ar e
astfel ca cmmdc (e, φ(n))) = 1 ¸ si x0(x0< n) o valoare init ¸ial˘ a. Se define¸ ste
12.5. ALT ¸I GENERATORI DE NUMERE PSEUDO-ALEATOARE 219
xi+1=xe
i(mod n )
Ie¸ sirea din generator este zi=xi(mod 2).
Securitatea generatorului se bazeaz˘ a pe dificultatea spargerii sistemului RSA . Dac˘ a
neste suficient de mare, sistemul este sigur.
12.5.3 Generatorul Mother-of-all
Este un generator propus de George Marsaglia .
Init ¸ial se aleg cinci numere ˆ ıntregi x0, x1, x2, x3, c(nu toate nule), stocate pe 32 bit ¸i
fiecare.
Algoritmul este:
1.n←−4;
2.while n≤MAX do
(a)S←−2111111111·xn−4+ 1492·xn−3+ 1776·xn−2+ 5115·xn−1+c;
(b)xn←−S(mod 232), c←−/floorleftbiggS
232/floorrightbigg
;
(c)n←−n+ 1;
Suma intermediar˘ a Seste stocat˘ a pe 64 bit ¸i. Valoarea MAX este stabilit˘ a ˆ ın funct ¸ie
de lungimea secvent ¸ei de numere pseudo-aleatoare generate.
Implementat ˆ ın limbaj de asamblare, algoritmul este extrem de rapid, deoarece aici
exist˘ a o instruct ¸iune de ˆ ınmult ¸ire a dou˘ a numere ˆ ıntregi pe 32 bit ¸i, cu rezultatul pe 64
bit ¸i. Scris ˆ ıntr-un limbaj de nivel ˆ ınalt, algoritmul folose¸ ste numere ˆ ın virgul˘ a mobil˘ a cu
o mantis˘ a de 63 bit ¸i.
12.5.4 Generatorul 1/P
FiePun num˘ ar prim impar ¸ si bun generator al lui Z∗
P. Secvent ¸a pseudo-aleatoare
produs˘ a de generatorul 1 /Pcu intrarea ( b, P) este ¸ sirul de cifre zecimale din reprezentarea
numeric˘ a a fract ¸iei 1 /Pˆ ın baza b.
Secvent ¸a obt ¸inut˘ a este periodic˘ a de perioad˘ a P−1 : 1/P=q1q2. . . q P−1qP. . .
Exemplul 12.5. Fieb= 10 ¸ siP= 7. Secvent ¸a pseudo-aleatoare produs˘ a de genera-
torul 1/Pcu intrarea (10,7)este142857142 . . ., deoarece 1/7 = 0 ,142857142 . . .Evident,
lungimea perioadei este P−1 = 6 .
De¸ si generatorul 1 /Pare o serie de propriet˘ at ¸i care ˆ ıl situeaz˘ a printre generatorii
performant ¸i din punct de vedere al distribut ¸iei datelor, criptografic este slab.
220 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
Astfel, notˆ and cu snum˘ arul de cifre din reprezentarea binar˘ a a lui P, se pot demonstra
urm˘ atoarele rezultate ([4]):
– Dac˘ a se ¸ stie P¸ si o secvent ¸˘ a de caractere din ¸ sir egal˘ a cu s, aceasta se poate extinde
la dreapta ¸ si la stˆ anga.
– Dac˘ a se ¸ stiu orice 2 s+ 1 elemente consecutive din ¸ sir, se poate reconstitui valoarea
luiP.
12.5.5 Generatorul ANSI X 9.17
ANSI X 9.17 este un standard FIPS folosit pentru generarea de chei pseudo-aleatoare
¸ si vectori de init ¸ializare ( V I) din modurile de operare DES . El folose¸ ste sistemul de
criptare 3 DES .
Intrare : -s: secvent ¸˘ a aleatoare secret˘ a de 64 bit ¸i;
-K: cheia de criptare pentru 3 DES ;
-m: num˘ ar ˆ ıntreg (lungimea secvent ¸ei generate).
Ie¸ sire :msecvent ¸e de cˆ ate 64 bit ¸i.
Algoritm :
1. I=eK(s);
2.fori←−1tomdo
2.1. xi←−eK(s⊕I);
2.2. s←−eK(xi⊕I).
3.output (x1, x2, . . . , x m).
12.6 Securitatea generatorilor de numere
pseudo-aleatoare
Proprietatea de aleatorism a secvent ¸elor se m˘ asoar˘ a prin teste statistice. Un generator de
secvent ¸e pseudo-aleatoare trece testele statistice dac˘ a se comport˘ a asem˘ an˘ ator sau identic
cu un generator real aleator.
Din punct de vedere criptografic, securitatea generatorului depinde de eficient ¸a compu-
tat ¸ional˘ a a algoritmului folosit, precum ¸ si de posibilitatea ca un adversar – cunoscˆ and doar
secvent ¸a pseudo-aleatoare rezultat˘ a – s˘ a determine parametrii secret ¸i ai algoritmului.
Se poate spune c˘ a din punct de vedere criptografic este mai important s˘ a se pun˘ a ˆ ın
evident ¸˘ a sl˘ abiciunile criptografice ale unei secvent ¸e pseudo-aleatoare decˆ at propriet˘ at ¸ile
sale statistice (un ¸ sir poate fi bun din punct de vedere statistic, dar s˘ a prezinte numeroase
defecte de securitate criptografic˘ a).
Astfel, apare o relat ¸ie de inter-dependent ¸˘ a ˆ ıntre existent ¸a unui test statistic eficient
(care poate fi folosit la diferent ¸ierea dintre un geneator ¸ si un generator real aleator)
¸ si existent ¸a unui posibil atac criptografic (de genul atacului prin corelare) care poate
”sparge” generatorul.
12.6. SECURITATEA GENERATORILOR DE NUMEREPSEUDO-ALEATOARE 221
Definit ¸ia 12.4. Un generator Geste ”nediferent ¸iabil (ˆ ın timp) polinomial” dac˘ a nu exist˘ a
nici un text statistic eficient care s˘ a poat˘ a decide c˘ a Geste diferit de un generator real
aleator ( GA).
Lema 12.2. Dac˘ a generatorul Geste nediferent ¸iabil polinomial, atunci nu exist˘ a nici un
algoritm de complexitate polinomial˘ a (”eficient”) care s˘ a-l poat˘ a sparge.
Demonstrat ¸ie. Presupunem prin absurd c˘ a exist˘ a un algoritm Acare poate sparge gene-
ratorul G. Atunci vom construi un test simplu pentru a diferent ¸ia Gde un generator real
aleator, fapt care contrazice ipoteza.
Fieαo secvent ¸˘ a suficient de lung˘ a obt ¸inut˘ a din G. Atunci A(α) va da parametrii
necunoscut ¸i ai lui G; pe baza lor se calculeaz˘ a urm˘ atoarea ie¸ sire ipotetic˘ a din G. Dac˘ a
acest rezultat apriori difer˘ a de valoarea real˘ a produs˘ a de G, putem trage concluzia c˘ a G
este un GA; altfel, Gnu va fi un generator real aleator.
Exemplul 12.6. Pentru generatorul 1/Pse poate construi un test statistic simplu care
determin˘ a dac˘ a – pentru un num˘ ar prim arbitrar de ncifre binare – o secvent ¸˘ a de 3n
numere a fost extras˘ a din 1/Psau a fost generat˘ a aleator. Astfel, pentru generarea lui
Pse utilizeaz˘ a 2n+ 1elemente (din cele 3n). Apoi, folosind acest Pse genereaz˘ a 3n
cifre, care se compar˘ a cu secvent ¸a dat˘ a. Dac˘ a cele dou˘ a secvent ¸e se potrivesc, atunci (cu
o probabilitate de cel put ¸in 1−1
2n−1) ¸ sirul a fost produs de generatorul 1/P.
12.6.1 Teste statistice
Exist˘ a pachete de teste utilizate ca standarde pentru evaluarea securit˘ at ¸ii generatorilor
de numere pseudo-aleatoare. Cele mai cunoscute sunt DIEHARD (15 teste elaborate
de George Marsaglia) ¸ si NIST (16 teste elaborate de Institutul de Standarde din SUA ).
Testele propuse se concentreaz˘ a pe o mare varietate de tipuri de non-aleatorism care pot
existaˆ ıntr-o secvent ¸˘ a. Astfel, cˆ ateva aspecte pe care testeleˆ ıncearc˘ a s˘ a le pun˘ aˆ ın evident ¸˘ a
sunt:
•Verific˘ a dac˘ a num˘ arul de 0 ¸ si de 1 din secvent ¸˘ a sunt aproximativ egale.
•Calculeaz˘ a ¸ si analizeaz˘ a frecvent ¸a bigramelor, trigramelor etc (¸ sabloane de lungime
fixat˘ a).
•Determin˘ a frecvent ¸a de aparit ¸ie a bitului 1 ˆ ın cadrul blocurilor de Mcaractere
consecutive ( Mfixat).
•Analizeaz˘ a num˘ arul de iterat ¸ii din secvent ¸˘ a (prin ”iterat ¸ie” se ˆ ınt ¸elege o subsecvent ¸˘ a
contigu˘ a de bit ¸i identici).
•Calculeaz˘ a rangul submatricilor create din secvent ¸a testat˘ a; scopul este de a verifica
independent ¸a liniar˘ a a sub¸ sirurilor de lungime fixat˘ a. Acest test apare atˆ at ˆ ın
pachetul DIEHARD cˆ at ¸ si ˆ ın NIST .
222 CAPITOLUL 12. GENERATORI DE NUMERE PSEUDO – ALEATOARE
•Determin˘ a num˘ arul de aparit ¸ii ale unor secvent ¸e t ¸int˘ a fixate, pentru a detecta gene-
ratorii care produc prea multe aparit ¸ii ale unor ¸ sabloane neperiodice.
•Calculeaz˘ a frecvent ¸a secvent ¸elor de o anumit˘ a lungime.
•Cerceteaz˘ a dac˘ a secvent ¸a poate fi comprimat˘ a semnificativ f˘ ar˘ a pierderi de informa-
t ¸ie; un ¸ sir care poate fi comprimat este considerat nealeator.
•Calculeaz˘ a abaterea maxim˘ a de la 0 a sumelor part ¸iale ale secvent ¸ei (ˆ ın care 0 este
ˆ ınlocuit cu−1), pentru a determina dac˘ a suma cumulativ˘ a a unui sub¸ sir este prea
mare sau prea mic˘ a ˆ ın comparat ¸ie cu cea corespunz˘ atoare a unui ¸ sir aleator (unde
aceste sume sunt apropiate de zero). Tot aici se urm˘ are¸ ste de cˆ ate ori sumele part ¸iale
au valoarea 0.
Testele au o valoare direct proport ¸ional˘ a cu lungimea na secvent ¸ei testate. ˆIn general
ordinul de m˘ arime al lui neste ˆ ın intervalul [103,107]. Pentru secvent ¸e de lungime mai
mic˘ a testele sunt neadecvate ¸ si nu dau o estimare corect˘ a de aleatorism.
12.7 Exercit ¸ii
12.1. Se d˘ a generatorul liniar congruent ¸ial
xn+1≡axn+b(mod 15)
Pentru ce valori ale perechii (a, b)∈Z15×Z15acest generator are perioad˘ a maxim˘ a ?
12.2. Folosit ¸i generatorul BBS cu parametrii p= 7, q= 11, x0= 2pentru a genera o
secvent ¸˘ a pseudo-aleatoare de lungime 30.
12.3. Folosit ¸i generatorul RSA cu parametrii p= 7, q= 11, x0= 2¸ sie= 3pentru a
genera o secvent ¸˘ a pseudo-aleatoare de lungime 30. Comparat ¸i secvent ¸a obt ¸inut˘ a cu cea
g˘ asit˘ a ˆ ın exercit ¸iul anterior.
12.4. Construit ¸i LFSR i(i= 1,2,3)de polinoame generatoare 1 +X+X3,1 +X+X4
¸ si respectiv 1 +X2+X5. Pe baza lor construit ¸i generatori Geffe ¸ si Stop-and-Go.
Plecˆ and de la secvent ¸ele init ¸iale 011,1011 respectiv 00101 , generat ¸i secvent ¸e pseudo-
aleatoare cu fiecare din ace¸ sti generatori. Ce perioade au aceste secvent ¸e ?
Anexa 1
Algoritmul lui Euclid extins
Dup˘ a cum se ¸ stie, algoritmul lui Euclid constituie o modalitate eficace de determinare a
celui mai mare divizor comun a dou˘ a numere ˆ ıntregi pozitive. El poate fi extins pentru a
determina ¸ si inversele elementelor dintr-un corp finit Zn.
S˘ a reamintim ˆ ıntˆ ai algoritmul lui Euclid (forma clasic˘ a):
Fier0, r1∈N∗.
Se efectueaz˘ a secvent ¸a de ˆ ımp˘ art ¸iri succesive:
r0=q1r1+r2 0< r 2< r 1
r1=q2r2+r3 0< r 3< r 2… (1)
rm−2=qm−1rm−1+rm 0< rm< rm−1
rm−1=qmrm.
Deoarece cmmdc (r0, r1) =cmmdc (r1, r2) =. . .=cmmdc (rm−1, rm) =rm, rezult˘ a c˘ a
cel mai mare divizor comun dintre r0¸ sir1esterm.
S˘ a definim acum ¸ sirul t0, t1, . . . , t mastfel:
t0= 0, t 1= 1
tj=tj−2−qj−1tj−1(mod r 0), j≥2 (2)
Teorema 1.1. Pentru 0≤j≤mavem rj≡tjr1(mod r 0)unde rj¸ sitjsunt definite de
(1)respectiv (2).
Demonstrat ¸ie. Se folose¸ ste o induct ¸ie dup˘ a j.
Pentru j= 0 ¸ si j= 1 afirmat ¸ia este banal˘ a.
Presupunem afirmat ¸ia adev˘ arat˘ a pentru j=i−1 ¸ sij=i−2 (i≥2) ¸ si s˘ a o ar˘ at˘ am
pentru j=i. Toate calculele se fac modulo r0.
Conform ipotezei de induct ¸ie, ri−2=ti−2r1, ri−1=ti−1t1.
Acum:
ri=ri−2−qi−1ri−1=ti−2r1−qi−1ti−1r1= (ti−2−qi−1ri−1)r1=tir1.
223
224 ANEXA 1. ALGORITMUL LUI EUCLID EXTINS
Corolarul 1.1. Dac˘ a (r0, r1) = 1 atunci tm=r−1
1(mod r 0).
Se poate da acum algoritmul extins al lui Euclid, care pentru n > 1 ¸ sib∈Z∗
nva
determina b−1mod n (dac˘ a exist˘ a).
Algoritmul lui Euclid extins :
1. n 0←−n, b 0←−b, t 0←−0, t←−1;
2. q←−/bracketleftbiggn0
b0/bracketrightbigg
, r←−n0−q·b0;
3.while r >0do
3.1. temp←−t0−q·t
3.2.iftemp≥0then temp←−temp (mod n )
elsetemp←−n−((−temp ) (mod n ))
3.3. n 0←−b0, b0←−r, t 0←−t, t←−temp ;
3.4. q←−/bracketleftbiggn0
b0/bracketrightbigg
, r←−n0−q·b0;
4.ifb0/negationslash= 1then bnu are invers˘ a mod n .
elseb−1(mod n ) =t.
Exemplul 1.1. S˘ a calcul˘ am 28−1mod 75, folosind algoritmului lui Euclid extins. Vom
avea pe rˆ and:
n0b0q r t 0t temp
75 28 2 19 0 1 73
28 19 1 9 1 73 3
19 9 2 1 73 3 67
9 1 9 0 3 67
Deci 28−1mod 75 = 67 .
Anexa 2
Teorema chinez˘ a a resturilor
Teorema 2.1. Se dau numerele p1, p2, . . . , p rprime ˆ ıntre ele ¸ si fie n=p1p2. . . p r. Atunci
sistemul de ecuat ¸ii
x≡ai(mod p i), 1≤i≤r
are solut ¸ie comun˘ a ˆ ın intervalul [0, n−1].
Demonstrat ¸ie. Pentru fiecare i, cmmdc (pi, n/p i) = 1; deci exist˘ a numerele yiastfel ˆ ıncˆ at
n
pi·yi≡1 (mod p i).
De asemenea, pentru j/negationslash=i, deoarece pj|cmmdc (n/pi), avemn
pi·yi≡0 (mod p j).
Alegem
x=r/summationdisplay
i=1n
pi·yi·ai(mod n ).
Pentru orice i, x este o solut ¸ie a ecuat ¸iei x≡ai(mod p i) deoarece ˆ ın Zpiavem
x=n
pi·yi·ai=ai.
Exemplul 2.1. Fier= 3, p1= 7, p2= 11, p3= 13 , deci n= 1001 . Notˆ and mi=n
pi,
avem m1= 143 , m 2= 91 ¸ sim3= 77 .
Folosind algoritmul lui Euclid, se obt ¸ine y1= 5, y2= 4, y3= 12 .
Solut ¸ia general˘ a este atunci
x= 715 a1+ 364 a2+ 924 a3(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 xmodulo 7,11¸ si13.
225
226 ANEXA 2. TEOREMA CHINEZ ˘A A RESTURILOR
2.1 Exercit ¸ii
2.1. Folosit ¸i algoritmul lui Euclid extins pentru a calcula inversele
17−1(mod 101), 357−1(mod 1234) , 3125−1(mod 9987)
2.2. Calculat ¸i cmmdc (57,93)¸ si aflat ¸i numerele ˆ ıntregi s, tastfel ca
57s+ 93t=cmmdc (57,93).
2.3. Fie funct ¸ia g:Z105−→Z3×Z5×Z7definit˘ a
g(x) = (x mod 3, x mod 5, x mod 7).
G˘ asit ¸i o formul˘ a pentru g−1¸ si utilizat ¸i-o pentru a calcula g−1(2,2,3).
2.4. Rezolvat ¸i sistemul de congruent ¸e
x≡12 ( mod 25),
x≡9 ( mod 26),
x≡23 ( mod 27)
2.5. Rezolvat ¸i sistemul de congruent ¸e
13x≡4 ( mod 99),
15x≡56 ( mod 101)
Bibliografie
[1] Anderson R. ¸ s.a. – Serpent: A proposal for the Advanced Encryption Standard ,
http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/serpent.pdf
[2] Atanasiu A. – Teoria codurilor corectoare de erori , Editura Univ. Bucure¸ sti, 2001;
[3] Atanasiu, A. – Arhitectura calculatorului , Editura Infodata, Cluj, 2006;
[4] Blum L., Blum M., Shub M. – Comparision of two pseudo-random number generators ,
Advanced in Cryptology, CRYPTO 82
[5] D. Bayer, S. Haber, W. Stornetta; Improving the efficiency and reliability of digital
time-stamping. Sequences II, Methods in Communication, Security and Computer
Science, Springer Verlag (1993), 329-334.
[6] Biham E., Shamir A. – Differential Cryptanalysis of DES – like Cryptosystems , Jour-
nal of Cryptology, vol. 4, 1 (1991), pp. 3-72.
[7] Biham E., Shamir A. – Differential Cryptanalysis of the Data Encryption Standard ,
Springer-Verlag, 1993.
[8] Biham E., Shamir A. – Differential Cryptanalysis of the Full 16-Round DES , Pro-
ceedings of Crypto92, LNCS 740, Springer-Verlag.
[9] Biham E. – On Matsuis Linear Cryptanalysis , Advances in Cryptology – EURO-
CRYPT 94 (LNCS 950), Springer-Verlag, pp. 341-355, 1995.
[10] Biryukov A., Shamir A., Wagner D. – Real Time Cryptanalysis of A5/1on a PC ,
Fast Software Encryption – FSE 2000, pp 118.
[11] Bruen A., Forcinito M – Cryptography, Information Theory, and Error – Correction ,
Wiley Interscience 2005.
[12] Collard Brigitte – Secret Language in Graeco-Roman antiquity (tez˘ a de doctorat)
http://bcs.fltr.ucl.ac.be/FE/ 07/CRY PT/Intro.html
227
228 BIBLIOGRAFIE
[13] Cook S., http://www.claymath.org/millennium/P vsNP/Official Pro
blem Description.pd f
[14] Coppersmith D. ¸ s.a. – MARS – a candidate cypher for AES ,
http://www.research.ibm.com/security/mars.pdf
[15] Daemen J., Rijmen V. – The Rijndael Block Cipher Proposal ,
http://csrc.nist.gov/CryptoToolkit/aes/
[16] Damgard I.B. – A design principle for hash functions , Lecture Notes in Computer
Science, 435 (1990), 516-427.
[17] Diffie D.W., Hellman M.E. – New Directions in Cryptography , IEEE Transactions on
Information Theory, IT-22, 6 (1976), pp. 644-654
[18] Diffie D.W., Hellman M.E. – Multiuser cryptographic techniques , AFIPS Conference
Proceedings, 45(1976) ,109−112
[19] L´ Ecuyer P. – Random Numbers for Simulation , Comm ACM 33, 10(1990), 742-749,
774.
[20] Enge A. – Elliptic Curves and their applications to Cryptography , Kluwer Academic
Publ, 1999
[21] El Gamal T. – A public key cryptosystem and a signature scheme based on discrete
algorithms , IEEE Transactions on Information Theory, 31 (1985), 469-472
[22] Fog A. – http://www.agner.org/random/theory ;
[23] Gibson J. – Discrete logarithm hash function that is collision free and one way . IEEE
Proceedings-E, 138 (1991), 407-410.
[24] Heyes H. M. – A Tutorial on Linear and Differential Cryptanalysis .
[25] van Heyst E., Petersen T.P. – How to make efficient fail-stop signatures , Lecture
Notes in Computer Science, 658(1993) ,366−377
[26] Junod P. – On the complexity of Matsui¸ s attack , in SAC 01: Revised Papers from the
8th Annual International Workshop on Selected Areas in Cryptography, pp 199211,
London, UK, 2001. Springer-Verlag.
[27] Kahn D. – The Codebreakers , MacMillan Publishing Co, New York, 1967
[28] Kelly T. – The myth of the skytale , Cryptologia, Iulie 1998, pp. 244 – 260.
[29] Konheim A. – Computer Security and Cryptography , Wiley Interscience, 2007.
BIBLIOGRAFIE 229
[30] Knuth D. – The art of computer Programming , vol 2 (Seminumerical Algorithms)
[31] Lenstra, H.W. – Factoring Integers with Eiipltic Curves , Annals of Mathematics, vol.
126, pp. 649-673, 1987.
[32] Matsui M, Yamagishi A. – A new method for known plaintext attack of FEAL cipher .
Advances in Cryptology – EUROCRYPT 1992.
[33] Matsui M. – Linear Cryptanalysis Method for DES Cipher , Advances in Cryptology
– EUROCRYPT 93, LNCS 765, Springer-Verlag, pp. 386-397, 1994.
[34] Matsui M. – The first experimental cryptanalysis of the Data Encryption Standard , in
Y.G. Desmedt, editor, Advances in Cryptology – Crypto 4, LNCS 839, SpringerVerlag
(1994), 1- 11.
[35] Matsui M. – New Structure of Block Ciphers with Provable Security against Differen-
tial and Linear Cryptalaysis , Fast Software Encryption, LNCS 1039, Springer-Verlag,
1996, pp. 205-218.
[36] Merkle R. C., Hellman M. – Hiding Information and Signatures in Trapdoor Knap-
sacks , IEEE Trans. IT 24(5), Sept 1978, pp. 525530.
[37] Merkle R.C. – A fast software one-way functions and DES , Lecture Notes in Com-
puter Science, 435 (1990), 428-446
[38] Menezes A., Oorschot P., Vanstome S. – Handbook of Applied Cryptography , CRC
Press 1996.
[39] Preneel B., Govaerts R., Vandewalle J. – Hash functions based on block ciphers: a
syntetic approach ; Lecture Notes in Computer Science, 773 (1994), 368-378
[40] Rivest R. ¸ s.a – TheRC6TMBlock Cipher ,
ftp://ftp.rsasecurity.com/pub/rsalabs/rc6/rc6v11.pdf
[41] Rivest R.L. – TheMD4 message digest algorithm ; Lecture Notes in Computer Sci-
ence, 537, (1991), 303-311
[42] Rivest R., Shamir A., Adleman A. – A Method for Obtaining Digital Signatures and
Public-Key Cryptosystems , Communications of the ACM, Vol. 21 (2), 1978, pages
120–126.
[43] Rosing, M – Implementing Elliptic Curve Cryptography , Manning, 1998
[44] Salmon, D. – Data Privacy and Security , Springer Professional Computing, 2003
[45] Salomaa A. – Criptografie cu chei publice , Ed. Militar˘ a, Bucure¸ sti 1994
230 BIBLIOGRAFIE
[46] Schneier B. – Applied Cryptography , John Wiley and Sons, 1995
[47] Schneier B ¸ s.a. – Twofish , http://www.counterpane.com/twofish.html
[48] Shamir, A. – A polynomial time Algorithm for breaking the basic Merkle – Hellman
cryptosystem ,
http://dsns.csie.nctu.edu.tw/research/crypto/HTML/PDF/C82/279.PDF
[49] Shoup, V. – Lower bounds for discrete logarithm and related problems , Advanced in
Cryptology, EUROCRYPT 97, Springer – Verlag LNCS 1233, pp. 313-328, 1997.
[50] Selmer E.S. – Linear Recurrence over Finite Field , Univ. of Bergen, Norway, 1966;
[51] Sibley E.H. – Random Number Generators: Good Ones are Hard to Find , Comm
ACM 31, 10(1988), 1192-1201.
[52] Smid M.E., Branstad, D.K. – Response to comments on the NIST proposed digital
signature standard , Lecture Notes in Computer Science, 740(1993) ,76−88
[53] Stinton D., Cryptography, Theory and Practice , Chapman& Hall/CRC, 2002
[54] Wiener M.J. – Cryptanalysis of short RSA secret exponents , IEEE Trans on Informa-
tion Theory, 36 (1990), 553-558
[55] Williams H.C. – Some public-key criptofunctions as intractable as factorisation , Cryp-
tologia, 9 (1985), 224-237.
[56] Zeng K.G., Yang C.H., Wei D.Y., Rao T.R.N.- Pseudorandom Bit Generators in
Stream Cipher Cryptography , IEEE Computer, 24 (1991), 8.17.
[57]Secure hash Standard ; National Bureau of Standards, FIPS Publications 180, 1993
[58]http://en.wikipedia.org/wiki/Enigma machine
[59]http://en.wikipedia.org/wiki/M −209
[60]http://en.wikipedia.org/wiki/Caesar cipher# History and usage
[61]http://psychcentral.com/psypsych/Polybius square
[62]http://www.answers.com/topic/vigen-re-cipher
[63]http://en.wikipedia.org/wiki/Rosetta stone
[64]Serpent homepage , http://www.cl.cam.ac.uk/ rja14/serpent.html
[65]P versus NP homepage , http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
BIBLIOGRAFIE 231
[66] http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
[67] http://en.wikipedia.org/wiki/Complexity classes Pand NP
232 BIBLIOGRAFIE
Cuprins
Prefat ¸˘ a 3
Capitolul 1 : Sisteme de criptare 5
1.1.Caracteristicile unui sistem de criptare 5
1.2.Criptanaliza sistemelor de criptare 10
1.3.Exercit ¸ii 15
Capitolul 2 : Sisteme simetrice de criptare 17
2.1.Cifruri de permutare 17
2.2.Cifruri de substitut ¸ie 19
2.2.1.Sisteme de criptare monoalfabetice 19
Sistemul de criptare Cezar 19
Sistemul de criptare afin 20
Sistemul de criptare Polybios 21
Sistemul cavalerilor de Malta 22
2.2.2.Criptanaliza sistemelor de criptare monoalfabetice 22
2.2.3.Sisteme de criptare polialfabetice 25
Sistemul homofonic 25
Sistemul de criptare Playfair 25
Sistemul Vigenere 28
2.3.Exercit ¸ii 33
Capitolul 3 : Sisteme mecanice de criptare 35
3.1.Sistemul skitala 35
3.2.Cilindrul Jefferson 36
3.3.Ma¸ sini de criptat 38
3.3.1.Enigma 38
3.3.2.C-36 43
3.3.Exercit ¸ii 45
Capitolul 4 : Sisteme fluide de criptare 47
4.1.Sisteme sincrone ¸ si auto-sincronizabile 47
4.2.Exemple de sisteme fluide de criptare 52
4.2.1.SEAL 52
4.2.2.RC4 55
4.2.3.Sistemul A5/1 57
4.3.Exercit ¸ii 60
Capitolul 5 : Sisteme simetrice de criptare moderne 61
BIBLIOGRAFIE 233
5.1.Sistemul de criptare DES 61
5.1.1.Ret ¸ele Feistel 61
5.1.2.Considerat ¸ii generale privind sistemul de criptare DES 62
5.1.3.Descrierea sistemului DES 63
5.1.4.Chei slabe 67
5.1.5.Controverse legate de DES 68
5.1.6.Moduri de implementare ale DES -ului 69
5.1.7.Parole UNIX 71
5.1.8.Sisteme de criptare ˆ ınrudite cu DES 72
Triplu DES 72
DES−X 73
IDEA 74
5.2.Alte sisteme de criptare ulterioare DES 75
5.2.1. MARS 76
5.2.2. RC 6 79
5.2.3.Serpent 81
5.2.4.Twofish 83
5.3.Sistemul de criptare AES 86
5.3.1.Descrierea sistemului AES 86
5.3.2.Prelucrarea cheii de criptare 89
5.4.Exercit ¸ii 91
Capitolul 6 : Atacuri asupra sistemelor de criptare bloc 93
6.1.Considerat ¸ii generale 93
6.2.Compromisul spat ¸iu – timp 93
6.3.Atacul meet – in – the – middle 95
6.4.Criptanaliza diferent ¸ial˘ a 96
6.4.1.Privire general˘ a 96
6.4.2.Analiza componentelor unui sistem de criptare 97
6.4.3.Ret ¸ea substitut ¸ie – permutare ( SPN ) 100
6.4.4.Diferent ¸iala caracteristic˘ a ˆ ıntr-un SPN 102
6.4.5.Extragerea bit ¸ilor cheii 103
6.4.6.Criptanaliza diferent ¸ial˘ a pentru DES 105
6.5.Criptanaliza liniar˘ a 109
6.5.1.Modalitatea general˘ a de atac 109
6.5.2.Lema Piling – up 110
6.5.3.Relat ¸ii de aproximare a S- boxurilor 112
6.5.4.Construirea aproxim˘ arilor liniare pentru un sistem bloc 114
6.5.5.Extragerea bit ¸ilor cheii 117
6.5.6.Criptanaliza liniar˘ a pentru DES 119
6.6.Comparat ¸ie ˆ ıntre criptanaliza diferent ¸ial˘ a ¸ si liniar˘ a 122
234 BIBLIOGRAFIE
6.7.Exercit ¸ii 122
Capitolul 7 : Sisteme de criptare cu cheie public˘ a 125
7.1.Considerat ¸ii generale 125
7.2.Funct ¸ii neinversabile 126
7.3.Trapa secret˘ a 129
7.4.Securitatea sistemelor de criptare cu cheie public˘ a 131
7.5.Comparat ¸ie ˆ ıntre criptarea simetric˘ a ¸ si cea cu cheie public˘ a 134
7.6.Exercit ¸ii 135
Capitolul 8 : Sistemul de criptare RSA 137
8.1.Descrierea sistemului RSA 137
8.2.Implementarea sistemului RSA 138
8.3.Teste de primalitate probabiliste 140
8.3.1.Algoritmul Soloway – Strassen 141
8.3.2.Algoritmul Miller – Rabin 144
8.4.Securitatea sistemului RSA 146
8.4.1.Informat ¸ii despre p¸ siq 146
8.4.2.Exponentul de decriptare 147
Factorizarea modulului ¸ stiind exponentul de decriptare 147
Atacul lui Wiener 149
8.4.3.Informat ¸ie part ¸ial˘ a despre textul clar 151
8.4.4.Algoritmi de descompunere ˆ ın factori primi 153
Metoda p−1 153
Algoritmul lui Dixon ¸ si sita p˘ atratic˘ a 155
8.4.5.Alte tipuri de atac 156
Atac bazat pe propriet˘ at ¸ile multiplicative ale RSA 156
Atac bazat pe exponent mic de criptare 157
Atacuri ciclice 158
8.5.Sisteme de criptare ˆ ınrudite cu RSA 158
8.5.1.Sistemul de criptare Rabin 158
8.6.Exercit ¸ii 161
Capitolul 9 : Sistemul de criptare El Gamal 163
9.1.Descrierea algoritmului de criptare El Gamal 163
9.2.Calculul logaritmului discret 165
9.2.1.Algoritmul Shanks 165
9.2.2.Algoritmul Pohlig – Hellman 166
9.2.3.Algoritmul Pollard – Rho 168
9.2.4.Metoda de calcul a indicelui 170
9.3.Securitatea PLD fat ¸˘ a de informat ¸ii part ¸iale 171
BIBLIOGRAFIE 235
9.4.Generalizarea sistemului de criptare El Gamal 174
9.5.Exercit ¸ii 175
Capitolul 10 : Sisteme de criptare bazate pe curbe eliptice 177
10.1.Aritmetica curbelor eliptice 178
10.2.Sisteme de criptare construite pe curbe eliptice 182
10.2.1.Sistemul Menezes – Vanstome 183
10.3.Problema logaritmului discret pe curbe eliptice 184
10.3.1.Atacul Pohlig – Hllman 184
10.3.2.Atacul BSGS (Baby-Step/Giant-Step) 185
10.3.3.Atacul Pollard – Rho 186
10.4.Factoriz˘ ari bazate pe curbe eliptice 188
10.5.Exercit ¸ii 189
Capitolul 11 : Alte sisteme de criptare cu cheie public˘ a 191
11.1.Sistemul de criptare rucasc ( Merkle – Hellman ) 191
11.1.1.Considerente generale 191
11.1.2.Criptanaliza sistemului de criptare rucsac 195
11.1.3.Vectori rucsac cu cre¸ stere mare 200
11.2.Sistemul de criptare McElliece 204
11.3.Exercit ¸ii 207
Capitolul 12 : Generatori de numere pseudo-aleatoare 209
12.1.Numere aleatoare ¸ si pseudo-aleatoare 209
12.2.Generatori simpli de numere pseudo-aleatoare 210
12.2.1.Generatori liniari congruent ¸iali 210
12.2.2.Generatori Ranrot 212
12.2.3.Generatorul Blum – Blum – Shub 214
12.3.Circuite liniare ( LFSR ) 215
12.4.Generatori bazat ¸i pe LFSR 216
12.4.1.Generatorul Geffe 216
12.4.2.Generatori ”Stop-and-Go” 217
12.5.Alt ¸i generatori de numere pseudo-aleatoare 218
12.5.1.Generatorul Blum – Micali 218
12.5.2.Generatorul RSA 218
12.5.3.Generatorul Mother-of-all 219
12.5.4.Generatorul 1 /P 219
12.5.5.Generatorul ANSI X 9.14 220
12.6.Securitatea generatorilor de numere pseudo-aleatoare 220
12.6.1.Teste statistice 221
12.7.Exercit ¸ii 222
236 BIBLIOGRAFIE
Anexa 1 : Algoritmul lui Euclid extins 223
Anexa 2 : Teorema chinez˘ a a resturilor 225
2.1 Exercit ¸ii 226
Bibliografie 227
Cuprins 232
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Securitatea Informat iei [628905] (ID: 628905)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
