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/protocollo di identificazione di Schnorr non-interattivo.md
2023-09-21 02:46:23 +02:00

18 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]] di [[zero-knowledge proof]] [[non-interattivo]] con [[honest verifier]].
Aggiunge la [[trasformazione di Fiat-Shamir]] al [[protocollo di identificazione di Schnorr interattivo]].
## 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$.
2. 1⃣ calcola il [[commitment]] ${\color{orange} R} = {\color{orange} g}^k$.
- Usando come $k$ un numero [[casualità crittografica|casuale]] per 2⃣.
4. 1⃣ calcola una [[challenge]] ${\color{orange} c} = \mathrm{hash}({\color{orange} R})$.
- In quanto l'output di $\mathrm{hash}( {\color{orange} R} )$ è un numero [[casualità crittografica|casuale]] per 1⃣.
6. 1⃣ calcola il [[witness]] ${\color{orange} s} = k + {\color{lime} x} \cdot {\color{orange} c}$.
7. 1⃣ invia il [[commitment]], la [[challenge]], e il [[witness]] a 2⃣.
8. 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}$ .