As assinaturas digitais contam com uma arquitetura de criptografia de chave pública para verificar a autenticidade de um documento e a identificação do remetente. As duas formas padrão de obter assinaturas digitais são os algoritmos RSA (Rivest–Shamir–Adleman) e DSA (Digital Signature), mas ambos diferem na execução das funções de criptografia e descriptografia.

O artigo fornece uma visão geral de um dos algoritmos padrão do setor DSA, seu processo de trabalho com uma breve visão geral de geração e verificação de chave e assinatura, etapas envolvidas no processo geral, seus prós/contras e seus inscrição.

Introdução aos algoritmos de assinatura digital

DSA (Digital Signature Algorithm) incorpora as propriedades algébricas de problemas de logaritmos discretos e exponenciações modulares para gerar uma assinatura eletrônica para diversas aplicações. Foi proposto em 1991 e adotado como Padrão Federal de Processamento de Informações pelo NIST (Instituto Nacional de Padrões e Tecnologia) em 1994.

instagram viewer

A maioria dos algoritmos de criação de assinatura digital segue a técnica típica de assinar o resumo da mensagem (hash da mensagem real) com a chave privada de origem para criar a impressão digital.

No entanto, a situação é diferente no DSA, pois gera duas assinaturas incorporando duas funções complexas e exclusivas de assinatura e verificação. Portanto, o algoritmo DSA não é um simples uso de chaves públicas e privadas no início e no final da comunicação.

Importância do Algoritmo de Assinatura Digital

Devido às ameaças cibernéticas cada vez maiores, sempre que um usuário envia dados pela internet, é necessário identificar e verificar a autenticidade do proprietário. Devemos garantir que o proprietário do documento seja confiável e que ninguém tenha feito alterações durante a transmissão.

Assinaturas digitais são as assinaturas eletrônicas que ajudam o receptor a autenticar a origem da mensagem. Você pode criar essas assinaturas eletrônicas por meio de vários algoritmos, e o DSA é um deles. No DSA, o remetente cria uma assinatura digital para incluí-la na mensagem, de forma que qualquer pessoa possa autenticá-la na extremidade receptora.

Os benefícios que a DSA oferece são:

  • Não repúdio: após a verificação da assinatura, o remetente não pode alegar não ter enviado os dados.
  • Integridade: a modificação de dados durante a transmissão impede a verificação final ou a descriptografia da mensagem.
  • Autenticação de mensagem: combinação correta de chaves privadas/públicas ajuda a verificar a origem do remetente.

Como o algoritmo autentica o remetente?

O algoritmo DSA funciona no mecanismo de computação sistemática que calcula um valor de hash e uma assinatura digital constituindo dois números de 160 bits do resumo da mensagem e da chave privada. A aleatoriedade torna a assinatura não determinística. Ele usa uma chave pública para autenticação de assinatura, que é muito mais complexa que RSA.

O ciclo DSA segue estas três etapas principais para concluir o processo:

  • Geração de Chaves: O processo baseia-se no conceito de exponenciação modular para obter chaves privadas (x) e públicas (y) que satisfaçam as condições matemáticas de 0 < x < q e y = gx mod p. Onde q é um divisor primo, p é um número primo, e g satisfaz essas condições g**q mod p = 1 eg = h**((p–1)/q) mod p. Criando assim pacotes de chaves públicas e privadas {p, q, g, x} e {p, q, g, y}.
  • Geração de assinatura: Um algoritmo de hash gera um resumo da mensagem, que é passado como entrada para uma função de assinatura para criar duas variáveis saídas, r e s, empacotadas como assinatura {r, s} de forma que a mensagem e essas variáveis ​​sejam enviadas como um pacote para o receptor.
  • Verificação de assinatura: O processo usa a função de hash para gerar o resumo e incorpora a variável s com outros parâmetros da etapa de geração de chave para produzir o componente de verificação v. A função de verificação compara a variável calculada v com o parâmetro r do pacote {M, s, r}.

Para resumir o processo acima de forma não matemática:

  • Você cria chaves com a ajuda do algoritmo de geração de chaves para assinar o documento.
  • Em seguida, use um algoritmo de assinatura digital para gerar a assinatura.
  • Use um função hash para criar um resumo da mensagem, e combine-o com o DSA para gerar a assinatura digital.
  • Envie a assinatura com os dados para o destinatário autenticar.
  • O receptor autentica a assinatura usando um algoritmo de verificação. É a função de hash usada acima para criar o resumo da mensagem.

Prós de usar o algoritmo de assinatura digital

  • Computação rápida de assinatura
  • Requer menos espaço de armazenamento para todo o processo
  • Disponível gratuitamente (sem patente) para uso global gratuito.
  • Comprimento de assinatura pequeno
  • Observação em tempo real
  • Não invasivo
  • O DSA é aceito globalmente para conformidade legal.
  • Tempo-eficiente (baixo consumo de tempo em comparação com processos de assinatura física etc.)

Contras de usar o algoritmo de assinatura digital

  • O processo não inclui recursos de troca de chaves.
  • O criptografia subjacente deve ser novo para garantir sua força.
  • A padronização de fornecedores de hardware e software de computador no RSA pode causar problemas devido ao segundo padrão de autenticação do DSA.
  • As operações de resto complexas requerem muito tempo para computação e, portanto, verificação de assinatura.
  • Ele apenas garante a autenticação, não a confidencialidade, pois o algoritmo não criptografa os dados.
  • Os algoritmos DSA calculam o hash SHA1 para gerar o resumo da mensagem. Portanto, reflete todas as falhas da função de hash SHA1 no algoritmo.

DSA VS RSA

O Algoritmo de Assinatura Digital é um algoritmo de criptografia de chave assimétrica adotado por agências dos EUA para comunicação secreta e não secreta. Considerando que o RSA é um algoritmo de criptografia de chave pública que também usa aritmética modular, sua força depende do problema de uma fatoração de números primos para proteger a comunicação e as assinaturas digitais. Portanto, ao contrário dos algoritmos de criptografia usuais, como RSA, o DSA é um padrão apenas para assinaturas digitais.

Embora ambos incorporem algoritmos matemáticos diferentes, a força da criptografia é equivalente. A principal diferença entre os dois algoritmos se restringe à velocidade, desempenho e suporte ao protocolo SSH.

  • Ao contrário do DSA, o RSA é lento em descriptografia, geração de chave e verificação, mas rápido em criptografia e assinatura. No entanto, a autenticação requer ambos e as discrepâncias de velocidade são insignificantes em aplicativos do mundo real.
  • Outra diferença está no suporte ao protocolo de rede Secure Shell. O RSA suporta o SSH original e sua segunda versão segura SSH2, enquanto o DSA funciona apenas com SSH2.

Autenticar a fonte de dados com DSA

As assinaturas digitais são uma necessidade do mundo interconectado de hoje para criar um ambiente seguro e protegido. Eles são uma ótima maneira de autenticar qualquer registro pela internet. O artigo apresenta os algoritmos de Assinatura Digital com uma breve visão geral de seu processo de trabalho, vantagens, desvantagens, limitações de segurança e comparação com o RSA.

TLS vs. SSL: Qual é a diferença e como funciona

Esses dois protocolos de criptografia são frequentemente discutidos juntos, mas o que são e como funcionam?

Leia a seguir

ParticipaçãoTweetE-mail
Tópicos relacionados
  • Segurança
  • Assinaturas digitais
Sobre o autor
Rumaisa Niazi (17 Artigos Publicados)

Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.

Mais de Rumaisa Niazi

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar