Шифрование PGP. Установка и принцип работы
@webware
PGP(Pretty Good Privacy) – это очень надежная криптографическая программа , которая позволяет пользователям анонимно обмениваться информацией в электронном виде. Пользователь PGP создает пару ключей открытый и закрытый ключ. При генерации ключей задаются данные владелеца (имя и email), тип ключа, длина ключа и срок его действия. Открытый ключ используется для шифрования и проверки цифровой подписи. Закрытый ключ — для декодирования и создания цифровой подписи. Программа бесплатна и ее без труда можно найти в интернете.
Цифровая подпись – это особый реквизит документа, который позволяет установить отсутствие искажения информации в электронном документе с момента формирования цифровой подписи и подтверждению принадлежности цифровой подписи владельцу, в отличии от ручной подписи, цифровую подпись почти невозможно подделать.
Как это работает
Представим, что двум субъектам нужно послать зашифрованное письмо, допустим их будут звать Андрей и Дима. Дима дал открытый ключ Андрею, Андрей шифрует письмо с помощью этого ключа и отправляет. Только Дима может прочитать письмо, т.к. только у него есть закрытый ключ.
PGP имеет 3 типа ключей:
- RSA
- RSA Legacy
- GnuPG
Когда пользователь шифрует сообщения, то программа для затруднение криптоанализа сжимает текст, если же объем текста и так мал, то сжатие не производится, в процессе программа "убирает рисунки", с помощью которых можно взломать ключ. Для шифрования программа генерирует число - это число называют сессионный ключ. После программа шифрует этот ключ публичным. Как вы уже могли понять по примеру выше закрытый ключ используется для дешифровки сообщения, сначала он извлекает сессионный ключ, а потом дешифрует сообщение.
После установки программы нам следует создать свою пару ключей:
gpg --gen-key

В процессе создания ключа нас попросят ввести кодовую фразу, которую вы должны будете запомнить. Далее создаем публичный ключ, где в --output указываем файл в который мы сохраним наш ключ, а в --export, почту на который будет отправлен ключ.
gpg --output codebypubkey.gpg --export codebytest@mail.com
Для просмотра доступных ключей используем команды:
gpg --list-keys gpg --list-secret-keys gpg --list-public-keys
Для импорта ключей используйте команды:
gpg --import pubkey.txt gpg --allow-secret-key-import --import privkey.txt
Для шифрование файла нам надо указать --encrypt, потом в --recipient получателя и далее сам файл:
sudo gpg --encrypt --recipient yahowa@hurify1.com file.txt
После выполнения команды появится зашифрованный файл с расширением .gpg. В итоге строка " Hi, Codeby ! " превратилась в набор символов:

Чтобы расшифровать файл используйте:
gpg --decrypt-files file.txt.gpg

При расшифровки мы должны ввести нашу секретную фразу и в итоге мы получим тот же текст, который мы зашифровали. Если вам нужно перенести ваш ключ на другую машину, то можно это сделать так:
gpg --output key.txt --armor --export-secret-key THSamurai
--armor означает, что файл нужно передать в текстовом виде.
Если вам надо подписать ключ другого пользователя:
$gpg --edit-key Codeby DefWolf $sign $gpg --encrypt --output files.gpg --sign --armor --recipient defwolf@mail.com file.txt
--sign означает, что файл подпишется вашим приватным ключом.
Я думаю, мне удалось доступным языком объяснить принцип работы программы.