Sunteți pe pagina 1din 86

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

1
CHIRIŢĂ ION ALEXANDRU CHIRIŢĂ AUREL

MATEMATICĂ APLICATĂ ÎN INFORMATICĂ


CRIPTOGRAFIE-APLICAŢII

Slatina 2018

2
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 Z p , 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.

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

4
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 Zp.

-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 Z 11 .......................................................................
-Atacuri la logaritmii discreţi...................................................................
*
-Logaritmii discreţi în Z p
.......................................................................
-Algoritmul lui Schank.............................................................................

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

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

120  2  56  8
(1)
56  7  8  0

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

8  120  2  56 
(2)
1120 - 2  56

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.

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

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

9
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, … ,3  n}

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


{2} = {2, 5, 8, 11, … ,3  n+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:

10
{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,...n  1 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   p  q    n  1   p  1 .

Numerele modulo n , Z n .

Fie n pozitiv, avem Zn  0,1, 2,3...n 1 care constituie echivalentul claselor
modulo n.

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


astfel încât . Acest x dacă există atunci c.m.m.d.c. alui a şi n este
*
1. Putem defini grupul Zn astfel.

Zn*  a  Zn /  a, n   1

11
1. Lui Zn* i se adaugă operaţia de înmulţire.
2. Cardinalul lui Zn* este   n 
3. Pentru n prim Z n*  1, 2,3...n  1.

Mica teoremă a lui Fermat.

Dacă p este prim şi  a, p   1 atunci a p 1  1 mod p 

Teorema lui Euler.

Dacă  a, n   1 atunci a  n   1 mod n  .

Generalizare.

Dacă x  y  mod   n   atunci a x  a y  mod n  .

Grupuri ciclice.

Fie a  Zn* ,ordinul lui a este cel mai mic număr pozitiv t astfel încât
at  1 mod n  .

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


fundamental în Z n* .

Zn* e ciclic dacă n  2, 4,... p k ,...2 p k pentru numere prime p.

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

g x  b  mod n  .

Este un algoritm eficient pentru calcularea înregistrărilor în Zn* dacă p  1 are


factori primi.

Exp . Z5* ,care arată x  y  mod 5

* 1 2 3 4
1 1 2 3 4
2 2 4 1 3
3 3 1 4 2
4 4 3 2 1

12
Cardinalul lui Z n*    5  4 . Inversurile lui 21  3;31  2; 41  4 . Generatorii
sunt 2,3,4.

Obs: 24  1;34  44  1

În Z5* înregistrarea lui 4 în baza 3 şi 2.

Exp: Z15*

 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

Z15*   15   3  1   5  1  8

Acest grup nu este ciclic.

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

14
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 n2 + 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).
15
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.
16
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 ≡ (Me)d ≡ Med  M 1 p 1q 1 mod n.


Se admite că gcd(M, q) = gcd(M, p) = 1. Atunci conform micii teoreme a lui
Fermat:
Cd ≡ M(Mp-1)k(q-1) ≡ M(1)k(p-1) ≡ M mod p
Cd≡ M(Mq-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.

n mod b  a k b k  a k 1b k 1  ...  a 0 mod m  a 0


n k 1 k 1
 b  mod b  a k 1b  a k  2 b  ...a1 mod b  a1
 
.......... .......... .......... .......... .......... .......... .......... ........
n
 b i  mod b  ai
 

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


unui număr in orice bază

17
Procedure scriere_în_baza_b (n, b)
q := n
k := 0
while q ≠ 0
ak := q mod b

q
q :  
b 
k : k  1

end while
return ak a k 1ak 2 ...a1a0 b

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ă

18
  M   M  M  M  M  M  M
2 2 2 2
2 2
M 11  M 12  02 2 121 120
 M 12  021 120 121  020
3 2

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


i n
e   ei 2 i cuk  log 2 e
i 0

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

19
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):

r0  q1 r1  r2 cu 0  r2  r1
r1  q 2 r2  r3 cu 0  r3  r2
.......... .......... .......... ..........
ri  qi 1 ri 1  ri  2 cu 0  ri  2  ri 1

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

20
a b 1
R  ;R  .
b ab 1 R

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
21
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 m  m1m2 ...mn şiM k  m / mk . Pentru fiecae valoare Mk


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

x  a1 M 1 y1  a 2 M 2 y 2  ...a n M N y n .

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

Este biunivocă, dar şi pentru că

22
Z n   n     p    q   Z  n  Z n .
 

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 a1 , a2   Z n   Z n  . Se consideră:

și

Se pune a  a1b1q  a2b2 p şi se observă că

a  a1b1 q  a 2 b2 p  a1 mod p
a  a1b1 q  a 2 b2 p  a 2 mod q

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 Z 6 * ,:

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

23
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*= { g0, g1, …, 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 a  Z * p
este cel mai mic i ≤ 1 pentru care a i  1 .

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

24
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

n  1   n   n  1   n2  4n
p
2

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ă.
25
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, u3 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 Z 19 * 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 ?

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

27
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) = (  k , M k )
Decriptarea: (y1, y2) → D(y1, y2) = y 2  y a 1 
1

Î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 Z P * , pentru un număr
p prim mare.

Exemplu de ElGamal (2579, 2, 949):


Privat: a = 765
Public: p = 2579,   2
   765 mod 2579  949

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.

28
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  e,    1 , unde     n    p  1, q  1 .

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

Cheia privată este d dacă e  d  1 mod   .

Mesajul de criptare şi spaţiul este:

M  C  0,1, 2,3....n  1.

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


exponenţială cu cheia privată d.

E n,e  m   me  mod n  .
Dd  c   c d  mod n  .

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


m   med  m1k   m  mk   m  mod n  , folosiind teorema lui Fermat.
d
e

Practic vom lucra RSA astfel:

Regula generală:
n  p  q.
f   n  1   q  1 .
1 c na.î .  e, f   1.
d  e 1  mod 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 qi . În timp ce efectuăm fiecare pas al algoritmului ,vom calcula şi un
număr auxiliar pi .

Pentru primii doi paşi ştim deja valorile:


p0  0.
p1  1.

29
Pentru restul paşilor vom calcula respectiv cu :

pi  pi 2  pi 1  qi 2  mod 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 pk  2 . Dacă restul nu e 1,atunci
x nu admite un invers.

Exemplu.

Calculăm inversul lui 15  mod 26  .

pas 0 : 26 /15  1rest11...... p0  0


pas1:15 /11  1rest 4.........p1  1
pas 2 :11/ 4  2rest 3..........p 2  0  1 1 mod 26  25
pas3 : 4 / 3  1rest1  xadmiteinvers... p3  1  25 1 mod 26  24 mod 26  2
pas 4 : 3 /1  3rest 0............p 4   25  4  2  mod 26  21
...........................................p5   2  211 mod 26  19 mod 26  7
Obs :15  7  105  1  4  26  mod 26  .

RSA Exemplul 1.
p  3, q  5, e  7, d  ?
f   p  1   q  1  2  4  8
d  e 1  mod f   7 1  mod 8 
8 / 7  1rest1 p0  0
7 /1  7 rest 0 p1  1
..................... p2  0  1 1  mod 8   1  mod 8   7
................  d  7

30
RSA Exemplul 2.
p  7, q  5, d  11  e  ?
f   p  1   q  1  6  4  24
e  d 1  mod f   111  mod 24 
24 /11  2rest 2 p0  0
11/ 2  5rest1 p1  1
2 /1  2rest 0 p2  0  1  2  mod 24   22
.....................p3  1  22  5  mod 24   109  mod 24   11.
.................  e  11

RSA Exemplul 3.

p  7, q  11, d  11
f   p  1   q  1  6 10  60
1 11
e  111  mod 60    mod 60    mod 60   11 mod 60   11.
11 121

RSA Exemplul 4.
n  15, e  4, m  11  c  ?
c  me  mod 4   114  mod15   14641 mod15   1
................c  1

RSA Exemplul 5.

 n, e    35,5 : d  5, c  3, m  ?
m  c d  mod n   35  mod 35   243  mod 35   33.
................m  33

RSA Exemplul 6.
p  3, q  5, c  4
n  p  q  15, e  4, m  11
c  me  mod 4   114  mod15 
c  121 121 mod15   1
14641/15  976rest1.

31
RSA Exemplul 7.

Cheia publică  n, e    35,5

Cheia secretă d  5 .

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


este m  ?

m  c d  mod n   35  mod 35 
m  81  3  mod 35 
m  243  mod 35 
243 / 35  6rest 33
m  33

RSA Exemplul 8.

inversul lui 5 este

RSA Exemplul 9.
p  3, q  5, e  7, d  ?
f   p  1   q  1  2  4  8
d  e 1  mod 8   7 1  mod 8 
8 : 7  1rest1 p0  0
7 :1  7 rest 0 p1  1
....................p2   0  1 mod 8  1 mod 8   7
..........regulapi  pi  2  pi 1  qi  2  mod n.
d 7

32
RSA Exemplul 10.
p  11, q  2, e  7, d  ?
f   p  1   q  1  10
1 1 3 3
d  7 1  mod10    mod10    mod10    mod10   3  mod10 
7 7 3 21
d 3

RSA Exemplul 11.


p  7, q  3, d  5, e  ?
f   p  1   q  1  12
1 1 5
e  d 1  mod f   51  mod12    mod12    mod12   5  mod12   5
5 55
e5

RSA Exemplul 12.


n  13, e  5, m  9, c  ?
c  me  mod n   95  mod13  59049  mod13  3
c3

RSA Exemplul 13.

 n, e   17,3 , d  7, c  4, m  ?
m  e d  mod n   47  mod17   1028  mod17   8
m  8.

RSA Exemplul 14.

 n, e   15, 7 
d  7, c  3, m  ?
m  e d  mod n   7 7  mod15   823543  mod15   13.
m  13.

33
RSA Exemplul 15.
n  15, e  7, m  11, c  ?
c  me  modn   117  mod15  2357947691 mod15  11
c  11.

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.


p  8, q  4, e  2, d  ?
f   p  1   q  1  21 primcu8
1 11
d  e 1  mod f   21  mod 21   mod 21   mod 21  11 mod 21 .
2 2 11
d  11.

34
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


Z p * , şi un element a  Z p* . Să se afle numărul x, cu 0  x  p  2 astfel încât
g ab  mod p  .

Problema Diffie-Hellman.

Se dă numărul prim p, generatorul g din Z p* şi elementele g a  mod p  şi


g b  mod p  să se afle g ab  mod p  .

Caracterul privind cheia Diffie Hellman.

MESAJUL1....... A  B : g x  mod p  .
MESAJUL1.......B  A : g x  mod p  .

Cei doi operatori distribuie cheia fără autentificare.

A alege un x aleator 1  x  p  1.

B alege un y aleator 1  y  p  1.

g x , calculează cheia distribuită K   g x   mod p  .


y
B primeşte

A primeşte g y , calculează cheia distribuită K   g y   mod p  .


x

35
Criptarea EL Gamal.

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


generator g, din Z p* şi un număr d.

Cheia publică este :  p, g, g d



mod p .

Cheia privată este: d

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


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

E p , g , g d  m    e, c  unde e  g  mod p  , c  m  g d   mod p  .


c

 

C  M M
- Decriptarea ia un element criptat şi calculează :

Dd  e, c   e d c  mod p  undee d  e p 1d  mod p  .

e d  g  dr
- Decriptarea merge deoarece aşa că:

Dd  e, c   g  dr mg dr  m  mod 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ă

36
c1   B  mod p  .
 
c2  m   A  mod p  .
c   c1 , c2  .

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:

f  c1 p 1 A  mod p  .

2. Determină textul clar m astfel:

m  f  c2  mod p  .

El Gamal

Exemplul 1.
p  13,   2, A  3, B  4, m  7, c  ?
c1     mod p   24  mod13  16  mod13  3

   mod p   7   2   mod13  7  2  mod13  28672  mod13  7


B 4
c2  m   A 3 12

Atunci  c   c1 , c2    3, 7  .
Decriptare.
f  c1 p 1 A  mod p   31313  mod13  39  mod13  19683  mod13  1.
m  f  c2  mod p   1 7  mod13  7  mod 13  7.

37
El Gamal

Exemplul 2.
p  17,   3, A  2, B  3, m  6
c1  32  mod17   9  mod17   9  mod17   9.

   mod17   6  3  mod17   4374  mod17   5.


c2  6   3
2 3 6

c   c1 , c2    9,5  .

El Gamal

Eemplu3.
p  7,   4, A  3, B  5, m  9...c   c1 , c2   ?
c1     mod 7   45  mod 7   1024  mod 7   2.


c2  m    
A B
 mod 7   9    4    mod 7   9  415  mod 7   1073741824  mod 7   2.
3 5

c   c1 , c2    2, 2  .

Decriptare:

f1  c1 p 1 A  27 13  mod 7   23  mod 7   1


m  f1  c2  mod 7   2  2  mod 7   4.

El Gamal

Exemplul 4.
p  13,   2, A  2, B  3.
AprimeştedelaB.
 y1 , y2    5,3 txt.....x  ?
f1  y1 p 1 A  mod p   5131 2  mod13  59  mod13   1953125  mod13   5
x  f1  y2  mod13  15  mod13  2
x  2.

38
El Gamal

Exemplul 5.
p  15,   3, A  3, B  6,  y1 , y2    3, 6  .
AprimeştedelaB :  y1 , y2    3, 6  .
x ?
f1  y1 p 1 A  mod p   31513  mod15   39  mod15   6561 mod15   6.
x  f1  y2  mod15   6  6  mod15   36  mod15   6
x  6.

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


g  Z*p
element numit generator .

x  Z p* y  g x  mod p 
Pentru cheia privată vom calcula , cheia publică fiind
tripletul ( y , g, p ).
M Zp k  Z p 1
Pentru a cifra un mesaj se alege aleatoriu , textul cifrat fiind:

 y1 , y2    g k mod p, My k mod p  .

Pentru a descifra mesajul


 y1 , y2  se calculează :

   mod p  .
1
y2 y x1

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:

 y, g , p    g x mod p, g , p    34 mod11,3,11  81mod11,3,11  1,3,11.

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

39
   
C   y1 , y2   g k mod p; My k mod p  33 mod11,7 13 mod11   27 mod11,7 mod11  5,7 .

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 :

 y, g, p    g x mod p, g, p    25 mod8, 2,8  32 mod8, 2,8  8, 2,8.

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

  
C   y1 , y2   g k mod p, My k mod p  26 mod 8,5  86 mod 8 . 
C   y1 , y2    0, 0  .

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:

 y, g, p    g x mod p, g, p   34 mod11,3, 4   81mod11,3, 4   4,3,11 .

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

   
C   y1 , y2   g k mod11, M  y k mod11  33 mod11,9  43 mod11  5, 4 .

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 :
40
y2  y1 x  mod p  .

    mod p  
x
y2  y1 x  mod p   My k mod p  g k mod p

 mod17   14 
2
 4  97 mod17   mod17  
7

8 8
 8   6   mod17    mod17    mod17  
2

36 2
 4  mod17   4

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:

1
y2   y x1 
1
 mod p   9   7    mod 23  9  16807   mod 23  9  17   mod 23
5 1 1


19 9 19 171
  mod 23   mod 23   mod 23  171 mod 23  10.
17 17 19 323

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.

x x  12 x  1
y2   x2
6

xx  12 x  1  6 x 2

x 2x 2  x  2x  1  6x 2 
2 x 3  3x 2  x  0
3 2 1
x3  x  x0
2 2

1 1  1  1  1 1
x    1 2   1  y 2   ,  solutia1
2 2  2  2  2 2
1 3 1  1 1
  2  6y2  y    ,  solutia2
2 2 2 2 2 

41
curba este simetrică
x x  12 x  1
y2    x, y 
6
 y 2  xx  12 x  1  x, y 
6

Acum vom considera o linie prin punctele ( 1/2, -1/2) și (1,1). Folosim formula:
y1  y 2
y  y2  x  x2 
x1  x2

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


y  3x  2

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

x x  12 x  1
y2   3 x  2   y 2
2

6
 
x  x 2 x  1  63 x  2 
2 2


2 x 3  x 2  2 x 2  x  6 9 x 2  4  12x 
2 x 3  3 x 2  x  54x 2  72x  24
51 2 73
x3  x  x  12  0
2 2
x  24  y  70

Considerăm:

y 2  x 3  2 x  3mod 5
x  0  nuexistay
x  1  y  1,4mod 5  1,1; 1,4 .
x  2  y  0mod 5  2,0 
x  3  y 2  36mod 5  1  y  1,4mod 5  3,1; 3,4 
x  4  y 2  0  y  0mod 5  4,0 

Punctele de pe curbele eliptice sunt :

1,1. 1,4. 2,0. 3,1. 3,4. 4,0 și punctul de la ∞.

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

y 2  a1 xy  a3 y  x 2  a2 x 2  a4 x  a6

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:

 a 21  2  a 23 
2
 a a 
 y  1 x  3   x 3   a 2   x  a 4 x    a 6   y 21  x 3  a 2 x 2  a 4 x  a 6 .
 2 2  4   4 

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


a2
x1  x 
3
 x 1  Ax1  B.
2 3
y1

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

xn  yn  zn

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

x2  y2  z2

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

x2  y2  1

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

1 t2 2t
x ., y 
1 t 2
1 t2

ECUAȚII CONICE ( PĂTRATICE )

Ecuațiile de acest tip au forma generală:

ax 2  by 2  cxy  dx  ef  0, a, b, c, d , e, f  Q

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)
45
aX 2  bY 2  cZ 2

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

