17.02.2003 15:40:23Симметричный ключ Ответов: 12
Вячеслав
Вот тестирую программу “csptest.exe”
Шифрую с помощью параметра “-lowenc”
Шифротекст получается, почему-то больше открытого текста?

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

Есть ли возможность, а еще лучше, если есть готовый пример кода криптования сообщения через API.
В MS VC++ нашел готовый пример использования CSP на примере PROV_RSA_FULL
Подставляю ваш – выдает ошибку ANSI 1.0 точно не помню ошибку.

В общем, хотелось бы готового примера.

Спасибо за внимание.
 
Ответы:
17.02.2003 16:19:58kure
Какие примеры вас интересуют?
Например, исходники csptest лежат здесь:
http://www.cryptopro.ru/CryptoPro/test/sample.zip
18.02.2003 7:04:42Вячеслав
Мне нужен пример с симметричным
алгоритмом криптования
а не в формате PKCS#7.
Мне не нужен сессионный ключ.
Если бы там не было этого ключа длина
сообщения была бы одинаковой!
18.02.2003 10:03:31kure
Еще раз.
КриптоПро CSP - система с открытым распределением ключей, а не симметричным.
Если нужен пример шифрования не в формате PKCS#7, поищите на форуме слово "экспорт".
В любом случае без генерации сессионнаого ключа и его экспорта (шифрования) ничего не получится.
18.02.2003 16:13:44Вячеслав
Какая последовательность действий в
Вашей программе “csptest.exe” что бы
обмениваться с файлами через открытые
каналы связи не используя оутлук.
(Нет возможности использовать протокол POP из-за планирования большого трафика обмена)

Просьба детально указать с какими опциями запускать программу «csptest.exe» что бы
осуществить выше сказанное.

Спасибо за внимание.
18.02.2003 18:06:13kure
Насколько я понял из вашего вопроса, вам нужно шифровать данные, но при этом не использовать формат PKCS#7, так как при этом будет избыток "лишних" данных ?
Может вы дадите побольше информации.
Как вы мыслите распределять ключи (закрытые, открытые).
Если не использовать формат PKCS#7, какой формат сообщения вы будете использовать. Как в этом случае будет определяться ключ, необходимый для проверки ЭЦП/расшифрования.
Вы сами реализуете протокол обмена по сети ?



19.02.2003 6:38:11Вячеслав
Наверное, с этого и надо было начинать.
В общем, то нужна и подпись что бы потом не было проблем с юридической стороны.
Поставлена такая задача:
Необходимо сделать что-то вроде клирингового центра.
Есть у нас несколько банков корреспондентов с ними надо обмениваться валютными и рублевыми переводами.
Плюс несколько своих филиалов.

Обмен ключами думал производить нарочно.

Дык, вот и вопросец как это лучше реализовать?

Да планируем вроде как открыть удостоверяющий центр.
19.02.2003 10:10:58kure
Если использовать удостоверяющий центр, то соответственно лучше пользовать сертификаты открытых ключей.

Если пользуете подпись, то в результате нужно иметь подписанный документ и хранить его для дальнейших разборов.
Самый простой вариант - использовать PKXS#7. Не так уж и много избыточной информации, зато есть ссылка на сертификат (кто подписал) и сертификат (кому зашифровано).
Кроме этого это избавляет от необходимости придумывания своего формата и системы распределения ключей.

Для встраивания:
1. Функции CryptoAPI
2. CAPICOM (что намного проще).
19.02.2003 10:39:54Вячеслав
Прежде чем встраивать хотелось бы знать последовательность действий на примере программы “cpstest.exe”.

Инструкции у Вас случайно нет по использованию “cpstest.exe”.

Допустим каждый участник сети изготовит сертификат через УЦ.

Сразу вопросы:
При запросе на сертификат применительно к моему случаю, что мне нужно указывать в назначении?
Что указать в параметрах ключа?
И как потом как указать в программе “cpstest.exe” нужный сертификат?
Что сначала делать подпись а потом шифрование или на оборот?
19.02.2003 10:54:49kure
Для того, что бы подписать файл с помощью csptest, можно запустить его со следующими параметрами csptest -sfsign (используем simplified функции из CryptoAPI 2.0) -sign (будем подписывать) -in имя_файла (который подписывается) -out имя_файла (файл, который получается на выходе) -my имя_сертификата (это имя из атрибута CN (common_name) поля Субьект в сертификате. оно задается в поле Имя Пользователя(Name) при получении сертификата на удостоверяющем центре. сертифкат, обязательно должен лежать в хранилище Личные(MY)) Также возможно использовать флаг -detached, тогда в выходном файле будет присутствовать только подпись без исходного сообщения. В противном случае на выходе получится исходное сообщение вместе с подписью в одном файле Для того, что бы проверить подпись с помощью csptest, можно запустить его со следующими параметрами csptest -sfsign (используем simplified функции из CryptoAPI 2.0) -verify (будем проверять) -in имя_файла (подпись которого проверяется)
-my (имя CN (common_name) сертификата, на котором будет проверяться подпись. то же самое, что и при подписывании файла.Сертификат также должен находиться в хранилище Личные (MY)). Если подпись была сохранена отдельно от пописываемых данных (использовался параметр -detached), то при проверки так же надо указать параметр -detached и параметр -signature имя_файла (файл, в котором была сохранена подпись). При проверке проверяется только подпись! Ни целостность сертифката, ни его валидность вообще (отозванность, просроченность и т.д) и валидность для подписывания сообщений (Улучшенный ключ) не проверяется.

На сайте лежит зазипованный исходник.
19.02.2003 14:29:28Вячеслав
Допускается ли присутствие пробелов
в наименовании "пользователя" Банка
CN (common_name)
Как если нет, то как нам писать
к примеру
Сургутский филиал ОАО Ханты-Мансийского Банка ?

Какое назачение выбрать при запросе сертификата на тестовом УЦ:
Сертификат цифровой подписи?
Можно ли, им же и шифровать?
Или нужен еще один сертификат?
Какой выбрать CSP при запросе сертификата:
CryptoPro
CryptoPro COST R 34.10-94
CryptoPro COST R 34.10-2001?
Какой выбрать Алгоритм хеширования:
COST R 34.11-94 или
HMAC GOST 218147-89?

19.02.2003 14:36:32kure
В CN допускаются пробелы (легко проверить http://www.cryptopro.ru/certsrv), не допускаются "".

Ключ (сертификат ЭЦП) только для подписи.
Клюй (сертификат) шифрования может использоваться для шифрования и ЭЦП.

Алгоритм ЭЦП 94 года разрешено применять до 97 года.

Алгоритм ЭЦП 2001 (эллиптические кривые) таких ограничений не имеет.

Выбор за вами.

Хеширование только 34.11-94, остальное имитозащита.

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



19.02.2003 15:37:23Вячеслав
Все сделал, как вы сказали, вроде работает.
Непонятно как будет делать получатель обратные действия (проверка ЭЦП, рас шифрование)

Мне нужно передать свой сертификат?
Если да то, как это правильно сделать?

Спасибо за внимание?