O que é Digital Signature Algorithm (DSA)?
Digital Signature Algorithm (DSA) é um método padrão para provar que uma mensagem é autêntica e não foi alterada, usando um par de chaves criptográficas. Pense nisso como um selo de cera que a matemática pode verificar num piscar de olhos, sem necessidade de notário.
DSA criptografa os seus dados. Não. Ele assina os dados para que outros possam verificar quem enviou e que nada foi alterado. A criptografia é algo distinto.
Como funciona o Digital Signature Algorithm (DSA)
Explicação rápida com um exemplo de carteira. Quer provar que uma mensagem é sua sem revelar seu segredo? Veja o fluxo:
- Passo 1: A sua carteira guarda a sua chave privada, que permanece secreta.
- Passo 2: Você pede para ela assinar uma das suas transações de criptomoeda ou uma mensagem.
- Passo 3: A carteira aplica hash na mensagem, escolhe um número aleatório novo chamado k e depois calcula o par de assinatura r e s com a sua chave secreta.
- Passo 4: Qualquer pessoa pode usar a sua chave pública para verificar que r e s correspondem à mensagem e à sua chave.
- Passo 5: Se a verificação for bem sucedida, a rede aceita a ação como autêntica. Nenhum segredo é revelado.
Essa é a ideia central. Assine com o segredo, verifique com a chave pública.
Por que o Digital Signature Algorithm (DSA) importa
Por que se importar? Porque a confiança na internet precisa de comprovativos.
- Benefício: Prova autoria e integridade sem revelar a sua chave secreta. Rápido, automático e monótono no melhor sentido.
- Panorama: Torna os mercados de ativos digitais mais seguros ao impedir aprovações falsificadas e edições silenciosas.
- Relevância: Você o encontrará sempre que assinar ações da carteira, atualizações de software ou aprovações de contratos inteligentes, mesmo se a aplicação ocultar a matemática.
Nunca use novamente o valor aleatório k ao assinar e prefira assinaturas determinísticas quando houver suporte. Reusar k pode expor a sua chave secreta com um único deslize.
Características principais do Digital Signature Algorithm (DSA)
Traços que lhe dão força:
- Aleatoriedade: Cada assinatura precisa de um k imprevisível e novo para manter a segurança.
- Par: A assinatura é constituída por dois números r e s, não apenas por um único valor.
- Hashing: Assina o hash da mensagem, o que mantém o processo consistente e rápido.
- Padrões: Definido pelo NIST em FIPS 186, por isso auditores e bibliotecas seguem a mesma especificação.
- Verificação: Qualquer pessoa com a chave pública pode verificar a prova sem conhecer o segredo.
Como o Digital Signature Algorithm (DSA) é calculado?
Não é preciso executar isto à mão, mas aqui vai um esboço. O sistema tem parâmetros públicos p, q, g. A sua chave secreta é x e a chave pública é y, que equivale a g elevado a x módulo p.
H = hash(message) choose k as a nonzero random in Z_q r = (g^k mod p) mod q s = inv(k, q) * (H + x*r) mod q signature = (r, s) Para verificar, calcule w que equivale a inv(s, q), depois u1 que equivale a H vezes w, e u2 que equivale a r vezes w. Se v que equivale a (g^u1 * y^u2 mod p) mod q for igual a r, a assinatura é válida.
Assinaturas comprovam origem e integridade, não confidencialidade. Se a mensagem for sensível, continua a ser necessária criptografia.
Exemplo
A sua carteira assina um pedido de transferência, transmite a mensagem junto com r e s, e os validadores confirmam a assinatura antes de mover quaisquer moedas.
Curiosidade
DSA foi padronizado no início dos anos 90 e foi inspirado por ideias de Schnorr. Um famoso caso de aviso ocorreu mais tarde quando uma equipa de consola reutilizou o nonce de assinatura num esquema semelhante e a chave secreta foi revelada como trocos.
Resumo
Digital Signature Algorithm (DSA) é o seu selo matemático de aprovação em mensagens e movimentos de fundos. Ideia simples, proteção séria.
