Крипто ++ - Crypto++
Разработчики) | изначально Вэй Дай, проект Crypto ++ с 2015 г. |
---|---|
изначальный выпуск | 1995 |
Стабильный выпуск | 8.2 / 28 апреля 2019 г. |
Репозиторий | |
Написано в | C ++ |
Операционная система | Кроссплатформенность |
Тип | Библиотека безопасности |
Лицензия | Лицензия на программное обеспечение Boost (ранее Лицензия Crypto ++ ) / отдельные файлы в папку всеобщее достояние |
Интернет сайт | www |
Крипто ++ (также известен как КриптоПП, libcrypto ++, и libcryptopp) является бесплатным и Открытый исходный код C ++ класс библиотека из криптографический алгоритмы и схемы написанные Вэй Дай. Crypto ++ широко используется в академических кругах, студенческих проектах, проектах с открытым исходным кодом и некоммерческих проектах, а также в бизнесе.[1] Выпущенная в 1995 году, библиотека полностью поддерживает 32-битный и 64-битный архитектуры для многих основных операционных систем и платформ, включая Android (с использованием STLport ), яблоко (Mac OS X и iOS), BSD, Cygwin, IBM AIX и S / 390, Linux, MinGW, Солярис, Windows, Windows Phone и Windows RT. Проект также поддерживает компиляцию с использованием библиотек времени выполнения C ++ 03, C ++ 11 и C ++ 17; и множество компиляторы и Иды, в том числе Borland Turbo C ++, Borland C ++ Builder, Лязг, CodeWarrior Pro, GCC (включая GCC от Apple), Компилятор Intel C ++ (ICC), Microsoft Visual C / C ++, и Солнечная студия.
Алгоритмы
Crypto ++ обычно предоставляет полные криптографические реализации и часто включает менее популярные, менее часто используемые схемы. Например, Камелия является ISO /НЕССИ /IETF -утверждено блочный шифр примерно эквивалентно AES, и Водоворот является ISO /НЕССИ /IETF -утверждено хэш-функция примерно эквивалентно SHA; оба включены в библиотеку.[2][3]
Кроме того, библиотека Crypto ++ иногда делает предлагаемые и новейшие алгоритмы и реализации доступными для изучения криптографическим сообществом. Например, VMAC, универсальный на основе хеша код аутентификации сообщения, был добавлен в библиотеку при ее отправке в Инженерная группа Интернета (рабочая группа CFRG); и кривые Брейнпула, предложенные в марте 2009 г. как Интернет-проект в RFC 5639, были добавлены в Crypto ++ 5.6.0 в том же месяце.[4][5]
Библиотека также предоставляет примитивы для теоретико-числовых операций, такие как быстрые целые числа с высокой точностью; генерация и проверка простых чисел; арифметика конечных полей, включая GF (p) и GF (2п); эллиптические кривые; и полиномиальные операции.
Кроме того, библиотека сохраняет набор небезопасных или устаревших алгоритмов для обратной совместимости и исторической ценности: MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, БЕЗОПАСНЫЙ, 3-ХОДОВОЙ, ГОСТ, АКУЛА, КАСТ-128 и Квадрат.
Спектакль
В 2007 году ЭКРИПТ рабочий документ с упором на открытый ключ реализации восьми библиотеки, Ашраф Абушарех и Крис Кадж обнаружили, что «Crypto ++ 5.1 [sic] лидирует с точки зрения поддержки криптографических примитивов и схем, но является самой медленной из всех исследованных библиотек».[6]
В 2008 году Тимо Бингманн провел тесты скорости с использованием семи Открытый исходный код библиотеки безопасности с 15 блочные шифры, Crypto ++ 5.5.2 была самой производительной библиотекой при использовании двух блочных шифров, и ее производительность не была ниже средней производительности библиотеки при использовании остальных блочных шифров.[7]
Crypto ++ также включает функцию автоматического тестирования производительности, доступную из командной строки (cryptest.exe б), результаты которого доступны на Crypto ++ 5.6.0 Тесты.[8]
Как и многие другие криптографические библиотеки, доступные для 32- и 64-разрядных версий. x86 архитектуры, Crypto ++ включает процедуры сборки для AES с помощью AES-NI. С AES-NI производительность AES значительно улучшается: 128 бит AES /GCM пропускная способность увеличивается примерно с 28,0 циклов на байт до 3,5 циклов на байт.[9][10][11]
Версии релизов
Crypto ++ 1.0 был выпущен в июне 1995 года. С момента первого выпуска в библиотеку было внесено около двух десятков ревизий, включая архитектурные изменения в версии 5.0.[12][13] С марта 2009 года было выпущено десять выпусков, использующих архитектуру версии 5.0.[14]
Версия | Дата выхода |
---|---|
Крипто ++ 5.6.0 | 15 марта 2009 г. |
Крипто ++ 5.6.1 | 9 августа 2010 г. |
Крипто ++ 5.6.2 | 20 февраля 2013 г. |
Крипто ++ 5.6.3 | 20 ноября 2015 г. |
Крипто ++ 5.6.4 | 11 сентября 2016 г. |
Крипто ++ 5.6.5 | 11 октября 2016 г. |
Крипто ++ 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 г., |
Компиляцию предыдущих выпусков Crypto ++ 1995 года, составленную Лоуренсом Тео, можно найти в архивах групп пользователей.[15]
Проверки FIPS
Crypto ++ получил три Федеральный стандарт обработки информации (FIPS) 140-2 Проверка модуля уровня 1 без проблем после проверки.[16]
Версия | Сертификат | Даты |
---|---|---|
Крипто ++ 5.0.4 | Сертификат 343[17] | 2003-09-05, 2005-10-28 |
Крипто ++ 5.2.3 | Сертификат 562[18] | 2005-07-29, 2005-08-24, 2005-10-28 |
Крипто ++ 5.3.0 | Сертификат 819[19] | 2007-08-13, 2007-08-17 |
Crypto ++ был перемещен в CMVP Исторический проверочный список в 2016 году. Этот переход фактически означает, что библиотека больше не проверяется.
Лицензирование
Начиная с версии 5.6.1, Crypto ++ состоит только из всеобщее достояние файлы, с авторским правом на компиляцию и единым лицензия с открытым исходным кодом авторское право на сборник:[20]
Лицензия Crypto ++ несколько необычна среди проектов с открытым исходным кодом. Различают библиотеку как сборник (т. е. коллекция), на которую распространяется авторское право Вэй Дай, и отдельные файлы в нем, всеобщее достояние.Абиблиотека защищена авторским правом как компиляция, чтобы включить в лицензию определенные заявления об отказе от ответственности (в отношении гарантии, экспорта и патентов) и сохранить в неприкосновенности атрибуцию и декларации общественного достояния, когда Crypto ++ распространяется в форме исходного кода. Тот факт, что отдельные файлы являются общественным достоянием, означает, что по закону вы можете размещать сегменты кода, целые файлы или небольшие наборы файлов (до предела, установленного добросовестным использованием) в свой собственный проект и делать с ними все, что захотите, не беспокоясь о Авторские права.
Смотрите также
использованная литература
- ^
- Дж. Келси, Б. Шнайер, Д. Вагнер, К. Холл (1998). «Криптоаналитические атаки на генераторы псевдослучайных чисел». Быстрое программное шифрование, 5-е международные слушания. http://www.schneier.com/paper-prngs.pdf. Проверено 10 августа 2010.
- К. Аджих, Д. Раффо, П. Мюлетхалер (2004). «OLSR: распределенное управление ключами для безопасности» В архиве 2011-07-21 на Wayback Machine. Независимое исследование. http://www2.lifl.fr/SERAC/downloads/attacks-olsr-dkm.pdf . Проверено 10 августа 2010.
- X. Yinglian, M.K. Reiter, D. O'Hallaron (2006). «Защита конфиденциальности в системах поиска ключевых значений». Конференция по приложениям компьютерной безопасности (ACSAC). https://www.cs.cmu.edu/~ylxie/papers/report03.pdf. Проверено 10 августа 2010.
- Т. Зиденберг (2010). «Оптимизация библиотеки Crypto ++ для P4» В архиве 2011-07-21 на Wayback Machine. Технион, Сайт Израильского технологического института. http://softlab-pro-web.technion.ac.il/projects/cryptoppopt/html/projectBook.html . Проверено 10 августа 2010.
- ^ «Первый в Японии 128-битный блочный шифр« Camellia »утвержден как новый стандартный алгоритм шифрования в Интернете». Physorg.com. Получено 2010-08-12.
- ^ А. Хартикайнен; Т. Тойванен; Х. Кильюнен (2005). «Функция хеширования Whirlpool». Безопасные коммуникации, семинар-практикум. Технологический университет Лаппеенранты. CiteSeerX 10.1.1.98.6099. Отсутствует или пусто
| url =
(Помогите) - ^ «Стандартные кривые Brainpool для криптографии с эллиптическими кривыми (ECC) и построение кривых». RFC 5639. IETF. 2009 г.. Получено 2010-08-08.
- ^ «Примечания к выпуску Crypto ++ 5.6.0». Сайт Crypto ++. 2009. Получено 2010-08-08.
- ^ А. Абушарех; К. Кай (2007). «Сравнительный анализ программных библиотек для криптографии с открытым ключом» (PDF). Семинар ECRYPT по повышению производительности программного обеспечения для шифрования и дешифрования. Получено 2010-08-12.[постоянная мертвая ссылка ]
- ^ Т. Бингманн (2008). "Speedtest и сравнение библиотек криптографии с открытым исходным кодом и флагов компилятора". Блог Тимо Бингманна. Получено 2010-08-10.
- ^ «Тесты Crypto ++ 5.6.0». Сайт Crypto ++. 2009. Получено 2010-08-10.
- ^ П. Шмид; А. Роос (2010). «Анализ производительности AES-NI». Оборудование Тома. Получено 2010-08-10.
- ^ Т. Кровец; В. Дай (2010). "Неправильное определение порядка байтов в MIPS и как получить быстрые вызовы AES?". Группа пользователей Crypto ++. Получено 2010-08-11.
- ^ «Тесты производительности Crypto ++ 5.6.0 Pentium 4». Сайт Crypto ++. 2009. Получено 2010-08-10.
- ^ Объявление (2002). «Доступна бета-версия Crypto ++ 5.0». Список рассылки Crypto ++. Получено 2010-08-09.
- ^ Объявление (2002). «Обновление Crypto ++ 5.0». Список рассылки Crypto ++. Получено 2010-08-09.
- ^ "Список объявлений Crypto ++". Sourceforge.net. Получено 2010-08-14.
- ^ Л. Тео (2002). «Даты выпуска предыдущих версий». Список рассылки Crypto ++. Получено 2010-08-09.
- ^ «Политика безопасности библиотеки Crypto ++ версии 5.3.0 [32-бит и 64-бит]» (PDF). Программа проверки криптографических модулей (CMVP). 2007. Получено 2010-08-08.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2003 г.)». Программа проверки криптографических модулей (CMVP). 2003. Получено 2010-08-08.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2005 г.)». Программа проверки криптографических модулей (CMVP). 2005. Получено 2010-08-08.
- ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2007 г.)». Программа проверки криптографических модулей (CMVP). 2007. Получено 2010-08-08.
- ^ «Авторские права на компиляцию для Crypto ++». Сайт Crypto ++. Получено 2010-08-15.
внешние ссылки
- Официальный веб-сайт
- Проект Crypto ++ GitHub
- Список проектов, использующих Crypto ++ (Включает некоммерческие и коммерческие проекты)
- Группа пользователей Crypto ++