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
I dettagli relativi alla keypair da generare vengono richiesti da gpg per mezzo della riga di
comando. Infatti, subito dopo aver impartito il precedente comando verrà visualizzato un
messaggio analogo al seguente
gpg (GnuPG) 1.4.2.2; Copyright (C) 2005 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)
(5) RSA (sign only)
Your selection? _
|
È possibile che venga visualizzato anche un messaggio relativo all’impossibilità di raggiungere la directory ~/.gnupg nella quale vengono memorizzate per default tutte le informazioni relative a gpg. Per ovviare tale problematica è sufficiente creare la directory ~/.gnupg. |
|
Una keypair DSA può avere una lunghezza massima di 1 024 bit, mentre una keypair ElGamal può avere anche lunghezza superiore. Quindi, scegliendo di generare chiavi 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. |
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 che aumentano l’entropia del sistema come premere dei tasti a caso sulla tastira, muovere il mouse, accedere al disco, ... in maniera da 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.
Infine gpg visualizzerà un messaggio del tipo
public and secret key created and signed. key marked as ultimately trusted. pub 1024D/8D267827 2005-01-02 [expires: 2006-01-02] Key fingerprint = 6EEC 205F 3577 A542 9F65 2C03 9996 B5F3 8D26 7827 uid Daniele Masini (daniele) <d.masini@tiscali.it> sub 1024g/73FAA737 2005-01-02 [expires: 2006-01-02]
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 i messaggi (sign only) ed una secondaria (sub), ElGamal, usata per operazioni di cifratura/decifratura.
Per ogni keypair vengono visualizzati il tipo (pub indica la keypair primaria e sub quelle secondarie), la relativa lunghezza (nel caso mostrato 1024 bit), la tipologia di algoritmo a cui si riferisce la keypair stessa (D indica una keypair DSA e g una ElGamal), l’identificatore univoco della keypair (ID) generato automaticamente da gpg (nel caso riportato 8D267827 per la keypair DSA e 73FAA737 per quella ElGamal), la data di creazione e quella di scadenza. Per la keypair primaria è riportato anche il riferimento dell’utente e dell’indirizzo e-mail al quale essa è associata (uid).
L’elenco delle chiavi pubbliche presenti nel proprio keyring può essere visualizzato con il comando
$ gpg --list-public-keys
che visualizzerà delle indicazioni analoghe a quelle di seguito riportate
/home/daniele/.gnupg/pubring.gpg ----------------------------------------- pub 1024D/8D267827 2005-01-02 [expires: 2006-01-02] uid Daniele Masini (daniele) <d.masini@tiscali.it> sub 1024g/73FAA737 2005-01-02 [expires: 2006-01-02]
In maniera analoga è possibile visualizzare l’elenco delle hiavi private presenti nel proprio keyring, per mezzo del comando
$ gpg --list-secret-keys
che visualizzerà delle indicazioni analoghe a quelle di seguito riportate
/home/daniele/.gnupg/secring.gpg -------------------------------- sec 1024D/8D267827 2005-01-02 [expires: 2006-01-02] uid Daniele Masini (daniele) <d.masini@tiscali.it> ssb 1024g/73FAA737 2005-01-02