aX 2  bY 2  cZ 2 mod mare soluţii în Zm*.

Exemplu: Se poate aplica metoda pe cercul C: x2+y2 = 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= y2 = t2 (1 + x2), ceea ce produce ecuațiile parametrice familiar:

46
1 t2 2t
x ,y 
1 t 2
1 t2

Î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 +by3 +cyx2 + dxy2 + 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 = x3 + ax2 + bx + c.

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


Polinomul x3 + ax2 + 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:

x2 y2
  1.
a2 b2

Rezultă:

47
b2 2
y b  2 x .
2 2

Prin diferenţiere se obţine:

b2
yy '   x.
a2

Şi mai departe obținem:


4 2
b4 x2
 y ' 2  b 4 x 2   .
a y a4 b2 x2
b  2
2

Lungimea elipsei este dată de formula:

1 k 2 x2 1 k 2 x2
 1   y ' dx   dx  
2
dx
1 x2 1  x 1  k x 
2 2 2

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


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

1 u
x , y  x 2u 
x 1 u  12

u2 = g(x) devine u 2  f x  astfel încât


f x  g ' 1x 
1
2
3
g ' ' 1x  g ' ' ' 1x 
2 1
6
1
24
g ' ' ' ' 1

1 k 2 x2
  
1  y ' dx  
2
dx
u

