[e-privacy] Verifica di hash
Francesco Poli
frx at firenze.linux.it
Sun Dec 8 11:11:12 CET 2002
On Fri, 6 Dec 2002 23:09:39 +0100
brain <xbrain at ciaoweb.it> wrote:
[...]
> + sono in possesso di un unico dato, l'hash di k crittato con k:
> C_k(H_k)
> + mi calcolo H_x
> + tento di decrittare C_k(H_k) con x: D_x(C_k(H_k))
> + se x e' esatta, abbiamo x = k, ma anche:
> D_x(C_k(H_k)) = D_k(C_k(H_k) = H_k e H_x = H_k,
> dunque la verifica funziona.
> + MA se x != k... chi ci garantisce che D_x(C_k(H_k) != H_x, e
> dunque la verifica non riesca lo stesso?
[...]
Effettivamente, se x != k si ha D_x(C_k(H_k)) != H_k e H_k != H_x
(quest'ultima e` solo estremamente probabile, ma non sicura, giusto?).
Nel caso improbabile in cui H_k == H_x si ha sicuramente
D_x(C_k(H_k)) != H_k => D_x(C_k(H_k)) != H_x
Se invece H_k != H_x (come e` estremamente probabile), le due
disuguaglianze di prima non garantiscono che D_x(C_k(H_k)) != H_x
Supponiamo infatti che D_x(C_k(H_k)) == H_x
Ne segue
C_k(H_k) == C_x(H_x)
Ma
D_x(C_k(H_k)) != H_k
e quindi
C_k(H_k) != C_x(H_k)
per cui
C_x(H_x) != C_x(H_k)
cioe`
H_x != H_k
coerente con l'ipotesi iniziale.
Non mi pare si possa cadere in assurdo...
Sembrerebbe quindi che la verifica che fai sia sicura in caso di esito
negativo, ma non sicura (soltanto molto affidabile) in caso di esito
positivo.
Infatti se la verifica da` esito negativo, si ha
D_x(C_k(H_k)) != H_x
da cui segue necessariamente
x != k
perche' se, per assurdo, supponiamo x == k si ottiene D_k(C_k(H_k))
!= H_k cioe` H_k != H_k che non puo` essere.
Se invece la verifica da` esito positivo, si ha D_x(C_k(H_k)) == H_x
che puo` significare
x == k
oppure (improbabile)
x != k con C_k(H_k) == C_x(H_x)
Questa verifica puo` dunque dare dei falsi positivi, ma non dei falsi
negativi.
D'altronde la stessa verifica che si fa con una funzione di hash ha
queste caratteristiche
H_a != H_b => a != b
H_a == H_b => a == b oppure (improbabile) a != b
Dico bene?
--
Francesco Poli <frx at firenze.linux.it>
======================================================
You're compiling a program and, all of a sudden, boom!
-- from APT HOWTO, version 1.8.0
More information about the E-privacy
mailing list