Программный комплекс криптографических преобразований «Шифр+» v 2.1 реализован в виде набора библиотек криптографических функций для различных аппаратных платформ и операционных систем. Библиотеки являются средством криптографической защиты информации для решения следующих задач:
- обеспечение конфиденциальности данных;
- обеспечения целостности, авторства и неотказуемости;
- выработки и распределения общего секрета между одним или несколькими участниками;
- формирование псевдослучайной последовательности на основе аппаратного источника случайного начального заполнения;
- различные вспомагательные преобразования.
Программный комплекс криптографических преобразований «Шифр+» v 2.1 имеет позитивное экспертное заключение Госспецсвязи Украины от 16.05.2017 №04/03/02-1674.
Ниже перечислено основные алгоритмы, которые вошли в библиотеку.
Алгоритмы симметричного шифрования
-
ГОСТ 28147-89 на основе ДСТУ ГОСТ 28147:2009 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
-
ГОСТ 28147-89 в режиме (wrap) шифрования ключей на основе Требований к форматам криптографических сообщений, утвержденных приказом Администрации Госспецсвязи України от 18.12.2012 №739.
-
DEA (DES) на основе ISO/IEC 18033-3:2010: Part 3: Block ciphers. Поддерживается ключ 64 бит.
-
TDEA (3DES) на основе ISO/IEC 18033-3:2010: Part 3: Block ciphers. Поддерживается ключ 192 бит.
-
AES на основе ISO/IEC 18033-3:2010: Part 3: Block ciphers. Поддерживается ключ 128, 192, 256 бит. Поддерживается возможность использовать набор инструкций AES-NI процессоров с архитектурой x86, x86-64, которые позволяют распараллеливать процедуру зашифровывания и расшифровывания для режимов ECB, CTR.
-
ДСТУ 7624:2014 «Информационные технологии. Криптографическая защита информации. Алгоритм симметричного блочного преобразования». Поддерживается ключ 128, 256, 512 бит.
Для всех блочных шифров, размер начального заполнения (вектора инициализации) определяется размером блока преобразований.
Информацию о поддерживаемых режимах каждым алгоритмом шифрования, следует смотреть в соответствующей документации на библиотеку.
Алгоритмы хеширования
-
SHA-1 на основе ISO/IEC 10118-3:2004: Part 3: Hash-functions. Поддерживается длина блока 160 бит.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 на основе ISO/IEC 10118-3:2004: Part 3: Hash-functions. Поддерживается длина блока 224, 256, 384, 512, 512/224, 512/256 бит.
-
ГОСТ 34.311-95 (256-бит) на основе ГОСТ 34.311-95. «Информационная технология. Криптографическая защита информации. Функция хэширования». Поддерживается длина 256 бит.
-
ДСТУ 7564:2014 «Информационные технологии. Криптографическая защита информации. Функции хеширования». Поддерживается длина блока 256, 384, 512 бит.
Для всех хеш-функций, размер вектора инициализации определяется размером блока преобразований. Необходимость установки начального заполнения:
-
ГОСТ 34.311-95 - используется.
-
ДСТУ 7564: 2014 - не используется.
-
SHA-1 - не используется.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/256, SHA-512/224 - не используется.
Необходимость установки начального заполнения:
Информацию о поддерживаемых режимах каждым алгоритмом хеширования, следует смотреть в разделе касающемся этого алгоритма.
Алгоритмы электронной подписи
Для всех алгоритмов постановки и проверки электронной подписи, на вход подается хеш-образ подписываемого сообщения, причем размер образа не должен превышать двоичный размер личного ключа. Т.е. необходимо подбирать соответсвующую хеш-функцию.
-
ДСТУ 4145:2002 на основе ДСТУ 4145:2002. Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 521 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECDSA на основе IEEE P1363-2000, ISO/IEC 14888-3:2006: Part 3: Discrete logarithm based Mechanisms.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 521 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECGDSA на основе ISO/IEC 14888-3:2006: Part 3: Discrete logarithm based Mechanisms, ISO/IEC 15946: Part 2: Digital signatures.
-
RSA1 на основе IEEE P1363-2000, PKCS#1 v1.5, PKCS#1 v2.2, ISO/IEC 14888-2:2006: Part 2: Integer factorization based mechanisms.
-
Поддерживаются ключ двоичной длиной: 512, 1024, 1536, 2048, 3072, 4096, 7168, 8192, 15360, 16384 бит.
Следует обратить внимание, что на вход функции подписания или проверки электронной подписи следует передавать заранее закодированное сообщение с помощью функций:
Следует обратить внимание, что на вход функции подписания или проверки электронной подписи следует передавать заранее закодированное сообщение с помощью функций:
Размер закодированного сообщения определяется двоичной длиной личного ключа.
Алгоритмы выработки общего секрета
-
ECKAS-DH1 (static, dynamic) на основе IEEE P1363-2000, ДСТУ ISO/IEC 15946-3:2006, Приказа Госспецсвязи Украины от 18.12.2012, №739.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-DH2 на основе IEEE P1363-2000, ДСТУ ISO/IEC 15946-3:2006.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-DH2 (UA extention) на основе IEEE P1363-2000, ДСТУ ISO/IEC 15946-3:2006.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-MQV1 на основе IEEE P1363-2000.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-MQV1U (UA extention) на основе IEEE P1363-2000, ДСТУ ISO/IEC 15946-3:2006.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-MQV2U (UA extention) на основе IEEE P1363-2000, ДСТУ ISO/IEC 15946-3:2006.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
-
ECKAS-EGU (UA extention) на основе ДСТУ ISO/IEC 15946-3:2006.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 167, 173, 179, 191, 233, 257, 307, 367, 431 бит. Согласно ДСТУ 4145:2002 и совместного приказа Министерства юстиции, Госспецсвязи 20.08.2012 №1236/5/453.
-
Поддерживается полиномиальный базис представления поля GF(2m), для m=163, 233, 283, 409, 571 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=192, 224, 256, 384, 512 бит. Согласно NIST FIPS 186-3.
-
Поддерживается поле GF(pm), для m=160, 192, 224, 256, 320, 384, 512 бит. Согласно RFC 5639.
Алгоритмы формирования криптографически стойкой псевдослучайной последовательности
-
Генератор на основе ДСТУ 4145:2002. В качестве параметра могут выступать различные блочные шифры в режиме простой замены (ECB):
-
ГОСТ 28147-89.
-
AES.
-
DEA/TDEA.
-
ДСТУ 7624:2014.
-
Генератор на основе ГОСТ 34.310-95. В качестве параметра могут выступать различные хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
Алгоритмы направленного шифрования
Следует обратить внимание, что на вход функции зашифровывания следует передавать заранее закодированное сообщение с помощью функций:
Размер закодированного сообщения определяется двоичной длиной личного ключа.
Алгоритмы функций выработки ключа
Для всех функций выработки ключа размер начального заполнения (вектора инициализации) определяется размером образа сообщения используемой хеш-функции. Размер порождающего параметра (соли), не ограничен сверху. Число итераций, не ограничено сверху.
-
KDF1 на основе ISO/IEC 18033-2:2006. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
MGF1 на основе ISO/IEC 18033-2:2006. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
KDF2 на основе ISO/IEC 18033-2:2006. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
KDF3 на основе Требований к алгоритмам, форматам и интерфейсам реализуемых в средствах шифрования в надежных средствах электронной подписи, утвержденых приказом Министерства юстиции Украины, Администрации Госспецсвязи Украины от 27.12.2013 №2782/5/689, а также ISO/IEC 18033-2:2006. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF1 на основе PKCS#5 v 1.5 и PKCS#5 v 2.1. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF2 на основе Требований к алгоритмам, форматам и интерфейсам реализуемых в средствах шифрования в надежных средствах электронной подписи, утвержденых приказом Министерства юстиции Украины, Администрации Госспецсвязи Украины от 27.12.2013 №2782/5/689, а также PKCS#5 v 1.5 и PKCS#5 v 2.1. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDFUAPfx на основе Требований к алгоритмам, форматам и интерфейсам реализуемых в средствах шифрования в надежных средствах электронной подписи, утвержденых приказом Министерства юстиции Украины, Администрации Госспецсвязи Украины от 27.12.2013 №2782/5/689, а также PKCS#5 v 1.5 и PKCS#5 v 2.1. В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
ДСТУ 7564:2014.
Алгоритмы симметричного шифрования на основе пароля
-
PBES2 на основе Требований к алгоритмам, форматам и интерфейсам реализуемых в средствах шифрования в надежных средствах электронной подписи, утвержденых приказом Министерства юстиции Украины, Администрации Госспецсвязи Украины от 27.12.2013 №2782/5/689 и RFC 2898. Для всех функций шифрования на основе пароля, размер начального заполнения (вектора инициализации) составляет 8 байт. Размер порождающего параметра (соли) находится в диапазоне [8, 32] байта. Число итераций находится в диапазоне [1000, 10000]. В качестве параметра могут выступать различные PBKDF функции для вырабатывания секретного параметра на основе пароля:
-
PBKDF1 на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF2 на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF2UAPfx на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
а также для заданного блочного симметричного шифра:
-
ГОСТ 28147-89.
-
AES.
-
DEA/TDEA.
-
ДСТУ 7624:2014.
Алгоритмы выработки кода аутентификации на основе пароля
-
PBMAC1 на основе Требований к алгоритмам, форматам и интерфейсам реализуемых в средствах шифрования в надежных средствах электронной подписи, утвержденых приказом Министерства юстиции Украины, Администрации Госспецсвязи Украины от 27.12.2013 №2782/5/689 и RFC 2898. Для всех функций выработки MAC (иммитовставки) на основе пароля, размер начального заполнения (вектора инициализации) составляет 8 байт. Размер порождающего параметра (соли) находится в диапазоне [8, 64] байта. Число итераций находится в диапазоне [1000, 10000]. В качестве параметра могут выступать различные PBKDF функции для вырабатывания секретного параметра на основе пароля:
-
PBKDF1 на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF2 на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
-
PBKDF2UAPfx на основе:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
а также для заданного блочного симметричного шифра:
-
ГОСТ 28147-89.
-
AES.
-
DEA/TDEA.
-
ДСТУ 7624:2014.
Алгоритмы кодирования данных для шифрования и подписания
Перечень алгоритмов кодирования данных для подписания электронной подписи на основе алгоритмов RSA1S и RSA2S:
-
EMSA1 на основе IEEE P1363-2000. Для постановки электронной подписи в виде приложения. Используется в схемах PKCS#1 v 1.5.
-
EMSA2 на основе IEEE P1363-2000 и X9.31. Для постановки электронной подписи в виде приложения. Используется в схемах X9.31.
-
EMSA3 на основе IEEE P1363-2000 и PKCS#1 v 1.5. Для постановки электронной подписи в виде приложения. Используется в схемах PKCS#1 v 1.5.
-
EMSA4 на основе IEEE P1363-2000 и PKCS#1 v 2.1. Для постановки электронной подписи в виде приложения. Используется в схемах PKCS#1 v 2.1.
-
EMSR1 на основе IEEE P1363-2000 и ISO/IEC 9796:1991. Для постановки электронной подписи с восстановлением сообщения. Используется в схемах ISO/IEC 9796:1991.
-
EMSR3 на основе IEEE P1363-2000 и PKCS#1 v 2.1. Для постановки электронной подписи с восстановлением сообщения. Используется в схемах PKCS#1 v 2.1.
Перечень алгоритмов кодирования данных для направленного шифрования на основе алгоритма RSAE:
В качестве параметра могут выступать хеш-функции:
-
ГОСТ 34.311-95.
-
SHA-1.
-
SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
-
ДСТУ 7564:2014.
Большие целые числа
Поддерживаются большие целые числа двоичной длиной 512, 1024, 1536, 2048, 3072, 4096, 7168, 8192, 15360, 16384 бит.
Над большими целыми числами могут выполняться следующие операции:
Технические особенности библиотеки
Поддерживаемые платформы
-
PC x86:
-
Microsoft Windows.
-
Linux.
-
FreeBSD.
-
PC x86-64:
-
Microsoft Windows.
-
Linux.
-
FreeBSD.
-
Apple macOS.
-
Mobile x86:
-
Mobile x86-64:
-
ARM v7x 32-bit:
-
Linux.
-
Android OS.
-
Apple iOS.
-
ARM v8x 32/64-bit:
-
Linux.
-
Android OS.
-
Apple iOS.
Предлагаемые типы библиотек
-
Для платформы Microsoft Windows:
-
Для платформы Linux, FreeBSD, Android, Apple Mac OS X, Apple iOS:
Поддерживаемые компиляторы
Дополнительные материалы: