resursĂ educaȚionalĂ deschisĂƒ_aurel... · descompunerea lui n e uşor de calculat i n. dacă...

86
1 RESURSĂ EDUCAȚIONALĂ DESCHISĂ Denumire: MATEMATICĂ APLICATĂ ÎN INFORMATICĂ- CRIPTARE Autor: CHIRIȚĂ AUREL Unitatea de învățămînt :Colegiul Național Ion Minulescu Slatina Disciplina: Matematică Clasa :Liceu Scopul materialului propus :documentare pentru cadrele didactice

Upload: others

Post on 02-Nov-2019

23 views

Category:

Documents


0 download

TRANSCRIPT

1

RESURSĂ EDUCAȚIONALĂ DESCHISĂ

Denumire: MATEMATICĂ APLICATĂ ÎN INFORMATICĂ- CRIPTARE

Autor: CHIRIȚĂ AUREL

Unitatea de învățămînt :Colegiul Național Ion Minulescu Slatina

Disciplina: Matematică

Clasa :Liceu

Scopul materialului propus :documentare pentru cadrele didactice

2

CHIRIŢĂ ION ALEXANDRU CHIRIŢĂ AUREL

MATEMATICĂ APLICATĂ ÎN INFORMATICĂ

CRIPTOGRAFIE-APLICAŢII

Slatina 2018

3

Cuvînt înainte.

Lucrarea de faţă se adresează eleviilor de clasa 12 profilul matematică –

informatică şi matematică-informatică-intensiv, studenţilor de la facultăţiile

matematica-informatică, automatică, electronică şi calculatoare cât şi celor care

se ocupă de sistemele de protecţie în domeniul calculatoarelor fie protecţia

informaţiei, secrete bancare, sistemelor de informaţii diplomatice şi militare.

Lucrarea se vrea a fi o continuitate a cunoştiinţelor fundamentale dobîndite în

clasa 12, la orele de algebră elementară şi informatică trecute din abstract în

mod practic ( aplicaţiile informatice).Teoria grupurilor se dovedeşte a fi un teren

fertil pentru fixarea cunoştiinţelor în domeniul informaticii . Avem nevoie şi de

clase de resturi modulo m , cât şi de proprietăţile lor. Vom folosi şi cunoştiinţe

legate de teoria numerelor prime regăsite în pZ , cu p prim. Lucrarea de faţă

conţine numeroase aplicaţii concrete rezolvate tocmai pentru a uşura întelegerea

noţiunilor. Această carte constituie un curs opţional pentru clasa a-12 profilul

informatică şi informatică-intensiv. În definitiv acesta este unul dintre scopurile

pentru care a fost concepută această carte.

Autorii.

4

Cuprins

1. Elemente de criptografie.

-Securitatea informaţiei..................................................................

-Clasificarea atacurilor...................................................................

-Securitatea reţlelor locale pentru calculatoarele individuale........

-Nivel de securitate.........................................................................

-Securitate fizică.............................................................................

-Nivelurile logice de securitate.Sisteme paralele............................

-Cifrarea..........................................................................................

2. Complemente de algebra necesare

-Elemente de teoria numerelor.Numere prime……………………

-Congruenţa de întregi....................................................................

-Clase de resturi modulo m.............................................................

-Teorema Fundamentală a aritimetici.............................................

-Teorema lui Euler..........................................................................

-Mica Teoremă a lui Fermat. Teorema Euler.Grup ciclic...............

3. Criptografia cu cheie publică

-Public sau non-public.Trapdoor....................................................

-Sistemul de criptare RSA.Numere prime.......................................

-Funcţia Totient a lui Euler………………………………………..

-Teoria numerelor.Cum lucrează RSA……………………………

-Operaţii cu numere……………………………………………….

-Atacuri prin temporizare………………………………………….

-Algoritmul lui Euclid……………………………………………..

-Atacuri prin factorizare…………………………………………...

-Teorema restului chinezesc……………………………………….

-Generarea de numere prime pentru criptarea RSA……………….

-Congruenţe.

4. Sistemul El Gamal -Clase de grupuri…………………………………………………..

-Sistemul de criptare EL Gamal.......................................................

-Sistemul de criptare RSA................................................................

-Exemplu...........................................................................................

-Algoritmul El Gamal.......................................................................

-Criptare............................................................................................

-Weierstrass Ecuation.......................................................................

5

5. Curbe eliptice

-Ecuaţii liniare....................................................................................

-Exemple.............................................................................................

-Ecuaţii Conice...................................................................................

-Teorema Legendre.............................................................................

-Ecuaţii Cubice....................................................................................

-Nume curbă eliptică............................................................................

-Evitarea singularităţilor......................................................................

6. Curbe eliptice peste pZ .

-Proprietăţi...........................................................................................

-Sisteme de criptare u curbe eliptice…………………………………

-Factorizare Grupuri Primalitate……………………………………..

-Puncte pe curbe eliptice……………………………………………..

-Exemple de curbe eliptice…………………………………………...

-Dublarea unui punct…………………………………………………

-Punctul de la infinit………………………………………………….

-Singularitate………………………………………………………….

-Aplicaţii………………………………………………………………

7. Criptosistemele cu cheie publică

-Pohlig-Hellman……………………………………………………….

-Metoda Index Calculus……………………………………………….

-Schimbarea cheii de acces Diffie-Hellman…………………………...

-Utilităţile(CCE)……………………………………………………….

-Criptare pe curbe eliptice.......................................................................

8. Logaritmul discret

-Algoritmul Shanks…………………………………………………….

-Reprezentări............................................................................................

-Logaritmi discreţi în *

11Z .......................................................................

-Atacuri la logaritmii discreţi...................................................................

-Logaritmii discreţi în *

pZ.......................................................................

-Algoritmul lui Schank.............................................................................

6

1. COMPLEMENTE DE MATEMATICĂ

Elemente de teoria numerelor

Numere prime

Dacă r, s şi t sunt numere întregi şi dacă

(1)

se spune că t se divide la r sau că r este divizorul lui t. Numărul întreg p (p>1),

care se divide numai la +1 şi la p se numeşte număr prim.

Cel mai mare divizor comun (c.m.m.d.c.) a două numere întregi este cel mai

mare număr întreg care divide ambele numere.

Două numere sunt prime între ele dacă cel mai mare divizor comun al lor este

1.

Pentru orice pereche de numere întregi s şi d, există o pereche de numere întregi,

q şi r, unde q este câtul, iar r este restul, astfel că:

(2)

Această afirmaţie este teorema împărţirii cu rest. O consecinţă a teoremei este

algoritmul lui Euclid. Cu ajutorul lui se demonstrează faptul că orice număr

întreg se poate reprezenta în mod unic sub forma unui produs de puteri de

numere prime.

Cel mai mare divizor comun a două numere întregi r şi s se poate pune sub

forma:

(3)

a, b fiind numere întregi.

7

De exemplu, cel mai mare divizor comun al numerelor 120 şi 56 poate fi găsit

astfel:

08756

8562120

(1)

Cel mai mare divizor comun al celor două numere date este d = 8.

Acest rezultat permite să se scrie 8 (c.m.m.d.c.) sub forma

Error! Reference source not found.), pag. Error! Bookmark not defined.:

562-1201

5621208

(2)

Congruenţe de întregi

Două numere întregi a şi b se numesc congruențe modulo m, dacă numărul

întreg m divide pe a - b, adică dacă:

m|a-b (3)

Numărul întreg m se numeşte modulul relaţiei de congruenţă. În loc de m|a-b se

scrie:

(7)

şi se citeşte a este congruent cu b modulo m. Dacă b = r, în care r este restul

împărţirii lui a la m, rezultă:

(8)

În acest caz r se numeşte restul lui a în raport cu modulul m, se mai spune că a

este egal cu r modulo m.

8

Pentru m = 2 orice număr întreg este congruent cu 0 sau cu 1 modulo 2. Orice

valoare ar avea întregul a, relaţiile Error! Reference source not found.), pag. Error!

Bookmark not defined.) se pot scrie sub forma:

sau (9)

Pentru m = 3 orice număr este congruent cu 0, cu 1 sau cu 2, adică indiferent

care ar fi numărul întreg a, avem:

(10)

Adică orice număr împărţit la 3 are ca rest fie 0, fie 1, fie 2.

În cazul general m, orice întreg este congruent cu unul din numerele 0, 1, 2, …,

m - 1.

Congruenţele faţă de acelaşi se adună membru cu membru:

(4)

şi

(5)

atunci

(6)

În cazul când m = 2, congruenţa a b va fi:

(14)

9

Acest rezultat se poate scrie într-o tabelă numită tabla adunării mod 2:

0 1

0 0 1

1 1 0

Tabelul 1. Tabla adunării modulo 2

Analog se poate arăta cu ce este egal a b(mod 3). Rezultă tabla adunării mod

3:

0 1 2

0 0 1 2

1 1 2 0

2 2 0 1

Tabelul 2. Tabla adunării modulo 3.

Dacă și , atunci:

(15)

adică congruenţele se înmulţesc membru cu membru.

Pentru m = 2 rezultatul se obţine astfel:

(16)

10

Rezultă tabelul următor, numit tabla înmulţirii modulo 2:

0 1

0 0 0

1 0 1

Tabelul 3. Tabla înmulţirii modulo 2.

Analog se poate arăta cu ce este egal a b( mod 3). Rezultă tabla înmulţirii

mod 3:

0 1 2

0 0 1 2

1 1 2 0

2 2 0 1

Tabelul 4. Tabla înmulţirii modulo 3.

Clase de resturi modulo m

Mulţimea numerelor întregi congruente cu i mod m, formează o clasă de

echivalenţe, numită clasă de resturi. Orice număr întreg, împărţit la m, va avea

un rest în mulţimea: { 0, 1, 2, … ,m -1 }. Deci pot exista cel mult m clase de

resturi mod m, notate:

{0}, {1}, {2}, … ,{m-1} (7)

De exemplu, pentru m = 3 se formează următoarele 3 clase de resturi:

{0} = {0, 3, 6, 9, … ,3n}

{1} = {1, 4, 7, 10, … ,3n+1} (8)

{2} = {2, 5, 8, 11, … ,3n+2}

Deci clasa {i} este mulţimea numerelor care împărţite la modul dau rest i.

Referitor la mulţimea claselor de resturi mod m, se definește suma şi produsul a

două clase de resturi astfel:

11

{a} + {b} = {c}, unde c = a + b ( mod m)

{a} {b} = {c}, unde c = a b ( mod m) (9)

Algoritmii cu cheie publică sunt folosiţi pentru schimbul cheilor simetrice.

1.Cheile publice sunt importante chei de criptare.

2.Cheile simetrice sunt chei de criptare a datelor.

Numere prime.

Un număr natural p ≥ 2 e prim dacă 1 şi p sunt singurii lui divizori pozitivi.

Teoremă.(Fundamentală a aritimetici).

Fiecare număr natural n ≥ 2 se descompune ca un produs de numere prime la

diferite puteri de numere naturale pozitive.

Numere relativ prime .

Fiind date numerele a şi b ele sunt relativ prime dacă cel mai mare divizor

comun al lor este 1. Numerele a şi b nu au factori comuni.

Teorema lui Euler.

n numără elementele din mulţimea 1,2,3,... 1n prime cu n. Fiind dată

descompunerea lui n e uşor de calculat .n Dacă n e prim atunci n = n -1.

Pentru numerele distincte prime p şi q, avem 1 1 .p q n p

Numerele modulo n , nZ .

Fie n pozitiv, avem 0,1,2,3... 1nZ n care constituie echivalentul claselor

modulo n.

Fie ,na Z inversul lui a modulo n în raport cu înmulţirea e unicul nx Z ,

astfel încât . Acest x dacă există atunci c.m.m.d.c. alui a şi n este

1. Putem defini grupul *

nZ astfel.

* / , 1n nZ a Z a n

12

1. Lui *

nZ i se adaugă operaţia de înmulţire.

2. Cardinalul lui *

nZ este n

3. Pentru n prim * 1,2,3... 1 .nZ n

Mica teoremă a lui Fermat.

Dacă p este prim şi , 1a p atunci 1 1 modpa p

Teorema lui Euler.

Dacă , 1a n atunci 1 mod .n

a n

Generalizare.

Dacă modx y n atunci mod .x ya a n

Grupuri ciclice.

Fie *

na Z ,ordinul lui a este cel mai mic număr pozitiv t astfel încât

1 mod .ta n

Dacă g are ordinul n atunci Z este ciclic şi g este generatorul elementului

fundamental în *.nZ

*

nZ e ciclic dacă 2,4,... ,...2k kn p p pentru numere prime p.

Logaritmul discret al lui b în baza g este x astfel încât :

mod .xg b n

Este un algoritm eficient pentru calcularea înregistrărilor în *

nZ dacă 1p are

factori primi.

Exp . *

5Z ,care arată mod5x y

* 1 2 3 4

1 1 2 3 4

2 2 4 1 3

