1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-25 19:44:18 +00:00
appunti-steffo/8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/Schnorr deterministic signature scheme.md
2023-09-21 02:46:23 +02:00

18 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[[funzione]] che implementa un [[signature scheme]] in modo [[operation framework deterministico|deterministico]] usando una [[key derivation function]] per i numeri casuali.
## Requisiti
- Gli output della [[funzione di hashing]] devono essere [[casualità crittografica|casuali]].
## Funzionamento
0. 1⃣ vuole dimostrare di conoscere ${\color{orange} Y} = {\color{orange} g}^{\color{lime} x} \mod p$.
1. 1⃣ calcola il primo [[commitment]] $r = \mathrm{KDF}({\color{lime} x}, Data)$.
2. 1⃣ calcola il secondo [[commitment]] ${\color{orange} R} = {\color{orange} g}^r$.
- Usando come $k$ un numero [[casualità crittografica|casuale]].
3. 1⃣ calcola una [[challenge]] ${\color{orange} c} = \mathrm{hash}({\color{orange} R}, Data)$.
- Usando come ${\color{orange} c}$ un numero [[casualità crittografica|casuale]].
- Usando come $Data$ i [[dati associati]] da firmare.
4. 1⃣ calcola il [[witness]] ${\color{orange} s} = k + {\color{lime} x} \cdot {\color{orange} c}$.
5. 1⃣ invia il [[commitment]], la [[challenge]], e il [[witness]] a 2⃣.
6. 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}$ .