Крипто++
![]() | |
Разработчик(и) | первоначально Wei Dai , проект Crypto++ с 2015 года. |
---|---|
Первоначальный выпуск | 2015 |
Стабильная версия | 8,9
/ 1 октября 2023 г |
Репозиторий | |
Написано в | С++ |
Операционная система | Кросс-платформенный |
Тип | Библиотека безопасности |
Лицензия | Лицензия на программное обеспечение Boost (ранее лицензия Crypto++ ) / отдельные файлы в общественное достояние |
Веб-сайт | www |
Crypto++ (также известная как CryptoPP , libcrypto++ и libcryptopp ) — это бесплатная с открытым исходным кодом C++ классов библиотека , состоящая из криптографических алгоритмов и схем, написанная Вэй Даем . Crypto++ широко используется в научных кругах, студенческих проектах, проектах с открытым исходным кодом и некоммерческих проектах, а также в бизнесе. [ 1 ] Выпущенная в 1995 году библиотека полностью поддерживает 32-битные и 64-битные архитектуры для многих основных операционных систем и платформ, включая Android (с использованием STLport ), Apple (macOS и iOS), BSD , Cygwin , IBM AIX , Linux , MinGW , Solaris. , Windows , Windows Phone и Windows RT . Проект также поддерживает компиляцию с использованием библиотек времени выполнения C++03, C++11, C++14 и C++17; а также множество компиляторов и IDE , включая Borland Turbo C++ , Borland C++ Builder , Clang , CodeWarrior Pro , GCC (включая GCC от Apple), Intel C++ Compiler (ICC) , Microsoft Visual C/C++ и Sun Studio .
Crypto++ 1.0 был выпущен в июне 1995 года, но загрузка больше не доступна. Выпуск Crypto++ 1.0 был отозван из-за того, что RSA Data Security, Inc. заявила о своем патенте на алгоритм RSA . Все остальные версии библиотеки доступны для скачивания. [ 2 ]
Алгоритмы
[ редактировать ]Crypto++ обычно обеспечивает полную криптографическую реализацию и часто включает менее популярные и менее часто используемые схемы. Например, Camellia — это ISO / NESSIE / IETF одобренный блочный шифр, примерно эквивалентный AES , а Whirlpool — это ISO / NESSIE / IETF одобренная хеш-функция, примерно эквивалентная SHA ; оба включены в библиотеку. [ 3 ] [ 4 ]
Кроме того, библиотека Crypto++ иногда предоставляет криптографическому сообществу предлагаемые и новейшие алгоритмы и реализации для изучения. Например, VMAC , универсальный код аутентификации сообщений на основе хэша , был добавлен в библиотеку во время ее подачи в Internet Engineering Task Force (CFRG Рабочая группа) ; и кривые Brainpool, предложенные в марте 2009 года в качестве интернет-проекта в RFC 5639, были добавлены в Crypto++ 5.6.0 в том же месяце. [ 5 ] [ 6 ]
Библиотека также предоставляет примитивы для теоретико-числовых операций, таких как быстрые целые числа с различной точностью; генерация и проверка простых чисел; арифметика конечных полей, включая GF(p) и GF(2 н ); эллиптические кривые; и полиномиальные операции.
Кроме того, в библиотеке хранится коллекция небезопасных или устаревших алгоритмов, обеспечивающих обратную совместимость и историческую ценность: MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, БЕЗОПАСНЫЙ, 3-Х ПУСТОЙ, ГОСТ, АКУЛА, CAST-128 и Квадрат.
Производительность
[ редактировать ]В документе семинара ECRYPT 2007 года , посвященном реализации открытых ключей восьми библиотек , Ашраф Абушарех и Крис Кай обнаружили, что «Crypto++ 5.1 [sic] лидирует с точки зрения поддержки криптографических примитивов и схем, но является самой медленной из всех исследованных библиотек». [ 7 ]
В 2008 году тесты скорости, проведенные Тимо Бингманном с использованием семи с открытым исходным кодом библиотек безопасности и 15 блочными шифрами , Crypto++ 5.5.2 была самой эффективной библиотекой при использовании двух блочных шифров и не уступала средней производительности библиотеки при остальных блочных шифрах. . [ 8 ]
Crypto++ также включает функцию автоматического тестирования, доступную из командной строки ( cryptest.exe b ), результаты которой доступны на странице Crypto++ 5.6.0 Benchmarks . [ 9 ]
Как и многие другие криптографические библиотеки, доступные для 32-битных и 64-битных x86 архитектур , Crypto++ включает процедуры сборки для AES с использованием AES-NI . При использовании AES-NI производительность AES значительно повышается: пропускная способность 128-битного AES - GCM увеличивается примерно с 28,0 циклов на байт до 3,5 циклов на байт. [ 10 ] [ 11 ] [ 12 ]
Выпуски версий
[ редактировать ]Crypto++ 1.0 был выпущен в июне 1995 года. С момента своего первого выпуска библиотека претерпела около двух десятков изменений, включая архитектурные изменения в версии 5.0. [ 13 ] [ 14 ] С марта 2009 года было выпущено десять выпусков с использованием архитектуры версии 5.0. [ 15 ]
Версия | Дата выпуска |
---|---|
Крипто++ 6.0.0 | 22 января 2018 г. |
Крипто++ 6.1.0 | 22 февраля 2018 г. |
Крипто++ 7.0.0 | 8 апреля 2018 г. |
Крипто++ 8.0.0 | 28 декабря 2018 г. |
Крипто++ 8.1.0 | 11 февраля 2019 г. |
Крипто++ 8.2.0 | 28 апреля 2019 г. |
Крипто++ 8.3.0 | 20 декабря 2020 г. |
Крипто++ 8.4.0 | 2 января 2021 г. |
Крипто++ 8.5.0 | 7 марта 2021 г. |
Крипто++ 8.6.0 | 24 сентября 2021 г. |
Крипто++ 8.7.0 | 7 августа 2022 г. |
Крипто++ 8.8.0 | 25 июня 2023 г. |
Крипто++ 8.9.0 | 1 октября 2023 г. |
Компиляцию предыдущих выпусков Crypto++, выпущенную Лоуренсом Тео, начиная с 1995 года, можно найти в архивах группы пользователей. [ 16 ]
Проверки FIPS
[ редактировать ]Crypto++ прошел три проверки модуля Федерального стандарта обработки информации (FIPS) 140-2 уровня 1 без каких-либо проблем после проверки. [ 17 ]
Версия | Сертификат | Даты |
---|---|---|
Крипто++ 5.0.4 | Сертификат 343 [ 18 ] | 2003-09-05, 2005-10-28 |
Крипто++ 5.2.3 | Сертификат 562 [ 19 ] | 2005-07-29, 2005-08-24, 2005-10-28 |
Крипто++ 5.3.0 | Сертификат 819 [ 20 ] | 2007-08-13, 2007-08-17 |
CMVP Crypto++ был перенесен в список исторической проверки в 2016 году. Этот шаг фактически означает, что библиотека больше не проверяется.
Лицензирование
[ редактировать ]Начиная с версии 5.6.1, Crypto++ состоит только из общедоступных файлов с авторскими правами на компиляцию и единой лицензией с открытым исходным кодом на авторские права на компиляцию: [ 21 ]
Лицензия Crypto++ несколько необычна среди проектов с открытым исходным кодом. Различают библиотеку как компиляцию (т. е. коллекцию), авторские права на которую принадлежат Вэй Даю , и отдельные файлы в ней, являющиеся общественным достоянием. Библиотека защищена авторским правом как компиляция, чтобы включить в лицензию определенные отказы от ответственности (относительно гарантий, экспорта и патентов), а также сохранить в неприкосновенности сведения об авторстве и декларации об общественном достоянии, когда Crypto++ распространяется в форме исходного кода. Тот факт, что отдельные файлы являются общественным достоянием, означает, что по закону вы можете размещать сегменты кода, целые файлы или небольшие наборы файлов (до предела, установленного добросовестным использованием) в свой собственный проект и делать с ними все, что захотите, не беспокоясь о авторское право.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^
- Дж. Келси; Б. Шнайер ; Д. Вагнер; К. Холл (1998). «Криптаналитические атаки на генераторы псевдослучайных чисел» (PDF) . Быстрое программное шифрование, 5-е международные слушания . Архивировано из оригинала (PDF) 30 декабря 2014 г. Проверено 10 августа 2010 г.
- К. Аджих; Д. Раффо; П. Мюлеталер (2004). «OLSR: распределенное управление ключами для обеспечения безопасности» (PDF) . Архивировано из оригинала (PDF) 21 июля 2011 г. Проверено 10 августа 2010 г.
- С. Инлянь; М.К. Рейтер; Д. О'Халларон (2006). Защита конфиденциальности в системах поиска по ключу-значению (PDF) . Конференция по приложениям компьютерной безопасности (ACSAC) . Проверено 10 августа 2010 г.
- Т. Зиденберг (2010). «Оптимизация библиотеки Crypto++ для P4» . Технион, Израильский технологический институт . Архивировано из оригинала 21 июля 2011 г. Проверено 10 августа 2010 г.
- ^ «Загрузки Crypto++» . Крипто++ проект. Июнь 1995 года . Проверено 20 декабря 2020 г.
- ^ «Первый в Японии 128-битный блочный шифр «Камелия» одобрен в качестве нового стандартного алгоритма шифрования в Интернете» . physorg.com . Проверено 23 мая 2022 г.
- ^ Хартикайнен, Арси; Тойванен, Тимо; Кильюнен, Херкко (2005). «Хеш-функция Whirlpool» (PDF) . Безопасные коммуникации, презентация семинара . Технологический университет Лаппеенранты . Проверено 23 мая 2022 г.
- ^ Лохтер, М.; Меркл, Дж. (2009). Криптография эллиптических кривых (ECC) Стандартные кривые Brainpool и генерация кривых . IETF. дои : 10.17487/RFC5639 . РФК 5639 . Проверено 23 мая 2022 г.
- ^ «Библиотека Крипто++ 8.6» . Сайт Крипто++ . Проверено 23 мая 2022 г.
- ^ А. Абушарех; К. Кай (2007). Сравнительный анализ библиотек программного обеспечения для криптографии с открытым ключом (PDF) . Семинар ECRYPT по повышению производительности программного обеспечения для шифрования и дешифрования. стр. 3–19. Архивировано из оригинала (PDF) 27 февраля 2012 г. Проверено 12 августа 2010 г.
- ^ Т. Бингманн (2008). «Тест скорости и сравнение криптографических библиотек с открытым исходным кодом и флагов компилятора» . Блог Тимо Бингманна . Проверено 10 августа 2010 г.
- ^ «Бенчмарки Crypto++ 5.6.0» . Сайт Крипто++ . 2009 . Проверено 10 августа 2010 г.
- ^ П. Шмид; А. Роос (2010). «Анализ производительности AES-NI» . Аппаратное обеспечение Тома . Проверено 10 августа 2010 г.
- ^ Т. Кровец; В. Дай (2010). «Неправильное определение порядка байтов MIPS и как получить быстрые вызовы AES?» . Группа пользователей Crypto++ . Проверено 11 августа 2010 г.
- ^ «Бенчмарки Crypto++ 5.6.0 Pentium 4» . Сайт Крипто++ . 2009 . Проверено 10 августа 2010 г.
- ^ Анонс (2002). «Доступна бета-версия Crypto++ 5.0» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
- ^ Анонс (2002). «Обновление Crypto++ 5.0» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
- ^ «Список объявлений о криптовалюте ++» . Sourceforge.net . Проверено 14 августа 2010 г.
- ^ Л. Тео (2002). «Даты выпуска предыдущих версий» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
- ^ «Политика безопасности библиотеки Crypto++ версий 5.3.0 [32-битная и 64-битная]» (PDF) . Программа проверки криптографических модулей (CMVP) . 2007 . Проверено 8 августа 2010 г.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2003 г.)» . Программа проверки криптографических модулей (CMVP) . 2003 . Проверено 8 августа 2010 г.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2005 г.)» . Программа проверки криптографических модулей (CMVP) . 2005 . Проверено 8 августа 2010 г.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2007 г.)» . Программа проверки криптографических модулей (CMVP) . 2007 . Проверено 8 августа 2010 г.
- ^ «Авторское право на компиляцию для Crypto++» . Сайт Крипто++ . Проверено 15 августа 2010 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Крипто++ проект GitHub
- Список проектов, использующих Crypto++ (включая некоммерческие и коммерческие проекты)
- Группа пользователей Crypto++