3 3 1 4 2

4 4 3 2 1

13

Cardinalul lui * 5 4nZ . Inversurile lui 1 1 12 3;3 2;4 4 . Generatorii

sunt 2,3,4.

Obs: 4 4 42 1;3 4 1

În *

5Z înregistrarea lui 4 în baza 3 şi 2.

Exp: *

15Z

1 2 4 7 8 11 13 14

1 1 2 4 7 8 11 13 14

2 2 4 8 14 1 7 11 13

4 4 8 1 13 2 14 7 11

7 7 14 13 4 11 2 1 8

8 8 1 2 11 4 13 14 7

11 11 7 14 2 13 1 8 4

13 13 11 7 1 14 8 4 2

14 14 13 11 8 7 4 2 1

*

15 15 3 1 5 1 8Z

Acest grup nu este ciclic.

14

2. CRIPTOGRAFIA CU CHEIE PUBLICĂ

Public sau non-public.

Spre deosebire de criptografia cu cheie privată, criptografia cu cheie publică nu

necesită un schimb de chei. În loc de asta, există un “număr de telefon” public,

disponibil oricărui utilizator și o cheie

TRAPDOOR

Criptografia cu cheie publică (PKC – Public Key Cryptography) se bazează pe

ideea unei funcții trapdoor f: X → Y, adică o funcție biunivocă, ușor de calculat,

publică, cu inversa greu de calculat și cu inversa ușor de calculat dacă este

cunoscută trapdoor.

Astfel, deși în criptografia convențională este necesar un schimb prealabil de

chei, în criptografia cu cheie publică nu este necesar un asemenea schimb.

Ideea de PKC a fost propusă prima oară de Diffie și Hellman în 1976. Iată cele

câteva PKC-uri importante care vor fi studiate mai departe.

· RSA;

· Rabin;

· Merkle-Hellman;

· McEliece;

· ElGamal;

· Elliptic Curve;

SISTEMUL DE CRIPTARE RSA

n, p, q: Se definește n = pq cu p și q două numere prime mari.

d, e: gcd(e, (n)) = 1 și ed ≡ 1 mod (n)

15

M: M este numărul care reprezintă mesajul de criptat.

C: C este numărul care reprezintă textul cifrat (textul criptat).

Informație publică: n, e.

Informație privată: d.

NUMERE PRIME

Un întreg n > 1 este prim dacă numerele 1 și n sunt singurii lui divizori.

Euclid: Există o infinitate de numere prime.

Dacă p1 < p2 < … < pn sunt primele n numere prime, atunci orice divizor prim

al întregului 1 + p1p2 … pn trebuie să fie mai mare decât pn.

Numărul (n) de numere prime mai mici sau egale cu n este asimptotic egal cu

. Mai general,

Dirichlet-Hadamard-de la Vallé Poussin: Dacă gcd(a, b) = 1 atunci numărul

a,b(n) al numerelor prime p ≤ n de forma p = ak + b este asimptotic egal cu (1/

(a))∙(

).

Postulatul lui Bertrand: Pentru orice întreg n, există un număr prim

între n + 1 și 2n. Erdos a dat o demonstrație elementară elegantă. Ce se observă

dacă se scriu întregi consecutivi într-o spirală rulată în sens anterior ?

Numerele prime se aliniază pe diagonale. Se poate dovedi sau nu această

observatie? Se poate experimenta.

Care este raportul primelor de forma n2 + n + 17? Dar între cele de forma n

2 + n

+ 41? Probleme dificile. Nici un polinom de o singură variabilă cu coeficienții

întregi nu poate genera toate numerele prime ( în legătură cu problema a zecea a

lui Hilbert).

16

FUNCȚIA TOTIENT A LUI EULER

(n) este numărul de întregi nenegativi mai mici decât n care sunt relativ primi

cu n.

Câteva valori importante ale lui (n):

TEORIA NUMERELOR

Exemplul 1: Este ușor de generat e astfel încât gcd(e, (n)) = 1 deoarece

|{e < n: gcd(e, (n)) = 1}| = ( (n))

Exemplul 2: Fie p = 101, q = 113, n = 11413. Atunci (n) = (p – 1)(q – 1) =

11200 = 26527.

Astfel, orice întreg care nu este divizibil cu 2, 5, 7 poate fi utilizat ca fiind o

cheie publică. Se poate alege e = 3533. Folosind algoritmul lui Euclid, se poate

calcula ușor e-1

mod 11200 = 6597.

17

Exemplul 3: Fie p = 5, q = 7, n = 35. Se poate alege e = 11. Cum se calculează

1211

mod 35?

Mai multe concepte din teoria numerelor vor fi rememorate aici.

CUM LUCREAZĂ RSA?

Criptarea RSA: M → E(M) := M e ≡ C mod n.

Decriptarea RSA: C → D(C) := C d ≡ M mod n.

Când si de ce lucrează? De rememorat că (n) = (p – 1)(q – 1). Pentru ca RSA

să lucreze M < n, gcd(e, (p – 1)(q – 1)) = 1, p și q sunt prime și de ≡ 1 mod (p –

1)(q – 1).

RSA lucrează deoarece: Cd ≡ (M

e)

d ≡ M

ed .mod111 nM qp

Se admite că gcd(M, q) = gcd(M, p) = 1. Atunci conform micii teoreme a lui

Fermat:

Cd ≡ M(M

p-1)

k(q-1) ≡ M(1)

k(p-1) ≡ M mod p

Cd≡ M(M

q-1)

k(p-1) ≡ M(1)

k(p-1) ≡ M mod q

Astfel, Cd ≡ M mod n.

REPREZENTĂRI ALE NUMERELOR

Reprezentări în baza b.

ii

k

k

k

k

k

k

k

k

abb

n

ababababb

n

amabababn

mod

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

mod...mod

mod...mod

11

1

2

1

1

00

1

1

Folosind acest fapt se poate scrie un algoritm de schimbare a reprezentării

unui număr in orice bază

18

Procedure scriere_în_baza_b (n, b)

q := n

k := 0

while q ≠ 0

ak := q mod b

1:

:

kk

b

qq

end while

return bkkk aaaaa 0121 ...

OPERAȚII CU NUMERE

Adunarea a două numere de k biți se poate executa într-un timp O(k).

010110101

11010010

---------

110000111

Multiplicarea a două numere de k biți se poate executa într-un timp O(k2).

1011

110

--------

0000

1011

1011

--------

1000010

Ambii algoritmi sunt binecunoscuți. Există desigur algoritmi mai rapizi (v.

Knuth: “Art of Computer Programming”).

Exponențierea a două numere de k biți se poate face într-un timp O(k3).

Exemplu: p = 5, q = 7, n = 35.

Exponențierea a două numere de k biți se poate face într-un timp O(k3).

Exemplu: p = 5, q = 7, n = 35.

Se poate alege e = 11. Fie mesajul M = 12. Pentru a calcula 1211

mod 35:

Se scrie mai întâi (11)10 = (1011)2. Apoi se calculează

19

MMMMMMMMMM222

22

20212

2120212121202111 010120123

Algoritmul formal este următorul: se calculează reprezentarea binară

ecukeeni

i

i

i 2

0

log2

și se execută următoarea procedură:

Procedure exponentiere (x, e, n)

z := 1

for i := k – 1 downto 0 do

z := z2 mod n

if ei = 1 then z := z∙x mod n

return xe mod n

ATACUL PRIN TEMPORIZARE

Acest atac este similar celui prin care un pungaș observă cât timp îi ia cuiva

pentru a forma la disc cifrul unui seif. Genul acesta de atac se poate aplica și

altor sisteme cu criptare.

Un analist criptolog poate calcula o cheie privată prin urmărirea pas cu pas a

duratei necesare unui calculator pentru a descifra un mesaj. Exponentul este

calculat bit cu bit începând cu bitul cel mai puțin semnificativ.

Pentru un text cifrat dat este posibil a măsura cât timp este necesar pentru a

executa exponențierea modulară. Se pot așadar determina biții necunoscuți prin

exploatarea diferențelor de timp în răspuns (acest atac a fost implementat de

Koeher în 1996).

Problema este eliminată prin utilizarea unuia dintre următoarele remedii: (a)

timp de exponențiere constant, (b) întârzieri aleatoare sau (c) “orbirea” prin

multiplicarea textului cifrat cu un număr aleator înainte de exponențiere.

20

ALGORITMUL LUI EUCLID

Aflarea gcd(a, b) fără factorizarea numerelor a și b utilizează algoritmul lui

Euclid. Fără a pierde din generalitate se presupune a > b.

Lemă: Fie a = bq + r cu a, b, q și r numere întregi, r < b. Atunci gcd(a, b) =

gcd(b, r).

Demonstrație: Fiind date condițiile din enunț, dacă d este un număr care divide

atât pe a cât și pe b, atunci d|(a – bq). Deoarece (a – bq) = r atunci d|r. Așadar,

orice divizor al numerelor a și b divide și pe r. Aceasta implică gcd(a, b) =

gcd(b, r). Deoarece r = a – bq, rezultă r = a mod b. Se iterează (r0 = a, r1 = b, r2

= r, q1 = q):

12211

233221

122110

0

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

0

0

iiiiii rrcurrqr

rrcurrqr

rrcurrqr

Se definește gcd(x, 0) = x. Se observă că secvența r0 > r1 > … > rn este

descrescătoare. Deoarece există un termen rn astfel încât rn + 1 = 0 și gcd(rn, 0)

= rn, rezultă gcd(a, b) = rn.

Fie fn al n-lea număr Fibonacci. De rememorat: f0 = f1 = 1, fn = fn-1 + fn-2.

Rezolvând această ecuație cu diferențe (prin aprecierea că fn = Rn, pentru un

amumit R) se obține fn = ((1+ 5) / 2)n.

Frumusețea și media de aur: Dreptunghiul este “cel mai plăcut estetic” când

prin tăiere, portiunea rămasă este asemenea cu dreptunghiul initial! (Construirea

Parthenonului a utilizat acest principiu!).

Dreptunghiul mare are dimensiunile a×b. Dreptunghiul mic are dimensiunile a

× (a – b). Asemănarea cere ca

21

.1

1;

RR

ba

b

b

aR

Prin tratarea ultimei egalități ca o ecuație, se obține R = (1+ 5) / 2 .Prin inducție

se poate dovedi că rn-i ≥ fi. Pasul de început, pentru i = 0 este facil.

Apoi

rn-(i+1) = qn-i∙rn-i + rn+1-i ≥ rn-i + rn+1-i ≥ fi + fi-1 = fi+1

Rezultă că a = r0 ≥ fn și n = O( loga ).

Procedure gcd(a, b; întregi pozitivi)

x := a;

y := b;

while y ≠ 0 do

r := x mod y

x := y

y := r

end while

return x

Teoremă: Dacă a și b sunt întregi pozitivi, atunci există doi întregi s și t astfel

încât gcd(a, b) = sa + tb. În plus, s, t se pot calcula într-un timp logaritmic în

lungimea argumentelor.

Exemplu: 1 = gcd(50, 21).

50 mod 21 ≡ 8 8 = 50 – 2∙21

21 mod 8 ≡ 5 5 = 21 – 2∙8

8 mod 5 ≡ 3 3 = 8 – 1∙5

5 mod 3 ≡ 2 3 = 5 – 1∙3

3 mod 2 ≡ 1 1 = 3 – 1∙2

Prin inversarea pașilor se obține succesiv:

8 = 50 – 2∙21

5 = 21 – 2∙8

5 = 21 – 2∙(50 – 2∙21)

5 = 5∙21 – 2∙50

3 = 8 – 1∙5

22

3 = (50 – 2∙21) – 1∙ (5∙21 – 2∙50)

3 = – 7∙21 +3∙50

2 = 50 -1

∙3

ATACUL PRIN FACTORIZARE

Mesajul criptat poate fi decriptat dacă se cunoaște cheia de decriptare. Un

posibil atac RSA poate consta în încercarea de a factoriza pe n. Dacă ar fi posibil

atunci s-ar calcula p, q astfel încât n = pq. Cu p și q cunoscute, cu e cunoscut ca

parte a cheii publice ar fi de rezolvat ecuația matematică ex ≡ 1 mod (p – 1)(q –

1). Rezultatul ar fi exponentul d de decriptare .Problema factorizări nu este deloc

uşoară.

TEOREMA RESTULUI CHINEZESC

Să se afle un număr x care are restul 1 la împărțirea cu 3, restul 2 la împărțirea

cu 5 și restul 3 la împărțirea cu 7. Formulare echivalentă: un x care să verifice x

≡ 1 mod 3, x ≡ 2 mod 5 și x ≡ 3 mod 7. Soluția acestei probleme este x ≡ 52

mod 105. Cum a fost găsită?

Teoremă: Fie m1, m2, …, mn întregi pozitivi mutual primi doi câte doi și Mk =

m/mk. Sistemul

.

are o soluție unică modulo

Demonstraţie: Fie ./...21 kkn mmşiMmmmm Pentru fiecae valoare Mk

