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