Jump to content

Крипто++

Крипто++
Разработчик(и) первоначально Wei Dai , проект Crypto++ с 2015 года.
Первоначальный выпуск 2015
Стабильная версия
8,9 / 1 октября 2023 г .; 10 месяцев назад ( 01.10.2023 )
Репозиторий
Написано в С++
Операционная система Кросс-платформенный
Тип Библиотека безопасности
Лицензия Лицензия на программное обеспечение Boost (ранее лицензия Crypto++ ) / отдельные файлы в общественное достояние
Веб-сайт www .cryptopp

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 ]

Алгоритмы и реализации Crypto++
Примитив или операция Алгоритмы или реализации
Генераторы псевдослучайных чисел LCG , KDF2 , Blum Blum Shub , ANSI X9.17 , Mersenne Twister , RDRAND и RDSEED
Высокоскоростные поточные шифры ChaCha8/12/20 , ChaCha20 (версия IETF) , HC-128 и HC-256 , Панама , Rabbit , Salsa20 , SOSEMANUK , XSalsa20
AES и кандидаты AES Rijndael ( выбор AES ), RC6 , MARS , Twofish , Serpent , CAST-256
Другие блочные шифры ARIA , Blowfish , Camellia , CHAM , HIGHT, IDEA , Kalyna (128/256/512), LEA , RC5 , Triple-DES (2- и 3-клавишный), SEED , SHACAL-2 , Simon (64/128), Спек (64/128), SIMECK, Skipjack , SM4 , TEA , Threefish (256/512/1024), ХТЕА
Режимы работы блочного шифрования ЕЦБ , ЦБК , CTS , CFB , OFB , CTR , XTS
Аутентифицированные режимы шифрования СКК , ГКМ , ЕАХ , ЧаЧа20Поли1305
Схемы заполнения блочных шифров PKCS#5 , PKCS#7 , Нули , Единица и нули , Заполнение W3C
Коды аутентификации сообщений VMAC , HMAC , CMAC , CBC-MAC , DMAC , двухдорожечный MAC
Криптографическая хэш-функция BLAKE2 (BLAKE2b и BLAKE2s), Keccak , SHA-1 , SHA-2 (SHA-224/256/384/512), SHA3 , LSH (256/512) , Tiger , WHIRLPOOL , RIPEMD (128/160/256/320 ) ) )
Функции получения ключей на основе пароля PBKDF1 и PBKDF2 из PKCS #5 , PBKDF из PKCS #12, приложение B , HKDF Кравчика и Эронена.
Криптография с открытым ключом RSA , DSA , ElGamal , Nyberg-Rueppel [ ru ] (NR), Rabin-Williams (RW), LUC , LUCELG , DLIES (варианты DHAES ), ESIGN , Curve25519
Схемы заполнения для систем с открытым ключом PKCS#1 v2.0, OAEP , PSS , PSSR , IEEE P1363 EMSA2 и EMSA5
Ключевые схемы соглашения Диффи-Хеллмана (DH), унифицированного Диффи-Хеллмана (DH2), Менезеса-Ку-Вэнстона (MQV), хешированного MQV (HMQV), полностью хешированного MQV (FHMQV), LUCDIF , XTR-DH , x25519
Криптография с эллиптической кривой ECDSA , ECNR , ECIES , ECDH , ECMQV , Ed25519
Обмен секретами Схема обмена секретами Шамира , Алгоритм распространения информации Рабина (IDA)

Библиотека также предоставляет примитивы для теоретико-числовых операций, таких как быстрые целые числа с различной точностью; генерация и проверка простых чисел; арифметика конечных полей, включая 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 ]

Выпуски Crypto++ начиная с версии 6.0.
Версия Дата выпуска
Крипто++ 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 ]

Модули Crypto++, проверенные FIPS
Версия Сертификат Даты
Крипто++ 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++ распространяется в форме исходного кода. Тот факт, что отдельные файлы являются общественным достоянием, означает, что по закону вы можете размещать сегменты кода, целые файлы или небольшие наборы файлов (до предела, установленного добросовестным использованием) в свой собственный проект и делать с ними все, что захотите, не беспокоясь о авторское право.