EVITAREA SINGULARITĂȚILOR

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

y2 = f(x) = x3 + ax + b.
48
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 = 3x2 + a = 0. (4)

Urmează că x2 = – a/3. Dar totodată x4 + ax2 + bx = 0. Asta implică a2/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ă 4a3 + 27b2 = 0.

Teoremă: Curba y2 = x3 + ax + b este nesingulară dacă și numai dacă 4a3 + 27b2


≠ 0.

49
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 = x3 + ax + b
mod p la care se adaugă un punct O la infinit astfel încât condiția de
“nesingularitate” 4a3 + 27b2 ≠ 0 mod p să fie satisfăcută. Fiind date punctele P1
= (x1, y1) și P2 = (x2, y2) pe curba eliptică se definește:

P1  P2  12  x1  x 2 ,  x1  x3   y1 
cu

 y 2  y1
 x  x pentruP1  P2
 2
 2
1

 3 x1  a pentruP  P
 2 y1 1 2

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: p  1  2 p  E p a, b  p  1  2 p

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

Waterhouse: Pentru orice întreg n care:

p 1 2 p  n  p 1 2 p

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

50
Exemplu: Se consideră curba eliptică y2 = x3 + 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 ≡ x3 + 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∙2 + 1)(2∙7) mod 11 = (2∙3) mod 11 = 2∙4 mod 11 = 8.


