GnuPG utilizza la crittografia a chiave pubblica simmetrica + per file di grandi dimensioni?

6

Recentemente, ho bisogno di crittografare alcuni file di grandi dimensioni. Ho la possibilità di utilizzare l'utilità della riga di comando di OpenSSL, tuttavia preferisco usare GnuPG.

  1. In che modo GnuPG funziona sotto il cofano con l'opzione --encrypt ? Genera prima la chiave simmetrica, quindi la crittografa con la chiave pubblica? O è solo la crittografia asimmetrica, che è pesante sulle prestazioni?

  2. Se genera prima una chiave simmetrica, che poi viene crittografata utilizzando la chiave pubblica in seguito (asimmetrica), quale algoritmo utilizza per crittografare i dati simmetricamente?

Il metodo di crittografia di cui sto facendo una domanda (crittografia simmetrica + asimmetrica) viene a volte indicato come "crittografia ibrida" o con l'uso di "chiave di sessione".

Non ho trovato nessuna informazione simile da nessuna parte e scavare attraverso il codice è un problema.

    
posta Mike Cors 14.06.2017 - 21:49
fonte

2 risposte

6

OpenPGP applica sempre la crittografia ibrida (non importa quanto piccolo sia il file / messaggio), quindi crittografa il messaggio utilizzando la crittografia simmetrica e una chiave di sessione, che viene nuovamente crittografata utilizzando una o più chiavi pubbliche e crittografia asimmetrica (una volta per ciascun destinatario ). Infatti, anche la crittografia simmetrica può essere utilizzata nuovamente per la chiave di sessione, se si aggiunge anche una passphrase (è possibile crittografare combinando una passphrase e le chiavi pubbliche allo stesso tempo, in modo che una passphrase o la chiave privata corrispondente possano decodificare il messaggio ).

La struttura (molto semplificata) di un messaggio OpenPGP è più o meno

Non c'è alcuna differenza tra crittografare file e messaggi in OpenPGP, magari a parte i messaggi che non hanno un nome file allegato. I pacchetti e gli algoritmi utilizzati sono esattamente gli stessi.

Discutere degli algoritmi usati è un po ' più complicato e dipende dalla versione di GnuPG, dalle preferenze impostate sulla crittografia del computer e dalle preferenze impostate dal proprietario della chiave del destinatario. Il modo semplice per determinare cosa viene utilizzato è eseguire gpg --list-packets , che fornisce la struttura a pacchetto completo (leggere RFC 4880 aiuta a capire l'output, e imparerai molto su come OpenPGP funziona dietro le quinte), spesso aggiungendo uno o due Le opzioni -v sono sufficienti e forniscono un output testuale più facile da leggere e comprendere.

    
risposta data 14.06.2017 - 22:37
fonte
1

Questa è "crittografia ibrida".

Il formato file è chiamato "OpenPGP" ed è descritto in RFC 4880 . È una struttura con sotto-elementi chiamati "pacchetti". La crittografia dei dati collettivi utilizza la crittografia simmetrica , mentre la chiave simmetrica sarebbe a sua volta crittografata con la chiave pubblica asimmetrica del destinatario ( RSA, ElGamal ...) in un pacchetto chiave di sessione crittografato a chiave pubblica .

Questo schema consente una crittografia efficiente con diversi destinatari: i dati vengono crittografati una volta con una chiave simmetrica e tale chiave viene crittografata con ciascuna chiave pubblica del destinatario.

    
risposta data 14.06.2017 - 22:10
fonte

Leggi altre domande sui tag