se stabileşte inversul yk modulo mk ( adică Mkyk = 1 mod mk ). Atunci

....222111 nNn yMayMayMax

Ceea ce încheie demonstraţia. Pentru n = pq, aplicaţia:

Este biunivocă, dar şi pentru că

23

.

nnn ZZqpnZ

Teorema restului chinezesc dă posibilitatea de a rezolva congruențele de modul

compus prin inversa(rea) aplicației de mai sus. Iată cum lucrează:

Pentru o pereche ., 21

nn ZZaa Se consideră:

și

Se pune pbaqbaa 2211 şi se observă că

qapbaqbaa

papbaqbaa

mod

mod

22211

12211

Exemplu: Să se rezolve x ≡ 5 mod 7, x ≡ 6 mod 11. Se calculează 7-1

mod 11 =

8 și 11-1

mod 7 = 2. Astfel, a = 5∙2∙11 + 6∙8∙7 = 446 ≡ 61 mod 77 este soluția

celor două congruenţe simultane.

Zn : mulțimea de întregi 0 ≤ a < n este un grup aditiv modulo n;

Zn* : mulțimea de numere întregi 0 ≤ a < n care sunt prime cu n este grup

multiplicativ modulo n.

Exemplu: Tablele de adunare pentru (Z6, +) și de multiplicare pentru ,*

6 Z :

Mica teoremă a lui Fermat: Dacă p este prim și p nu divide pe a atunci a p-1

≡ 1

24

mod p.

Demonstrație: Fie a un număr care nu se divide cu p. Fie lista tuturor

elementelor din Zp*, x1, x2, …, xp-1. Lista a x1, a x2, …, a xp-1 reproduce (eventual

într-o altă ordine) listă anterioară și:

x1∙x2∙…∙xp-1 = (a∙x1)∙(a∙x2)∙…∙(a∙xp-1) = ap-1

∙(x1∙x2…∙xp-1).

Grupul Zp*

este ciclic în sensul că există un element generator g astfel încât

Zp*= { g

0, g

1, …, g

p-1}. Faptul acesta a fost dovedit prima oară de Gauss care a

dovedit și un adevăr ceva mai general:

Pentru orice m, Zm * este ciclic dacă și numai dacă m este de forma 1, 2, 4, pk,

cu p un număr prim impar și k un întreg pozitiv. Ordinul unui element pZa *

este cel mai mic i ≤ 1 pentru care 1ia .

Teorema lui Lagrange: Dacă H este un subgrup al unui grup G, atunci |H|

divide pe |G|.

Demonstrație: Se definește pe mulțimea elementelor lui G relația de

echivalență:

a ~ b ab-1

H

Este ușor de arătat că clasele de echivalență sunt comulțimile Ha = {ha: h Î H }.

Toate aceste comulțimi au același cardinal și anume |H|. Urmează că |H| divide

pe |G|. Pentru un generator g al lui Z*p, elementul g

k are ordinul (p – 1) / gcd(p –

1, k). Mai mult, gk generează pe Z

*p dacă și numai dacă gcd (p – 1, k) = 1.

Grupul Z*p are (p – 1) generatori.

Teorema lui Euler: Dacă a este un întreg care este prim cu n, atunci:

25

Atac asupra sistemului RSA prin funcția totient

Există un algoritm “eficient” prin care, fiind dat un n ( produs de două numere

prime ), să se calculeze f(n)?

Se presupune că un asemenea algoritm n → f(n) există! Se poate dovedi că n + 1

– (n) = p + q. Acest fapt se întâmplă deoarece:

(n) = (p – 1)(q – 1) = pq – p – q + 1 = n – p – q + 1

Urmează că (n) = (p – 1)(n/p – 1) = n – n/p – p + 1 și apoi ecuația de gradul al

doilea:

p2 – (n + 1 – (n))p + n = 0

Formula binecunoscută conduce la

2

4112

nnnnnp

Așadar, existența unui algoritm “eficient” n → (n) implică existența unui

algoritm “eficient” de factorizare a lui n.

GENERAREA DE NUMERE PRIME PENTRU CRIPTAREA RSA

(euristică)

1. Se alege la întâmplare un întreg p impar lung de k biți;

2. Se divide p prin toate numerele prime mai mici sau egale cu un prim mic;

3. Dacă p trece testul de mai sus atunci se aplică testul Miller-Rabin pentru r

“baze” diferite

4. Dacă p trece toate aceste teste atunci el este prim cu o probabilitate superioară

cel putin egală lui 1 – 4-r

;

5. Dacă p nu este prim atunci se schimbă p în p + 2 și se reia pasul 1.

CONGRUENȚE

Congruențele sunt ca și egalitățile dar cu semnul “=” schimbat cu “≡”. O

congruență liniară are forma

cu x variabila necunoscută.

26

Congruența aceasta are o soluție dacă și numai dacă gcd(a, n)|b. Dacă x0 este o

soluție atunci orice altă soluție este de forma x = x0 + in/gcd(a, n) cu 0 ≤ i <

gcd(a, n). Se pot rezolva și congruențe de grad mai înalt cum ar fi:

Similar, se poate determina exact când:

are soluție. Pentru a rezolva congruențele ultime avem nevoie de “logaritmii

discreți” ai ambelor părți și se reduc la congruențe liniare.

SISTEME DE CRIPTARE BAZATE PE GRUPURI

Un grup finit este o pereche (G, ∙), cu G o mulțime finită și ∙ : G×G → G o

operație binară astfel încât:

1. operația este asociativă: " u, v, w Î G, u∙(v∙w) = (u∙v)∙w;

2. orice element are un invers unic: " u, $ v, u∙v = e, cu e un element distinct

(unitate, neutru). Elementul invers se notează u-1

.

De ce sunt interesante grupurile în cromatografie?

Pornind de la un element u al grupului se pot itera puteri întregi ale lui, adică u,u

u2, u

3 etc. care sunt elemente ale lui G. Fiind dată o “bază” u Î G și un element v

Î G care este o putere întreagă a lui u, de pildă uk, se poate calcula k?

Exemplu: În grupul *

19Z se pot forma puteri 7i mod 19.

70 ≡ 1 mod 19

71 ≡ 7 mod 19

72 ≡ 11 mod 19

73 ≡ 1 mod 19

74 ≡ 7 mod 19

75 ≡ 11 mod 19

Acum, fiind dat un element, de pildă 11, se poate calcula exponentul 5 care

satisface relația 75 ≡ 11 mod 19 ?

27

Cu cât numărul prim implicat este mai mare, cu atât este mai complicată

problema. Un alt exemplu: În grupul Z* 2579 numărul 435 este o putere a lui 2.

Se poate stabili exponentul?

Clase de grupuri.

1. Zn* mulțimea întregilor relativi primi cu n, modulo n;

2. Grupul multiplicativ din câmpul Galois GF(pn); cele mai utilizate, cu p =2;

3. Grupurile curbelor eliptice peste Zp;

4. Grupurile simetriilor (de pildă mulțimea simetriilor unui poligon regulat);

5. Grupurile de permutări;

6. Grupurile formate din cuvinte și relații.

28

3. SISTEMUL DE CRIPTARE EL GAMAL

Pentru orice grup (G, ∙) se definește sistemul de criptare următor:

Sistemul de criptare ElGamal ,,G

Public: (G, ∙), G ,

Privat: Exponentul a Z supus relației a

Criptarea: Pentru a cripta mesajul M se alege un întreg aleator k și se face

criptarea după schema: M → E(M) = ( kk M , )

Decriptarea: (y1, y2) → D(y1, y2) = 1

12

ayy

În continuare se discută securitatea acestui sistem de criptare în relație cu

dificultatea de a calcula logaritmii discreți din grupul (G, ∙). Fie a G.

Problema logaritmului discret al lui a: Fiind dat un element să se

găsească un întreg s astfel încât s . ElGamal se aplică la orice subgrup ciclic

< > al lui (G, ∙) astfel încât problema logaritmului discret este dificilă pe acest

subgrup. ElGamal se aplică uzual grupului multiplicative *

PZ , pentru un număr

p prim mare.

Exemplu de ElGamal (2579, 2, 949):

Privat: a = 765

Public: p = 2579, 2

9492579mod765

Pentru a trimite un mesaj M = 1299 se alege la întâmplare k = 853 și se

calculează:

y1 = 2853

mod 2579 = 435

y2 = 1299∙949853

mod 2579 = 2396

Textul cifrat este (435, 2396). Pentru decriptare se calculează:

2396∙(435765) +1

mod 2579 = 1299

Sistemul de criptare cu curbe eliptice este în esență El Gamal pe o clasă specială

de grupuri denumite grupuri eliptice.

Sistemul de criptare RSA.

29

O importantă pereche e produsul a două numere mari, distincte aleatoare şi

prime n p q şi e un număr cu 1 e şi , 1e , unde 1, 1 .n p q

Cheia publică este ,n e şi n se numeşte modulo n.

Cheia privată este d dacă 1 mod .e d

Mesajul de criptare şi spaţiul este:

0,1,2,3....n 1 .M C

Criptarea este exponenţială cu cheia publică e. Decriptarea este

exponenţială cu cheia privată d.

,mod .

mod .

e

n e

d

d

E m m n

D c c n

Decriptarea merge de la câţiva , 1k ed k și

1 mod ,d

e e d k km m m m m m n folosiind teorema lui Fermat.

Practic vom lucra RSA astfel:

Regula generală:

1

.

1 1 .

1 .î . , 1.

d e mod .

n p q

f n q

c na e f

f

Se calculează folosiind algoritmul lui Euclid extins. Algoritmul lui Euclid,

extins pentru aflarea inversului unui număr într-un modulo n. Vom nota paşii

algoritmului lui Euclid pornind de la pasul 0. Coeficientul obţinut la pasul i va

fi notat iq . În timp ce efectuăm fiecare pas al algoritmului ,vom calcula şi un

număr auxiliar ip .

Pentru primii doi paşi ştim deja valorile:

0

1

0.

1.

p

p

30

Pentru restul paşilor vom calcula respectiv cu :

2 1 2 modi i i ip p p q n

Continuăm calculul numărului auxiliar încă un pas după terminarea

algoritmului. Algoritmul începe prin împărţirea lui n la x, apoi continuă prin

împărţirea împărţitorului la rest. Când ultimul rest diferit de zero, se află la pasul

k ,dacă acest rest e 1, x admite un invers care va fi 2kp . Dacă restul nu e 1,atunci

x nu admite un invers.

Exemplu.

Calculăm inversul lui 15 mod 26 .

0

1

2

3

4

0 : 26 /15 1 11...... 0

1:15 /11 1 4.........p 1

2 :11/ 4 2 3..........p 0 1 1 mod 26 25

3: 4 / 3 1 1 ... 1 25 1 mod 26 24mod 26 2

4 : 3 /1 3 0............p 25 4 2 mod 26 21

..

pas rest p

pas rest

pas rest

pas rest xadmiteinvers p

pas rest

5.........................................p 2 21 1 mod 26 19mod 26 7

:15 7 105 1 4 26 mod 26 .Obs

RSA Exemplul 1.

1 1

0

1

2

3, 5, 7, ?

1 1 2 4 8

mod 7 mod8

8 / 7 1 1 0

7 /1 7 0 1

..................... 0 1 1 mod8 1 mod8 7

................ d 7

p q e d

f p q

d e f

rest p

rest p

p

31

RSA Exemplul 2.

1 1

0

1

2

3

7, 5, 11 ?

1 1 6 4 24

mod 11 mod 24

24 /11 2 2 0

11/ 2 5 1 1

2 /1 2 0 0 1 2 mod 24 22

.....................p 1 22 5 mod 24 109 mod 24 11.

................. e 11

p q d e

f p q

e d f

rest p

rest p

rest p

RSA Exemplul 3.

1

7, 11, 11

1 1 6 10 60

1 1111 mod 60 mod 60 mod 60 11 mod 60 11.

11 121

p q d

f p q

e

RSA Exemplul 4.

4

15, 4, 11 ?

mod 4 11 mod15 14641 mod15 1

................ 1

e

n e m c

c m

c

RSA Exemplul 5.

5

, 35,5 : 5, 3, ?

mod 3 mod35 243 mod35 33.

................ 33

d

n e d c m

m c n

m

RSA Exemplul 6.

4

3, 5, 4

15, 4, 11

mod 4 11 mod15

121 121 mod15 1

14641/15 976 1.

e

p q c

n p q e m

c m

c

rest

32

RSA Exemplul 7.

Cheia publică , 35,5n e

Cheia secretă 5d .

Dacă primeşte textul criptat 3c atunci textul clar de codificat de utilizator

este ?m

5mod 3 mod35

81 3 mod35

243 mod35

243 / 35 6 33

33

dm c n

m

m

rest

m

RSA Exemplul 8.

inversul lui 5 este

RSA Exemplul 9.

1 1

0

1

2

2 1 2

3, 5, 7, ?

1 1 2 4 8

