Gpg4Usb. Windows

СОДЕРЖАНИЕ:

Введение
0. Установка
1. Генерация ключевой пары
2. Шифровка текста
3. Расшифровка текста
4. Электронное подписывание текста
5. Электронное подписывание файла
6. Шифровка файлов
7. Расшифровка файлов
8. Импорт ключей
9.Экспорт публичных ключей
10. Экспорт секретного ключа

Приложение А. Ассиметричное шифрование
Приложение B. Проверка подлинности файла по его контрольной сумме
Приложение C. Некоторые команды GnuPG и их параметры


Введение

Gpg4Usb - портативная, кроссплатформенная программа шифрования с открытым кодом. В основе Gpg4Usb лежит открытая реализация международного стандарта ассиметричной криптозащиты OpenPGP - GNU Privacy Guard (сокращенно GnuPG или GPG). Система GPG де-факто является стандартным средством защиты открытых систем, а Gpg4Usb по сути является графической надстройкой к ней. В состав Gpg4Usb входит портативная версия GPG, текстовый редактор, средства шифрования и расшифровки файлов, система управления ключевыми парами.


0. Установка

0.1 Последнюю версию можно скачать на официальном сайте: http://gpg4usb.cpunk.de/download.html.

0.2 Система не требует инсталляции. После скачивания архива программы рекомендуется проверить его целостность и подлинность по оригинальному слепку sha1, указанному на странице закачки.

0.3 Далее необходимо распаковать скачанный zip-архив, перейти в распакованный каталог. В Linux запустить файл "start_linux", в Windows выполнять файл "start_windows.exe".


1. Генерация ключевой пары

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

1.1 Алиса открывает меню "Ключи" -> "Менеджер ключей".

1.2 В появившемся окне менеджера ключей Алиса открывает форму генерации ключа в меню "Ключи" -> "Генерировать ключ".

1.3 Алиса заполняет форму (латиницей, кирилицу генератор не понимает). Чем больше длина ключа, тем более стойким будет шифр, но вместе с тем медленнее шифровка/расшифровка сообщений. Поля пароля (пароль защищает ключ от несанкционированного использования) и электронной почты можно не заполнять.

1.4 Процесс генерации ключа занимает некоторое время. Для ускорения процесса рекомендуется параллельно что-либо делать на компьютере - входная информация используется в псевдослучайном генераторе и увеличивает энтропию.

После создания ключевой пары окошко генерации закрывается.


2. Шифровка текста

Ниже Алиса шифрует текстовое письмо для Боба.

2.1 Алиса пишет Бобу письмо и помещает его в текстовый редактор своего gpg4usb.

2.2 Выбор ключа. Алиса выбирает публичный ключ Боба (экспортированный ранее). Замечание: можно выбрать сразу множество ключей, в результате чего появится единый зашифрованый текст, одинаково успешно расшифровываемый секретными ключами всех соответствующих адресатов. Выбор собственного публичного ключа Алиса может использовать, например, для защиты своих черновиков.

2.3 Шифровка письма. Алиса жмет кнопку "Зашифровать" или нажимает комбинацию Ctrl+E или использует меню "Шифрование" для шифровки текста. После чего письмо приобретает примерно такой вид:


3. Расшифровка текста

Расшифровать текст, зашифрованный Алисой при помощи публичного ключа Боба, можно только при наличии секретного ключа Боба. Секретный ключ можно найти в "связке ключей" по картинке перед именем в списке, в данном случае перед именем Боба.

3.1 Боб должен скопировать зашифрованнй Алисой текст (например из почтового ящика) в поле текстового редактора своего gpg4usb.

3.2 Боб должен выбрать секретный ключ, соответствующий публичному, которым шифровала текст Алиса. После этого он нажимает кнопку "Расшифровать" или набирает комбинацию Ctrl+D или использует меню "Шифрование" для расшифровки текста.

3.3 Боб вводит парольную фразу для доступа к секретному ключу (если ключ запоролен).

