it-swarm.it

Crittografia asimmetrica vs simmetrica

Attualmente sto prendendo un principio di classe di sicurezza delle informazioni. Mentre parlano di diversi metodi di crittografia, un gran numero di miei compagni di classe sembra credere che la crittografia asimmetrica sia migliore (più sicura) della crittografia simmetrica. Un'affermazione tipica è qualcosa del genere:

Gli schemi di crittografia generalmente asimmetrici sono più sicuri perché richiedono sia una chiave pubblica che una chiave privata.

Certamente con la crittografia simmetrica devi preoccuparti dello scambio sicuro di chiavi, ma per quanto ne so non c'è motivo intrinseco per cui uno debba essere più sicuro dell'altro.

Soprattutto dato che la parte asimmetrica viene spesso utilizzata solo per lo scambio di chiavi e quindi i dati effettivi vengono crittografati con un algoritmo simmetrico.

Quindi, mi sto perdendo qualcosa o può davvero essere fatta una dichiarazione generale come questa che è più sicura.


Quindi, se ho un messaggio crittografato con AES e un'altra copia crittografata con RSA e tutte le altre cose sono uguali, che è più probabile che vengano violate. Questo confronto può anche essere fatto?

56
matthew

C'è un senso in cui è possibile definire la forza di un particolare algoritmo di crittografia¹: in termini approssimativi, la forza è il numero di tentativi che devono essere fatti per interrompere la crittografia. Più precisamente, la forza è la quantità di calcolo che deve essere fatto per trovare il segreto. Idealmente, la forza di un algoritmo è il numero di tentativi di forza bruta che devono essere fatti (ponderati dalla complessità di ciascun tentativo o ridotti se un qualche tipo di parallelizzazione consente molteplici tentativi di condividere parte del lavoro); man mano che gli attacchi all'algoritmo migliorano, la forza effettiva diminuisce.

È importante rendersi conto che "un particolare algoritmo di crittografia" include la considerazione di una specifica dimensione della chiave. Cioè, non stai lanciando RSA contro AES, ma RSA a 1024 bit (con una modalità di riempimento specifica) con AES-256 (con una modalità di concatenamento specifica, IV, ecc.). In tal senso, puoi chiedere: se ho una copia dei miei dati crittografata con l'algoritmo A con i valori indicati dei parametri P e Q (in particolare la dimensione della chiave) e una copia crittografata con l'algoritmo B con i parametri P e R, quindi quale di (A, Pval₁, Qval₁) e (B, Pval₂, Rval₂) è probabile che venga prima rotto?

In pratica, molti protocolli prevedono l'uso di più primitive crittografiche. Primitive diverse hanno diversi possibili usi e anche quando più primitive possono svolgere una determinata funzione, può essercene una più adatta di altre. Quando si sceglie una primitiva crittografica per un determinato scopo, il processo decisionale va in questo modo:

  1. Quali algoritmi possono fare il lavoro? → Posso usare A o B o C.
  2. Di quale forza ho bisogno? → Voglio 2N operazioni, quindi ho bisogno della chiave taglia LUN per primitiva A, LB per primitiva B, LC per C. primitivo.
  3. Dati i miei vincoli (velocità bruta, latenza, efficienza della memoria, ...), quali di questi (LUN-bit A o LB-bit B o LC-bit C) è il migliore?