2 -1 -1

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

51
SISTEME DE CRIPTARE CU CURBE ELIPTICE

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

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 = Z n cu algoritm


1

discret intractabil. Spațiul textelor în clar este Z n  Z n și spațiul textelor cifrate


1 2

este E p  Z p *  Z p * . 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:  ,   EP
Privat: a astfel ca   a
Criptare: Se alege aleator   Z n 1

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


y 0  k , c1 , c2   k
x = (x1, x2), y1  c1 x1 mod psiy2  c2 x2 mod p
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 G  Z n 


k

pentru un anumit k. Pentru x  G se defineşte x G ca fiind ordinul lui x în


G.

Premisă: Există o mulţime de întregi SG, astfel încât x  G x G  S G   n este


prim.

Testul de primalitate: x  G x G  S G ?

Se poate testa |x|G = m astfel:

52
 mp 
|x|G= m  x = e &  ( prim p | m)(  x  e  ).
m
 
 

Astfel, testarea primalității lui n se reduce la factorizarea lui m  S G . De obicei,


factorii primi pentru orice m  S G 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:

 
EL   x, y   L  L, y 2  a1 xy  a3 y  x 3  ax  b

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.

53
54
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.

55
Fig. y2=x3-x+1.

56
Se consideră curba eliptică y2 = x3 - x + 1. Dacă P și Q sunt pe E, putem defini
R = P + Q.

Px1 , y1 ; Qx2 , y 2   R  P  Q   x3 , y3  .

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

y 2  x 3  AX  B; y  y1  mx  x1 .
y 2  y1
y  y1  x  x1 
x 2  x1
y  y1  mx  x1   y  mx  x1   y1

