Пара слов о КриптоПро CSP 4.0

Публикация: 03 Сентябрь 2013 - 18:40, редакция: 31.10.2013 10:02

Сложение точек кривойМы выпустили новую версию криптопровайдера – КриптоПро CSP версии 4.0. Выпуск "четверки" является значительной вехой в развитии нашего флагманского продукта. Теперь, в дополнение к функционалу предыдущих версий, наш провайдер обладает полной поддержкой алгоритмов вычисления и проверки подписи по ГОСТ Р 34.10-2012, вычисления хэш-функции по ГОСТ Р 34.11-2012, а также обеспечивает поддержку сопутствующих криптографических алгоритмов.

При создании CSP 4.0 существенная часть кода провайдера была написана практически с нуля. Расскажем немного о причинах.

Введенный приказом Росстандарта от 7 августа 2012 года алгоритм формирования и проверки электронной подписи ГОСТ 34.10-2012, как и его предшественник ГОСТ Р 34.10-2001, базируется на операциях в группе точек эллиптической кривой. Однако новый стандарт поддерживает две длины ключей подписи, 256 и 512 бит, а при увеличении длины ключей вопросы выбора эффективных алгоритмов для промежуточных преобразований начинают иметь принципиальное значение для быстродействия. С учетом вида самих математических преобразований, трудоемкости конечных алгоритмов растут с увеличением длины ключа быстрее, чем квадратичным образом,  а значит, любые недостатки при выборе промежуточных алгоритмов неминуемо приведут к существенному падению производительности при большой длине ключа.

Исходя из этого, в КриптоПро CSP 4.0 были произведены масштабные переработки алгоритмической части криптографического ядра CSP. Все участвующие в операциях формирования и проверки подписи вычислительные алгоритмы – реализации операций в поле вычетов по простому модулю, схемы сложения, удвоения и умножения на скаляр точек эллиптической кривой – были, по сути, переписаны заново с прицелом на максимальную эффективность работы при обоих вариантах длины ключа.

Одним из новых структурных решений в криптографическом ядре провайдера является выбор конкретных вычислительных алгоритмов в группе точек эллиптической кривой исходя из области использования той или иной точки (открытый ключ, промежуточная точка при вычислениях или порождающий элемент группы точек эллиптической кривой). Это позволяет существенно улучшить среднюю трудоемкость: на основе оценки целесообразности проведения предварительных вычислений, которые в дальнейшем используются для существенного ускорения всех последующих операций с той же точкой. В этих целях в коде реализованы три новых класса алгоритмов вычисления кратной точки эллиптической кривой (умножения точки кривой на скаляр).

Об основных принципах реализации алгоритма хэширования ГОСТ Р 34.11-2012, заложенных в CSP 4.0, наши специалисты рассказывали весной на конференции Рускрипто-2013. Все теоретические схемы, о которых шла речь в том докладе, были дополнительно доработаны и внедрены в код криптопровайдера.

Значения производительности реализаций алгоритмов в КриптоПро CSP 4.0 достигают следующих величин (данные получены на системе с Intel Core i5 3.3 GHz, Windows 7 x64, при работе в один поток):

  • скорость шифрования по ГОСТ 28147-89 в режиме гаммирования составляет 370 МБ/с;
  • скорость хэширования по ГОСТ Р 34.11-2012 (независимо от длины выхода) – 106 МБ/с;
  • 15756 и 3433 формирований подписей в секунду на коротких и на длинных ключах соответственно;
  • 9732 и 1853 проверок подписи в секунду на коротких и на длинных ключах соответственно.

В дополнение к реализациям самих алгоритмов ГОСТ 34.11-2012 и ГОСТ 34.10-2012, в CSP 4.0 реализованы сопутствующие криптографические алгоритмы (HMAC, PRF, VKO). Как и используемые параметры эллиптических кривых, они соответствуют проектам документов Технического комитета по стандартизации "Криптографическая защита информации" (ТК26), которые были подготовлены при активнейшем участии специалистов нашей компании, опять же с учетом возможного повышения производительности программных и аппаратных реализаций.

При разработке КриптоПро CSP 4.0 мы также учитывали, что для полноценной функциональности криптопровайдера ключи должны храниться на внешних устройствах, поэтому все ключевые носители, совместимые с предыдущими версиями CSP, могут сразу использоваться для хранения 256-битных ключей ГОСТ Р 34.10-2012. Более того, благодаря тесному сотрудничеству с компанией "Актив", все устройства серии "Рутокен" без дополнительного обновления внутреннего ПО имеют возможность хранить закрытые ключи длины как 256, так и 512 бит. Таким образом, КриптоПро CSP 4.0 стал первым криптографическим провайдером, который поддерживает хранение длинных ключей ГОСТ Р 34.10-2012 на отделяемых носителях ключевой информации.

И, конечно, мы обеспечим работу всех продуктов линейки КриптоПро, использующих CSP в качестве СКЗИ (в том числе, наших решений для .NET, ЭЦП Browser plug-in, Microsoft Office, PDF, Stunnel, IPsec и пр.).