Sunteți pe pagina 1din 15

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice si functii de


dispersie

Luciana Morogan

Facultatea de Matematica-Informatica
Universitatea Spiru Haret

Laborator
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Outline

1 Preview: Semnaturi electronice

2 Protocoale de semnatura
Protocoale de semnatura
Procedee de criptare vs. procedee de semnatura
Semnatura El-Gamal

3 Functii de dispersie
Semnaturi si functii de dispersie
Functii de dispersie cu coliziuni
Exemplu de exercitiu
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice

O semnatura electronica trebuie sa fie:


1 unica - o anumita semnatura trebuie sa poata fi generata
de catre o singura persoana
2 neimitabila - nici o alta persoana nu va putea genera
semnatura utilizatorului indicat
3 usor de autentificat - orice destinatar legal si, eventual,
orice arbitru sa poata stabilii autenticitatea semnaturii
4 imposibil de negat - nici un utilizator legal sa nu-si poata
nega propria semnatura
5 usor de generat
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Protocoale de semnatura

Protocoale

Protocolul este format din:


algoritmul de semnatura - secret: sig(x), unde x este
mesajul transmis
algoritmul de verificare - public: daca y este o semnatura
autentica a lui x, atunci ∀(x, y ) algoritmul ver (x, y ) ofera un
raspuns dicotomic (adevarat sau fals)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Protocoale de semnatura

Definitie formala

Un protocol de semnatura este un cvintuplu (P, A, K, S, V)


unde:
P, A, K - multimi finite, nevide ale caror elemente se
numesc mesaje, semnaturi si, respectiv, chei
exista o aplicatie biunivoca K ↔ S × V astfel incat
∀k ∈ K, ∃!(sigk , verk ) unde

sigk : P → A, verk : P × A →{T , F } au proprietatea ca


∀x ∈ P, ∀y ∈ A,
verk (x, y ) = T ⇔ y = sigk (x)
Obs! Pentru fiecare k ∈ K, functiile sigk si verk trebuie sa fie
calculabile in timp polinomial.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Procedee de criptare vs. procedee de semnatura

Procedee de criptare vs. procedee de semnatura (1)

Consideram cazul in care Alice ii trimite lui Bob un mesaj


semnat si criptat. Fie x textul in clar.
Alice:
determina semnatura y = sigAlice (x)
codifica x si y cu cheia publica a lui Bob obtinand textul
criptat z cu z = eBob ((x, y ))
trimite pe z lui Bob
Bob:
foloseste cheia sa secreta dBob si obtine perechea (x, y )
verifica semnatura lui Alice cu cheia publica verAlice (x, y )
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Procedee de criptare vs. procedee de semnatura

Procedee de criptare vs. procedee de semnatura (2)

Ce se poate intampla daca Alice cripteaza inainte de a semna?


Alice:
calculeaza z = eBob (x)
calculeaza y = sigAlice (eBob (x))
trimite lui Bob mesajul (z, y )
Bob:
decripteaza z si obtine x
verifica y ca semnatura lui z cu cheia publica verAlice (x, z)
Pericolul: Oscar poate intercepta (z, y ), inlocuieste y cu propria
sa semnatura y1 = sigOscar (z) si trimite lui Bob mesajul (z, y1 )
⇒ se recomanda folosirea semnaturii inante de criptare
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Semnatura El-Gamal

p - prim a.i. problema logaritmilor discreti sa fie dificila in


Zp si α ∈ Z∗p element primitiv
P= Z∗p , A= Z∗p × Zp−1
K= {(p, α, a, β)|β ≡ αa (modp)}
valorile p, α, β - publice, iar a - secreta
pt K = (p, α, a, β) si k ∈ Zp−1 aleator(secret) definim:
sigK (x, k ) = (γ, δ) unde
γ = αk (mod p)
δ = (x − aγ)k −1 (mod (p − 1))
pt x, γ ∈ Z∗p , δ ∈ Zp−1 definim
verK (x, γ, δ) =T⇔ β γ γ δ ≡ αx (mod p)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Observatii