mx  x1   y1 2  x 3  Ax  B.
0  x 3  mx 2  .......... ..
y 2  y1
x3  mx 2  x1  x 2 ; y 3  mx1  x 2   y1 ; undem 
x 2  x1

Calculele în detaliu arată cam aşa:

mx  x1   y1 2  x 3  Ax  B  m 2  x  x1   y1  2my1  x  x1   x 3  Ax  B
2 2

 
x 3  Ax  B  m 2 x 2  2 xx1  x1  y1  2my1 x  2my1 x1
2 2

x 3  Ax  B  m 2 x 2  2mxx1  m 2 x1  y1  2my1 x1  2my1 x1


2 2

x 3  Ax  B  m 2 x 2  2mxx1  m 2 x1  y1  2my1 x  2my1 x1  0


2 2

x 3  m 2 x 2  x( A  2mx1  2my1 )  B  m 2 x1  y1  2my1 x1  0. 


2 2

 x3  m 2  x1  x 2

 y3  mx1  x3   y1

57
Dublarea unui punct

Fie P = Q , y2 = x3 + Ax + B

dy 3 x 2  A 3 x1  A
2
dy
2y  3 x  A; m 
2
 
dx dx 2y 2 y1
Dacăa1  0avemP1  P2  ;
0  x 3  m 2 x 2  .......... ..... 
 x 3  m 2  x1  x 2  m 2  x1  x 2  m 2  2 x1

 y 3  m x1  x 3   y1

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


P1  P1  O  P1

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

x y 
z  0,  x, y, z    , ,1
z z 

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

Ak  x, y   K  K 
2

Prin urmare folosim:

x, y    X ; Y ;1  AK 2  PK 2

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

F
x0 , y0   F x0 , y0   0
x y
2 y 0   f '  x0   0 f are rădăcină dublă.
f  x0   f  x0 
'

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

y 2  f x   x 3  AX  B

Condiţia pentru singularitate este:

4 A 3  27B 2  0

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

F
x0 , y 0   F x0 , y 0   0
x y
2 y 0   f ' x0   0
f x0   f ' x0 

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

59
y 2  x 3  AX  B
x 3  AX  B  3 x 2  A
A
x2  
3
x  Ax  B  3 x 2  A  0
3

x0  3 x 2  Ax 0  B  A  0
3

A
x2  
3
f  x   x 3  Ax  B  f ( x0 )  x0  Ax  B  0
3

x 3  Ax  B  0  x 4  Ax 2  Bx  0
x 
2 2
 Ax 2  Bx  0
2
 A  A
    A    Bx  0
 3  3
A2 A2
  Bx  0
9 3
A 2  3 A 2  9 Bx  0
2 A2
 2 A 2  9 Bx  0  9 Bx  2 A 2  x 
9B
3
 2 A2  2 A2 8 A6 2 A3
   A  B0   B  0  4 A 3  27B 2  0.
 9B  9B 81 9 B 3
9B

Aplicaţii.

Fie curba eliptică :

y 2  f  x   x 3  3 x  1cuA  3, B  1
f x0   x0  3x0  1  f ' x0   3x0  3
3 2

x0  3x0  1  3x0  3
3 3

x0  3x0  1  3x0  3  0
3 2

x0  3x0  3x0  4
3 2

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

4 A3  27B 3  4 3  271  3  27  0


3 2

Deci avem puncte critice şi vrem să vedem câte sunt şi cum le aflăm. Folosim
şirul lui Rolle.
60
f x   x 3  3x  1  f ' x   3x 2  3  3x  1 x  1  0  x1  1, x2  1
f  1  3, f 1  1;

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

x1   ,1, x2   1,1, x3  1, 

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

x0  3x0  3x0  4
3 2

 3  9  4  3 4   3  9  48  3  57  3  57
3x0  3x0  4  0  x1, 2    x1  , x2 
2

23 6 6 6
 b   1 57 
V ,   V   , 
 2a 4a   2 12 

Există trei puncte :

  3  57   3  57 
u   ;1; v   ,1; t  1,  
 6   6 

Alte exemple:


y2  x x2 1 
y x
2 3

61
Curbe Eliptice în caracteristica 2.

Ecuaţia generalizată este:

y 2  a1 xy  a3 y  x 3  a 2 x  a 4 x  a 6

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

y 2  xy  x 3  Ax 2  B

Dacă a1 este zero forma redusă e asta:

y 2  Ay  x 3  Bx  C

Forma nu poate fi acesta:

y 2  x 3  Ax  B .

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

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

PM  kPB   bkB  PM  k bB  bkB  PM

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 PBk 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 / (gk)b = mgk*b / gk*b = m.

POHLIG-HELLMAN  p,  ,  

Fie p  1  p1e p2 e ... pk e . Dacă    a mod p atunci a  log  este unic determinat
1 2 k

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


qc+1). Se exprimă astfel:

64
i  c 1
x  q
i 1
i
i

Cu 0  ai  q  1 . Se scrie a = x + sqc. Se poate face următoarea

Afirmaţie:
p 1  0  p 1

 q
 q
mod p

Demonstraţie:
p 1
a
p 1
x  sq  pq1
c

 q
 q
 mod p

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


x  sq  pq1
c
0
p 1

  q
mod p

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

x  sq  p q 1  
c
0
p 1
q
mod p  1

adică:

p 1 p 1 c  p  1  c i c 1 i   
 
i  c 1 c 1
x  sq 1   0   sq   0    i q i    sq    i q    p  1 sq c 1    i q i 1 
q q  i 0  q  i 1   i 1 
 0 mod p  1

