29.11.2007 10:27:59Некоторые вопросы по реализации Крипто-Про CSP Ответов: 2
Владимир
Мы реализуем набор криптофункций по ГОСТ 34.10-2001 и набору RFC (4357, 4490, 4491) и у нас возникли следующие вопросы:
1. Подпись-проверка подписи - создаем закрытый ключ в Крипто-Про, хешируем данные и подписываем их тоже в Крипто-Про. Экспортируем открытый ключ из Крипто-Про и импортируем его в наши функции - ключ ложится корректно (проверям соответствие точек X и Y). Хешируем данные (хеш в нашей функции совпадает с хешем в Крипто-Про). Производим проверку подписи - проверка не проходит. Тестовый пример из ГОСТ 34.10-2001 в наших функциях отрабатывает корректно. подпись, полученная функцией Крипто-Про CSP CryptSignHash разбирается так - первые 32 байта - число s, остальные 32 байта - число r, порядок при конвертации из блоба в числа - сетевой (big-endian). В чем может быть проблема? Может быть внутри функций CryptSignHash и CryptVerifySignature в Крипто-Про производятся какие то дополнительные операции (типа как в MS криптопровайдерах - происходит дополнение хеша DER последовательностью)? Помогите пожалуйста - если не сложно.
2. в RFC 4357 говорится о VKO GOST 34.10-2001 - там используется UKM - каким образом этот UKM рассчитывается? Просто генерируется случайное число? Если так - то каким образом UKM совмещаются у отправителя и получателя? Т.е. - когда мы сгенерили KEK на отправителе (используя случайный UKM) - каким образом этот же UKM попадает к получателю? Если он берется из UKM - который приходит вместе с зашифрованным CEK ключом - тогда как происходит вычисление KEK? Если не сложно - проясните вопрос.
 
Ответы:
29.11.2007 11:11:25Владимир
->
29.11.2007 14:03:34Алексей
1. Внутри функций раворачиваются и хеш и сигнатура. и только потом они конвертируются в числа. после разворота первые 32 байта - число s, оставшиеся - r.