1 Daca semnatura este corecta, verificarea autentifica


semnatura:
k
+k (x−aγ)k −1 k
β γ γ δ ≡ αaγ αk δ ≡ αaγ+k δ ≡ αaα ≡ αaα +x−aγ

k k
αaα +x−aα ≡ αx (mod p)
2 Protocolul este nedeterminist: pentru un mesaj dat, pot
exista mai multe semnaturi posibile.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi si functii de dispersie

Trasatura generala a protocoalelor de semnatura digitala

Mesajele ce pot fi semnate sunt de dimensiune mica, insa, in


practica, documentele ce trebuiesc a fi semnate ajung la
dimensiuni mult mai mari.

Solutia: functia de dispersie ce trebuie calculata rapid. Aceasta


transforma un mesaj de lungime arbitrara intr-o amprenta
numerica de dimensiune fixata care ulterior va fi semnata:
daca se doreste semnarea unui mesaj x
1 se calculeaza amprenta numerica z = h(x)
2 aceasta se semneaza cu y = sigk (z)
3 perechea (x, y ) este transmisa prin canalul de comunicatie
oricine poate efectua verificarea calculand z = h(x) si
utilizand verk (z, y )
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (1)

Cum semnatura foloseste doar amprenta numerica, h trebuie


sa satisfaca cateva conditii (pt a evita falsificarea)
atacul cel mai simplu al unui mesaj (x, y ) semnat cu
y = sigk (h(x)) este urmatorul:
1 se calculeaza z = h(x)
2 se cauta x1 6= x a.i h(x1 ) = h(x)
Daca exista x1 ⇒ (x1 , y ) este un mesaj valid

=⇒ h trebuie sa fie cu coliziuni slabe1

1
Definitie. Functia de dispersie h este cu coliziuni slabe daca fiind dat un
mesaj x, este calculabil dificil sa se gaseasca un mesaj x1 6= x a.i.
h(x1 ) = h(x)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (2)

atac: Oscar cauta doua mesaje x1 , x2 a.i. x1 6= x2 si


h(x1 ) = h(x2 ). Il convinge pe Bob sa semneze x1 cu
amprenta sa numerica h(x1 ) si obtine y ⇒ (x1 , y )
semnatura autentica

=⇒ h trebuie sa fie cu coliziuni tari2

Obs! O functie cu coliziuni tari este si cu coliziuni slabe.

2
Definitie. Functia de dispersie h este cu coliziuni tari daca este calculabil
dificil sa se obtina doua mesaje x1 , x2 , x1 6= x2 a.i. h(x1 ) = h(x2 )
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (2)

atac bazat pe observatia ca este posibil sa se obtina


aleator falsificari ale amprentelor numerice. Daca Oscar
obtine o semnatura valida a amprentei z, el cauta x a.i.
h(x) = z
=⇒ h neinversabila3

Lema. Daca o functie de dispersie este cu coliziuni tari,


atunci ea este neinversabila.

3
Definitie. h este neinversabila daca fiind data o amprenta numerica z,
este calculabil dificil sa se gaseasca mesajul x a.i. h(x) = z.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Exemplu de exercitiu

Exercitiu

Fie numarul prim p = 15 si radacina primitiva modulo 15 g = 3.


Alice doreste sa ii trimita lui Bob un document printr-un canal
de comunicatie. Pentru ca aceasta sa poata semna
documentul x ∈ {0, 1}∗ , ea alege cheia secreta a = 5 si k = 3.
Se considera publica o functie de dispersie (hash function) a.i.
h(x) = 11.
Cunoscand protocolul de semnatura El-Gamal folosit, cu
r = g k modp
s = (h(x) − ar )k −1 mod (p − 1)
determinati (r , s).
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Exemplu de exercitiu

Solutie

(r , s) =?
r = 33 mod 15 ≡ 12 mod 15
s = (11 − 5 ∗ 12)3−1 mod 14 ≡ 7 mod 14
=⇒ (r , s) = (12, 7)