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 firma

Para gerar a firma :

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

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

Assinatura

Pra assinar à mensagem por pela firma :

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

Si ou é zero, repete!

Verificação

Calcula . Calcula . Calcula . Calcula . A assinatura é válida se .

Demonstração do Algoritmo

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,

Categoria:Criptografia