cerca
DSS/DSA
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

DSS/DSA

 :: DSS/DSA ::

Torna alla pagina di Crittografia

Che cos'è

DSS sta per digital signature standard, ed è uno standard per la firma digitale. DSA invece è l'algoritmo usato da DSS per realizzare la firma digitale. Si basa sull'intrattabilità dei logaritmi discreti e sulla funzione hash SHA.

Le firme digitali

Le firme digitali devono comportarsi esattamente come le firme normali. Hanno le seguenti caratteristiche:

  • devono poter essere prodotte facilmente dal legittimo firmatario
  • nessuno deve essere in grado di falsificarle
  • chiunque invece può verificarle

Generazione parametri

Devo scegliere:

  • p = un numero primo
  • q = un numero primo, tale che q | (p-1), ovvero q deve essere divisore di p-1
  • α = il numero di ordine q in Zp* (sotto vediamo che cos'è)
  • s = un numero casuale, s < q
  • β = αs mod p

Chiave privata: p, q, α, s
Chiave pubblica: p, q, α, β

Ordine q modulo p

Qui sopra abbiamo detto che α è di ordine q modulo p. Vuol dire "semplicemente" che αq = 1 mod p.

Firma

Per firmare il messaggio M, Alice, che possiede la chiave privata, deve eseguire i seguenti passi:

  • genera un numero r casuale, con r in [1, q - 1]
  • γ = (αr mod p) mod q
  • δ = (SHA(M) + s*γ) * r-1 mod q
  • invia il messaggio M assieme a γ e δ

Notiamo che r-1 esiste, in mod q, perché q è primo e quindi il MCD(r, q) = 1.

Verifica

Quando Bob riceve il messaggio con γ e δ, deve eseguire i seguenti passi per verificare:

  • e' = (SHA(M) * δ'^-1^) mod q
  • e'' = (γ * δ'^-1) mod q

Poi, deve verificare la seguente uguaglianza:

 αe' * βe'' = γ

Se l'uguaglianza è verificata, la firma è autentica. Altrimenti, la firma è falsa.

Come esercizio, potete provare che ciò funziona effettivamente:)

Torna alla pagina di Crittografia