mod8 7 mod8

8 : 7 1 1 0

7 :1 7 0 1

....................p 0 1 mod8 1 mod8 7

..........regulap mod .

7

i i i i

p q e d

f p q

d e

rest p

rest p

p p q n

d

33

RSA Exemplul 10.

1

11, 2, 7, ?

1 1 10

1 1 3 37 mod10 mod10 mod10 mod10 3 mod10

7 7 3 21

3

p q e d

f p q

d

d

RSA Exemplul 11.

1 1

7, 3, 5, ?

1 1 12

1 1 5mod 5 mod12 mod12 mod12 5 mod12 5

5 5 5

5

p q d e

f p q

e d f

e

RSA Exemplul 12.

5

13,e 5,m 9,c ?

c m mod 9 mod13 59049 mod13 3

3

e

n

n

c

RSA Exemplul 13.

7

, 17,3 , 7, 4, ?

mod 4 mod17 1028 mod17 8

8.

d

n e d c m

m e n

m

RSA Exemplul 14.

7

, 15,7

7, 3, ?

mod 7 mod15 823543 mod15 13.

13.

d

n e

d c m

m e n

m

34

RSA Exemplul 15.

7

15, 7, 11, ?

modn 11 mod15 2357947691 mod15 11

11.

e

n e m c

c m

c

RSA Exemplul 16. Contra exemplu.

Atenție 24 nu este prim.

RSA Exemplul 17. Contra exemplu.

Atenție 18 nu este prim.

Trebuie ca

RSA Exemplul 18.

1 1

8, 4, 2, ?

1 1 21 8

1 11mod 2 mod 21 mod 21 mod 21 11 mod 21 .

2 2 11

11.

p q e d

f p q primcu

d e f

d

35

Algoritmul EL Gamal

Algoritmul EL Gamal poate fi folosit atât pentru criptare cât și pentru

semnături digitale. Securitatea acestui criptosistem se bazează pe

intractabilitatea problemei logaritmului discret. Este un sistem de criptare

probabilist, în sensul că unui plaintext îi pot corespunde mai multe criptotexte.

Cu alte cuvinte, criptotextul este de două ori mai mare faţă de textul clar. În

continuare vom prezenta un algoritm pentru găsirea unui generator a unui grup

ciclic. Folosim algoritmul în procesul de generare al cheilor în cadrul

algortmului de criptare EL Gamal.

Problema logaritmului discret. Se dă un număr prim p şi generatorul g din *

pZ , şi un element *

pa Z . Să se afle numărul ,x cu 0 2x p astfel încât

mod .abg p

Problema Diffie-Hellman.

Se dă numărul prim p, generatorul g din *

pZ şi elementele modag p şi

modbg p să se afle mod .abg p

Caracterul privind cheia Diffie Hellman.

1....... : g mod .

1....... : mod .

x

x

MESAJUL A B p

MESAJUL B A g p

Cei doi operatori distribuie cheia fără autentificare.

A alege un x aleator 1 1.x p

B alege un y aleator 1 1.y p

B primeşte xg , calculează cheia distribuită mod .y

xK g p

A primeşte yg , calculează cheia distribuită mod .x

yK g p

36

Criptarea EL Gamal.

- Perechea importantă se bazează pe un număr mare, aleator prim şi un

generator g, din *

pZ şi un număr d.

Cheia publică este : , , mod .dp g g p

Cheia privată este: d

- Mesajul este cuprins în 0,1,2...p 1 .M Operaţia de criptare e dată de

selectarea unui număr aleator r şi calcularea perechii:

, ,

,dp g gE m e c unde mod , mod .

cde g p c m g p

- Decriptarea ia un element criptat C M M

şi calculează :

1, mod mod .d d p d

dD e c e c p undee e p

- Decriptarea merge deoarece d dre g

aşa că:

, mod .dr dr

dD e c g mg m p

Înainte de a începe exemplele să mai amintim algoritmul El Gamal cu

notaţiile mai pe scurt prezentate.

A = cheia privată a lui Alexandru.

B = cheia privată a lui Badea.

p = număr prim mare.

primitiv

cheia plublică Alexandru.

cheia publică Badea.

Criptare:

Badea obţine cheia publică a lui Alexandru calculează textul criptat c1

folosiind cheia lui privată şi c2 folosind α4 a lui Alexandru pe care-l obţine din

cheia lui publică

37

1

2

1 2

mod .

mod .

, .

B

A

c p

c m p

c c c

Trimite textul cifrat c = ( c1 , c2 ) la utilizatorul Alexandru.

Decriptare:

Pentru a determina textul m din textul cifrat c, utilizatorul Alexandru execută

următoarele:

1. Utilizează cheia sa privată pentru a calcula:

1

1 mod .p Af c p

2. Determină textul clar m astfel:

2 mod .m f c p

El Gamal

Exemplul 1.

4

1

43 12

2

1 2

1 13 1 3 9

1

2

13, 2, 3, 4, 7, ?

mod 2 mod13 16 mod13 3

mod 7 2 mod13 7 2 mod13 28672 mod13 7

, 3,7 .

.

mod 3 mod13 3 mod13 19683 mod13 1.

mod 1 7 mod13 7 mod

BA

p A

p A B m c

c p

c m p

Atunci c c c

Decriptare

f c p

m f c p

13 7.

38

El Gamal

Exemplul 2.

2

1

32 6

2

1 2

17, 3,A 2,B 3,m 6

3 mod17 9 mod17 9 mod17 9.

6 3 mod17 6 3 mod17 4374 mod17 5.

c , 9,5 .

p

c

c

c c

El Gamal

Eemplu3.

1 2

5

1

53 15

2

1 2

7, 4, 3, 5, 9... , ?

mod 7 4 mod 7 1024 mod 7 2.

mod 7 9 4 mod 7 9 4 mod 7 1073741824 mod 7 2.

, 2,2 .

BA

p A B m c c c

c

c m

c c c

Decriptare:

1 7 1 3 3

1 1

1 2

2 mod 7 2 mod 7 1

mod 7 2 2 mod 7 4.

p Af c

m f c

El Gamal

Exemplul 4.

1 2

1 13 1 2 9

1 1

1 2

13, 2, 2, 3.

.

, 5,3 ..... ?

mod 5 mod13 5 mod13 1953125 mod13 5

mod13 15 mod13 2

2.

p A

p A B

AprimeştedelaB

y y txt x

f y p

x f y

x

39

El Gamal

Exemplul 5.

1 2

1 2

1 15 1 3 9

1 1

1 2

15, 3, 3, 6, , 3,6 .

: , 3,6 .

x ?

mod 3 mod15 3 mod15 6561 mod15 6.

mod15 6 6 mod15 36 mod15 6

6.

p A

p A B y y

AprimeştedelaB y y

f y p

x f y

x

Algoritmul de cifrare El Gamal poate fi definit de un număr prim p şi un

element numit generator *

pg Z.

Pentru cheia privată *

px Z vom calcula

modxy g p, cheia publică fiind

tripletul ( y , g, p ).

Pentru a cifra un mesaj pM Zse alege aleatoriu 1pk Z

, textul cifrat fiind:

1 2, mod , mod .k ky y g p My p

Pentru a descifra mesajul 1 2,y y

se calculează :

1

2 1 mod .xy y p

El Gamal

Exemplul 6.

Se cifrează mesajul M = 7 cu ajutorul algoritmului El Gamal cu parametrii: p

= 11, g = 3, x = 4

Cheia publică este:

4y, , mod , , 3 mod11,3,11 81mod11,3,11 1,3,11 .xg p g p g p

Cheia privată este x = 4. Alegem k = 3 prim cu p-1. Obţinem mesajul cifrat.

40

3 3

1 2, mod ; mod 3 mod11,7 1 mod11 27mod11,7mod11 5,7 .k kC y y g p My p

El Gamal

Exemplul 7.

Când nu sunt îndeplinite condiţile, nu putem obţine nimic.

Se criptează mesajul M = 5 cu parametrii; p = 8, g = 2, x =5. Observăm că p

nu este prim. Mergem mai departe să vedem ce se întâmplă .

Cheia publică este dată de :

5, , mod , , 2 mod8,2,8 32mod8,2,8 8,2,8 .xy g p g p g p

Cheia privată este x =5. Alegem k = 6 prim cu p-1 adică 7. Obţinem mesajul

cifrat:

6 6

1 2

1 2

, mod , mod 2 mod8,5 8 mod8 .

, 0,0 .

k kC y y g p My p

C y y

El Gamal

Exemplul 8.

Se criptează mesajul M = 9 cu ajutorul algoritmului El Gamal cu parametrii

p =11, g = 3, x = 4. Cheia publică este:

4, , mod , , 3 mod11,3,4 81mod11,3,4 4,3,11 .xy g p g p g p

Cheia privată x = 6. Alegem k = 3 prim cu 10. Mesajul cifrat C este:

3 3

1 2, mod11, mod11 3 mod11,9 4 mod11 5,4 .k kC y y g M y

El Gamal

Exemplul 9.

Putem să decifrăm mesajul {6,8} ştiind că a fost cifrat cu algoritmul El

Gamal cu parametrii p = 17, g =14, x = 2. Cheia publică este {y, g, p}={9, 14,

17}. Cheia privată este x = 2. Menţionez că am utilizat şi M = 4. Mesajul clar se

obţine aplicând formula :

41

2 1 mod .xy y p

2 1

27 7

2

mod mod mod mod

4 9 mod17 14 mod17 mod17

8 88 6 mod17 mod17 mod17

36 2

4 mod17 4

xx k ky y p My p g p p

El Gamal

Exemplul 10.

Să se decifreze mesajul {7,9} ştiind că a fost criptat cu algoritmul El Gamal

cu parametri: p = 23, g = 3, x = 5. Calculăm direct cu formula:

11 5 1 1

2 1 mod 9 7 mod 23 9 16807 mod 23 9 17 mod 23

19 9 19 171mod 23 mod 23 mod 23 171 mod 23 10.

17 17 19 323

xy y p

Metoda lui Diophatus

Utilizând un set de puncte cunoscute, pentru a produce noi puncte (0 , 0) și (1,1)

sunt două solţii banale. Ecuaţia liniară prin care trece această dreapta este y = x.

22

6

121x

xxxy

22

2

6122

6121

xxxxx

xxxx

02

1

2

3

032

23

23

xxx

xxx

22

1,

2

1

2

162

2

3

2

1

12

1,

2

11

2

121

2

1

2

1

2

1

2

2

solutiayy

solutiayx

42

curba este simetrică

yxxxx

y

yxxxx

y

,6

121

,6

121

2

2

Acum vom considera o linie prin punctele ( 1/2, -1/2) și (1,1). Folosim formula:

2

21

212 xx

xx

yyyy

Obținem ecuaţia unei drepte și anume:

23 xy

Intersectăm din nou această dreaptă cu curba eliptică:

7024

0122

73

2

51

24725432

1249622

23612

236

121

23

223

2223

22

222

yx

xxx

xxxxx

xxxxxx

xxxx

yxxxx

y

Considerăm:

0,45mod004

4,3;1,35mod4,115mod363

0,25mod02

.4,1;1,15mod4,11

0

5mod32

2

2

32

yyx

yyx

yx

yx

nuexistayx

xxy

Punctele de pe curbele eliptice sunt :

0,4.4,3.1,3.0,2.4,1.1,1 și punctul de la ∞.

43

Folosiind câmpurile finite putem forma un grup de curbe eliptice unde avem, de

asemenea o problema DLP, care este mai greu de rezolvat. O curbă eliptică

peste un câmp K e o curbă f(x,y) = 0 non singulară cu un punct raţional. Câmpul

K e luat de obicei, de numerele complexe, reale, raţionale, extensi algebrice de

numere raţionale, numere periodice sau de un câmp finit.

Grupurile de curbe eliptice pentru criptografie sunt examinate cu următoarele

câmpuri din :

Weierstrass Equation.

Ecuaţia în două variabile F(x,y) = 0 formează o curbă în plan. Căutam metode

aritimetice sau geometrice pentru a găsi soluţii.

Ecuaţia generală a lui Weierstrass pentru curba eliptică este:

64

2

2

2

31

2 axaxaxyaxyay

Aici a, b, x aparţin unui câmp de numere raţionale complexe, corpuri ( FP ) finite

sau câmpuri Galois (GF( 2n )).

În cazul în care câmpul caracteristic nu e 2:

.4422

64

2

2

31

2

6

32

4

212

2

3

2

31 axaxaxyaa

xaxa

axa

xa

y

Dacă câmpul caracteristic nu e nici 2 nici 3:

.

3

1132

1

21

BAxxy

axx

44

4. CURBE ELIPTICE: MOTIVAȚIE

O întrebare fundamentală este dacă o ecuație cu coeficienții întregi F(x1, …, xn)

= 0 (1) are soluții întregi. F este un polinom în variabilele x1, …, xn cu

coeficienții întregi.

1. Are ecuația (1) soluții întregi?

