A Assinatura de Schnorr é um protocolo de assinatura digital proposto por en:Claus P. Schnorr em 1991[1]. Trata-se de mais um protocolo baseado no problema do logaritmo discreto.
Algoritmo
O algoritmo usa uma função de resumo
e operações de grupos[2]
Geração de chaves
Escolher dois primos
e
tais que
.
Escolher um elemento
gerador do grupo
como subgrupo de
(ou seja,
).
Escolher uma função de resumo
cujo domínio seja
e o contra-domínio seja
.
Escolher um
para ser a chave privada.
Calcular
e usar
como chave pública.
Assinatura
Para assinar uma mensagem
:
Calcular
;
Concatenar com a
:
;
Calcular
;
Calcular
;
Usar
como assinatura.
Verificação
Para verificar uma assinatura
de uma mensagem
:
Calcular
;
Calcular
;
Concatenar
com
e calcular a função de resumo:
;
Aceitar a assinatura se
é igual a
.
Referências
- ↑ Schnorr, Claus-Peter (1991). Efficient Signature Generation for Smart Cards. [S.l.]: Jornal of Cryptology. pp. 1 – 16
- ↑ Barreto, Paulo. «Sobre a segurança de assinaturas digitais baseadas no logaritmo discreto em subgrupos de tamanho reduzido» (PDF). Consultado em 10 de dezembro de 2014