Время прочтения: 6 мин.

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

GnuPG (Gnu Privacy Guard) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива коммерческой программе PGP. GnuPG полностью совместима со стандартом IETF OpenPGP.

Инструмент командной строки для GnuPG называется GPG. Им я и буду пользоваться. В данной публикации все манипуляции будут выполняться в операционной системе Linux. В ней уже установлено программное обеспечение GnuPG.

Если вы используете macOS, то вам нужно установить GPG-Suite, или воспользоваться командой brew install gnupg2. Если вы пользователь Windows, то советую вам установить GPG4Win.

Шифрование файла с помощью пароля

Далее речь пойдёт о симметричном шифровании. Методе шифрования, при котором для шифрования и дешифрования применяется один и тот криптографический ключ.

  1. Создание текстового файла для шифрования

Создать пустой файл через терминал можно с помощью команды: cat > имя_файла

Файл будет создан в вашей домашней папке.

В данном случае:

Запишем в файл стихотворение Евгения Евтушенко.

2.Шифрование файла.

Вводим следующую команду: gpg -c message.txt

Опция -с (или —symmetric) означает шифрование только симметричным шифром. Далее нужно будет ввести фразу-пароль, которая станет ключом.

В итоге в директории с исходным файлом появится файл с расширением gpg. Это зашифрованный файл.

Если попытаетесь его открыть как обычный файл, то увидите примерно следующее:

3.Дешифрование

Для расшифровки этого файла следует ввести в терминале следующую команду: gpg —decrypt message.txt.gpg. Утилита запросит фразу-пароль. Если был введён верный пароль, то на экране отобразится исходный текст.

Для записи дешифрованной информации в отдельный файл добавьте опцию —output и после укажите название файла.

Шифрование файла с помощью ключей

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

  1. Создание ключей

Для создания пары ключей наберите следующую команду в терминале: gpg —full-generate-key.

Необходимо будет ввести тип ключа, размер ключа (по умолчанию 3072 бит), срок действия ключа, идентификатор пользователя (полное имя, адрес электронной почты) и примечание ключа (если нужно).

Идентификатор пользователя будет использован в качестве идентификатора ключа.

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

В документации также указана команда gpg –gen-key, но при её использовании ряд параметров такие, как тип, размер ключа будут взяты по умолчанию. Срок действия ключа будет 2 года.

В скрытой директории ~./gnupg появятся файлы с ключами. В файле pubring.gpg публичный ключ, а в secring.gpg — приватный.

Также все свои доступные ключи можно увидеть с помощью команды: gpg –list-keys.

На скриншоте два ключа: первый был создан с помощью команды gpg –gen-key, второй – с помощью gpg –full-generate-key с параметрами, указанными ранее.

2.Шифрование

Для шифрования введите следующую команду: gpg -e -r идентификатор_пользователя имя_файла

В качестве идентификатора пользователя я указал просто Dmitry, поэтому утилита выбрала первый по порядку ключ. Чтобы зашифровать информацию с помощью второго ключа, нужно было ввести идентификатор однозначно определяющий второй ключ. Например, ‘Dmitry Alekseev (best key)’.

Опять же в директории с исходным файлом будет создан файл с расширением gpg.

3.Дешифрование

Команда для дешифровки: gpg -d имя_файла.gpg

Необходимо ввести фразу-пароль.

После в терминале отобразится дешифрованная информация.

Использование цифровой подписи для файла

Цифровая подпись позволяет подтвердить авторство электронного документа. На основе файла и ключа создаётся отпечаток, который записывается в файл. Если файл будет изменён, то отпечаток уже не совпадёт.

  1. Создание цифровой подписи

Вы можете подписать файл с помощью команды: gpg -sign имя_файла.

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

Опять же в директории с исходным файлом появится файл с расширением gpg

Также вы можете создать подпись в отдельном файле: gpg -b имя_файла

В директоре появится файл с расширением sig.

2.Проверка подлинности файла

Введите следующую команду: gpg —verify имя_файла.sig имя_файла.

Если файл не был изменён, то вы увидите следующее.

Если файл был изменён, то при проверке на экране появится следующее сообщение.

Мы познакомились с таким популярным инструментом шифрования как GPG. Эта утилита обладает большими возможностями по защите информации, мы с вами рассмотрели только часть. Посмотреть документацию по ней можно с помощью команды gpg -h.