2. Are ecuația (1) soluții raționale?

3. Numărul soluțiilor întregi este finit sau infinit?

4. Numărul soluțiilor raționale este finit sau infinit?

O ecuație în două variabile F(x, y) = 0 reprezintă o curbă în plan. Se caută

metode geometrice - aritmetice pentru a afla soluțiile.

ECUAȚII LINIARE

ax + by = c, a, b, c Z

Ecuația are o soluție întreagă dacă și numai dacă gcd(a, b)|c – cel mai mare

divizor comun al coeficienților a, b divide pe c – și dacă are o soluție, are o

infinitate de soluții. Mulțimea soluțiilor raționale este infinită.

EXEMPLE

1. 2x + 3y = 13 are o soluție întreagă și anume x = 2, y = 3. Are și soluții

raționale. Pentru fiecare valoare rațională a lui x, valoarea corespunzătoare a lui

y este (13 – 2x)/3.

2. 4x – 6y = 13 nu are soluții întregi deoarece gcd(4, 6) = 2, număr care nu-l

divide pe 13. Dar are soluții rationale.

3. Pentru n ≥ 3, ecuatia:

nnn zyx

45

nu are soluții întregi (conjunctura lui Fermat), ceea ce este echivalent cu a spune

că ecuatia xn + yn = 1 nu are soluții raționale pentru n ≥ 3.

4. Triplele pitagorice ( x, y, z ) sunt triple de întregi care satisfac ecuația :

222 zyx

de pildă (3, 4, 5). Există o echivalență cu rezolvarea ecuației:

122 yx

în numere raționale. Soluțiile sunt:

22

2

1

2.,

1

1

t

ty

t

tx

ECUAȚII CONICE ( PĂTRATICE )

Ecuațiile de acest tip au forma generală:

Qfedcbaefdxcxybyax ,,,,,,022

O transformare de variabile (rotație și translație) aduce această formă la o

ecuație familiară a unei elipse sau a unei hiperbole (c = d = e = 0). Dacă se

caută intersecția unei drepte raționale cu conică, punctele de intersecție sunt sau

nu raționale?

Rezolvarea sistemului de ecuații, a conicei și a dreptei, trece prin rezolvarea unei

ecuații pătratice care are două soluții. În plus, dacă una din soluții este rațională

la fel este și cealaltă (radicalul din formulă are ca rezultat un număr rațional).

Dacă se cunoaște un punct rațional, de pildă O, iată cum se stabilesc toate

celelalte. Pentru un punct P oarecare, se trasează linia OP și se determină

intersecția P’ cu linia rațională L. Dacă P este rațional atunci P’ este rațional și

reciproc.

Întrebare: Cum se face testarea pentru un punct rațional?

Se convertește ecuația la forma ei omogenă ( prin schimbarea x = X/Z, y = Y/Z)

46

222 cZbYaX

Teoremă (Legendre): Există un întreg m care depinde de a, b, c astfel încât

ecuația (2) să aibă o soluție întreagă netrivală dacă și numai dacă:

222 cZbYaX mod mare soluţii în Zm*.

Exemplu: Se poate aplica metoda pe cercul C: x2+y

2 = 1. Se consideră punctul

(x, y) mobil pe cerc. Se ia linia L care leagă (0, 0) de (x, y). Această linie

intersectează axa y în (0, t).

Ecuația dreptei L este L: y = t(1 + x). Deoarece punctul se află pe dreaptă și pe

cerc 1 –x2= y

2 = t

2 (1 + x

2), ceea ce produce ecuațiile parametrice familiar:

47

22

2

1

2,

1

1

t

ty

t

tx

În plus, t este rațional dacă și numai dacă x și y sunt raționale, ceea ce oferă toate

punctele raționale de pe cerc.

ECUAȚII CUBICE

Este vorba de ecuații de forma:

ax3 +by

3 +cyx

2 + dxy

2 + exy + fx + gy + h = 0,

cu coeficienții raționali. Weierstrass a arătat că prin utilizarea unor transformări

potrivite (proiective, care este posibil a schimba coeficienții) ecuația devine

echivalentă cu forma normală Weierstrass:

y2 = x

3 + ax

2 + bx + c.

Admițând că rădăcinile ei sunt distincte ea este expresia unei curbe eliptice.

Polinomul x3 + ax

2 + bx + c are fie o rădăcină reală și două complexe, fie toate

trei rădăcinile reale.

DE UNDE PROVIN NUMELE DE CURBA ELIPTICĂ?

Se consideră elipsa:

.12

2

2

2

b

y

a

x

Rezultă:

48

.2

2

222 x

a

bby

Prin diferenţiere se obţine:

.2

2' x

a

byy

Şi mai departe obținem:

.'

2

222

2

4

4

24

242

a

xbb

x

a

b

ya

xby

Lungimea elipsei este dată de formula:

dxxkx

xkdx

x

xkdxy

222

22

2

222

11

1

1

1'1

cu constanta k aleasă potrivit. Se notează g(x) = (1 – x2)(1 –x

2k

2). Se consideră

curba u2 = g(x). Prin utilizarea transformărilor:

2

2

1,

1

1

u

uuxy

xx

u2 = g(x) devine xfu 2 astfel încât

dxu

xkdxy

gxgxgxgxf

222

23

1'1

1''''24

11'''

6

11''

2

11'

EVITAREA SINGULARITĂȚILOR

Fie E(a, b) grupul abelian al punctelor raționale ale curbei eliptice:

y2 = f(x) = x

3 + ax + b.

49

S-a arătat că o curbă eliptică nu are puncte singulare dacă și numai dacă f(x) nu

are rădăcină dublă. A avea rădăcină dublă echivalează : f(x) = f’(x) = 0, adică:

x3 + ax + b = 3x

2 + a = 0. (4)

Urmează că x2 = – a/3. Dar totodată x

4 + ax

2 + bx = 0. Asta implică a

2/9 + a(–

a/3) + bx = 0 și în consecință, x = 2a2/9b. Prin substituire în (4) se obține

3(2a2/9b)

2 + a = 0 și în cele din urmă 4a

3 + 27b

2 = 0.

Teoremă: Curba y2 = x

3 + ax + b este nesingulară dacă și numai dacă 4a

3 + 27b

2

≠ 0.

50

5. CURBE ELIPTICE PESTE Zp

Aproape toate cele spuse mai sus se potrivesc și în cazul câmpurilor finite. Fiind

dat un număr prim p, o curbă eliptică peste Zp este o congruență y2 = x

3 + ax + b

mod p la care se adaugă un punct O la infinit astfel încât condiția de

“nesingularitate” 4a3 + 27b

2 ≠ 0 mod p să fie satisfăcută. Fiind date punctele P1

= (x1, y1) și P2 = (x2, y2) pe curba eliptică se definește:

1312121 ,12 yxxxxPP

cu

21

1

2

1

21

12

12

2

3PpentruP

y

ax

PpentruPxx

yy

Se consideră totodată că (x1, y1) + (x1, –y1) = O și P1 + O = O + P1 = P1. Acesta

este un grup abelian denumit Ep(a, b). Acceași idee se potrivește și câmpului

finit GF(pn).

PROPRIETĂŢI

Fie p un număr prim mai mare decât 3.

Hasse: ppbaEpp p 21,21

Schoof: Există un algoritm eficient ca O(log8p) pentru a calcula: |Ep(a, b)|.

Waterhouse: Pentru orice întreg n care:

ppnpp 2121

există a, b < p astfel încât |Ep(a, b)| = n. În plus, ordinele grupurilor de curbele

eliptice sunt uniform distribuite în acest interval.

Teoremă: |Ep(a, b)| Zn1 Z n2, pentru n1, n2 astfel încât n2|n1 și n2|(p –

1).

51

Exemplu: Se consideră curba eliptică y2 = x

3 + x + 6 peste Z11*. Pentru a

determina punctele din E, se ia fiecare punct din Z11, se calculează x3 + x + 6 și

apoi se rezolvă ecuația y2 ≡ x

3 + x + 6 mod 11.

Calculul acesta cere evaluarea de radicali modulo 11. Există o formulă explicită

pentru aceasta deoarece 11 ≡ 3 mod 4. De fapt rădăcinile pătrate ale unui rest

pătratic r sunt •r(11 + 1)/4 ≡ r 3mod 11. Pentru calcul se completează tabelul

următor:

x x3+x+6 R11 y

0 6 nu

1 8 nu

2 5 da 4,7

3 3 da 5,6

4 8 nu

5 4 da 2,9

6 8 nu

7 4 da 2,9

8 9 da 3,8

9 7 nu

10 4 da 2,9

Curba eliptică are pe ea 13 puncte (x, y), încluzând și punctul de la infinit. Fiind

de ordinul prim 13 ea însăși trebuie să fie un grup ciclic. De pildă, dacă se ia

generatorul a = (2, 7).

Puterile lui , de pildă (2, 7) + (2, 7), pot fi calculate după cum urmează. Se

evaluează mai întâi :

= (3∙22 + 1)(2∙7)

-1 mod 11 = (2∙3)

-1 mod 11 = 2∙4 mod 11 = 8.

Așadar x3 = 82 – 2 – 2 = 5 mod 11 și y3 = 8(2 – 5) – 7 = 2 mod 11. Decurge de

aici că (2, 7) + (2, 7) = (5, 2). Apoi, (2, 7) + (2, 7) + (2, 7) = 2(2, 7) + (2, 7) =

(5, 2) + (2, 7).

52

SISTEME DE CRIPTARE CU CURBE ELIPTICE

Algoritmul El Gamal se poate aplica la un subgrup ciclic 1nZ al lui Ep(a, b), dar

factorul lui de dezvoltare este 4 ( față de 2 peste Zp). În plus, spațiul textelor în

clar (plaintext space) constă din punctele din Ep(a, b) și nu există metodă

convenabilă de a genera în mod determinist puncte din Ep(a, b).

Se ia o curbă eliptică Ep care conține un subgrup ciclic H = 1nZ cu algoritm

discret intractabil. Spațiul textelor în clar este 21 nn ZZ și spațiul textelor cifrate

este **

ppp ZZE . Un program care poate fi utilizat în timp real poate fi găsit la

adresa:

http://www-fs.informatik.unituebingen.de/~reinhard/krypto/English/4.4.en.html

Sistemul Menezes – Vanstone:

Public: PE,

Privat: a astfel ca a

Criptare: Se alege aleator1nZ

(x, k) → E(x, k) = (y0, y1, y2): kccky 210 ,,

x = (x1, x2), pxcpsiyxcy modmod 222111

Decriptare: (y0, y1, y2) → D(y0, y1, y2) = (y1c1-1

mod p, y2 c2-1

mod p)

ay0 = (c1, c2).

FACTORIZARE, PRIMALITATE, GRUPURI

Se dă un întreg n pentru a fi testat dacă este prim şi un grup knZG

pentru un anumit k. Pentru Gx se defineşteG

x ca fiind ordinul lui x în

G.

Premisă: Există o mulţime de întregi SG, astfel încât GGSxGx n este

prim.

Testul de primalitate: ?GGSxGx

Se poate testa |x|G = m astfel:

53

|x|G= m xm = e & ( prim p | m)(

ex p

m

).

Astfel, testarea primalității lui n se reduce la factorizarea lui GSm . De obicei,

factorii primi pentru orice GSm sunt cunoscuti. Grupurile de curbe eliptice En

(a, b) sunt utilizate pentru testarea primalității și pentru factorizarea lui n.

Puncte pe curbele eliptice(EC)

Curba eliptică peste câmpul L este:

baxxyaxyayLLyxLE 3

31

2,,

Punctul stă în vîrful axei yy’ și orice linie trece prin el din moment ce e raţional.

Este şi în vîrful şi la paralele la axa yy’.

Grupul Abelian

Se dau două puncte (P,Q) în E(FP). Acolo este un al treilea punct, desemnat de

P+Q în E(Fp) și următoarele relaţii pentru P,Q,R în E(Fp).

1.P+Q=Q+R

2.(P+Q)+R=P+(Q+R)

3.P+0=0+P=P

4.Există –P ai –P+P=P+(-P)=0.

54

55

Se dovedește că este vorba de un grup abelian și că operația este independentă

de alegerea punctului O. Acum se poate răspunde la întrebarea inițială.

Teoremă (Mordel): Grupul punctelor raționale ale unei curbe eliptice

nesingulare este generat infinit. În practică, punctul O se determină utilizând

puțină geometrie proiectivă. Se presupune că O este un punct la infinit care este

un punct rațional pentru cubică. Acum se pot dezvolta formule explicite pentru

operațiile în grup.

Exemple de curbe eliptice.

56

Fig. y2=x

3-x+1.

57

Se consideră curba eliptică y2 = x

3 - x + 1. Dacă P și Q sunt pe E, putem defini

R = P + Q.

332211 ,,;, yxQPRyxQyxP .

Fie P diferit de Q . Pentru a găsi intersecţia cu E rezultă:

1111

1

12

121

11

32 .;