p1 p 1

Se calculează acum  q
. Dacă  q
 1 mod p atunci  0  0. Dacă nu, atunci se
calculează:
p 1 p 1 p 1 p 1 p 1
2 3 i
 q
mod p,  q
mod p,  q
mod p,... până când  q
 q
mod p. Urmează

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

Altminteri, c > 1. Se defineşte 1    şi fie x1  log 1 mod q c . Urmează că 0

i  p 1
 p 1 0
p 1
xi    q şi
i 1
i
i
1 q
2
 q2
mod p. Se poate calcula  1 ca mai sus. Dacă c = 2

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

65
p 1
i
1. Se calculează  i   q
mod p pentru
2. Se pune j = 0 şi  j  
While j < c -1 do
p 1
q j 1
Calculează    mod p

Caută i astfel încât    i


j i
 j q j
 j 1   j  mod p
j  j 1

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

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


a
log2 18 . Exponentul a pentru care 2 = 18 mod 29 este necunoscut. Se calculează
separat a mod 22 și a mod 7.

q = 2, c = 2:
28
 2
= 214 = 28 mod 29
28
 2
= 1814 = 28 mod 29

așadar  0  1

1   0 1  9 mod 29
28
q = 22, c =2: 1 4  9 7  28 mod 29
 1  1sia  3

28
 4
 2 4  16 mod 29
q = 7, c = 1: 28

 1814  25 mod 29
4

așadar  0  4sia  4 .

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, log2 18  11 .

66
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 p1 , log p 2 ,... log p B .

Explicații la pasul 1: Se iau C = B + 10 congruenţe  x  p1 p2 ... pB  mod p


j 1 j 2 j B j

, j  C , ceea ce este totuna cu x j  1, j log p1  ...   Bj log pB mod p  1. Aceasta
conduce la un sistem liniar de C congruenţe în necunoscutele log pi , i  C.

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 p1 ,... log p B . . Se alege la
întâmplare 1 ≤ s ≤ p – 2.

Se calculează  s mod p în baza de factori dată B  p1 , p2 , p3 ,... p B , de pildă


 s  p1c p2 c ... pB c mod p. Urmează că  s  s  c1 log p1  ...cB log pB ,
1 2 B

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


O e 1O 1 ln pln ln p

și timpul de aflare a logaritmului discret este:

  1 O 1  ln p ln ln p 
O e  2  
 
 

EXEMPLU

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


log5 2, log5 3, log5 5, log5 7. 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

67
care dau congruenţele liniare:

log5 2  log5 3  log5 7  4063mod10006


log5 2  3 log5 3  5136 mod10006
3 log5 3  log5 7  9865mod10006

cu soluţia unică log5 2  6578, log5 3  6190, log5 7  1301. Pentru a afla log5 9451 se
alege un exponent aleator s = 7736 și se calculează 9451∙5776 ≡ 8400 mod
10007. Peste B, acesta se factorizează ca 2 4 315 2 71. Se dezvoltă:

log5 9451  7736  4 log5 2  log5 3  2 log5 5  log5 7  4  6678  6190  2  1  1301  6057

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

68
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?.

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

70
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
 G
curbă eliptică. Astfel fie pentru care problema logaritmului în subgrupul H
ciclic


H  i / i  0 
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:

k GH
Pentru a cifra un mesaj M se foloseşte aleatoriu şi se aplică regula de
cifrare:


E  M , k    k , M  k   y1 , y2  .
Mesajul m se recuperează din mesajul cifrat (y1 ,y2). Mesajul m se recuperează
y 
1
x
y2 .
din mesajul cifrat (y1, y2) după regula: 1
.

Într-adevăr avem:

y2  
y x1
1
 M k   k  
x 1
 M  kx  
kx
1
 M.

71
Exemplul 1.

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

E: y2 = x3+ 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.

x  0  y 2  03  0  6 mod11  6 mod11  ecuaţiay 2  6carenuaresoluţiiînZ11.


x  1  y 2  13  1  6 mod11  8 mod11  y 2  8nuavemsoluţiiînZ11.
x  2  y 2  23  2  6 mod11  5 mod11  y 2  5  sol. y1  4, y2  7   2, 4  ;  2, 7  .
x  3  y 2  33  3  6 mod11  3mod11  y 2  3  sol. y1  5, y2  6   3,5  ;  3, 6  .
x  4  y 2  43  4  6 mod11  8 mod11  y 2  8nuavemsoluţiiînZ11
x  5  y 2  53  5  6 mod11  4 mod11  y 2  4  sol. y1  2, y2  9   5, 2  ,  5,9  .

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 :

Dk  y1 , y2   y2  dy1.

72
Fie d = 3. Atunci avem:

  d    3  2,7    2,7    2,7    2,7  .

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

  3   2, 7    2, 7    2, 7    2, 7  unde2  x1 , 7  y1 , x2  2, y2  7.
3  x 21  a 3  4  1 2 2  4 8
     (mod11)  8.
2  y1 27 3 3  4 12
x3   2  x1  x2 (mod11)  64  2  2  mod11  60  mod11  5.
y3   2   x1  x3   y1  mod11  8   2  5   7  mod11   5, 2  .
DeciP  Q  P  P   2, 7    2, 7    5, 7  .

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:

73
E  M , k   M 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  x 21  a 3  22  1 13 2 2  4 8
x1 y1......x 2 y2          8  mod11 .
2  y1 27 14 3 3  4 1
x3   2  x1  x2  mod11  82  2  2  mod11  60  mod11  5.
y3   2  x1  x3   y1  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  .
x1  8; y1  3; x2  8; y2  3 :
3  x 21  a 3  64  1 193
     mod11  1. Aplicămformulacunotaţiileconsacrate :
