La prima operazione da compiere quando si vuol utilizzare il meccanismo di cifratura offerto da GPG è quella di generare una keypair, cioè una coppia di chiavi asimmetriche: una pubblica ed una privata. Questo è possibile per mezzo del comando
$ gpg --gen-key
che indica appunto a gpg di provvedere alla creazione di una keypair. I dettagli relativi
alla keypair da generare vengono richiesti da gpg per mezzo della linea di comando. Infatti
subito dopo aver impartito il comando verrà visualizzato un messaggio analogo al
seguente
gpg (GnuPG) 1.2.6; Copyright (C) 2004 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Please select what kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(4) RSA (sign only)
Your selection? _
|
È possibile che venga visualizzato anche un messaggio relativo all’impossibilità di reaggiungere la directory ~/.gnupg nella uale vengono memorizzati per default tutte le informazioni relative a gpg. Per ovviare tale problematica è sufficiente interrompere l’esecuzione del comando (che comunque non andrebbe a buon fine) e creare appunto la directory ~/.gnupg. |
La generazione della keypair ha necessità di creare un bel po’ di byte casuali (per un computer la generazione di numeri casuali è impossibile: ci si deve accontentare di valori pseudocasuali) e pertanto è consigliabile che l’utente effettui, durante questa fase, un po’ di operazioni come muovere il mouse, accedere al disco, ... per garantire una più efficace generazione di valori pseudocasuali, come indica il messaggio finale di gpg
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
Quindi gpg visualizzerà un messaggio del tipo
public and secret key created and signed. key marked as ultimately trusted. pub 1024D/8D267827 2005-01-02 Daniele Masini (daniele) <d.masini@tiscali.it> Key fingerprint = 6EEC 205F 3577 A542 9F65 2C03 9996 B5F3 8D26 7827 sub 1024g/73FAA737 2005-01-02 [expires: 2006-01-02]
In realtà, in questo caso è stata scelta l’opzione di default riguardo al tipo di keypair da generare (DSA e ElGamal) e pertanto sono state generate due keypair: una primaria (pub) (DSA) che serve soltanto per firmare (sign only) ed una secondaria (sub) (ElGamal) usata per operazioni di cifratura/decifratura. Inoltre, una keypair DSA può avere una lunghezza massima di 1.024 bit, mentre una keypair ElGamal può avere anche lunghezza superiore. Quindi se si è scelto di generare keypair con una lunghezza di 2.048 bit, la keypair DSA avrà una lunghezza di 1.024 bit, mentre la keypair ElGamal sarà effettivamente lunga 2.048 bit.
Per ogni keypair vengono visualizzati il tipo (pub indica la keypair primaria e sub quelle secondarie), la relativa lunghezza (nel caso mostrato 1.024 bit), la tipologia di algoritmo a cui si riferisce la keypair stessa (D indica una keypair DSA e g una ElGamal utilizzata per la cifratura/decifratura), l’identificatore univoco della keypair generato automaticamente da gnupg (nel caso riportato 8D267827 per la keypair DSA e 73FAA737 per quella ElGamal) e la data di creazione. Per la keypair primaria è riportato anche il riferimento dell’utente e dell’indirizzo e-mail al quale essa è associata.
I riferimenti alle chiavi pubbliche relative alle keypair generate potranno essere visualizzati con il comando
$ gpg --list-keys
che visualizzerà delle indicazioni analoghe a quelle di seguito riportate
/home/daniele/.gnupg/pubring.gpg ----------------------------------------- pub 1024D/8D267827 2005-01-02 Daniele Masini (daniele) <d.masini@tiscali.it> sub 1024g/73FAA737 2005-01-02 [expires: 2006-01-02]
Ad una chiave primaria pubblica è anche associata un’impronta digitale o fingerprint ... Essa è visualizzabile per mezzo del comando
$ gpg --fingerprint
che mostrerà delle indicazioni analoghe a quelle di seguito riportate
/home/daniele/.gnupg/pubring.gpg ----------------------------------------- pub 1024D/8D267827 2005-01-02 Daniele Masini (daniele) <d.masini@tiscali.it> Key fingerprint = 6EEC 205F 3577 A542 9F65 2C03 9996 B5F3 8D26 7827 sub 1024g/73FAA737 2005-01-02 [expires: 2006-01-02]