3.4 После расшифровки, Боб читает послание от Алисы.


4. Электронное подписывание текста

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

4.1 Алиса пишет текстовое письмо Бобу, выбирает в списке ключей свой секретный ключ и жмет кнопку "Подписать".

4.2 Так выглядит письмо с электронной подписью Алисы.

4.3 Боб открывает подписанное Алисой письмо (письмо нельзя менять!). Выбирает ее публичный ключ и жмет кнопку "Проверить". Внизу окна показывается результат проверки.


5. Электронное подписывание файла

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

На момент написания, подпись/проверка файла в gpg4usb была доступна только через консоль. Кроме того, стандартную сборку gpg4usb требуется дополнить библиотекой iconv, которую Алиса качает с официального сайта GnuPG (http://www.gnupg.org/download/iconv.html).

Из скачанного архива она извлекает файл iconv.dll и копирует его в каталог gpg4usb\bin

Далее Алиса вызывает консоль Windows и переходит там в каталог gpg4usb\bin. В DoubleCommander (см. подробно) для этого ей достаточно перейти в каталог gpg4usb\bin на любой панели и нажать кнопку F9. В общем случае годится вызов консоли из меню Windows: "Пуск" -> "Выполнить"-> cmd с последующим выполнением в ней команды вида cd <путь_к_каталогу_gpg4usb\bin> (в примере cd c:\temp\gpgAlice\bin).

Для создания отдельной сигнатуры (подписи) файла нужно ввести в консоли команду вида

  gpg.exe --keyring ..\keydb\pubring.gpg --secret-keyring ..\keydb\secring.gpg --default-key <id_ключа> --output <сигнатура> --detach-sign <файл>

Проверить файл по сигнатуре можно командой такого вида:

  gpg.exe --keyring ..\keydb\pubring.gpg --verify <сигнатура> <файл>

<id_ключа> - идентификатор секретного ключа, который можно найти в его свойствах
<сигнатура> - путь к файлу сигнатуры, создаваемой отдельным файлом (команда --detach-sign)
<файл> - путь к подписываемому файлу

Алиса набирает в консоли команду создания сигнатуры alice_file.mkv.asc для файла alice_file.mkv (жирным выделены параметры)

  gpg.exe --keyring ..\keydb\pubring.gpg --secret-keyring ..\keydb\secring.gpg --default-key C09D112C1728C2A8 --output c:\temp\gpg\alice_file.mkv.asc --detach-sign c:\temp\gpg\alice_file.mkv

Затем нажимает кнопку Enter и вводит пароль к ключу (если ключ запаролен), после чего опять жмет Enter. Созданный файл сигнатуры можно увидеть по адресу c:\temp\gpg\alice_file.mkv.asc

После получения файла и его сигнатуры от Алисы, Боб набирает в консоли команду проверки подлинности файла (жирным выделены параметры)

  gpg.exe --keyring ..\keydb\pubring.gpg --verify c:\temp\gpg\alice_file.mkv.asc c:\temp\gpg\alice_file.mkv

Затем Боб нажимает кнопку Enter и получает в консоли ответ: наличие сообщения "good signature" и публичного слепка ключа Алисы означает подлинность файла.

Для того, чтобы не набирать каждый раз столь длинные команды, можно скопировать их в соответствующие текстовые файлы с расширением .bat (например в sign.bat и в verify.bat), созданные в каталоге gpg4usb\bin. Тогда для проверки или подписи нового файла достаточно будет поменять в соответствующем bat-файле параметры команды и запустить его из консоли.


6. Шифровка файлов

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

6.1 Боб открывает меню "Шифрование" или нажимает кнопку "Файл". Выбирает в открывшемся списке "Зашифровать файл".

6.2 Боб забивает путь к исходному файлу (Файл ввода) и к создаваемому зашифрованному файлу (Файл вывода). К имени последнего рекомендуется прибавлять расширение ".asc". Боб выбирает свой и Алисин публичные ключи с целью шифровки файла для себя и для Алисы одновременно. После этого он нажимает кнопку "Ok". В результате должен появиться зашифрованный файл, успешно расшифровываемый секретными ключами как Боба, так и Алисы.

После успешной зашифровки Боб получает сообщение об этом.


7. Расшифровка файлов

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

7.1 Алиса открывает меню "Шифрование" или нажимает кнопку "Файл". Выбирает в открывшемся списке "Расшифровать файл".

7.2 Алиса забивает путь к зашифрованному файлу (Файл ввода) и к создаваемому расшифрованному файлу (Файл вывода). После этого нажимает кнопку "Ok".

7.3 Алиса набирает парольную фразу для доступа к своему секретному ключу (если ключ запоролен) и нажимает кнопку "OK".

Если расшифровка прошла успешно, вылезает сообщение об этом.


8. Импорт ключей

Пусть Бобу приспичило передать Алисе шифрованное сообщение. Для этого ему надо получить у нее публичный ключ. Далее Боб должен импортировать этот публичный Алисин ключ в свой gpg4usb. Публичный ключ представляет собой некий текст, он может быть сохранен в виде файла, скопирован в буфер обмена или в текстовый редактор gpg4usb (например из электронного письма).

8.1 Локальный импорт. Боб открывает форму импорта ключей ("Импорт ключа"). Затем Боб выбирает способ импорта ключа. Если он хочет импортировать ключ из текстового реадактора gpg4usb, то он должен сначала скопировать туда текст ключа. Если он хочет импортировать ключ из буфера обмена, то он должен предварительно скопировть (Ctrl+C) текст ключа в буфер обмена. Если он хочет импортировать ключ из файла, то он должен в появившемся списке выбрать "Файл" и перейти к следующему шагу.

Боб выбирает файл с ключом и нажимает кнопку "Открыть".

8.2 Импорт из сервера ключей. Боб открывает поисковую форму ключа "Импорт ключа" -> "Сервер ключей" и заполняет ее, предварительно узнав идентификатор ключа и адрес сервера ключей. Далее Боб нажимает кнопку "Поиск", а после нахождения ключа - кнопку "Импорт".

8.3 В случае успешного импорта появляется окно с информацией о ключе. Боб нажимает на нем кнопку "Ok".

8.4 Импортированный публичный ключ Алисы отображается в списке ключей Боба.

Замечание: секретный ключ импортируется точно так же, как и публичный.


9. Экспорт публичных ключей

Предположим, что Боб хочет передать Алисин и свой публичные ключи Чарли, чтобы тот мог шифровать для них свои сообщения.

9.1 Боб открывает "Менеджер ключей".

9.2 Боб выбирает Алисин и собственный публичные ключи.

9.3 Боб использует кнопки "Экспорт в файл" или "Экспорт в буфер обмена" или то же в меню "Ключи". Если он выбирает экспорт в буфер обмена, то процесс закончен, ключ в буфере и его можно вставить оттуда в электронное письмо для Чарли, например. Если выбран экспорт в файл, то надо перейти к следующему шагу.

9.4 Боб выбирает путь к создаваемому файлу ключа (при выборе ранее экспорта в файл).


10. Экспорт секретного ключа

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

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

10.1 Боб открывает "Менеджер ключей".

10.2 Боб открывает окно свойств ключа при помощи его контекстного меню (правая кнопка мыши) в списке ключей. В появившемся списке он выбирает пункт "Показать свойства ключа".

10.3 Боб жмет кнопку "Экспортировать Секретный Ключ".

10.4 Боб подтверждает свое желание экспортировать секретный ключ.

10.5 В конце Боб выбирает путь к создаваемому файлу, куда будет помещен секретный ключ и жмет кнопку "Сохранить".



Приложение А. Ассиметричное шифрование

Пусть есть, без ограничения общности, два пользователя - Алиса и Боб, желающие общаться приватно. Алиса и Боб вырабатывают по паре ключей: открытый (публичный) ключ для зашифровки сообщений и закрытый (секретный) для их расшифровки. Алиса и Боб обмениваются своими публичными ключами, а секретные прячут. Далее возможен обмен зашифрованными сообщениями: Алиса шифрует публичным ключом Боба, а Боб - публичным ключом Алисы. Расшифровывают письма они своими секретными ключами.

Схематичное обоснование

Идея криптографии с публичным ключом связана с идеей односторонних функций, то есть таких функций f(x), что по известному x довольно просто найти значение f(x), тогда как определение x из f(x) трудно в смысле теории (вычислительная сложность обратимости f выше полиномиальной). Но сама односторонняя функция бесполезна в применении: ею можно зашифровать сообщение, но расшифровать нельзя. Поэтому криптография с открытым ключом использует односторонние функции с лазейкой. Лазейка — это некий секрет, который помогает расшифровать. То есть существует такой y, что зная f(x) и y, можно вычислить x. К примеру, если разобрать часы на множество составных частей, то очень сложно собрать вновь работающие часы. Но если есть инструкция по сборке (лазейка), то можно легко решить эту проблему.

Стойкость ко взлому шифра определяется как алгоритмом, так и длинной используемого ключа, например, для ключей типа RSA на сегодняшний момент рекомендуется выбирать длину не менее 2048 бит.

Преимущества и недостатки

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

При отправке Алисой публичного ключа Бобу по открытому каналу потенциально возможна следующая неприятность, называемая человеком-по-середине (MITM): третья сторона может перехватить Алисин публичный ключ, подменить на свой подставной и послать Бобу, затем перехватить публичный ключ Боба, опять подменить на свой и отправить Алисе. В итоге и Алиса и Боб будут, ничего не подозревая, шифровать все подставным ключом. Для предотвращения этого используются слепки ключа. Смысл слепка. Пусть отправителю требуется передать ключ, а принимающей стороне - убедиться в его подлинности и сохранности при передаче. Для этого создается слепок ключа - практически уникальный идентификатор, сгенерированный из этого ключа при помощи одной из т.н. хэш-функций. Объём слепка относительно мал, при этом создать другой подходящий ключ с таким же слепком практически невозможно. Алиса одной из общеизвестных хэш-функций создает слепок ключа. Для подтверждения подлинности этот слепок передается Алисой Бобу по параллельным защищенным каналам и сверяется с тем, что получен из принятого документа при помощи той же самой хэш-функциии. Если оба слепка совпали, то документ подлинный.


Приложение B. Проверка подлинности файла по его контрольной сумме

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

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

Обычно применяются хэш-функции md5, sha1 или sha256 (хотя md5 и sha1 к настоящему времени скомпрометированы, относительно стойким пока считается haval). Для расчета и проверки контрольных сумм существуют разнообразные программы. Наиболее известными консольными утилитами являются sha1sum и md5sum, их обычно включают в дистрибутивы Linux, но есть и версия для Windows.

Расчет большинства типов контрольных сумм можно сделать в открытом кроссплатформенном файловом менеджере DoubleCommander (см. подробно):


Приложение C. Некоторые команды GnuPG и их параметры

Полное руководство по GnuPG лежит на официальном сайте: http://www.gnupg.org/documentation/manpage.ru.html. Ниже для любопытных читателей приводится оттуда часть команд и параметров GnuPG.

Основные команды GnuPG

-s, --sign Создать подпись. Данная команда может использоваться совместно с --encrypt.
-b, --detach-sign Создать отделённую подпись.
-e, --encrypt Зашифровать данные. Может использоваться совместно с --sign.
-c, --symmetric Зашифровать симметричным алгоритмом используя ключевую фразу (пароль). По умолчанию используется алгоритм CAST5. Для выбора другого алгортма можно воспользоваться параметром --cipher-algo.
--decrypt [file] Расшифровывает file (или стандартный ввод, если файл не задан) и выводит его на стандартный вывод (или в файл определённый параметром --output). Если расшифрованный файл подписан, то также проверяется подпись. Эта команда отличается от операции по умолчанию тем, что никогда не сохраняет результат в файле с именем указанным в зашифрованном файле и не обрабатывает файлы не начинающиеся с зашифрованного сообщения.
--verify [[sigfile] [signed-files]] Предполагает, что sigfile содержит подпись и проверяет её, не выводя содержимое документа. Без аргументов, считывает подписанные данные со стандартного ввода. Если задан только файл подписи, то в нём может содержаться либо полностью подписанный документ, либо отделённая подпись. В последнем случае подписанный документ должен содержаться в файле без расширения ".sig" или ".asc". Если указано более одного аргумента, то первый должен быть отделённой подписью, а остальные должны содержать подписанный материал. Для считывания подписанного документа со стандартного ввода, используйте - в качестве имени второго файла. По причинам безопасности, при использовании отделённой подписи, подписанный материал не может считываться со стандартного ввода без явного указания вышеозначенным образом.
--verify-files [files] Это специальная версия команды --verify, которая не работает с отделёнными подписями. Имена проверяемых файлов либо указываются в командной строке, либо подаются на стандартный ввод команды, по одному в строке. Команда предназначена для быстрой проверки большого числа файлов.
--encrypt-files [files] Это специальная версия команды --encrypt. Имена файлов, которые должны быть зашифрованы, указываются в командной строке или считываются со стандартного ввода; каждое имя должно быть в отдельной строке. Команда предназначена для быстрого зашифрования множества файлов.
--decrypt-files [files] То же, что и --encrypt-files, но предназначена для расшифрования файлов. Синтаксис тот же самый.
--list-keys [names], --list-public-keys [names] Выводит все ключи из связки открытых ключей, или только указанные в командной строке.
--list-secret-keys [names] Выводит все ключи из связки секретных ключей, или только указанные в командной строке. Знак '#' после символов sec означает, что секретный ключ не используется (напр., если он был создан командой --export-secret-subkeys).
--list-sigs [names] То же, что и --list-keys, но дополнительно выводит подписи на ключах.
--check-sigs [names] То же, что и --list-sigs, но подписи проверяются.
--fingerprint [names] Выводит все ключи и их отпечатки. Это тот же вывод, что и у --list-keys, но для каждого ключа добавляется строка, содержащая его отпечаток. Может использоваться совместно с --list-sigs или --check-sigs. Если команда задана дважды, то выводятся отпечатки и для подчинённых ключей.
--gen-key Генерирует новую пару ключей. Данная команда, как правило, используется только интерактивно. Имеется экспериментальная возможность, позволяющая генерировать ключи в пакетном режиме. Подробности в файле doc/DETAILS в исходном дистрибутиве.
--edit-key name Предоставляет консольное меню, позволяющее выполнять все задачи по управлению ключами
--sign-key name Подписать открытый ключ Вашим секретным ключом. То же, что и подкоманда "sign" команды --edit-key.
--delete-key name Удалить ключ из набора открытых ключей. В пакетном режиме требуется либо использовать --yes, либо задавать ключ его отпечатком. Это защита против случайного удаления ключей.
--delete-secret-key name Удалить ключ из наборов секретных и открытых ключей. В пакетном режиме ключ должен быть задан отпечатком.
--export [names] Либо экспортировать все ключи из всех наборов ключей (наборов по умолчанию и тех которые зарегистрированы при помощи параметра --keyring), или, если задано хотя бы одно имя, те ключи имена которых заданы в командной строке. Полученный в результате набор ключей выводится на стандартный вывод или в файл заданный параметром "output". Если Вы намерены отправить ключи по почте, то используйте совместно с параметром --armor.
--send-keys [names] То же, что и --export но посылает ключи на сервер ключей. Для задания имени сервера ключей должен использоваться параметр --keyserver. Не отправляйте на сервер свой набор ключей полностью - выберите только те ключи, которые были добавлены или изменены Вами.
--export-secret-keys [names], --export-secret-subkeys [names] То же, что и --export, но экспортирует секретные ключи. Используется редко и рискована с точки зрения безопасности. Вторая форма команды делает секретную часть первичного ключа, в выводимом результате, непригодной; это расширение GNU для стандарта OpenPGP и другие реализации не смогут успешно импортировать такие ключи. Обратите внимание на параметр --simple-sk-checksum, если Вы хотите импортировать полученный результат в старую реализацию OpenPGP.
--import [files], --fast-import [files] Импортировать/объединить ключи. Эта команда добавляет выбранные ключи к набору ключей. --fast-import, в настоящее время является просто синонимом для --import. Имеется несколько параметров, контролирующих работу команды. Наиболее значимый среди них - параметр --merge-only, который предотвращает добавление новых ключей и допускает только добавление новых подписей, идентификаторов пользователя и подключей к уже имеющимся ключам.
--recv-keys key IDs Импортировать ключи с заданным идентификатором с сервера ключей. Для указания сервера ключей должен использоваться параметр --keyserver.
--refresh-keys key IDs Запросить с сервера ключей обновления для ключей, которые уже имеются в локальных связках. Применимо для получения новых подписей, идентификаторов пользователей и т.д. Должен быть указан параметр --keyserver для определения сервера ключей.
--search-keys [names] Поиск по указанным именам на сервере ключей. Несколько имён, заданных в командной строке, объединяются вместе для создания строки поиска. Для указания сервера ключей должен использоваться параметр --keyserver.
--version Выводит информацию о версии программы и список поддерживаемых алгоритмов.
-h, --help Выводит краткую справку по использованию команды. Список довольно длинный, хотя и не включает описания всех параметров. Для получения более подробной информации, обращайтесь к данному руководству.

Основные параметры команд GnuPG

-a, --armor Создаёт вывод в ASCII формате.
-o, --output file Сохраняет результат в файле file.
-u, --local-user name Использует name в качестве идентификатора пользователя при подписи. Параметр игнорируется для остальных команд и может использоваться в файле параметров.
--default-key name Использует name как основной идентификатор пользователя при подписи. Если данный параметр не используется, то основным идентификатором пользователя считается первый идентификатор пользователя найденный в секретном наборе ключей.
-r, --recipient name, Шифровать для пользователя name. Если данный параметр не указан, и не задан параметр --default-recipient, то GnuPG запрашивает идентификатор пользователя.
--default-recipient name Использовать name как получателя по умолчанию, если не задан парметр --recipient и не выдавать запрос о получателе если значение name является допустимым. name не может быть пустым.
-v, --verbose Увеличивает детальность вывода информации. Если используется дважды, то детально описываются и входные данные.
--yes Предполагает утвердительный ответ на большинство вопросов.
--no Предполагает отрицательный ответ на большинство вопросов.
--keyserver name Использовать сервер ключей name. Это сервер который будет использоваться для получеения, отправки и поиска ключей при использовании команд --recv-keys, --send-keys и --search-keys. Формат name это URI: `scheme:[//]keyservername[:port]' Схема -- это тип сервера ключей: "hkp" для Horowitz (или совместимого), "ldap" для NAI LDAP серверов, "mailto" для Horowitz email keyserver. Заметим, что конкретная инсталяция GnuPG может допускать и другие типы серверов ключей. Имена схем используются без учета регистра. Большинство серверов ключей синхронизируются друг с другом, т.о. нет необходимости посылать ключи более чем на один сервер. Используя команду "host -l pgp.net | grep wwwkeys" Вы получите список серверов ключей HKP.
--keyserver-options parameters Данная строка содержит список разделённых пробелами или запятыми параметров сервера ключей. Параметры могут предваряться префиксом `no-' для получения обратного значения. Не все параметры допустимы для любого типа сервера ключей. Подробнее см. в полной документации.
--keyring file Добавить file к списку наборов ключей. Если file начинается с тильды или символа косой черты, то они заменяются значением переменной окружения HOME. Если имя файла не содержит символа косой черты, то предполагается, что файл находится в каталоге homedir ("~/.gnupg" если параметр --homedir не используется). Имя файла может предваряться префиксом scheme: "gnupg-ring:" схема по умолчанию. Выбор схемы имеет значение при использовании совместно с параметром --no-default-keyring.
--secret-keyring file То же, что и --keyring но для наборов секретных ключей.
--homedir directory Установить имя домашнего каталога равным directory Если данный параметр не установлен, то по умолчанию используется "~/.gnupg". Игнорируется в файле параметров. Перекрывает значение переменной окружения "GNUPGHOME".
--no-options Сокращение для "--options /dev/null". Данный параметр определяется до открытия файла параметров. Предотвращает, также, создание каталога "~./gnupg".
--enable-progress-filter Включает вывод информации о ходе выполнения работы. Данный параметр позволяет оболочкам отображать индикатор прогресса при обработке gpg больших файлов. При использовании параметра немного снижается производительность.
--sig-notation name=value, --cert-notation name=value, -N, --notation-data name=value Поместить пару имя - значение в подпись, как примечание. name должно содержать только печатные символы или пробелы, и должен содержать символ '@'. Это делается с целью предотвратить засорение зарезервированного IETF пространства имён. Флаг --expert отменяет проверку наличия '@'. value может быть любой печатной строкой; эта строка будет закодирована в UTF8, так что Вам следует проверить корректность установки Вашего параметра --charset. Если Вы предварите name восклицательным знаком, то примечание будет помечено как критическое (rfc2440:5.2.3.15). --sig-notation устанавливает примечание для подписи данных, --cert-notation для подписи ключей (сертификации), --notation-data устанавливает оба параметра. Имеются специальные коды, которые могут использоваться в примечаниях. "%k" будет раскрыто в идентификатор подписываемого ключа, "%K" в длинный идентификатор подписываемого ключа, "%f" в отпечаток подписываемого ключа, "%s" в идентификатор ключа используемого для подписи, "%S" в длинный идентификатор ключа используемого для подписи и "%%" будет заменено одним знаком "%". %k, %K, и %f имеют смысл только при подписи ключей (сертификации).
--show-notation, --no-show-notation Показывать примечания в подписях при выполнении команд --list-sigs и --check-sigs и проверке подписей, содержащих примечания. --no-show-notation отменяет действие параметра.
--cipher-algo name Использовать алгоритм шифрования name. Запуск программы с командой --version выводит список поддерживаемых алгоритмов шифрования. Если данный параметр не используется, то алгоритм шифрования выбирается из указанных в списке предпочтений ключа.
--digest-algo name Использовать хэш-функцию name. Запуск программы с командой --version выводит список поддерживаемых хэш-функций.
--cert-digest-algo name Использовать хэш-функцию name при подписи ключа. Запуск программы с командой --version выводит список поддерживаемых хэш-функций. Будьте осторожны, т.к. если Вы выберете алгоритм поддерживаемый GnuPG, но не поддерживаемый другими реализациями OpenPGP, то некоторые пользователи не смогут использовать сделанную Вами подпись, или даже весь ключ.
--no-verbose Сбросить уровень детальности вывода в 0.
--no-default-keyring Не добавлять наборы ключей по умолчанию к списку наборов ключей.
--try-all-secrets Не обращать внимания на идентификатор ключа в сообщении, но перепробовать все имеющиеся секретные ключи пока не найдётся правильный ключ для расшифрования сообщения. Данный параметр принудительно устанавливает режим используемый при расшифровке сообщений для анонимных получателей (созданных с помощью --throw-keyid) и может быть полезен в случае если зашифрованное сообщение содержит неправильный идентификатор ключа.