it-swarm.dev

O que é melhor para chaves GPG - RSA ou DSA?

ssh-keygen padrão para criar chaves RSA, mas gpg --gen-key prefere DSA/ElGamal.

Qual deles - RSA ou DSA - é melhor para GPG?

57
grawity

Os mantenedores do GPG estão pensando em mudando o padrão para RSA (fonte: Lidando com a fraqueza no SHA-1 [LWN.net] ). Então, parece que eles pensam que a RSA é atualmente a melhor opção (e eles deveriam saber mais sobre isso do que você ou eu).

36
CesarB

RSA e DSA - equívocos e informações úteis
tem um par de referências mais antigas RSA e a referência recente DSA,


Em 2003, RSA vs Assinaturas DSA - O Vencedor é ... - RSA.

Então, basicamente, a geração de chaves é incrivelmente mais rápida para o DSA, o que faz sentido se você entender os algoritmos. A assinatura também é mais rápida para o DSA, mas não por um fator tão grande. A grande força do RSA é verificar o que é muito mais rápido que o DSA .

Recentes IETF Draft: DSA com SHA-2 para DNSSEC , expirando 7 de janeiro de 2010.
Há algumas razões para promover o DSA em relação à RSA hoje.

O uso de DSA com SHA-256 no DNSSEC tem algumas vantagens e desvantagens em relação ao uso de RSA com SHA-256 ao usar chaves de 2048 bits. As assinaturas de DSA são muito mais curtas do que as assinaturas RSA ; neste tamanho, a diferença é de 512 bits verus 2048 bits. Em plataformas típicas que usam chaves de 2048 bits, a assinatura do DSA é cerca de três vezes mais rápida que a do RSA, mas a verificação de assinaturas do RSA é mais de dez vezes mais rápida do que para o DSA .

A força criptográfica do DSA é geralmente considerada equivalente à RSA quando a chave pública DSA e as chaves públicas RSA são do mesmo tamanho. Tal avaliação poderia, é claro, mudar no futuro se novos ataques que funcionassem melhor com um ou outros algoritmos fossem encontrados.

Atualmente, não há ataques conhecidos ao conjunto específico de parâmetros de DSA escolhido para este documento. Tal avaliação poderia, é claro, mudar no futuro.

Mas, este é apenas um rascunho no momento.

Todo mundo adora a velocidade de verificação do RSA (!).

24
nik

RSA. Houve algumas fraquezas descobertas em SHA-1 , que é o hash usado por DSA . Debian são migrandotodas as suas chaves do DSA para o RSA.

8
pgs

Citando a discussão no fórum :

Meu conselho seria usar uma chave de assinatura RSA (a chave "primária" ou "principal") e uma subchave RSA para criptografia. O motivo para usar o RSA para assinatura é principalmente porque o RSA permite usar hashes maiores do que o DSA. O DSA2 também permite usar hashes maiores, mas o RSA é suportado há muitos anos a mais que o DSA2.

Eu acho que se você estiver usando isso de uma maneira padrão (ou seja, você não criptografa uma grande quantidade de dados) eles vão se sair bem.

Eu pessoalmente escolheria o RSA porque aprendi o algoritmo e é um dos mais belos algoritmos que já vi.

5
Adam Matan

Além disso, o uso de algoritmos SHA-2 é possível e permitido desde a revisão atual do DSS; mas não consegui descobrir qual versão do GPG segue.

Com relação à especificação atual DSS ( FIPS-186- , p. I) qualquer função hash especificada no SHS (FIPS-180-3, p. Iv) pode ser usada:

DSS:

Os algoritmos de assinatura digital aprovados pelo FIPS devem ser usados ​​com uma função de hash apropriada especificada no SHS.

SHS:

Esta Norma especifica cinco algoritmos hash seguros - SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512 - para calcular uma representação condensada de dados eletrônicos (mensagem).


À pergunta: Ambos os algoritmos são baseados em problemas matemáticos que não são provados como seguros (o RSA usa o problema de fatorar números e o DSA usa o logaritmo discreto problema), você não pode dizer que um é mais seguro que o outro, porque nem o problema nem o outro já foram resolvidos.

Mas ao usar o DSA com SHA-1, você pode ter um problema de segurança, como já foi dito por pgs .

4
Manuel Faux

O fato é que, provavelmente, não importa muito para você :) Como parte da preparação para gerar um par de chaves e como parte da manutenção dos pares de chaves existentes - independentemente da criptografia assimétrica escolhida, você deve: 1) verificar as recomendações atuais recomendadas Comprimentos de chave 2) escolheram uma base/módulo para otimizar a assinatura ou verificação - dependendo do que será doen mais frequentemente (as chaves a serem usadas na emissão de certificados de servidor TLS/SSL devem ser otimizadas para verificação, pois todos os navegadores verificarão a assinatura ... chaves usadas para serem usadas no software de assinatura devem ser otimizadas da mesma forma) 3) certifique-se de envelhecer suas chaves - usando a mesma chave para ssh-auth por alguns anos, pode ser hora de recuperar, mesmo se você escolheu uma chave tamanho que ainda é razoável para a aplicação hoje.

Ambos RSA e DSA foram substancialmente avaliados; se você estiver usando uma base de código confiável (RSAREF, comercial da RSA, Mozilla/Netscape, Microsoft, OpenSSL, ...), então você provavelmente não se importa com o sistema criptográfico que você usa, desde que você o use corretamente e utilize as melhores práticas atuais.

1
Ram