mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-24 11:14:18 +00:00
1.3 KiB
1.3 KiB
funzione che implementa un signature scheme in modo operation framework deterministico usando una key derivation function per i numeri casuali.
Requisiti
- Gli output della funzione di hashing devono essere casualità crittografica.
Funzionamento
- 1️⃣ vuole dimostrare di conoscere
{\color{orange} Y} = {\color{orange} g}^{\color{lime} x} \mod p
. - 1️⃣ calcola il primo commitment
r = \mathrm{KDF}({\color{lime} x}, Data)
. - 1️⃣ calcola il secondo commitment
{\color{orange} R} = {\color{orange} g}^r
.- Usando come
k
un numero casualità crittografica.
- Usando come
- 1️⃣ calcola una challenge
{\color{orange} c} = \mathrm{hash}({\color{orange} R}, Data)
.- Usando come
{\color{orange} c}
un numero casualità crittografica. - Usando come
Data
i dati associati da firmare.
- Usando come
- 1️⃣ calcola il witness
{\color{orange} s} = k + {\color{lime} x} \cdot {\color{orange} c}
. - 1️⃣ invia il commitment, la challenge, e il witness a 2️⃣.
- 2️⃣ effettua la verifica
{\color{orange} g^s} = {\color{orange} g}^{k + {\color{lime} x} \cdot {\color{orange} c}} = {\color{orange} g}^k \cdot {\color{orange} g}^{{\color{lime} x} \cdot {\color{orange} c}} = {\color{orange} R} \cdot {\color{orange} Y^c}
.