Шифрование

Генерация подключа.

Если Вы при генерации ключа выбрали вариант 2 (DSA) или 5 (RSA), то имеющийся у Вас ключ может использоваться только для подписи. Для того, чтобы Ваши корреспонденты могли зашифровывать направляемые Вам сообщения, необходимо создать дополнительный ключ, который может использоваться для шифрования. Генерация дополнительного ключа осуществляется в режиме редактирования.

alice%gpg --edit-key alice@wonderland.uk Secret key is available. pub 1024R/B115BDB6 created: 2002-05-01 expires: never trust: u/u (1). Alice (test key) <alice@wonderland.uk> Command> addkey Key is protected. You need a passphrase to unlock the secret key for user: "Alice (test key) <alice@wonderland.uk>" 1024-bit RSA key, ID B115BDB6, created 2002-05-01 Please select what kind of key you want: (2) DSA (sign only) (3) ElGamal (encrypt only) (5) RSA (sign only) (6) RSA (encrypt only) Your selection?

Если Вы намерены использовать подключ для шифрования, то следует выбрать вариант 3 или 6.

Your selection? 6 What keysize do you want? (1024) Requested keysize is 1024 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct (y/n)? y Really create? y 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. +++++ ..+++++ pub 1024R/B115BDB6 created: 2002-05-01 expires: never trust: u/u sub 1024R/89D3ED33 created: 2002-05-03 expires: never (1). Alice (test key) <alice@wonderland.uk> Command> save

Нетрудно заметить, что в списке ключей появился второй ключ. Для того, чтобы выйти из режима редактирования, сохранив изменения, воспользуйтесь командой save.

Зашифрование и расшифрование документов

Открытый и секретный ключи, играют каждый свою роль при зашифровке и расшифровке документов. Открытый ключ можно представить как открытый сейф. Когда корреспондент зашифровывает сообщение при помощи открытого ключа, это сообщение помещается в сейф и сейф закрывается. Соответствующий закрытый ключ - комбинация, необходимая для того, чтобы открыть сейф и получить документ. Другими словами, только обладатель закрытого ключа может восстановить документ, зашифрованный соответствующим открытым ключом.

Если Вы хотите послать сообщение другу, то зашифровываете его при помощи открытого ключа друга, а тот расшифровывает его при помощи своего секретного ключа. Если друг захочет Вам ответить, то он зашифрует ответ при помощи Вашего открытого ключа, а Вы расшифруете его своим секретным.

Для зашифрования документа используется команда --encrypt. Вы должны иметь открытые ключи предполагаемых получателей. Программа ожидает в качестве параметра имя шифруемого документа или, в случае его отсутствия, шифрует стандартный ввод. Зашифрованный результат помещается в стандартный вывод, если не указана опция --output. Для повышения защиты документ дополнительно сжимается.

alice% gpg --output message.gpg --encrypt --recipient blake@anywhere.ru message.txt

Опция --recipient используется для каждого получателя и имеет аргумент, идентифицирующий открытый ключ, которым должен быть зашифрован документ. Зашифрованный документ может быть расшифрован только тем, чей секретный ключ соответствует одному из указанных открытых ключей. В частности, Вы не можете расшифровать зашифрованный Вами документ, если не включили свой открытый ключ в список получателей.

Для расшифрования сообщения используется команда --decrypt. Вам нужен секретный ключ, для которого это сообщение было зашифровано. Документ для расшифровки на входе программы, расшифрованный документ на выходе.

blake% gpg --output message.txt --decrypt message.gpg You need a passphrase to unlock the secret key for user: "Blake (dumb) <blake@anywhere.ru>" 1024-bit RSA key, ID 526C7F7F, created 2002-05-01 (main key ID 01A1FE63) Enter passphrase:

Документы, также, можно зашифровывать без открытого ключа. Вместо этого используется симметричный алгоритм для зашифровки документа. Ключ, используемый при зашифровании, образуется из ключевой фразы. Для большей безопасности эта ключевая фраза не должна совпадать с той, которую Вы используете для защиты секретного ключа. Симметричный шифр применим, когда нет необходимости обмениваться ключевой фразой. Для использования симметричного шифра применяется команда --symmetric.

alice% gpg --output message.gpg --symmetric message.txt Enter passphrase: