Perché la crittografia RSA è diventata popolare per lo scambio di chiavi?


16

Questa è una domanda delicata. Non so molto sulla crittografia o sulla sua storia, ma sembra che un uso comune per RSA sia fare lo scambio di chiavi crittografando una chiave simmetrica per inviare un messaggio più lungo (ad esempio, la descrizione di iMessage qui ). Non è esattamente questo lo scambio di chiavi Diffie-Hellman, che è più vecchio (e per me sembra più semplice)? Guardando Wikipedia, erano entrambi entrambi brevettati, quindi questo non sarebbe stato responsabile della scelta.

Per essere chiari, non sto chiedendo se sia teoricamente importante che la crittografia a chiave pubblica sia possibile. Sto chiedendo perché è diventato in pratica un metodo standard per lo scambio di chiavi. (Per un non crittografo, DH sembra più facile da implementare e non è legato ai dettagli del gruppo utilizzato.)



3
RSA può essere utilizzato anche per la trasmissione sicura delle chiavi nei casi in cui un protocollo interattivo di scambio di chiavi come DH è impossibile, ad esempio quando è disponibile solo un collegamento unidirezionale o quando i tempi di comunicazione di andata e ritorno sono eccessivi. I casi di utilizzo di tali e-mail crittografate favoriscono tali approcci, poiché il computer del destinatario potrebbe non essere collegato a Internet nel momento in cui si desidera inviare il messaggio, quindi non è possibile partecipare a uno scambio di chiavi interattivo.
Kevin Cathcart,

Stai chiedendo perché è diventato popolare per lo scambio di chiavi, o in generale?
OrangeDog

@KevinCathcart DH non è necessariamente interattivo. Il mittente può creare una coppia di chiavi monouso e inviare la chiave pubblica lungo il messaggio. Tale approccio è alla base della crittografia ECIES / DLIES e ElGamal. Ha un sovraccarico di dimensioni ridotte (128 byte per una chiave a 1024 bit).
CodesInChaos

@CodesInChaos: Ma nessuno di questi sono algoritmi di scambio di chiavi. Una volta passato dallo scambio di chiavi alla crittografia a chiave pubblica a tutti gli effetti, la scelta del problema difficile da annullare a fondo non influisce su preoccupazioni operative come garantire che il mittente abbia una copia della chiave pubblica del destinatario. Ho capito la domanda da porsi: "Perché spesso usiamo la crittografia a chiave pubblica per scambiare le chiavi piuttosto che solo un algoritmo di scambio delle chiavi, che è spesso più semplice?". Ovviamente, praticamente qualsiasi algoritmo a chiave pubblica può essere utilizzato per stabilire un segreto condiviso su un canale non interattivo.
Kevin Cathcart,

Risposte:


14

Non esiste una forte ragione tecnica. Avremmo potuto usare Diffie-Hellman (con le firme appropriate) e RSA.

Allora perché RSA? Per quanto ne so, dominarono ragioni storiche non tecniche. RSA è stata brevettata e dietro di essa c'era un'azienda che commercializzava e sosteneva RSA. Inoltre, c'erano buone librerie e RSA era facile da capire e familiare agli sviluppatori. Per questi motivi, RSA è stata scelta e, una volta scelta popolare, è rimasta tale a causa dell'inerzia.

In questi giorni, il driver principale che ha causato un aumento dell'uso di Diffie-Hellman è il desiderio di un perfetto segreto in avanti, cosa che è facile da ottenere usando Diffie-Hellman ma è più lento con RSA.

Per inciso: è lo scambio di chiavi Diffie-Hellman, non la condivisione segreta di Diffie-Hellman. La condivisione segreta è qualcos'altro.


2
Pensavo che i brevetti fossero più una ragione per evitare RSA?
user1686

@grawity che dipende da come si comporta il titolare del brevetto; e una generazione fa i detentori di brevetti tecnologici non si erano disonestati collettivamente tramite una legge su larga scala e di lunga durata nella misura in cui avvenivano durante le guerre di smartphone o la traina di brevetti di piccole aziende di massa.
Dan Neely,

10

Diffie-Hellman non ha una caratteristica cruciale: l'autenticazione. Sai che stai condividendo un segreto con qualcuno, ma non puoi sapere se è il destinatario o un uomo nel mezzo. Con RSA, potresti avere alcune parti fidate che memorizzano le chiavi pubbliche. Se vuoi connetterti alla tua banca, puoi chiedere alla parte fidata (diciamo Verisign) la chiave pubblica della banca, poiché hai già la chiave pubblica della parte fidata sul tuo computer. Sai quindi che stai condividendo un segreto con la tua banca.

Con Diffie-Hellman, quando crei un segreto con la tua banca, puoi in effetti creare un segreto con un uomo nel mezzo (MITM), che crea anche uno con la tua banca, e deve solo tradurre da una chiave di crittografia a l'altro per rimanere invisibile (pur essendo in grado di leggere l'intera comunicazione).


Ovviamente puoi usare RSA per l'autenticazione e quindi lo scambio di chiavi DH.
OrangeDog

4
pK=gSKmodp

@kasperd: sono sorpreso che abbia così tanti voti positivi.
Louis,

1
Puoi usare le chiavi Diffie-Hellman a lungo termine per l'autenticazione (guarda CurveCP per un protocollo di esempio) oppure puoi combinare DH con le firme DSA / Schnorr / ElGamal (che condividono molta della matematica sottostante con DH), proprio come puoi combinare la crittografia RSA con le firme RSA.
CodesInChaos

-2

L'algoritmo RSA, come accennato in precedenza, non è molto meglio di Diffie-Hellman, quest'ultimo manca solo di autenticazione, inoltre entrambi gli algoritmi dipendono dalla difficoltà nel trovare logaritmi discreti, quindi per quanto riguarda la sicurezza sono entrambi abbastanza simili.


2
Grazie per il contributo Tuttavia, tutto ciò che dici è già stato trattato in altre risposte. Preferiremmo che tu rispondessi a domande che non hanno già buone risposte, piuttosto che duplicare le risposte esistenti. Inoltre, RSA dipende dalla difficoltà del problema di factoring (e strettamente parlando del problema RSA) piuttosto che dal logaritmo discreto di per sé, mentre Diffie-Hellman è un sistema di log discreto più classico (strettamente parlando, si basa sul presupposto DDH ).
DW

-3

C'è un lato oscuro in questo che non può essere trascurato.
Il fatto che la RSA sia stata cooptata dalla NSA.
L'NSA ha piantato una backdoor nel cyper Eliptic Curve che ha fornito alla RSA.
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/


1
Questa risposta è incoerente. La crittografia della curva ellittica è diversa da RSA. Quindi una backdoor in crittografia a curva ellittica non metterebbe in pericolo RSA. Questa risposta è sbagliata: non esiste un lato così oscuro.
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.