Лого

Что такое GPG

Эта статья ориентирована на начинающих - здесь не будет затрагиваться принцип работы GPG, алгоритмы, которые в нем используются и прочее.

Теория

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

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

Для таких случаев изобрели асимметричное шифрование. В нем есть уже 2 ключа - приватный и публичный. Название второго говорит само за себя - его можно раздавать каждому встречному1. Почему? Публичный ключ - может только зашифровать информацию, но не расшифровать её. Приватный же, может и зашифровывать, и расшифровывать информацию.

На практике это можно представить так2: У участника A есть личный замок и ключ от него. Если участник А хочет получить секретную посылку от участника Б, то он публично передаёт ему свой замок. Участник Б защёлкивает замок на секретной посылке и отправляет её участнику А. Получив посылку, участник А открывает ключом замок и получает посылку.

GPG - свободная бесплатная программа для шифрования и подписывания файлов и текстовых сообщений, реализация OpenPGP, который в свою очередь “реализация” ассиметричного шифрования.

Итак, вернёмся к нашим баранам челам.

Алгоритм обмена зашифровки и обмена информацией с GPG:

  1. Олег просит Николая создать ключи
  2. Николай генерирует приватный и публичный ключи
  3. Николай отправляет публичный ключ Олегу
  4. Олег зашифровывает информацию публичным ключом олега
  5. Олег отправляет зашифрованную информацию олегу через публичный чат
  6. Николай расшифровывает информацию приватным ключом

Но тут появился глупый злоумышленник, не знающий как работает GPG, и он попытался расшифровать сообщение публичным ключом. Но у него ничего не получится - публичный ключ может только зашифровывать, но не расшифровывать.

Сноски

Сноски

  1. Что некоторые и делают, публикуя свой публичный ключ на публичных серверах

  2. источник