yxxmyxxmyy

xxxx

yyyy

xxmyyBAXxy

12

12121321

2

3

23

32

11

;;

............0

.

xx

yyundemyxxmyxxmxx

mxx

BAxxyxxm

Calculele în detaliu arată cam aşa:

.02)22(

0222

222

222

2

11

2

1

2

1

2

11

223

111

2

1

2

1

2

1

223

1111

2

1

2

1

2

1

223

111

2

1

2

11

223

3

11

2

1

2

1

232

11

xmyyxmBmymxAxxmx

xmyxmyyxmmxxxmBAxx

xmyxmyyxmmxxxmBAxx

xmyxmyyxxxxmBAxx

BAxxxxmyyxxmBAxxyxxm

1313

21

2

3

yxxmy

xxmx

58

Dublarea unui punct

Fie P = Q , y2 = x

3 + Ax + B

1313

1

2

21

2

21

2

3

223

211

1

2

12

2

2

...............0

;0

2

3

2

3;32

yxxmy

xmxxmxxmx

xmx

PavemPDacăa

y

Ax

y

Ax

dx

dymAx

dx

dyy

Ce se întâmplă când P2 este infinit?

111 POPP

Punctul de la infinit.

Ca rezultat al cazului de mai sus O este numit identitatea adăugată la grupul de

curbe eliptice. P + (-P) = O. Prin urmare, toate curbele eliptice au o identitate

adăugată O.

Coordonate Proiective.

Spaţiul proiectiv tridimensional Pk2

peste K este dat de clasele de echivalenţa

triple cu x, z, y în K şi cel puţin una dintre x, z, y nenule. Două triplele sunt

numite echivalente dacă există un element a nenul în K astfel încât (x, y, z) =

(ax, ay, az). Clasa de echivalenţă depinde de raţii şi prin urmare, depinde de

(x,y,z). Dacă:

1,,,,,0

z

y

z

xzyxz

Dacă z = 0, obţinem un punct la infinit și un plan bidimensional afin peste K:

KKyxAk ,2

Prin urmare folosim:

221;;, KK PAYXyx

59

Sunt avantaje cu folosirea coordonatelor proiective de la implementarea

punctelor de vedere.

Singularitatea

De la curba eliptică y2

= f(x) definim: F( x , y ) = y2

- f(x). Singularitatea unei

curbe eliptice este un punct (x0,y0) care satisface:

0

'

0

0

'

0

0000

02

0,,

xfxf

xfy

yxy

Fyx

x

F

f are rădăcină dublă.

Este obişnuit să spui că o curbă (Ec) eliptică nu are puncte singulare. Dacă

caracteristica câmpului nu este 3.

BAXxxfy 32

Condiţia pentru singularitate este:

0274 23 BA

În general, curbele eliptice n-au singularităţi.

0

'

0

0

'

0

0000

02

0,,

xfxf

xfy

yxy

Fyx

x

F

f are radăcină dublă. Pentru rădăcini duble avem:

60

.027409

2

981

80

9

2

9

2

9

229092

093

039

033

0

00

0)(

3

03

03

3

3

233

3

623

2

222

22

22

2

222

243

3

00

3

2

0

23

0

23

2

23

32

BABB

A

B

AB

B

AA

B

A

B

AxABxBxA

BxAA

BxAA

BxA

AA

BxAxx

BxAxxBAxx

BAxxxfBAxxxf

Ax

ABAxxx

AxBAxx

Ax

AxBAXx

BAXxy

Aplicaţii.

Fie curba eliptică :

433

03313

3313

3313

1,313

0

2

0

3

0

0

2

0

3

0

3

00

3

0

2

00

'

0

3

00

32

xxx

xxx

xxx

xxfxxxf

BcuAxxxfy

Verificăm condiţia din teoria de mai sus expusă:

0273127342742333 BA

Deci avem puncte critice şi vrem să vedem câte sunt şi cum le aflăm. Folosim

şirul lui Rolle.

61

;11,31

1,101133313 21

2'3

ff

xxxxxxfxxxf

Deci avem trei rădăcini în intervalele :

,1,1,1,1, 321 xxx

Dacă am lucra prin metoda grafică am obţine o aproximare şi mai bună:

12

57,

2

1

4,

2

6

573,

6

573

6

4893

32

434930433

433

212,10

2

0

0

2

0

3

0

Vaa

bV

xxxxx

xxx

Există trei puncte :

,1;1,

6

573;1;

6

573tvu

Alte exemple:

32

22 1

xy

xxy

62

Curbe Eliptice în caracteristica 2.

Ecuaţia generalizată este:

642

3

31

2 axaxaxyaxyay

Dacă a1 nu este zero se reduce la forma asta:

BAxxxyy 232

Dacă a1 este zero forma redusă e asta:

CBxxAyy 32

Forma nu poate fi acesta:

BAxxy 32 .

63

6. CRIPTOSISTEME CU CHEIE PUBLICĂ

Criptografia curbei eliptice( CCE)

Dacă A poate genera mesajul criptat, doar B poate decripta mesajul. CCE e un

criptosistem cu cheie publică cu RSA sau EL GAMAL.

Fiecare utilizator are o cheie publică şi una privată. Cea publică este folosită

pentru criptare iar ceea privată este folosită pentru decriptare. Curbele eliptice

sunt folosite ca o extensie pentru criptare. Ceea mai importantă parte a unui

criptosistem o reprezintă grupul eliptic. Toate criptosistemele cu cheie publică

au la bază operaţii matematice. Procedurile generice pentru CCE sunt:

1. Ambele părţi sunt de acord cu unele elemente cunoscute de public;

2. Ecuaţia curbei eliptice;

3. Valorile a şi b;

4. Numărul prim p;

5. Grupul eliptic calculat din ecuaţia curbei eliptice (CE);

6. Punctul de bază B, luat din grupul eliptic;

7. Similar cu generatorul folosit în Criptosistem;

8. Fiecare utilizator generează cheia publică sau secretă;

9. Cheia privată x este un număr întreg, absolut din intervalul [1,p-1];

10. Cheia publică este un produs al cheii private şi al punctului de bază Q = x*B.

Exemplu de criptare pe curbele ( CCE ) analog la ElGamal.

Alice vrea să-i trimită lui Bob un mesaj criptat.

1. Ambii sunt de acord cu punctul de bază B.

2. Ambii creează cheile.

Alice: Cheia privată a. Cheia publică PA = a*B.

64

3. Bob : Cheia privată b. Cheia public PB = b*B. Alice ia mesajul și îl codează.

Exemple CCE. Analog la El Gamal.

Alice alege alt număr real aleatoriu h din [1,p-1]. Textul cifrat e o pereche de

puncte PC = [ (kB) , (PM+kPB) ].

Pentru a -l decripta, Bob calculează produsul primului din Pk şi cheia privată b

b*( kB ). Bob ia primul produs şi-l scade din al doilea punct din PC.

MMBM PkBbbBkPkBbkPP

Bob decodează Pm pentru a vedea mesajul M.

Exemplu. Comparaţie cu El Gamal.

Textul criptat e o pereche de puncta:

PC = [ (KB) , (PM+KPB) ].

Textul cifrat în El Gamal e o pereche:

C = ( gk mod p, m PB

k mod p ).

Bob ia produsul şi îl scade din al doilea punct:

( PM + k PB ) - [ b ( kB )] = PM + k (bB) – b (kB) ] = PM.

În El Gamal, Bob ia coeficientul valorii o dată şi a primei valori crescute:

M = m PBk / (g

k)

b = mg

k*b / g

k*b = m.

POHLIG-HELLMAN ,,p

Fie ke

k

eepppp ...1 21

21 . Dacă pa mod atunci loga este unic determinat

modulo .1p Se presupune q prim în condițiile p ≡ 1 mod qc şi ¬(p ≡ 1 mod

qc+1

). Se exprimă astfel:

65

ici

i

i qx

1

1

Cu 10 qai . Se scrie a = x + sqc. Se poate face următoarea

Afirmaţie:

pq

p

q

p

mod

11 0

Demonstraţie:

pq

psqx

q

pa

q

p c

mod

111

Este, prin urmare suficent a arăta că:

pq

p

q

psqx c

mod

110

ceea ce este echivalent cu a demonstra congruența exponențiilor modulo (p-1)

1mod11

0

pq

p

q

psqx c

adică:

1mod0

1111 1

1

111

1

1

0

00

1

p

qsqpqsqq

pqsq

q

psqx

q

p c

i

i

i

cci

i

i

i

cci

i

i

i

c

Se calculează acum .

1

q

p

Dacă pq

p

mod1

1

atunci .00 Dacă nu, atunci se

calculează:

,...mod,mod,mod

13

12

1

ppp q

p

q

p

q

p

până când .mod

11

pq

pi

q

p

Urmează

Dacă c = 1, calculul s-a încheiat.

Altminteri, c > 1. Se defineşte 0

1

şi fie .modlog 11

cqx Urmează că

.mod2

0

2

11

1

1

1

pşiqx q

p

q

ppi

i

i

ii

Se poate calcula 1 ca mai sus. Dacă c = 2

calculul s-a încheiat, altminteri c > 2 şi se continuă ca mai sus.

66

1. Se calculează pq

pi

i mod

1

pentru

2. Se pune j = 0 şi j

While j < c -1 do

Calculează pjq

p

mod1

1

Caută i astfel încât i

1

mod1

jj

p

i

jjq

jj

j

Exemplu pentru Pohlig-Hellman (29, 2, 18)

p – 1 = 28 = 22∙7, 18,2 . Se urmărește evaluarea logaritmului discret

18log2 . Exponentul a pentru care 2a= 18 mod 29 este necunoscut. Se calculează

separat a mod 22 și a mod 7.

q = 2, c = 2:

2

28

= 214

= 28 mod 29

2

28

= 1814

= 28 mod 29

așadar 10

q = 22, c =2:

31

29mod289

29mod9

1

74

28

1

1

01

sia

q = 7, c = 1:

29mod2518

29mod162

144

28

44

28

așadar 440 sia .

Se utilizează teorema restului chinezesc pentru a rezolva sistemul x ≡ 3 mod 4, x ≡ 4 mod 7 pentru a obține x = 11. Așadar, 1118log2 .

67

METODA INDEX CALCULUS

Metoda uzează de baza de factori: B = {p1, p2, …, pB}.

Pasul 1: Se calculează logaritmii a B numere prime din baza B, adică:

.log,...log,log 21 Bppp

Explicații la pasul 1: Se iau C = B + 10 congruenţe pppp jBjjj

B

xmod...21

21

, Cj , ceea ce este totuna cu .1modlog...log 1,1 pppx BBjjj Aceasta

conduce la un sistem liniar de C congruenţe în necunoscutele .,log Cipi

Pasul 2: Se calculează log folosind cunoștințele de la pasul 1.

Explicatii la pasul 2: Acest calcul se face cu un algoritm Las Vegas. Se admite

succesul în pasul 1 și cunoașterea valorilor .log,...log 1 Bpp . Se alege la

întâmplare 1 ≤ s ≤ p – 2.

Se calculează ps mod în baza de factori dată ,,...,, 321 BppppB de pildă

.mod...21

21 pppp Bc

B

ccs Urmează că ,log...log 11 BB

s pcpcs

Analizele arată că precalculul are un timp de execuție asimptotic, adică:

ppO

eOlnlnln11

și timpul de aflare a logaritmului discret este:

ppO

eOlnlnln1

2

1

EXEMPLU

p = 10007, 5 , 9451 , B = {2, 3, 5, 7}. Mai întâi se calculează

.7log,5log,3log,2log 5555 Se încearcă factorizarea lui x

pentru x = 4063, 5136, 9865:

54063

≡ 42 = 2∙3 7 mod 10007

55136

≡ 54 = 2∙33 mod 10007

59865

≡ 189 = 33∙7 mod 10007

68

care dau congruenţele liniare:

10006mod98657log3log3

10006mod51363log32log

10006mod40637log3log2log

55

55

555

cu soluţia unică .13017log,61903log,65782log 555 Pentru a afla 9451log5 se

alege un exponent aleator s = 7736 și se calculează 9451∙5776 ≡ 8400 mod

10007. Peste B, acesta se factorizează ca .7532 1214 Se dezvoltă:

60571301126190667847log5log23log2log477369451log 55555

Schimbarea cheii de acces Diffie-Hellman(DH)

(CCE) Diffie-Hellman

Public: (CE) şi punctul B = (x,y) pe curbă;

Secret: Alice a = (x,y) şi Bob b = (x,y);

Alice calculează: a ( b(x,y) );

Bob calculează b ( a(x,y) );

69

Acestea sunt la fel de când ab = ba.

Exemple-EC.

Diffie-Hellman Exchange

Alice şi Bob agrează setul de Key pe calculator.

Alice Private: Key = a;

Public: Key = PA = a*B.

Bob: Private: Key = b;

Public: Key = PB =b*B.

Acestea sunt la fel de când ab = ba.

De ce folosim (CCE)?.

