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.)



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.


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).


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.


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/


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.