Статус: Активный участник
Группы: Участники
Зарегистрирован: 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С уважением, Константин Ткачук.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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?
С уважением, Константин Ткачук.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2014(UTC) Сообщений: 101 Откуда: Москва Сказал(а) «Спасибо»: 22 раз
|
Какой-нибудь ответ будет? 1000 проверок подписей в секунду это правда или ложь? Если это правда, то почему в приведенном выше примере скорость в 200 раз меньше?
С уважением, Константин Ткачук.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
В приведенном вами примере происходит не только создание криптографической подписи, о котором идет речь в указанном вами посте. Создается сообщение, формируются атрибуты, строится цепочка сертификата. К тому же вы используете COM-объекты. При проверке подписи CAdES-BES дополнительно производится проверка сертификата (и его цепочки) на отзыв.
В связи с этим некорректно сравнивать скорость работы с "чистым" формированием подписи в КриптоПро CSP.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.09.2011(UTC) Сообщений: 239 Откуда: Москва Сказал «Спасибо»: 17 раз Поблагодарили: 3 раз в 3 постах
|
Елена, я правильно понимаю, что КриптоПРО CSP 3.6 по умолчанию создает CAdES-BES? |
С уважением, Сергей |
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Да, если используется алгоритм ГОСТ и если специально не отключали. Но КриптоПро CSP при этом не ищет сертификаты, которые нужно вложить в сообщение. Но основные задержки, скорее всего, из-за использования COM. Отредактировано пользователем 23 октября 2014 г. 13:25:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 проверок в секунду - не могли бы Вы его привести?
С уважением, Константин Ткачук.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 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 в зависимости от входных параметров. Пример кода привести, к сожалению, не могу.
|
1 пользователь поблагодарил Новожилова Елена за этот пост.
|
idtks оставлено 23.10.2014(UTC)
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close