Может ли GnuPG использовать другие библиотеки шифрования?


Добрый день. Подскажите, может ли GnuPG использовать другую криптобиблиотеку?
Если да то как ее можно встроить? (или где об этом почитать.)

У меня такая ситуация мы покупаем софт и он использует GnuPG, но нам нельзя его использовать поскольку он не сертифицирован. У нас есть сертифицированная криптобиблиотека ЕЦП, но как ее встроить в GnuPG или проще писать свой аналог?


Комментарии
— SATtva (21/11/2007 07:07)   
Криптобиблиотеки подключаются к GnuPG через параметр load-extension [/path/to/lib] в gpg.conf. Формат ввода-вывода библиотеки я не знаю, но можете посмотреть в исходниках библиотеки IDEA, добавляющей поддержку соответствующего шифра. (Кстати, из линейки 2.x load-extension вроде бы выкинули? Кто-нибудь в курсе?)

Но это лишь часть правды. Во-первых, Вы не сможете использовать дополнительный шифр, не имеющий собственного идентификатора в формате OpenPGP — Вам придётся изменить исходный код GnuPG и добавить новый идентификатор в экспериментальное/частное пространство. Однако, это сравнительно простое решение лишь позволит добавить поддержку новых симметричных шифров или алгоритмов хэширования (в Вашем случае это могла бы быть ГОСТовская хэш-функция). А вот с асимметричными алгоритмами (в частности, ЭЦП) дело несколько сложнее: помимо добавления идентификатора нужно будет определить формат хранения всех криптопараметров алгоритма в пакете OpenPGP, а это уже более существенная модификация программы.

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

К слову, а Вы уверены, что Вам необходимо использовать исключительно сертифицированное СКЗИ? Вы госпредприятие или как?

В качестве сноски. Пару лет назад рабочая группа IETF OpenPGP думала добавить в стандарт поддержку ГОСТовских алгоритмов. Прежде всего, решением интересовались представители PGPCorp, планировавшие сертификацию PGP в РФ. Правда, потом Каллас и Ко посетили Москву, поняли, что такое "сертификация по-русски" и от всей затеи решили отказаться. :-) Так что ГОСТов в OpenPGP нет и в ближайшем будущем не будет.