#9 Криптография. Симметричное шифрование с использованием GnuPG.
Здравствуйте, дорогие друзья.
В этой статье я покажу Вам, как зашифровать файл с помощью gpg. Существует два типа шифрования:
Симметричное, также известное как шифрование с закрытым ключом, и асимметричное или шифрование с открытым ключом.
Как мы видели из вывода gpg –help, gpg поддерживает множество различных типов шифрования, однако наиболее распространенными из них является расширенный стандарт шифрования, или AES для симметричного шифрования, и RSA или ECDSA для асимметричного шифрования:
Обратите внимание, что ECDSA означает алгоритм цифровой подписи с эллиптической кривой и может заменить RSA.
Например, биткойн-криптовалюта использует ECDSA, и давайте посмотрим, что для шифрования файла с использованием симметричного шифрования, файл может быть расшифрован любым пользователем, у кого есть пароль или парольная фраза.
Это может быть полезно только для локального шифрования Ваших конфиденциальных файлов или для шифрования отдельного файла, перед его отправкой кому-то другому.
Если Вы решите отправить зашифрованный файл кому-то другому по незащищенному каналу, например, в Интернете, Вам нужно будет убедиться, что Вы найдете более безопасный канал передачи.
Чтобы отправить ему кодовую фразу, обмен общим паролем безопасным способом может быть проблематичным. Иногда есть два формата вывода, которые Вы можете получить — это двоичный формат, и текстовый.
Двоичная версия будет занимать меньше места, но ascii или текстовая версия предпочтительнее, когда Вы хотите передать его как текст, например, вставив его в электронное письмо, gpg может зашифровать любой тип файла, но для этого примера я возьму текстовый файл. Я уже создал простой текстовый файл с именем secret.txt и вот его содержимое:
Далее я выполню следующую команду:
gpg -c secret.txt
После ввода команды, необходимо задать фразу.
Она должна иметь, по крайней мере, 12 14 случайных символов, и специальные символы.
Однако, в целях демонстрации, я использую простую фразу.
Обратите внимание, что в том же каталоге появился новый зашифрованный файл в двоичной форме “secret.txt.gpg”:
Давайте посмотрим его содержимое, с помощью команды: “cat secret.txt.gpg”:
Это случайный набор символов. По умолчанию gpg использует AES256 в качестве алгоритма шифрования.
Чтобы проверить, какие симметричные алгоритмы доступны. Выполните gpg –version:
Доступные алгоритмы симметричного шифрования находятся в разделе шифров для следующего примера.
Давайте выберем blowfish, который, кстати, является очень сильным алгоритмом. Я также хочу указать вручную имя выходного файла, и я выполняю gpg -c –cipher-algo blowfish -o secret_blowfish.txt.gpg secret.txt:
Если Вы хотите чтобы сохранить его, не забудьте стереть текстовую версию этого файла. Вы можете использовать команду shred, место rm, потому что она перезаписывает файл, чтобы скрыть его содержимое и удаляет его.
Для исопльзования команды shred, подойдет следующий набор команд: shred -vu -n 100 secret.txt:
В итоге, файл был перезаписан 100 раз, а затем удален.
Когда Вы хотите расшифровать свой файл, то потребуется следующая команда: gpg -o secret.txt -d secret.txt.gpg
В текущем рабочем каталоге, есть новый файл с именем secret.txt. Проверим его содержимое:
Возможно, Вам интересно, почему он не запрашивал какую-либо парольную фразу? Ответ заключается в том, что gpg по умолчанию использует программный компонент под названием gpg-agent.
Можно открыть справочную страницу gpg. Man gpg-agent:
На этом все Всем хорошего дня.
#1 Криптография. Введение в хеши.
#2 Криптография. Свойства алгоритмов хеширования.
#3 Криптография. Применение алгоритмов хеширования.
#4 Криптография. Атаки на криптографические алгоритмы хеширования.
#5 Криптография. Введение в полное шифрование диска.
#6 Криптография. Полное шифрование диска с использованием dm-crypt и LUKS.
#7 Криптография. Разблокировка зашифрованных дисков LUKS с помощью ключевого файла.