Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline idtks  
#1 Оставлено : 20 октября 2014 г. 17:14:32(UTC)
idtks

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.07.2014(UTC)
Сообщений: 101
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 22 раз
Добрый день.

Вот такой фрагмент кода:

...
var sw = System.Diagnostics.Stopwatch.StartNew();
signature = csd.SignCades(cps, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, detached, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BINARY);
sw.Stop();
Console.WriteLine("Elapsed: {0}", sw.Elapsed);
...

Отрабатывает примерно за 160 миллисекунд (вывод на консоль: "Elapsed: 00:00:00.1578011"). Это нормальная производительность CSP на Core i7-4770 3.40GHz / 16Gb или что-то не так? Просто, этот результат никак не соотносится с цифрами из поста http://www.cryptopro.ru/...osts&t=1471#post7443

С уважением, Константин Ткачук.
Offline idtks  
#2 Оставлено : 20 октября 2014 г. 17:22:04(UTC)
idtks

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.07.2014(UTC)
Сообщений: 101
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 22 раз
И проверка показывает быстродействие "не очень":

...
// Создание и проверка подписи CAdES BES
var sw = System.Diagnostics.Stopwatch.StartNew();
signature = csd.SignCades(cps, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, detached, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BINARY);
sw.Stop();
Console.WriteLine("Elapsed: {0}", sw.Elapsed);
sw = System.Diagnostics.Stopwatch.StartNew();
csd.VerifyCades(signature, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, true);
sw.Stop();
Console.WriteLine("Elapsed: {0}", sw.Elapsed);
...

Вывод на консоль:

Elapsed: 00:00:00.1610075
Elapsed: 00:00:00.1914165

--- 190 миллисекунд для проверки подписи CSdES?

С уважением, Константин Ткачук.
Offline idtks  
#3 Оставлено : 21 октября 2014 г. 12:08:56(UTC)
idtks

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.07.2014(UTC)
Сообщений: 101
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 22 раз
Какой-нибудь ответ будет? 1000 проверок подписей в секунду это правда или ложь? Если это правда, то почему в приведенном выше примере скорость в 200 раз меньше?

С уважением, Константин Ткачук.
Offline Новожилова Елена  
#4 Оставлено : 22 октября 2014 г. 15:28:37(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
В приведенном вами примере происходит не только создание криптографической подписи, о котором идет речь в указанном вами посте. Создается сообщение, формируются атрибуты, строится цепочка сертификата. К тому же вы используете COM-объекты.
При проверке подписи CAdES-BES дополнительно производится проверка сертификата (и его цепочки) на отзыв.

В связи с этим некорректно сравнивать скорость работы с "чистым" формированием подписи в КриптоПро CSP.
Offline ssm_2005  
#5 Оставлено : 23 октября 2014 г. 10:54:20(UTC)
ssm_2005

Статус: Активный участник

Группы: Участники
Зарегистрирован: 16.09.2011(UTC)
Сообщений: 239
Мужчина
Откуда: Москва

Сказал «Спасибо»: 17 раз
Поблагодарили: 3 раз в 3 постах
Елена, я правильно понимаю, что КриптоПРО CSP 3.6 по умолчанию создает CAdES-BES?
С уважением,
Сергей
Offline Новожилова Елена  
#6 Оставлено : 23 октября 2014 г. 13:22:04(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Да, если используется алгоритм ГОСТ и если специально не отключали. Но КриптоПро CSP при этом не ищет сертификаты, которые нужно вложить в сообщение.
Но основные задержки, скорее всего, из-за использования COM.

Отредактировано пользователем 23 октября 2014 г. 13:25:12(UTC)  | Причина: Не указана

Offline idtks  
#7 Оставлено : 23 октября 2014 г. 15:10:14(UTC)
idtks

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.07.2014(UTC)
Сообщений: 101
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 22 раз
Добрый день, Елена.

Спасибо за Ваш ответ, но тут вот возникли новые вопросы:

1. Вопрос по имплементации проверки подписи CAdES_X_LONG_TYPE_1 в CSP "КриптоПРО": проверяются или нет дайджесты таймстампов TSA из подписи? У нас сейчас ведется поддержка и оптимизация одного старого проекта, в котором надо обеспечить высокую скорость проверки подписей CAdES_X_LONG_TYPE_1. В старом коде проверка делается следующим образом: сначала вызывается функция "CadesMsgVerifySignature" из библиотеки "cades.dll" с флагом CadesType = CAdES_X_LONG_TYPE_1, а затем, отдельно, перебираются все таймстампы TSA и проверяется их дайджесты через библотеку Bouncy Castle - вызывается "timeStampToken.Validate". Поэтому, возникает вопрос, насколько отдельная проверка таймстампов необходима - если её "выкинуть" скорость проверки вырастает в разы: на вызов "CadesMsgVerifySignature" тратится 120 миллисекунд, а на "timeStampToken.Validate" - 130 миллисекунд (а в тестовом примере целых два таких таймстампа). Хотя проект написан на C#, не думаю, что это серьезно замедляет работу с "cades.dll" - переходники .Net Framework к "бинарному коду" написаны очень хорошо, обеспечивая десятки тысяч вызовов в секунду (года два назад я это специально проверял) - по сравнению с общим временем выполнения функции это копейки.
2. Наш РП очень хочет увидеть пример кода проверки ассиметричной подписи, показывающий скорость 1000 проверок в секунду - не могли бы Вы его привести?

С уважением, Константин Ткачук.
Offline Новожилова Елена  
#8 Оставлено : 23 октября 2014 г. 15:50:05(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
1. Функция "CadesMsgVerifySignature" из библиотеки "cades.dll" с флагом CadesType = CAdES_X_LONG_TYPE_1 самостоятельно проверяет штамп времени на значение подписи и штамп времени CAdES-C. Если у вас в сообщении нет дополнительных штампов времени, проверка которых важна для вас, то отдельную проверку штампов можно убрать.
2. В сообщении по ссылке в начале темы приводится следующий вариант тестирования производительности:
"Если у Вас установлен CSP, протестировать производительность можно при помощи утилиты csptest, входящей в состав дистрибутива. Для этого следует запускать её с параметром -perf (остальные опции можно посмотреть в csptest -perf -help)."
Или вас интересует какие конкретно функции при этом вызываются? В утилите формируется только криптографическая подпись (не CMS-сообщение) и используются низкоуровневые функции - CryptCreateHash, CryptHashData, CryptSignHash в зависимости от входных параметров. Пример кода привести, к сожалению, не могу.
thanks 1 пользователь поблагодарил Новожилова Елена за этот пост.
idtks оставлено 23.10.2014(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.