См. также

[ редактировать ]
  1. ^
    • Дж. Келси; Б. Шнайер ; Д. Вагнер; К. Холл (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 г.
  2. ^ «Загрузки Crypto++» . Крипто++ проект. Июнь 1995 года . Проверено 20 декабря 2020 г.
  3. ^ «Первый в Японии 128-битный блочный шифр «Камелия» одобрен в качестве нового стандартного алгоритма шифрования в Интернете» . physorg.com . Проверено 23 мая 2022 г.
  4. ^ Хартикайнен, Арси; Тойванен, Тимо; Кильюнен, Херкко (2005). «Хеш-функция Whirlpool» (PDF) . Безопасные коммуникации, презентация семинара . Технологический университет Лаппеенранты . Проверено 23 мая 2022 г.
  5. ^ Лохтер, М.; Меркл, Дж. (2009). Криптография эллиптических кривых (ECC) Стандартные кривые Brainpool и генерация кривых . IETF. дои : 10.17487/RFC5639 . РФК 5639 . Проверено 23 мая 2022 г.
  6. ^ «Библиотека Крипто++ 8.6» . Сайт Крипто++ . Проверено 23 мая 2022 г.
  7. ^ А. Абушарех; К. Кай (2007). Сравнительный анализ библиотек программного обеспечения для криптографии с открытым ключом (PDF) . Семинар ECRYPT по повышению производительности программного обеспечения для шифрования и дешифрования. стр. 3–19. Архивировано из оригинала (PDF) 27 февраля 2012 г. Проверено 12 августа 2010 г.
  8. ^ Т. Бингманн (2008). «Тест скорости и сравнение криптографических библиотек с открытым исходным кодом и флагов компилятора» . Блог Тимо Бингманна . Проверено 10 августа 2010 г.
  9. ^ «Бенчмарки Crypto++ 5.6.0» . Сайт Крипто++ . 2009 . Проверено 10 августа 2010 г.
  10. ^ П. Шмид; А. Роос (2010). «Анализ производительности AES-NI» . Аппаратное обеспечение Тома . Проверено 10 августа 2010 г.
  11. ^ Т. Кровец; В. Дай (2010). «Неправильное определение порядка байтов MIPS и как получить быстрые вызовы AES?» . Группа пользователей Crypto++ . Проверено 11 августа 2010 г.
  12. ^ «Бенчмарки Crypto++ 5.6.0 Pentium 4» . Сайт Крипто++ . 2009 . Проверено 10 августа 2010 г.
  13. ^ Анонс (2002). «Доступна бета-версия Crypto++ 5.0» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
  14. ^ Анонс (2002). «Обновление Crypto++ 5.0» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
  15. ^ «Список объявлений о криптовалюте ++» . Sourceforge.net . Проверено 14 августа 2010 г.
  16. ^ Л. Тео (2002). «Даты выпуска предыдущих версий» . Список рассылки Crypto++ . Проверено 9 августа 2010 г.
  17. ^ «Политика безопасности библиотеки Crypto++ версий 5.3.0 [32-битная и 64-битная]» (PDF) . Программа проверки криптографических модулей (CMVP) . 2007 . Проверено 8 августа 2010 г.
  18. ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2003 г.)» . Программа проверки криптографических модулей (CMVP) . 2003 . Проверено 8 августа 2010 г.
  19. ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2005 г.)» . Программа проверки криптографических модулей (CMVP) . 2005 . Проверено 8 августа 2010 г.
  20. ^ «Проверенные криптографические модули FIPS 140-1 и FIPS 140-2 (2007 г.)» . Программа проверки криптографических модулей (CMVP) . 2007 . Проверено 8 августа 2010 г.
  21. ^ «Авторское право на компиляцию для Crypto++» . Сайт Крипто++ . Проверено 15 августа 2010 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 37df6034067d8170c74098a0c3a5a701__1720984680
URL1:https://arc.ask3.ru/arc/aa/37/01/37df6034067d8170c74098a0c3a5a701.html
Заголовок, (Title) документа по адресу, URL1:
Crypto++ - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)