Come fa il comando di decrittografia gpg a sapere quale chiave in un portachiavi usare

2

Non capisco come il comando gpg possa sapere quale chiave in un portachiavi usare per la decodifica. Ad esempio, un portachiavi può avere più chiavi. Quando un file crittografato deve essere decrittografato, è sufficiente aggiungere i comandi --homedir e --keyring alla riga di comando pgp. Ma come fa Pgp a sapere quale chiave particolare si trova nel portachiavi? Grazie in anticipo!

    
posta K.L 08.04.2018 - 04:01
fonte

2 risposte

6

Il formato PGP ha un'intestazione che elenca l'ID della chiave. Puoi leggere questo dettaglio in RFC 2440 sezione 5.1.

The body of this packet consists of:

  • A one-octet number giving the version number of the packet type. The currently defined value for packet version is 3. An implementation should accept, but not generate a version of 2, which is equivalent to V3 in all other respects.

  • An eight-octet number that gives the key ID of the public key that the session key is encrypted to.

Questa intestazione può contenere più ID della chiave del destinatario .

    
risposta data 08.04.2018 - 05:03
fonte
2

Se un messaggio viene crittografato con GPG utilizzando il flag --hidden-recipient (o -R ), decifrare il messaggio comporta il looping di ciascuna chiave privata nella suoneria del destinatario, richiedendo un passaggio a ciascuno e tentando di decrittografare il messaggio fino a quando uno di loro lavora. Al contrario, e più al punto della tua domanda, ciò che fa questa bandiera è omettere un campo opzionale che rivela la chiave ID del destinatario in bella vista. GPG guarda prima a quel campo e, se hai una chiave corrispondente, sa di usarlo.

    
risposta data 08.04.2018 - 05:10
fonte

Leggi altre domande sui tag