A PGP key has three important properties:
You get these properties with pgp –kvc <userID> (using PGP 2.6.x) or by clicking on
on Key Properties in the menu point Keys (using PGP 5.x or 6.x)
If you identify a key, you need these three key properties together with the User ID. In the User ID you find
the name of the person which generated this key.
With the old keyformat (RSA keys) you have to verify these three properties together with the userID. For keys in the new keyformat (DH/DSS keys) verifying the fingerprint and the userID is enough.
This is a kind of a checksum. It is calculated from the key. The probability for two keys having the same checksum (e.g. fingerprint) is neglectable. With the old PGP keyformat it is possible to generate an (RSA-) key with the same fingerprint as another key. In this case the key length will differ. Therefor all key properties must be compared to ensure to have the right key.
Normally such a key which was generated having a defined fingerprint will not be usable for secure communication, because it is not a product of two primes and can easily be factorized. It will also be difficult to generate the appropriate secret key. Nevertheless the key can be put on the keyservers.
A 8 octal (byte) long Number in sedecimal (hex) writing, which should identify a key. PGP shows the lower 4 octals of these 8 octals. It would be possible for two keys to have the same keyID's. There are some keys with the same keyIDs on the keyservers.
To enable PGP to distinct between a username (userID) and the key ID, the keyID is prefixed with 0x, for example 0xDD934139.
The keyservers are servers with a database of the public keys and key signatures for these public keys. These keyservers (at the moment more then 50) exchange new keys and key signatures. Therefore every server has all keys and key signatures. You can use any keyserver to search a key.
The user name, which belongs to the key. This could be any string, but by convention the userID is formatted as follows:
Format | Example |
---|---|
Name <email address> | Patrick Feisthammel <pafei@rubin.ch> |
Prior to PGP 5.0 all the keys have been stored in the keyformat version 3 (V3).
In that version the fingerprint is generated without taking the
keylength into account.
This is the reason why you have to check also the keylength if you verify
the key properties of a key.
Only RSA keys can be stored in that (V3) format. PGP 5.0 introduced a new keyformat with the version 4 (V4).
This format takes the keylength also into account to calculate the fingerprint.
So you have not to verify the keylength for keys with this new keyformat (most are DH/DSS keys).
Verifying the fingerprint and the userID is enough for these keys.
You could also store RSA key in the new keyformat V4. But today (July 1999) I'm not aware of any software supporting that. It would be impossible to use such RSA keys with the old PGP version though.
More Information: The keyformats are defined in the RFC2440.
In a Public Crypto Keysystem you need a secret and a public key. The secret key is only known to the person generating that key. The public key is distributed to anyone who interested.
In a Public Crypto Keysystem you need a secret and a public key. The public key is distributed to anyone who is interested. With a public key you can encrypt a message, which will only be readable by the key holder of the secret key.
Ever PGP user collects the public keys of other PGP users in a file which is called the key ring.
To be exact, there are two key rings. One for the public keys and one for the secret keys. The public keyring is stored in a file called pubring.pgp (PGP 2.x.x) or pubring.pkr (PGP 5.x). The secret keyring is stored in the file secring.pgp (PGP 2.6.x) or secring.skr (PGP 5.x).
The passphrase protects your secret key from access through unauthorized persons.
The passphrase should be unbreakable. A normal passwort is not sufficent. That is why it is called a passphrase.
If you want declare a key as invalid, you have to generate a key revocation Certificate.
Such a Certificate is similar to a signature for a key (a key signature).
But with this certificate the key will become invalid.
This is necessary for example if
To create such a certificate, you need the secret key and the passphrase. If you have lost the secret key or you do not remember the passphrase you can not generate new certificates. This is the reason why you should generate a key revocation certificate at the same time as you generate a new key.
An electronic signature can be compared with a handwritten signature:
She can only be from the person, which knows the handwriting (respective the secret key) |
An electronic signature is toughly binded to a document. Much more then a handwritten signature which could be done on an empty paper.
An electronic signature only fits to the document for which it has been generated. |
Every modification of the document makes the signature invalid.
You can also sign other keys. This is called a key signature.
This is an electronic signature to a public key. Such a signature is a confirmation, that this key belongs to the person named in the user-ID field of the key.
PGP signs a user-ID. This binds the user-ID to the key material. For Keys with multiple user-ID's every user-ID should be signed.
The key signatures build a web of trust.
See also: keyservers
This is a key signature issued by the same key as the signed key material. This binds the userID of the key owner to the key material.
Every key should have such a selfsigned signature. If a key does not have this signature, the userID can be manipulated. PGP has no chance to recognize such manipulated userID.
Example for a selfsigned key:
Type Bits/KeyID Date User ID pub 2048/A094DA25 1999/07/24 Patrick Feisthammel CERTIFICATION ONLY, Key A Key fingerprint = 2C 03 41 8E 72 82 6D 91 6A ED 83 45 A5 AF 13 DB sig A094DA25 Patrick Feisthammel CERTIFICATION ONLY, Key A
This is a very short explanation. More information can be found in the manuals for PGP.
Every user of a PKK generates two keys (or a key pair): A secret key and a public key. The public key is distributed to everyone which is interested in the key. The secret key is kept secret.
Encrypting: If a message is encrypted with a public key, it will only be readable be someone who has the appropriate secret key.
Signing: It is calculated a hashcode from the message which has to be signed. (A hashcode is a kind of a checksum. But is very difficult to find a text which has a given hashcode.) This hashcode is encrypted with the secret key. The recipient decrypts the encrypted hashcode with the public key of the sender and compares the decrypted hashcode with the hashcode he calculates from the message test. If they are the same, then the signature is valid and belongs to this message.
PGP 2.6.x uses the RSA algorithm for the PKK. A good (mathematical) explanation about RSA can be found at PGP Attacks.