2  y1 23 6
Atunci : cîndP  QşiatuncicîndP  Q;
x3   2  x1  x2  mod11  1  8  8  mod11  7  mod11  7.
y3     x1  x3   y1  mod11  6  mod11  5  mod11  5.   x3 , y3    7,5  .
  10, 2  ; 10,9    2, 4    Re petămformulaîncădedouăori;
Odatăpentru 10,9    2, 4  cazulP  Q : x1  2, y1  9; x2  2, y2  4.
y2  y1 4  9 1 1 6
Atunci       mod11   mod11  6  mod11  6.
x2  x1 2  10 2 26
x3   2  x1  x2  mod11  3
y3     x1  x3   y  mod11  5  10,9    2, 4    3,5  . Atunciavem :
10, 2    2, 6  cux1  10, y1  2; x2  2, y2  6cazulP  Q.
y2  y1 6  2 6
   mod11    mod11  5.
x2  x1 2  10 12
ÎnfineavemE  M , k    10,9  ;  3,5   .

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

74
Calculăm:

3  10, 2   10, 2   10, 2   10, 2  .


PentruînceputavemcazulcîndP  Q : 10, 2   10, 2 
3  x 21  a 3 102  1 301
x1  10, y1  2; x2  10, y2  2. Atunci     mod11  1.
2  y1 22 4
x3   2  x1  x2  mod11  19  mod11  8  mod11  3  mod11  3.
y3    x1  x3   y1  mod11  110  3   2  mod11  7  2  mod11  5  mod11  5.
y2  y1
Atunciavem 10, 2   10, 2    10, 2    3,5   10, 2  .SuntemîncazulP  Q    .
x2  x1
Înfinalaplicămformulaadouaoarăcînd
P  Qşigăsim;3  10, 2    2, 4  .
AtunciM  y 2  d  y1   3,5   3  10, 2    3,5    2, 4    3,5    2, 4  mod11   
încăodatăformulaP  Qcux1  3, y1  5; x2  2, y2  7
y2  y1 7  5 2
cu     mod11  2  mod11  9  mod11  9
x2  x1 2  3 1
x3   2  x1  x2  mod11 .
y3    x1  x3   y1  mod11 .
şi   devine;
     3,5    2, 7   10,9  .

Exemplul 3.

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


mod 5).

a = 2, b = 3.

x  0  y 2  03  2  0  3  mod 5   3  mod 5   3  nuavemsoluţii  mod 5  .


x  1  y 2  13  2 1  3  mod 5   6  mod 5   1  y1  1, 4  mod 5  .
x  2  y 2  23  2  2  3  mod 5   15  mod 5   0  y  0  mod 5  .
x  3  y 2  33  2  3  3  mod 5   36  mod 5   1  y 2  1  y  1, 4  mod 5  .
x  4  y 2  42  2  4  3  mod 5   75  mod 5   0  y 2  0  y  0  mod 5  .

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

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

  d    2  1,1 .

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:
  2  1,1  1,1  1,1 cux1  1, y1  1; x2  1, y 2  1.

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

x3   2  x1  x2  mod 5  ; y3     x1  x3   y1  mod 5 
3  x 21  a 3 12  2 5 53
unde     mod 5    mod 5  15  mod 5   0.
2  y1 2 1 2 2 3
x3  0  x1  x2  mod 5   0  1  1 mod 5   2  mod 5   3.
y3  0  1 mod 5   4.     3, 4  .

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

E  M , k    3   , M  3      3   ;  3, 4   3   3, 4    3  1,1 ;  3, 4   3   3, 4   .
3  1,1  1,1  1,1   1,1 .

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


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

3  x 21  2 3 1  2 53
x1  1, y1  1; x2  1, y2  1cazulP  Q.    mod 5    mod 5   0.
2  y1 2 1 23
x3   2  x1  x2  mod 5   0  1  1 mod 5   2  mod 5   3  mod 5   3
y3     x1  x3   y1  mod 5   1 mod 5   4  mod 5   4.
y2  y1 2  2
3  1,1   3, 4   1,1 cazulP  Q.x1  3, y1  4; x2  1, y2  1      mod 5   4.
x2  x1 3  2
x3   2  x1  x2  mod 5   16  3  1 mod 5   12  mod 5   2.
y3    x1  x3   y1  mod 5   4  3  3   4  mod 5   4  mod 5   1mod 5  1
 3  1,1   2,1 .

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

3  32  2 42
 3, 4    3, 4  ; x1  3, y1  4; x2  3, y2  4cazulP  Q     mod 5    mod 5   3.
24 3 2
x3   2  x1  x2  mod 5   9  3  3  mod 5   3  mod 5   3.
y3    x1  x3   y1  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  cazulP  Q.
3  x 21  a 3  9  2 29 29  3
x1  3, y1  1;     mod 5   mod 5    mod 5   2.
2  y1 2 1 2 23
x3   2  x1  x2  mod 5   4  3  3  mod 5   4  6  mod 5   2  mod 5   3.
y3     x1  x3   y1  mod 5   3   3  3  1 mod 5   0  1 mod 5   4.
Aunci : 4   3, 4    3, 4  .
Deci : E  M ; k     2,1 ;  3, 4  

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

2   2,1   2,1   2,1 , undex1  2, y1  1suntemîncazulP  Q.


3  x1  a 3  22  2 14
   mod 5   mod 5   7  mod 5   2.
