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

16 lines
1.2 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]] aggiungendo [[dati associati]] alla computazione della [[challenge]].
## 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 [[commitment]] ${\color{orange} R} = {\color{orange} g}^k$.
- Usando come $k$ un numero [[casualità crittografica|casuale]].
2. 1⃣ calcola una [[challenge]] ${\color{orange} c} = \mathrm{hash}({\color{orange} R}, Data)$.
- In quanto l'output di $\mathrm{hash}( {\color{orange} R}, Data )$ è un numero [[casualità crittografica|casuale]] per 1⃣.
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}$ .