Cum analizăm criptosistemele?.

Cât de dificilă e problema bazată…..___de tradus ?

1. RSA: factorizarea numere întregi;

2. DH: Logaritmii discreţi;

3. ECC: Problema logaritmului discretşi al CE;

Cum măsurăm dificultatea?

Examinăm algoritmii folosiţi pentru a rezolva aceste probleme.

Securitatea CCE.

Pentru a proteja AES cheia ar trebui:::::de::tradus

Mărimea RSA dată 3072 biţi.

Cum întărim RSA –ul?

Mărim lungimea cheii.

Inutil?.

70

Utilităţile( CCE).

Multe aparate, calculatoare sunt mici şi au spaţiile de stocare mic şi putere de

calcul mică. Unde aplicăm CCE? Sistemul de comunicaţie fără....traducere???

Carduri de memorie bancare. Selectare.....????

Selectoare nule???? De tradus.

Orice aplicaţie unde securitatea e necesară dar nu prea este spaţiu de stocare ???

De tradus.

Beneficii ale (CCE).

Aceleaşi beneficii ca la alte criptosisteme: confidenţialitate, integritate.

Mărimi mai mici ale cheilor. Criptare, decriptare cu viteză mare.

Salvarea spaţiului de stocare şi a lungimii de bandă.

Rezumatul (CCE).

1. Problemă grea analog la logaritmul discret.

Q = kP unde Q, P aparţine unei prime curbe;

E dat k, p atunci este uşor de calculat Q;

E dat O,P atunci este greu de calculat k;

Cunoscut ca problemea logaritmului discret , k trebuie să fie suficent de mare.

2. Securitatea CCE se bazează pe ecuaţia logaritmului discret şi a CE adică

criptarea curbelor eliptice. În comparaţie cu factorizarea poate utiliza chei

cu dimensiuni mai mici.

Implementarea ( CCE) în câmpuri binare.

1. Introducerea în CE;

2. Criptarea curbelor eliptice CCE;

71

3. Implementarea CCE în câmpuri binare.

Sub- capitol

1. Multiplicarea scalară LSB;

2. Tehnica MONTGOMERZ de multiplicare scalară;

3. Multiplicarea scalară rapidă fără prelucrare;

4. Transformarea proiectivă pentru a reduce.....???traducere;

5. Coordonate amestecate;

6. Tehnici de paralelizare;

7. Tehnici de înjumătăţire şi adăugare pentru multiplicarea scalară.

Criptarea pe curbe eliptice.

Algoritmul El Gamal poate fi extins pe orice grup finit G în care problema

logaritmului discret este dificilă, în particular şi în grupul punctelor de pe o

curbă eliptică. Astfel fie G

pentru care problema logaritmului în subgrupul H

ciclic

/ 0iH i

este dificilă. Menţionez că elementele grupului sunt perechi de puncte din plan

de pe curba eliptică. Folosind cheia privată x din Z, se construieşte:

Pentru a cifra un mesaj M se foloseşte aleatoriu Hk G

şi se aplică regula de

cifrare:

1 2,k , , .k kE M M y y

Mesajul m se recuperează din mesajul cifrat (y1 ,y2). Mesajul m se recuperează

din mesajul cifrat (y1, y2) după regula: 1

2 1 .xy y

.

Într-adevăr avem:

1

1 1

2 1 .x

x k k kx kxy y M M M

72

Exemplul 1.

Să se cifreze mesajul (10,9) utilizând curba eliptică (publică):

E: y2 = x

3+ x + 6 pe Z11

cu ajutorul Algoritmului El Gamal. Calculăm punctele curbei eliptice pentru a

vedea cine sunt elementele grupului G. Calculele se fac în Z11.

2 3 2

11.

2 3 2

11

2 3 2

1 2

2 3 2

1

0 0 0 6 mod11 6mod11 6

1 1 1 6mod11 8mod11 8 .

2 2 2 6mod11 5mod11 5 . 4, 7 2,4 ; 2,7 .

3 3 3 6mod11 3mod11 3 . 5

x y ecuaţiay carenuaresoluţiiînZ

x y y nuavemsoluţiiînZ

x y y sol y y

x y y sol y

2

2 3 2

11

2 3 2

1 2

, 6 3,5 ; 3,6 .

4 y 4 4 6 mod11 8mod11 8

5 5 5 6mod11 4mod11 4 . 2, 9 5,2 , 5,9 .

y

x y nuavemsoluţiiînZ

x y y sol y y

Deci punctele de pe curbă sunt:

{(2,7);(2,4);(3,5);(3,6);(5,2);(5,9);(7,2);(7,9);(8,3);(8,8);(10,2);(10,9)}.

Deci cardinalul grupului este 13 număr prim. Grupul E este grup ciclic

(numărul de elemente este 13). Generatorul grupului este punctual (2,7)

element public.

Cheia privată de descifrare, notată prin d, este o valoare între 1 şi p-1 adică 12.

Cheia publică, notată prin , se obţine din şi exponentul secret d prin

formula:

d .

Operaţia de cifrare a mesajului M cu ajutorul cheii (secrete) k este:

, , .E M k k M k

Operaţia de descifrare pentru a obţine M este :

1 2 2 1, .kD y y y dy

73

Fie d = 3. Atunci avem:

3 2,7 2,7 2,7 2,7 .d

Acum folosim proprietatea de adunare a punctelor pe curbe eliptice cu

formulele date de:

,

cu

,

unde a este coeficientul lui x în ecuația curbei

1 1 2 2

2

1

1

2

3 1 2

2

3 1 3 1

3 2,7 2,7 2,7 2,7 2 ,7 , 2, 7.

3 3 4 1 2 2 4 8(mod11) 8.

2 2 7 3 3 4 12

(mod11) 64 2 2 mod11 60 mod11 5.

mod11 8 2 5 7 mod11 5,2 .

2,7 2,7 5,7 .

unde x y x y

x a

y

x x x

y x x y

DeciP Q P P

Acum adunăm (P + P) + P = (5,2)+(2,7). Schimbăm formula de calcul de

data asta deoarece în rolul lui P este (5,2) şi în rolul lui Q este (2,7).

Atunci avem:

În final obținem .

Considerăm valoarea aleatoare k = 4, criptăm cu ajutorul formulei:

74

2 2

11 1 2 2

1

2

3 1 2

, 10,9 ;4 4 2,7 ; 10,9 4 8,3

4 2,7 2,7 2,7 2,7 2,7 5,3 5,3 10,2 .AiciaplicămformulaîncazulP Q

2,7 2,7

.......

3 3 2 1 13 2 2 4 8......x 8 mod11 .

2 2 7 14 3 3 4 1

mod11

E M k M

x ax y y

y

x x x

2

2

3 1 3 1

1 1 2 2

2

1

1

8 2 2 mod11 60 mod11 5.

mod11 64 2 4 7 mod11 76 mod11 10.

4 8,3 8,3 8,3 8,3 8,3 7,5 7,5 2,4 .

8; 3; 8; 3 :

3 3 64 1 193mod11 1. :

2 2 3 6

:

y x x y

x y x y

x aAplicămformulacunotaţiileconsacrate

y

Atunci

2

3 1 2

3 1 3 1 3 3

1 1 2

;

mod11 1 8 8 mod11 7 mod11 7.

mod11 6 mod11 5 mod11 5. , 7,5 .

10,2 ; 10,9 2,4 Re ;

10,9 2,4 : x 2, 9; 2,

cîndP QşiatuncicîndP Q

x x x

y x x y x y

petămformulaîncădedouăori

Odatăpentru cazulP Q y x

2

2 1

2 1

2

3 1 2

3 1 3

1 1 2 2

2 1

2 1

4.

4 9 1 1 6mod11 mod11 6 mod11 6.

2 10 2 2 6

mod11 3

mod11 5 10,9 2,4 3,5 . :

10,2 2,6 10, 2; 2, 6 .

6 2 6mod11 mod11 5

2 10 12

y

y yAtunci

x x

x x x

y x x y Atunciavem

cux y x y cazulP Q

y y

x x

.

, 10,9 ; 3,5 .ÎnfineavemE M k

Exemplul 2.

Să descifrăm mesajul ((10,2);(3,5)) ştiind că a fost cifrat cu algoritmul El

Gamal utilizînd curba eliptică publică E.

E: y = x + x + 6 pe Z11 şi cheia privată d = 3.

Mesajul este M = y2 – dy1 = (3,5) - 3(10,2).

75

Calculăm:

2 2

11 1 2 2

1

2

3 1 2

3 1 3 1

3 10,2 10,2 10,2 10,2 .

: 10,2 10,2

3 3 10 1 30110, 2; 10, 2. mod11 1.

2 2 2 4

mod11 19 mod11 8 mod11 3 mod11 3.

mod11 1 10 3 2 mod11

PentruînceputavemcazulcîndP Q

x ax y x y Atunci

y

x x x

y x x y

2 1

2 1

2 1

7 2 mod11 5 mod11 5.

10,2 10,2 10,2 3,5 10, 2 . .

;3 10,2 2,4 .

AtunciM y 3,5 3 10,2 3,5 2,4 3,5 2, 4 mod11

y yAtunciavem SuntemîncazulP Q

x x

Înfinalaplicămformulaadouaoarăcînd

P Qşigăsim

d y

încăod

1 1 2 2

2 1

2 1

2

3 1 2

3 1 3 1

3, 5; 2, 7

7 5 2mod11 2 mod11 9 mod11 9

2 3 1

mod11 .

mod11 .

şi ;

3,5 2,7 10,9 .

atăformulaP Qcux y x y

y ycu

x x

x x x

y x x y

devine

Exemplul 3.

Să se cifreze M = (3,4) utilizând curba eliptică (publică) E: y = x3 + 2x + 3(

mod 5).

a = 2, b = 3.

2 3

2 3

1

2 3

2 3 2

2 2 2

0 0 2 0 3 mod 5 3 mod 5 3 mod 5 .

1 1 2 1 3 mod 5 6 mod 5 1 1,4 mod 5 .

x 2 y 2 2 2 3 mod 5 15 mod 5 0 0 mod 5 .

3 3 2 3 3 mod 5 36 mod 5 1 1 1,4 mod 5 .

4 4 2 4 3 mod 5 75 mod 5 0 0

x y nuavemsoluţii

x y y

y

x y y y

x y y

0 mod 5 .y

Avem punctele pe curba eliptică E şi care formează grupul nostru ciclic. G

={(1,1);(1,4);(2,0);(3,1);(3,4);(4,0); }. Luăm ca generator pe = (1,1).

76

Cheia privată de descifrare, notată prin d 1,7 1 1,6 luăm d = 2.

Cheia publică, notată prin , se obţine din şi exponentul secret d prin

formula:

2 1,1d .

Operaţia de cifrare a mesajului M cu ajutorul cheii secrete K este:

, , .E M k k M k

Fie d = 2. Să determinăm:

1 1 2 22 1,1 1,1 1,1 1, 1; 1, y 1.cux y x

Aplicăm formula de adunare în cazul P = Q pe curbe eliptice.

2

3 1 2 3 1 3 1

2 2

1

1

3 1 2

3

mod5 ; mod5

3 3 1 2 5 5 3mod5 mod5 15 mod5 0.

2 2 1 2 2 3

0 mod5 0 1 1 mod5 2 mod5 3.

0 1 mod5 4. 3,4 .

x x x y x x y

x aunde

y

x x x

y

Considerăm valoarea aleatoare k = 3 se obţine:

, 3 , 3 3 ; 3,4 3 3,4 3 1,1 ; 3,4 3 3,4 .

3 1,1 1,1 1,1 1,1 .

E M k M

Pentru paranteza dreaptă se aplică formula în cazul P = Q, după care aplicăm

formula în cazul P Q dacă coordonatele sunt diferite.

2

11 1 2 2

1

2

3 1 2

3 1 3 1

2 11 1 2 2

2 1

3 2 3 1 2 5 31, 1; 1, 1 . mod 5 mod 5 0.

2 2 1 2 3

mod 5 0 1 1 mod 5 2 mod 5 3 mod 5 3

mod 5 1 mod 5 4 mod 5 4.

2 23 1,1 3, 4 1,1 .x 3, 4; 1, 1

3

xx y x y cazulP Q

y

x x x

y x x y

y ycazulP Q y x y

x x

2

3 1 2

3 1 3 1

mod 5 4.2

mod 5 16 3 1 mod 5 12 mod 5 2.

mod 5 4 3 3 4 mod 5 4 mod 5 1mod 5 1

3 1,1 2,1 .

x x x

y x x y

77

Calculăm 3(3,4)=[(3,4)+(3,4)]+(3,4).

2

1 1 2 2

2

3 1 2

3 1 3 1

1 1

3 3 2 4 23, 4 3, 4 ; 3, 4; 3, 4 mod 5 mod 5 3.

2 4 3 2

mod 5 9 3 3 mod 5 3 mod 5 3.

mod 5 3 3 3 4 mod 5 1 mod 5 1.

