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

56

ssh-keygen usa como padrão a criação de chaves RSA, mas gpg --gen-key prefere DSA / ElGamal.

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

    
por grawity 26.07.2009 / 15:39

6 respostas

35

Os mantenedores do GPG estão pensando em alterar o padrão para RSA (fonte: < href="http://lwn.net/Articles/337745/"> Lidando com a fraqueza no SHA-1 [LWN.net] ). Então, parece que eles acham que a RSA é atualmente a melhor opção (e eles deveriam saber mais sobre isso do que você ou eu).

    
por 26.07.2009 / 18:30
23

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

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

So basically key generation is incredibly faster for DSA, which makes sense if you understand the algorithms. Signing is also faster for DSA, but not by as large a factor. RSA’s great strength is verifying which is much faster than DSA.

Recentes Esboço da IETF: DSA com SHA-2 para DNSSEC , Expirando 7 de janeiro de 2010.
Há algumas razões para promover o DSA na RSA hoje.

Using DSA with SHA-256 in DNSSEC has some advantages and disadvantages relative to using RSA with SHA-256 when using 2048-bit keys. DSA signatures are much shorter than RSA signatures; at this size, the difference is 512 bits verus 2048 bits. On typical platforms using 2048-bit keys, signing DSA is about three times faster than for RSA, but verifying RSA signatures is more than ten times faster than for DSA.

The cryptographic strength of DSA is generally considered to be equivalent to RSA when the DSA public key and the RSA public keys are the same size. Such an assessment could, of course, change in the future if new attacks that work better with one or the other algorithms are found.

There are currently no known attacks on the specific set of DSA parameters chosen for this document. Such an assessment could, of course, change in the future.

Mas, no momento, isso é apenas um rascunho .

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

    
por 26.07.2009 / 18:27
8

RSA. Alguns pontos fracos foram descobertos em SHA-1 , que é o hash usado por DSA . O Debian está migrando todas as suas chaves do DSA para o RSA.

    
por 26.07.2009 / 15:48
5

Citando uma discussão no fórum :

My advice would be to use an RSA signing key (the "primary" or "master" key) and an RSA subkey for encryption. The reason for using RSA for signing is mainly because RSA lets you use larger hashes than DSA does. DSA2 also lets you use larger hashes, but RSA has been supported for many years longer than DSA2 has.

Acho que, se você estiver usando isso de maneira padrão (ou seja, você não criptografa uma grande quantidade de dados), ambos farão bem.

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

    
por 26.07.2009 / 15:45
4

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 do DSS ( FIPS-186-3 , p.i) qualquer função hash especificada no SHS (FIPS-180-3, p. iv) pode ser usada:

DSS:

FIPS approved digital signature algorithms shall be used with an appropriate hash function that is specified in the SHS.

SHS:

This Standard specifies five secure hash algorithms - SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 - for computing a condensed representation of electronic data (message).

À pergunta: Ambos os algoritmos são baseados em problemas matemáticos que não são comprovados como seguros (o RSA usa o problema de factorizar números e o DSA usa o problema do logaritmo discreto), não se pode dizer mais seguro do que o outro, porque nem o problema nem o outro já foi resolvido.

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

    
por 26.07.2009 / 17:19
1

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 de pares de chaves existentes - independentemente da criptografia assimétrica escolhida, você deve ser: 1) verificação dos comprimentos de chave recomendados atuais 2) escolheu 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 cada navegador da Web verificará a assinatura. As chaves usadas para assinar o software 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 a hora de recuperar-se mesmo se você escolher um tamanho de chave que ainda seja razoável para a aplicação hoje.

Tanto a RSA como a DSA foram substancialmente avaliadas; Se você estiver usando uma base de código confiável (RSAREF, comercial da RSA, Mozilla / Netscape, Microsoft, OpenSSL, ...), 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

    
por 18.08.2011 / 21:25