Ad esempio, supponiamo che il tuo requisito sia un protocollo per lo scambio di dati con una parte di cui non ti fidi. Quindi la crittografia simmetrica non può svolgere il lavoro da sola: è necessario un modo per condividere la chiave. La crittografia asimmetrica come RSA può fare il lavoro, se si consente alle parti di scambiare le chiavi pubbliche in anticipo. (Questa non è l'unica possibilità, ma non entrerò nei dettagli qui.) Quindi puoi decidere quale lunghezza della chiave RSA ha la forza giusta per la tua applicazione. Tuttavia RSA è lento e ingombrante (ad esempio non esistono protocolli standard per applicare la crittografia RSA a un flusso, principalmente perché nessuno si è preoccupato perché sarebbero così lenti). Molti protocolli comuni che coinvolgono la crittografia a chiave pubblica lo usano solo per scambiare un segreto di durata limitata: una chiave di sessione per alcuni algoritmi di crittografia simmetrica. Questo è noto come crittografia ibrida . Ancora una volta, scegli la lunghezza della chiave di sessione in base alla forza desiderata. In questo scenario, i due primitivi coinvolti tendono ad avere la stessa forza.

¹ La stessa nozione si applica ad altri usi della crittografia, come la firma o l'hashing.

La crittografia simmetrica e asimmetrica sono operazioni distinte che operano in contesti distinti, per usi distinti e modelli di attacco distinti. Non ha molto senso affermare che uno dei due è "più sicuro" dell'altro (richiederebbe prima un qualche tipo di misura quantificata di sicurezza, che non è facile da definire).

La crittografia asimmetrica è più impegnativa : si tratta di realizzare la crittografia e essere in grado di pubblicare i modi per crittografare (il pubblico chiave) senza rivelare i modi per decrittografare (la chiave privata). Un'implementazione pratica ha bisogno di matematica, mentre la crittografia simmetrica consiste principalmente nel confondere le cose (sia chiaro, è difficile fare un buon lavoro di rimescolamento; tuttavia, sono coinvolti meno matematica).

I sistemi comunemente distribuiti (ad es. SSL/TLS ) combinano la crittografia asimmetrica e la crittografia simmetrica (e anche alcune altre cose) in protocolli che svolgono un determinato lavoro (ad es. " tunnel bidirezionale con riservatezza, integrità e autenticazione ").

29
Thomas Pornin

La scelta tra crittografia simmetrica e asimmetrica dipende dal caso d'uso.

La crittografia simmetrica viene utilizzata per condividere informazioni tra un gruppo di persone a cui tutti devono accedervi. Inoltre la crittografia simmetrica è piacevole perché è più facile da capire (meno probabilità di incasinarla) e gli algoritmi tendono ad essere più veloci.

La crittografia asimmetrica viene utilizzata quando un gran numero di sottoinsiemi di persone deve essere in grado di condividere informazioni. Inoltre, la crittografia asimmetrica può essere utilizzata al contrario per firmare documenti. Ciò è particolarmente interessante perché consente alle persone di certificare che una chiave pubblica appartiene a una determinata persona.

In un set di 10 persone, che consente a ogni coppia di persone di comunicare in modo sicuro, sono necessari 45 tasti univoci (9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1). E ora pensa a Internet anziché al piccolo set di 10 persone. È ovvio che questo non può essere gestito con chiavi simmetriche.

Nel mondo reale entrambi i tipi sono spesso combinati. Un approccio asimmetrico viene utilizzato per confermare l'identità di un partner di comunicazione e per trasmettere qualcosa che risulterà in una chiave simmetrica. Questa chiave simmetrica viene quindi utilizzata per la crittografia performante dei dati effettivi.

21

Gli schemi di crittografia generalmente asimmetrici sono più sicuri perché richiedono sia una chiave pubblica che una chiave privata.

No. Non puoi dirlo. Questo è baloney. Non è vero.

La forza è indipendente da simmetrica vs asimmetrica. La crittografia simmetrica e la crittografia asimmetrica sono due diversi tipi di strumento crittografico. Ognuno può essere debole o forte, a seconda. Non c'è alcun motivo per cui la crittografia asimmetrica sia necessariamente più forte della crittografia simmetrica.

Per esempio:

  • AES è più sicuro contro gli attacchi crittoanalitici rispetto a RSA a 512 bit, anche se RSA è asimmetrico e AES è simmetrico.

  • RSA a 4096 bit è più sicuro contro gli attacchi crittoanalitici rispetto a RC4 a 40 bit, anche se RC4 è simmetrico e RSA è asimmetrico.

14
D.W.

Sono d'accordo con quanto affermato in precedenza da Thomas. Sia la crittografia simmetrica che asimmetrica sono operazioni distinte.

La crittografia simmetrica è meno costosa della crittografia asimmetrica. Costoso come in esso richiede meno elaborazione. Per l'esattezza, mi riferisco al processo di decodifica.

Ed è per questo che SSL/TLS utilizza una combinazione di crittografia sia simmetrica che asimmetrica. La crittografia/decrittografia asimmetrica tra due peer durante una transazione SSL/TLS avviene solo durante l'handshake iniziale. Una volta che entrambi i peer hanno concordato una chiave privata condivisa, il resto della comunicazione utilizzerà la crittografia simmetrica. In questo modo, l'unica operazione costosa avrà luogo durante la stretta di mano iniziale e il resto della comunicazione utilizzerà la crittografia simmetrica che richiede meno risorse.

4