Por que a criptografia RSA se tornou popular na troca de chaves?

16

Esta é uma pergunta suave. Não sei muito sobre criptografia ou seu histórico, mas parece que um uso comum do RSA é fazer a troca de chaves criptografando uma chave simétrica para enviar uma mensagem mais longa (por exemplo, a descrição do iMessage aqui ). Não é exatamente isso que a troca de chaves Diffie-Hellman, que é mais antiga (e para mim parece mais simples) serve? Olhando para a Wikipedia, eles também foram patenteados, então isso não teria sido responsável pela escolha.

Para deixar claro, não estou perguntando se é teoricamente importante que a criptografia de chave pública seja possível. Estou perguntando por que ele se tornou um método padrão na prática para realizar trocas de chaves. (Para um não criptografador, o DH parece mais fácil de implementar e também não está vinculado aos detalhes do grupo usado.)

Louis
fonte
3
O RSA também pode ser usado para transmissão segura de chaves nos casos em que um protocolo de troca de chaves interativo como o DH é impossível, como quando apenas um link de sentido único está disponível ou quando os tempos de comunicação de ida e volta são excessivos. Os casos de uso como um email criptografado favorecem essas abordagens, pois o computador do destinatário pode não estar conectado à Internet no momento em que você deseja enviar a mensagem e, portanto, não pode participar de uma troca de chaves interativa.
305687 Kevin Smithcart
Você está perguntando por que se tornou popular para troca de chaves ou em geral?
OrangeDog
@KevinCathcart DH não é necessariamente interativo. O remetente pode criar um par de chaves de uso único e enviar a chave pública ao longo da mensagem. Essa abordagem é a base da criptografia ECIES / DLIES e ElGamal. Isso tem uma sobrecarga de tamanho leve (128 bytes para uma chave de 1024 bits).
CodesInChaos
@CodesInChaos: Mas nenhum deles é um algoritmo de troca de chaves. Depois de passar da troca de chaves para a criptografia de chave pública completa, a escolha do problema difícil de reverter subjacente não afeta as preocupações operacionais, como garantir que o remetente tenha uma cópia da chave pública do destinatário. Entendi a pergunta: "Por que costumamos usar criptografia de chave pública para trocar chaves e não apenas um algoritmo de troca de chaves, que geralmente é mais simples?". Obviamente, basicamente qualquer algoritmo de chave pública pode ser usado para estabelecer um segredo compartilhado em um canal não interativo.
Kevin Cathcart

Respostas:

14

Não há uma forte razão técnica. Poderíamos ter usado Diffie-Hellman (com assinaturas apropriadas) tão bem quanto a RSA.

Então, por que a RSA? Tanto quanto posso dizer, razões históricas não técnicas dominaram. A RSA foi patenteada e havia uma empresa por trás dela, fazendo marketing e defendendo a RSA. Além disso, havia boas bibliotecas, e o RSA era fácil de entender e familiar aos desenvolvedores. Por esses motivos, a RSA foi escolhida e, uma vez que era a escolha popular, permaneceu assim devido à inércia.

Hoje em dia, o principal driver que causou um aumento no uso do Diffie-Hellman é o desejo de sigilo direto perfeito, algo que é fácil de obter usando o Diffie-Hellman, mas é mais lento com o RSA.

Aliás: é a troca de chaves Diffie-Hellman, não o compartilhamento secreto de Diffie-Hellman. O compartilhamento secreto é algo totalmente diferente.

DW
fonte
2
Eu pensei que as patentes eram mais um motivo para evitar a RSA?
user1686
@grawity que depende de como o detentor da patente se comporta; e, há uma geração, os detentores de patentes de tecnologia não se desonraram coletivamente por meio de leis em larga escala e de longa duração, na medida em que aconteceram durante as guerras com smartphones ou remoções de patentes em massa de pequenas empresas.
Dan Neely
10

Diffie – Hellman carece de um recurso crucial: autenticação. Você sabe que está compartilhando um segredo com alguém, mas não pode saber se é o destinatário ou um homem no meio. Com o RSA, você pode ter algumas partes confiáveis ​​que armazenam chaves públicas. Se você deseja se conectar ao seu banco, pode pedir à chave confiável do banco (digamos Verisign) a chave pública do banco, pois você já possui a chave pública da parte confiável no seu computador. Você sabe, portanto, que está compartilhando um segredo com seu banco.

Com Diffie – Hellman, quando você cria um segredo com seu banco, pode de fato criar um segredo com um homem do meio (MITM), que também cria um com seu banco, e ele só precisa traduzir de uma chave de criptografia para o outro permanece invisível (ao mesmo tempo em que consegue ler toda a comunicação).

Jacen
fonte
Obviamente, você pode usar o RSA para autenticação e depois troca de chave DH.
OrangeDog
4
pk=gskmodp
@ Kasperd: Estou surpreso que isso tenha muitos votos.
Louis
1
Você pode usar chaves Diffie-Hellman de longo prazo para autenticação (veja um exemplo de protocolo no CurveCP) ou combinar DH com assinaturas DSA / Schnorr / ElGamal (que compartilham grande parte da matemática subjacente com DH), assim como você pode combine a criptografia RSA com as assinaturas RSA.
CodesInChaos
-2

O algoritmo RSA, como mencionado anteriormente, não é muito melhor do que Diffie-Hellman; este último também não possui autenticação e os dois algoritmos dependem da dificuldade de encontrar logaritmos discretos, de modo que eles sejam bastante semelhantes em termos de segurança.

Ronak Khandelwal
fonte
2
Obrigado pela contribuição. No entanto, tudo o que você diz já foi abordado em outras respostas. Preferimos que você responda perguntas que ainda não tenham boas respostas, em vez de duplicar as respostas existentes. Além disso, o RSA depende da dificuldade do problema de fatoração (e estritamente falando sobre o problema do RSA), e não do logaritmo discreto per se, enquanto Diffie-Hellman é um sistema baseado em log discreto mais clássico (estritamente falando, ele se baseia na suposição de DDH )
DW
-3

Existe um lado sombrio nisso que não pode ser esquecido.
O fato de a RSA ter sido cooptada pela NSA.
A NSA plantou uma porta dos fundos no cyhper da curva elíptica que fornecia à RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/

John Hoffmann
fonte
1
Esta resposta é incoerente. A criptografia de curva elíptica é diferente da RSA. Portanto, um backdoor em criptografia de curva elíptica não colocaria em risco o RSA. Esta resposta está errada - não existe esse lado sombrio.
DW