3, 4 3, 4 3,1 .Avem 4 3, 4 3, 4 3, 4 3, 4 3, 4 .

33, 1;

x y x y cazulP Q

x x x

y x x y

cazulP Q

xx y

2

1

1

2

3 1 2

3 1 3 1

3 9 2 29 29 3mod 5 mod 5 mod 5 2.

2 2 1 2 2 3

mod 5 4 3 3 mod 5 4 6 mod 5 2 mod 5 3.

mod 5 3 3 3 1 mod 5 0 1 mod 5 4.

Aunci : 4 3, 4 3, 4 .

: E ; 2,1 ; 3, 4

a

y

x x x

y x x y

Deci M k

Exemplul 4.

Să se descifreze mesajul: ((2,1);(3,4)), ştiind că a fost cifrat cu algoritmul El

Gamal, utilizând curba eliptică (publică):

E: y = x3 + 2x + 3 ( mod 5), a = 2, b = 3 şi cheia privată d = 2.

Mesajul clar determinat este M = y2 - dy1 = (3,4) - 2(2,1).

1 1

2

1

1

2 2

3 1 2

3 1 3 1

2

2 2,1 2,1 2,1 , 2, 1 .

3 3 2 2 14mod5 mod5 7 mod5 2.

2 2 1 2

: mod5 2 2 2 mod5 4 4 mod5 0

mod5 2 2 0 1 mod5 4 1 mod5 3 mod5 3.

2 2,1 0,3 0, 3 .

undex y suntemîncazulP Q

x a

y

Atunci x x x

y x x y

Deci

M y

1 1 2 2

2 1

2 1

2

3 1 2

3 1 3 1

2 2,1 3,4 0, 3 .

3, 4; 0, 3 . .

3 4 7 7 2mod5 mod5 mod5 mod5 14 mod5 4.

0 3 3 3 2

mod5 16 3 0 mod5 13 mod5 3

mod5 4 3 3 4 mod5 4 mod5 1.

M 3,1 .

undex y x y suntemîncazulPdif deQ

y y

x x

x x x

y x x y

78

7. PROBLEMA LOGARITMULUI DISCRET

Securitatea multor criptosisteme se bazează pe problema logaritmului

discret.

Dacă considerăm un grup ciclic G, de ordin n, cu g un generator al său,

atunci 132 ,....,,,1 nggggG . Pentru Gb , definim bglog logaritmul discret al

lui b în bază g ca fiind unicul număr 11 nx care verifică .xgb

Un caz particular a fost deja studiat şi anume situaţia în care grupul )( nZU

este ciclic .

În acest caz, un generator al grupului este rădăcina primitivă r, iar

logaritmul discret a fost numit index aritimetic. Dăm un exemplu, 17ZU este un

grup ciclic de ordin 16. Cum 16317 ord 3 este un generator sau, rădăcină

primitivă modulo 17. Deoarece )17(mod138134 , obţinem .413log3

Problema logaritmului discret, DLP se formulează astfel:

Considerăm un număr prim p , g un generator al grupului *

nZ ( rădăcină

primitivă modulo p) și un element *

PZb , să se determine 11 px pentru care

pgb x mod .

Dacă în locul lui *

pZ alegem un grup ciclic oarecare, spunem că am enunţat

problema generalizată a logaritmului discret, GDLP.

Subliniem un lucru important legat de sistemul de generatori diferiţi ai

grupului G, ciclic de ordin n, iar Gb obţinem relaţia:

bgbb gggg gggb

22121loglog

1

log

2

log

1

Din schimbarea bazei logaritmului găsim:

ngbb ggg modlogloglog 2121

De aici constatăm că un algoritm care calculează logaritmi relativi la baza

g1 poate calcula logaritmi în orice bază g, cu g un generator oarecare al

grupului.

79

Vom prezenta în continuare cei mai cunoscuți algoritmi de rezolvare a

DLP arătând calculele în detaliu. Grupul ciclic G fiind multiplicativ al unui corp

finit cu p elemente, deci un grup de ordin p - 1.

Algoritmul Shanks

Considerăm 1 pm . Dacă Ggbx

atunci x = cm + d, .1,0 mdc

Atunci avem: dcmdcmx ggggb

dcm ggb o înmulţim la dreapta cu dg şi obţinem

ddcmd gggbg

0ggbg cmd

cmcmd ggbg

mc

g

cm

g

d

g ggbg logloglog

mcgb

d

gg

loglog

mcdbg log

dmcgb log

Se creează două liste:

121

12

,..,,

....,,1

m

mmmm

bgbgbgb

ggg

și vedem pentru ce valori ale lui c şi d obţinem dcm bgg . Atunci obţinem:

.log dcmbb

80

Algoritm-Shanks

1. INPUT: g, p , b sunt cei de sus din teorie.

2. Pentru c = 0, …, m - 1, construieste un tabel cu mcgc, , care se ordonează

după a doua componentă.

3. Calculează 1g şi pune ba .

4. Pentru d = 0,… , m – 1 , execută :

4.1.Verifică dacă a este a doua componentă a unui element din

tabel.

4.2. Dacă mcga , returnează x = mc + d și se oprește.

4.3. Pune 1 aga .

Exemplul 1.

Considerăm:

*

7 , p 7 prim,m 1 7 1 6 2.G Z p

Atunci avem m = 4 şi în consecinţă:

0 , 2c d .

Folosim tabelul pentru a pune în practică algoritmul Shanks.

Observăm că pentru c = 1 avem 4 şi pentru d = 2 avem 4.

Deci c = 1 şi d = 2. Atunci putem scrie:

c 0 1 2

22c

1 4 2

d 0 1 2

30*2-d

2 1 4

81

2log 30 2 2 2 6c m d

Calculele sunt realizate în mod 7.

Exemplul 2.

Considerăm generatorii din Z11.

11

1 1 1 1

2 2 2 2

3 3 3 3

4

0,1,2.......10 2,3,5 deg

2 2 mod11 ...;5 5 mod11 ....;3 3 mod11 ...;4 4 mod11

2 4 mod11 ...;5 3 mod11 ...;3 9 mod11 ...;4 5 mod11

2 8 mod11 ...;5 4 mod11 ....;3 5 mod11 ...;4 9 mod11

2 5 mod11

Z şiB sistem eneratori

4 4 4

5 5 5 5

6

7

8

9

10

...;5 9 mod11 ...;3 4 mod11 ...;4 3 mod11

2 10 mod11 ...;5 1 mod11 ...3 1 mod11 ....;4 1 mod11

2 9 mod11

2 7 mod11

2 3 mod11

2 6 mod11

2 1 mod11

Aceasta este caracteristica generatorilor care permite efectuarea calculelor.

Exemplul 3.

log230.

Considerăm 29 0,1,2.....28Z clasele de resturi mod 29. Atunci avem:

29 1 28 5,0 c,d m 1,0 , 5m c d

C 0 1 2 3 4 5

25m 1 3 9 27 23 7

Facem tabelul pentru d.

D 0 1 2 3 4 5

30*2-d 1 15 22 11 20 1

82

Atunci avem: c = 0 şi d = 5. Deci log230 = m*c + d = 5*0 + 5 = 5.

Calculele:

5 0 0 5 1 5 2

5 3 5 4

5 5

0 1 2

2 2 mod 29 1;2 mod 29 32 mod 29 3;2 mod 29 1024 mod 29 9;

2 mod 29 32768 mod 29 27;2 mod 29 1048576 mod 29 23;

2 mod 29 33554432 mod 29 7 :

15 15 1530 2 mod 29 1;30 2 mod 29 15;30 2 mod 29 mod 29 mod 29 22;

2 2 15

3

4

30 15 15 22 33030 2 mod 29 mod 29 mod 29 mod 29 mod 29 11;

8 4 4 22 88

30 15 15 1130 2 mod 29 mod 29 mod 29 mod 29 165 mod 29 20.

16 8 88

REPREZENTĂRI DE GRUP.

Cât de dificilă este rezolvarea problemei logaritmilor discreți? Depinde de

reprezentarea grupului!

Se consideră grupul (Zp*, ∙) și grupul (Zp-1, +). Se ia un generator g al lui pZ *

şi se definește aplicația:

( ,1pZ , +) → (Zp*, ∙): x → (x) = gx mod p.

Este clar că:

1. (x + y mod p) = ( (x), (y)) mod (p – 1)

2. af (a) = ( i mod p) mod (p – 1)

3. ≡ i mod p ≡ a ( ) mod (p – 1)

Este ușor de rezolvat congruențele liniare! Înseamnă că este ușor și a rezolva

problema logaritmilor discreți ? Nu! A stabili izomorfismul înseamnă a găsi

generatorul! Dar sunt prea mulți generatori posibili!

83

LOGARITMI DISCRETI în Z*

11.

Atacuri la logaritmii discrete

Atacurile care urmează au în vedere descompunerea:

k

kppppp

...1 321

321

Așadar, algoritmul Pohlig - Hellman cere factorizarea numărului p – 1.

84

O metodă generală

Se consideră o permutare f: X → Y a unei mulțimi de n elemente X, o permutare

fără puncte fixe, adică f(x) ≠ x pentru toti x-ii.

Exemplu: f:Zp* → Zp*: u → ∙u.

Fie definită orbita lui x X ca Orb f(x) = [x, f(x), f2(x), …, fn(x)]. Fiind dat un y

Orbf(x), să se găsească un întreg k astfel încât y = fk(x).

Se pune m = n . Prin împărțirea euclidiană, orice întreg a < n este de forma a

= qm + r, cu 0 ≤ q, r < n. Așadar:

fa(x) = f

qm+r(x) = f

qm(f

r(x)) = f

m◦…◦f

m(f

r(x))

Se calculează (r, f-r(y)) pentru r ≤ m și se sortează după coordonata a doua. Se

calculează de asemenea (q, fqm

(x)) pentru q ≤ m și se sortează după a doua

coordonată.

Se găsesc două perechi (q, fqm

(x)), (r, f-r(y)) care au a doua coordonată identică,

adică f-r(y) = f

qm(x). Decurge de aici că y = f

qm+r(x). Timpul de căutare este O ( n

) .

LOGARITMI DISCREŢI ÎN Zp*

Instanță a problemei: p prim, a generator pentru Zp* și b un element din Zp*

Obiectiv: Stabilirea unui k ≤ p – 1 unic astfel încât = k mod p (se introduce

notația logk ). O cale de a obține pe k poate consta în a genera toate puterile

lui ( , 2 , 3 ,…) și a reține exponentul corect printr-o explorare exhaustivă.

Aceasta consumă un timp O(p).

O altă cale poate fi utilizarea metodei generale precedente pentru a reduce

timpul de căuatre la O n . Aceasta este cunoscută ca algoritmul lui Schank.

85

ALGORITMUL LUI SCHANK

Algoritmul lui Schank ( ,,p ): Dacă 1 pm atunci se observă că fiecare

întreg a < p – 1 este de forma: a = qm + r, cu 0 ≤ q, r ≤ m – 1. Astfel, a ≡ (am)

q

r mod p.

1. Se calculează (r, r mod p) pentru r = 0, 1, …, m – 1 și se sortează după

coordonata a doua.

2. Se calculează (q, mq mod p) pentru q = 0, 1, …, m – 1 și se sortează după

coordonata a doua.

3. Se găsesc două perechi identice la a doua coordonată, adică (r, r mod p)

și (q, mq mod p) astfel încât r ≡ mq mod p. Timpul de execuție a

algoritmului este O( n ) .

Exemplu: Fie p = 809 și se urmărește calcularea lui log3(525). În cazul acesta a

= 3, = 525, 29808 m si .99808mod29 . Se tabelează apoi (i, 99i

mod 809) și (i, 525∙(3i)

-1 mod 809), pentru i = 0, …, 28.

(10,644) și (19,644) au acceași a doua coordonată.Așadar:

309191029525log3 .

86

Bibliografie

[1] Debdeep Mukhopadhyay,” The Discret Logarithm Problem,”IIT Kharagpur,pp.437- 480,

June 1996.

[2] David Aspinall,Cryptography IV:Asymmetric Ciphers Computer Security Lecture7,

School of Informatics University of Edinburgh,31 st January 2011.

[3] Debdeep Mukhopadhyay,Elliptic Curve Cryptography,Adept of Computer Sc and Engg

IIT Madras,2011.

[4] Dumitru Buşneag, Florentina Chirtes,Dana Piciu, “Complemente de Aritimetică Şi Teoria

Elementară A Numerelor,2007.

[5] Alexandru Dincă,’’Algebra Pentru Perfecţionarea Profesorilor, “ 1983

[6] Constantin Popescu ,’’Introducere în Criptografie,”Departamentul de Matematică şi

Informatică.

[7] (Capitolul 17),’’Sistemul de cifrare EL Gamal bazat pe curbe eliptice.’’

[8] Ion.D.Ion,Lucian Morogan, “ Criptare şi Decriptare,” Departamentul de Matematică şi

Informatică.