The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск криптографической библиотеки Libgcrypt 1.7.0

16.04.2016 10:14

После двух с половиной лет разработки проект GNU представил выпуск библиотеки Libgcrypt 1.7.0, с реализацией компонентов, лежащих в основе механизмов шифрования, применяемых в GnuPG. Библиотека предоставляет функции для использования в сторонних приложениях различных криптоалгоритмов, включая симметричные шифры (AES, DES, Blowfish, CAST5, Twofish, SEED, Camellia, Arcfour), алгоритмы хэширования (MD4, MD5, RIPE-MD160, SHA-1, SHA_224, SHA-256, SHA-384, SHA-512, TIGER-192, Whirlpool), шифрование с использованием публичных ключей (RSA, Elgamal, DSA, ECDSA). Новая ветка полностью совместима на уровне API и ABI с веткой 1.6.x (для использования новой версии не требуется пересборка программ).

Ключевые улучшения:

  • Поддержка новых алгоритмов и режимов:
    • Алгоритмы хэширования SHA3-224, SHA3-256, SHA3-384, SHA3-512 и MD2;
    • Алгоритмы хэширования SHAKE128 и SHAKE256;
    • Потоковый шифр ChaCha20;
    • Алгоритм аутентификации сообщений Poly1305;
    • Алгоритм аутентифицированного шифрования ChaCha20-Poly1305;
    • Режим OCB;
    • Поддержка HMAC-MD2 для устаревших приложений;
  • Поддержка эллиптических кривых Curve25519, sec256k1, GOST R 34.10-2001 и GOST R 34.10-2012;
  • Увеличение производительности функций KDF;
  • Ассемблерные оптимизации для Blowfish и Serpent для CPU ARM, 3DES для x86;
  • Задействование инструкций AVX/BMI для SHA-1 и SHA-256 SHA-1, и SSSE3 для AES. Новая AVX-реализация SHA-1 быстрее на 20% по сравнению с версией на базе SSSE3 и на 100% по сравнению с реализацией в libc;
  • На 40% ускорена реализация SHA-512 и на 72% реализация SHA-1 для ARM Cortex-A8;
  • На 60-90% ускорена реализация Whirlpool для x86;
  • На 300% ускорена реализация RIPE MD-160;
  • Вычисление CRC на системах x86 ускорено в 11 раз;
  • Улучшена совместимость с ECDSA и FIPS 186-4.


  1. Главная ссылка к новости (http://lists.gnu.org/archive/h...)
  2. OpenNews: Первый стабильный выпуск криптографической библиотеки Sodium
  3. OpenNews: Выпуск GnuPG 2.1.0 c поддержкой шифрования по эллиптическим кривым
  4. OpenNews: Выпуск криптографической библиотеки Libgcrypt 1.6.0
  5. OpenNews: Значительный выпуск криптографической библиотеки OpenSSL 1.0.2
  6. OpenNews: Представлен релиз легковесной криптографической библиотеки PolarSSL 1.0.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/44256-libgcrypt
Ключевые слова: libgcrypt, crypt
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (-), 12:38, 16/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    LPGL? Sayonara, Libgcrypt.
     
     
  • 2.5, Аноним (-), 13:02, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    LGPL aka lesser gpl
    ну давай, анончик, расскажи чем он плох.
     
     
  • 3.14, Andrey Mitrofanov (?), 19:32, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > LGPL aka lesser gpl
    > ну давай, анончик, расскажи чем он плох.

    Пермиссивный аненчег покупает PGP и линкует его со своей фриб3дешечкой, как завещал великий коретиим.

     
  • 3.16, Аноним (-), 21:31, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ну давай, анончик, расскажи чем он плох.

    В мою проприетарочку плохо встраивается, так что не очень много смыслка когда есть более интересные альтернативы.

     
     
  • 4.21, Crazy Alex (ok), 23:55, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так это не "чем плох" - это "чем хорош"
     
  • 4.22, Андрей (??), 01:13, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    LGPL? Это ж самая справедливая лицензия: пользуйся нашим кодом, не открывая свой. И только если улучшил наш код, тогда уж будь другом в конце концов.
     
     
  • 5.30, Аноним (-), 18:37, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Задумка действительно хорошая, но LGPL запрещает статическую линковку, что в общем не всегда удобно. Для такого рода библиотек проприетращик и так будет заинтересован отдать в апстрим свои изменения, чтобы не патчить их каждый раз.
     
     
  • 6.31, Андрей (??), 09:10, 18/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде, нет: просто тогда нужно предоставить свой закрытый код большим .o файлом. Чтобы пользователь смог его слинковать с libgcrypt.a. А значительных отличий готового исполняемого файла от объектного практически нет. Кроме чувства, что как будто ты отдаёшь что-то больше чем обычно. Лично мне попадалась проприетарная прога, которая требовала наличие libgcrypt.so определённой версии.
     
  • 4.26, Andrey Mitrofanov (?), 06:27, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >>расскажи чем он плох.
    > В мою проприетарочку плохо встраивается,

    Пока ты рассказал, чем ты плох.  Попытайся ещё!

     

  • 1.9, Аноним (-), 14:21, 16/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А libsodium как?
     
     
  • 2.19, Аноним (-), 23:12, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А libsodium как?

    А это в другой ветке.

     

  • 1.10, ttwo (?), 15:52, 16/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > -  Вычисление CRC на системах x86 ускорено в 11 раз;

    Резервы x86, или...?

     
     
  • 2.11, anonymous (??), 16:24, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ...или преждевременная оптимизация...
     
  • 2.12, Аноним (-), 16:37, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На новых процах есть аппаратная инструкция для crc32, наверно применили ее.
     
  • 2.15, Andrey Mitrofanov (?), 19:52, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> -  Вычисление CRC на системах x86 ускорено в 11 раз;
    > Резервы x86, или...?

    Либо, как уже сказали, использование расширенных инструкций вроде SSE4.2 http://www.drdobbs.com/parallel/fast-parallelized-crc-computation-using/22940

    , либо выжимание соков из компилятора, кеша процессора и ширины регистров http://create.stephan-brumme.com/crc32/ [гы, "GCC 4.7 produces faster code than Visual C++ 2010 for "...]

    , либо ещё чего. По lists.gnupg.org не насёрчилось, чего конкретно в этом релизе - мож у кого под рукой есть ейный git (или чего там) и время, расскажет праздно инртересующейся аудитории.

    И +1 :)) к "преждевременной оптимизации" === не утерпели, "После двух с половиной лет", могли бы ещё пару порядков %) выждать. То-ро-пы-ги.

     
  • 2.18, Нимано (?), 23:09, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> -  Вычисление CRC на системах x86 ускорено в 11 раз;
    > Резервы x86, или...?

    И раз:
    http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=06e122baa3
    > More optimized CRC implementations
    > Patch adds more optimized CRC implementations generated with universal_crc
    > tool by Danjel McGougan: http://www.mcgougan.se/universal_crc/

    ----------------------------------
    Sat, 2 May 2015 21:34:34 +0000 (00:34 +0300)
    Before:
    CRC32          |      2.52 ns/B     378.3 MiB/s      8.07 c/B
    CRC32RFC1510   |      2.52 ns/B     378.1 MiB/s      8.07 c/B
    CRC24RFC2440   |     46.62 ns/B     20.46 MiB/s     149.2 c/B

    After:
    CRC32          |     0.918 ns/B    1039.3 MiB/s      2.94 c/B
    CRC32RFC1510   |     0.918 ns/B    1039.0 MiB/s      2.94 c/B
    CRC24RFC2440   |     0.918 ns/B    1039.4 MiB/s      2.94 c/B
    --------------------------------

    И два:
    http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=5d601dd57f
    > Add Intel PCLMUL implementations of CRC algorithms

    --------------------------------
    Sat, 12 Mar 2016 15:16:41 +0000 (17:16 +0200)
    Benchmark on Intel Core i5-4570 (x86_64, 3.2 Ghz):

    Before:
                     |  nanosecs/byte   mebibytes/sec   cycles/byte
      CRC32          |     0.865 ns/B    1103.0 MiB/s      2.77 c/B
      CRC32RFC1510   |     0.865 ns/B    1102.7 MiB/s      2.77 c/B
      CRC24RFC2440   |     0.865 ns/B    1103.0 MiB/s      2.77 c/B

    After:
                     |  nanosecs/byte   mebibytes/sec   cycles/byte
      CRC32          |     0.079 ns/B   12051.7 MiB/s     0.253 c/B
      CRC32RFC1510   |     0.079 ns/B   12050.6 MiB/s     0.253 c/B
      CRC24RFC2440   |     0.079 ns/B   12100.0 MiB/s     0.252 c/B
    ---------------------------------

     
     
  • 3.23, Андрей (??), 01:29, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за поиск! Кстати, первый бенч - Intel Haswell. Эх, а написано x86. Как-то SSE & Co. у меня с x86 не совсем ассоциируются. Это уже какой-то пост-x86. Вообще было бы неплохо, если в коммитах почётче было бы написано на каких имеющихся на сегодняшний день процах можно это получить.
    А то
    > Select PCLMUL implementation if SSE4.1 and PCLMUL HW features detected.

    Т.е. может быть SSE4.1 без PCLMUL? Ох уж этот пост-x86.

     

  • 1.13, Тимур Мансорунов (?), 19:04, 16/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Все хорошо, но эта версия Libgcrypt 1.7.0 при долгой работе иногда роняет сервак. Даже запущенная в виртуалке VMware виснет и виртуалака и хост. Касперский палит троян дроппер и вырубает копм в синий экран смерти. Линукс при этом тоже глючит и по экрану лезут пауки.
     
     
  • 2.17, Вареник (?), 21:48, 16/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Все хорошо, но эта версия Libgcrypt 1.7.0 при долгой работе иногда роняет
    > сервак. Даже запущенная в виртуалке VMware виснет и виртуалака и хост.
    > Касперский палит троян дроппер и вырубает копм в синий экран смерти.
    > Линукс при этом тоже глючит и по экрану лезут пауки.

    Багрепорт составил?

     
     
  • 3.24, Андрей (??), 01:32, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно, полезное дело. Но бывает в ответ получаешь: требуется минимальная программа, воспроизводящая ошибочное поведение или закрываем баг как невоспроизводимый или у меня всё работает. Иногда дело 5 минут, иногда нескольких часов, а иногда практически нереально.
     
     
  • 4.27, Аноним (-), 12:59, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ох эти minimal working example и could not reproduce
     
  • 4.29, Led (ok), 16:59, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Но бывает в ответ получаешь: требуется минимальная программа, воспроизводящая
    > ошибочное поведение или закрываем баг как невоспроизводимый или у меня всё
    > работает. Иногда дело 5 минут, иногда нескольких часов, а иногда практически
    > нереально.

    Да, никто школоту не любит:(

     
     
  • 5.33, Аноним (-), 17:13, 18/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Прошлый патч не был принят в состав ядра Linux, так как некоторые пользователи отмечали возникновение проблем, которые Мэтью Гаррет не смог повторить на своей системе
    >https://www.opennet.ru/opennews/art.shtml?num=44264

    Твои оправдания, "гуру" багрепортов?

     
  • 2.28, Led (ok), 16:56, 17/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Касперский палит троян дроппер и вырубает копм в синий экран смерти.

    Мальчик, иди в винду.

     

  • 1.25, Андрей (??), 01:33, 17/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошие новости. Приятно видеть не только новые фичи, а и работу над оптимизацией уже имеющихся, что часто более важно.
     
  • 1.32, Аноним (-), 17:00, 18/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как это может быть, что 34.10 есть, а 28147 нет?
     
  • 1.34, iZEN (ok), 11:53, 24/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И на FreeBSD портировали: http://www.freshports.org/security/libgcrypt/
     
  • 1.35, Аноним (35), 22:18, 09/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С помощью этой библиотеки libgcrypt-1.7.0 и кое-каких доработок gnupg, libksba и т.д. (см. http://soft.lissi.ru/articles/2/ ) Kleopatra и KMail подружились с российской криптографией.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру