Abrir menu principal

O Padrão de assinatura digital (DSS) é o padrão que usa o algoritmo de assinatura digital (DSA) para seu algoritmo de assinatura e SHA-1 como algoritmo de hash de mensagens. O DSA é uma codificação de chave pública usada apenas para gerar assinaturas digitais e não pode ser usada para criptografia de dados.

A assinatura DSA baseia-se na assinatura do ElGamal, mas é computacionalmente mais econômica porque trabalha com um grupo menor de potências do corpo finito.

Geração da firmaEditar

Para gerar a firma  :

  1. Escolhe um número primo   de   bits, onde   e   é divisível por  .
  2. Escolhe um número primo   de   bits, tal que  , onde   é algum número natural.
  3. Escolhe  , onde   tal que  .
  4. Escolhe   de forma aleatória, onde  .
  5. Calcula  .

Os dados públicos são  ,  ,   e  . A firma, a chave privada, é  .

AssinaturaEditar

Pra assinar à mensagem   por pela firma  :

  1. Escolhe um número aleatório  , onde  .
  2. Calcula  .
  3. Calcula  , onde   é a função hash SHA-1 aplicada à mensagem  .
  4. A assinatura é o par  .

Si   ou   é zero, repete!

VerificaçãoEditar

  1. Calcula  .
  2. Calcula  .
  3. Calcula  .
  4. Calcula  .
  5. A assinatura é válida se  .

Demostração do AlgoritmoEditar

De   segue   pelo Pequeno Teorema de Fermat. Já que   e   é primo segue que   tem ordem  .

O firmador computa  

Então  

Já que   tem ordem  ,  

Finalmente,