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.
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.
Esses dois protocolos de criptografia são frequentemente discutidos juntos, mas o que são e como funcionam?
Leia a seguir
- Segurança
- Assinaturas digitais
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.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar