Quando dovrei usare la crittografia simmetrica invece di RSA?

5

Attualmente sto usando le chiavi GPG RSA per crittografare i file binari. Molte persone consigliano di utilizzare chiavi simmetriche per crittografare file di grandi dimensioni e quindi crittografare la chiave simmetrica con una chiave pubblica.

A quale dimensione del file dovrei passare da RSA a qualcosa come AES? È arbitrario? Ci sono problemi di sicurezza con l'utilizzo di GPG / RSA su file di grandi dimensioni (gigabyte)? Sono consapevole che RSA è molto più lento / più grande, mi chiedo solo se ci fossero altri problemi.

È molto meno complicato crittografare direttamente utilizzando RSA anche se richiede più tempo, che generare nuove chiavi AES simmetriche, crittografare il file, crittografare le chiavi tramite RSA e quindi memorizzare i tasti AES ogni volta che crittogrado i miei file , ecco perché sto chiedendo perché dovrei usarlo.

    
posta Kausheel 28.03.2014 - 14:23
fonte

4 risposte

3

Qualsiasi dimensione del file davvero. La crittografia simmetrica offre generalmente un livello di sicurezza molto più elevato per una determinata lunghezza della chiave. Questo è il motivo per cui possiamo usare algoritmi simmetrici a 128 bit, ma dobbiamo usare algoritmi asimmetrici a 1024 o 2048 bit. Ci sono anche alcuni attacchi che rendono più facile capire alcuni algoritmi asimmetrici se si ha una grande quantità di dati strutturati crittografati con loro. Inoltre, gli algoritmi simmetrici sono FAR più veloci da eseguire e gli algoritmi asimmetrici non offrono ulteriori vantaggi durante la protezione dei file.

Hai bisogno solo di crittografia asimmetrica quando hai bisogno di scambiare informazioni con un particolare individuo con cui non hai una chiave scambiata (e anche allora, usi simmetric e cripta la chiave in modo asimmetrico normalmente) o quando devi firmare qualcosa (nel qual caso si cripta il valore hash in modo asimmetrico).

La crittografia asimmetrica dovrebbe quasi sempre essere utilizzata sulla più piccola quantità possibile di informazioni sia per motivi di sicurezza che di efficienza. Questo è, in effetti, ciò su cui si basano molti, se non la maggior parte, protocolli consolidati che utilizzano la crittografia asimmetrica.

    
risposta data 28.03.2014 - 14:28
fonte
5

Questa non è una questione di taglia .

L'algoritmo di crittografia asimmetrico grezzo noto come RSA può eseguire la crittografia asimmetrica per un "messaggio" in uno spazio piuttosto limitato; Ovvero, con una chiave RSA a 2048 bit e la crittografia RSA v1.5 PKCS # 1, l'algoritmo può elaborare al massimo una sequenza di byte fino a 245 byte.

Ma tu mai usi l'algoritmo grezzo. Usi un protocollo , in questo caso OpenPGP , che definisce gli algoritmi da utilizzare e dove ciascuno il byte va In OpenPGP, quando il destinatario ha una coppia di chiavi pubblica / privata e vuoi crittografare il tuo messaggio "con la chiave pubblica" (cioè vuoi che il messaggio sia illeggibile tranne che da chiunque conosca la chiave privata corrispondente), allora invochi il tuo OpenPGP -compatibile software che seguirà le regole di OpenPGP - e queste regole sono che la crittografia simmetrica è sempre usata: il software genera una chiave simmetrica casuale K , crittografa il messaggio stesso con un algoritmo simmetrico usando K come chiave, quindi crittografa K (non il messaggio) con la chiave pubblica RSA del destinatario. Non devi scegliere, e non puoi scegliere: questo è il modo in cui funziona OpenPGP.

Progettare il proprio protocollo sicuro e quindi implementarlo in modo sicuro , sono due compiti incredibilmente difficili ("incredibilmente" perché la gente non ci crede) così la cosa intelligente non è farlo da soli, ma utilizzare un protocollo esistente (ad esempio OpenPGP) e le implementazioni esistenti di quel protocollo (ad esempio GnuPG ) . In questo senso, non dovresti porci questa domanda.

    
risposta data 28.03.2014 - 14:34
fonte
2

PGP, GPG, SSH e molti sistemi a chiave pubblica utilizzano già internamente algoritmi simmetrici .

Internamente, quando si cripta con una chiave pubblica, il software / hardware prima genera una chiave simmetrica e crittografa i dati con l'algoritmo simmetrico. E poi crittografa quella chiave simmetrica con la chiave pubblica (usando un algoritmo asimmetrico) e memorizza la chiave simmetrica cifrata all'interno del testo cifrato. Dall'altra parte, il destinatario ha bisogno della chiave segreta per decrittografare la chiave simmetrica memorizzata con il testo cifrato e quindi utilizzare la chiave simmetrica per decifrare il testo cifrato e recuperare il messaggio. In tutti questi passaggi, gli unici elementi che gli utenti vedono sono: chiavi pubbliche, testo in chiaro, testo cifrato, chiavi segrete. La chiave simmetrica e la crittografia sono tutte interne e mai esposte agli utenti. In questo modo, ottieni i vantaggi di algoritmi asimmetrici (essendo in grado di crittografare più persone con chiavi pubbliche), ma anche la velocità degli algoritmi simmetrici.

Questo è anche il motivo per cui quando si modificano le password delle chiavi GPG / PGP, è ancora possibile decodificare i file crittografati con la chiave pubblica in precedenza. La chiave è effettivamente memorizzata nel file ed è l'unica parte che è veramente crittografata con pura bontà della chiave pubblica!

    
risposta data 28.03.2014 - 21:01
fonte
0

I'm currently using GPG RSA keys to encrypt binary files. Many people recommend using symmetric keys to encrypt large files, and then encrypt the symmetric key with a public key.

Questo è noto come cryptosystem ibrido ed è il modo in cui di solito viene fatto, in particolare quando le dimensioni dei dati diventano più grandi. La crittografia simmetrica per sua stessa natura sarà sempre più veloce di qualsiasi schema asimmetrico .

Are there any security concerns with using GPG/RSA on massive files (GB's)? I'm aware that RSA is much slower/larger, I'm just wondering if there were any other issues.

Bene, un problema potrebbe essere la natura deterministica di RSA . Se si cripta lo stesso testo in chiaro utilizzando la stessa chiave più volte, è possibile consentire a un utente malintenzionato di eseguire attacchi con testo in chiaro . Certamente puoi modificare RSA in modo non deterministico, ma perché preoccuparti e non usare solo una chiave simmetrica casuale con ogni crittografia.

Inoltre, l'approccio ibrido consente di inviare il testo cifrato a più di un solo destinatario con un sovraccarico molto piccolo . Devi solo crittografare la chiave simmetrica per ciascun destinatario, mentre la maggior parte dei dati può rimanere uguale per tutti.

It's much less hassle to encrypt directly using RSA even if it takes more time, than to generate new symmetrical keys and encrypt via RSA and then store them every time I'm encrypting my files, that's why I'm asking about why I should use it.

Questo è qualcosa che GPG si occupa automaticamente . Come invochi esattamente GPG? Perché vorresti aspettare più a lungo, se un approccio ibrido non presenta svantaggi reali?

    
risposta data 28.03.2014 - 14:31
fonte

Leggi altre domande sui tag