2  y1 2 1 2
Atunci : x3   2  x1  x2  mod 5   22  2  2  mod 5   4  4  mod 5   0
y3     x1  x3   y1  mod 5   2   2  0   1 mod 5   4  1 mod 5   3  mod 5   3.
Deci  2  2,1    0,3   0, 3 .
M  y2  2  2,1   3, 4    0, 3  .
undex1  3, y1  4; x2  0, y2  3suntemîncazulPdif .deQ.
y2  y1 3  4 7 72
  mod 5   mod 5    mod 5    mod 5   14  mod 5   4.
x2  x1 03 3 3 2
x3   2  x1  x2  mod 5   16  3  0  mod 5   13  mod 5   3
y3     x1  x3   y1  mod 5   4   3  3  4  mod 5   4  mod 5   1.
M   3,1 .

77
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 G  1, g , g 2 , g 3 ,.... g n1 . Pentru b  G , definim log g b logaritmul discret al
lui b în bază g ca fiind unicul număr 1  x  n  1 care verifică b  g x .

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


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, U Z17  este un
grup ciclic de ordin 16. Cum ord17 3  16 3 este un generator sau, rădăcină
primitivă modulo 17. Deoarece 3  81  13(mod17) , obţinem log3 13  4.
4

Problema logaritmului discret, DLP se formulează astfel:


*
Considerăm un număr prim p , g un generator al grupului Z n ( rădăcină
primitivă modulo p) și un element b  Z P , să se determine 1  x  p  1 pentru care
*

b  g x mod p 
.
*
Dacă în locul lui Z p 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 b  G obţinem relaţia:

b  g1
log g1 b
 g2
log g 2 b

 g1 
log g1 g 2 log g 2 b

Din schimbarea bazei logaritmului găsim:


log g1 b  logg2 b  log g1 g 2 mod n

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.

78
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 m   p  1. Dacă b  g  G atunci x = cm + d, 0  c, d  m  1.


x

Atunci avem: b  g x  g cm  d  g cm  g d

b  g cm  g d o înmulţim la dreapta cu g  d şi obţinem

bg  d  g cm  g d  g  d

bg  d  g cm  g 0

bg  d  g cm  g m  c

 
log g bg  d  log g g m   c
 log g g 
mc

log g b  log g g 
d
 mc

log g b  d  mc

logb g  mc  d

Se creează două liste:

1, g m , g 2 m .... g m 1m
b, bg 1 , bg  2 ,..bg m 1

d
și vedem pentru ce valori ale lui c şi d obţinem g  bg . Atunci obţinem:
cm

logb b  cm  d .

79
Algoritm-Shanks

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


2. Pentru c = 0, …, m - 1, construieste un tabel cu c, g  , care se ordonează
mc

după a doua componentă.


3. Calculează g şi pune a  b .
1

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

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


tabel.

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


mc

1
4.3. Pune a  ag .

Exemplul 1.

Considerăm:

G  Z *7 , p  7 prim, m   p  1    7  1    6   2.

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

0  c, d  2 .

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

c 0 1 2
22c 1 4 2
d 0 1 2
30*2-d 2 1 4

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

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

80
log 2 30  c  m  d  2  2  2  6

Calculele sunt realizate în mod 7.

Exemplul 2.

Considerăm generatorii din Z11.

Z11  0,1, 2.......10 şiB  2,3,5 sistem deg eneratori


21  2  mod11 ...;51  5  mod11 ....;31  3  mod11 ...; 41  4  mod11
22  4  mod11 ...;52  3  mod11 ...;32  9  mod11 ...; 4 2  5  mod11
23  8  mod11 ...;53  4  mod11 ....;33  5  mod11 ...; 43  9  mod11
24  5  mod11 ...;54  9  mod11 ...;34  4  mod11 ...; 4 4  3  mod11
25  10  mod11 ...;55  1 mod11 ...35  1 mod11 ....; 45  1  mod11
26  9  mod11
27  7  mod11
28  3  mod11
29  6  mod11
210  1 mod11

Aceasta este caracteristica generatorilor care permite efectuarea calculelor.

Exemplul 3.

log230.

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

m   29  1    28   5, 0  c, d  m 1, 0  c, d  5

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

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

Calculele:

250  20  mod 29   1; 251  mod 29   32  mod 29   3; 252  mod 29   1024  mod 29   9;


253  mod 29   32768  mod 29   27; 254  mod 29   1048576  mod 29   23;
255  mod 29   33554432  mod 29   7 :
15 15 15
30  20  mod 29   1;30  21  mod 29   15;30  2 2  mod 29  
 mod 29    mod 29   22;
2 2 15
30 15 15  22 330
30  23  mod 29    mod 29    mod 29    mod 29    mod 29   11;
8 4 4  22 88
30 15 15 11
30  24  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 Z * p


şi se definește aplicația:

( Z p 1 , , +) → (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!

82
LOGARITMI DISCRETI în Z*11.

Atacuri la logaritmii discrete

Atacurile care urmează au în vedere descompunerea:


   k
p  1  p1 1 p2 2 p3 3 ... pk

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

83
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
k
 Orbf(x), să se găsească un întreg k astfel încât y = f (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) = fqm+r(x) = fqm(fr(x)) = fm◦…◦fm(fr(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) = fqm(x). Decurge de aici că y = fqm+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 k  log  ). 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.

84
ALGORITMUL LUI SCHANK

Algoritmul lui Schank ( p,  ,  ): Dacă m   p  1 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, m   808   29 si  29  mod 808  99. . 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:

log3 525  29  10  19  309 .

85
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ă.

86

S-ar putea să vă placă și