Cifrare e decifrare documenti

Chiave pubblica e privata hanno ognuna uno specifico ruolo nella codifica e decodifica di documenti. Una chiave pubblica può essere vista come una cassaforte aperta. Quando un corrispondente cripta un documento utilizzando una chiave pubblica, quel documento viene messo nella cassaforte, la cassaforte viene chiusa ed il lucchetto a combinazione fatto girare diverse volte. La chiave privata corrispondente è la combinazione che può riaprire la cassaforte e recuperare il documento. In altre parole, solo la persona che detiene la chiave privata può recuperare un documento cifrato utilizzando la chiave pubblica corrispondente.

La procedura per criptare e decriptare documenti è banale con questo modello mentale. Se si desidera cifrare un messaggio per Alice, lo si cripta utilizzando la chiave pubblica di Alice e lei lo decripterà con la sua chiave privata. Se Alice vuole spedirvi un messaggio, lo cripterà utilizzando la vostra chiave pubblica e voi lo decripterete con la vostra chiave privata.

Per cifrare un documento viene utilizzata l'opzione --encrypt. È necessario possedere le chiavi pubbliche dei destinatari a cui si intende spedire il messaggio. Il programma si aspetta il nome del documento da cifrare come ingresso; se omesso, legge lo standard input. Il risultato cifrato è stampato sullo standard output oppure dove specificato con l'opzione --output. Il documento, oltre ad essere criptato, viene compresso per ragioni di maggior sicurezza.
alice% gpg --output doc.gpg --encrypt --recipient blake@cyb.org doc
      
L'opzione --recipient viene utilizzata una sola volta per ogni destinatario e richiede un argomento extra che specifichi con quale chiave pubblica debba essere criptato il documento. Tale documento può essere decriptato solo da qualcuno in possesso di una chiave privata che complementi una delle chiave pubbliche dei destinatari. In particolare non è possibile decifrare un documento criptato da voi stessi, a meno che non abbiate incluso la vostra chiave pubblica nella lista dei destinatari.

Per decriptare un messaggio si usa l'opzione --decrypt. È necessario possedere la chiave privata con la quale era stato cifrato il messaggio. Analogamente al processo di cifratura, il documento da decifrare è l'ingresso e quello decifrato è l'uscita.

blake% gpg --output doc --decrypt doc.gpg

Ti serve una passphrase per sbloccare la chiave segreta
dell'utente: "Blake (esecutore) <blake@cyb.org>"
chiave ELG-E di 1024 bit, ID 5C8CBD41, creata il 1999-06-04 (key ID principale 9E98BC16)

Inserisci la passphrase:
    

I documenti posso anche essere criptati senza l'utilizzo della crittografia a chiave pubblica. Al suo posto è possibile utilizzare un algoritmo di crittografia simmetrico per cifrare il documento. La chiave fornita all'algoritmo simmetrico viene derivata da una frase d'ordine fornita al momento in cui il documento viene criptato e, per una buona sicurezza, non dovrebbe essere la stessa passphrase utilizzata per proteggere la propria chiave privata. La cifratura simmetrica è utile per rendere sicuri i propri documenti quando non è necessario comunicare ad altri la parola d'ordine utilizzata. Un documento può essere criptato con un algoritmo simmetrico utilizzando l'opzione --symmetric.

alice% gpg --output doc.gpg --symmetric doc
Inserisci la passphrase: