The OpenNET Project / Index page

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

Реализация криптографических алгоритмов ГОСТ на языке Java

28.04.2026 21:10 (MSK)

Опубликована библиотека crypto-gost с реализацией криптоалгоритмов ГОСТ на языке Java, не использующей дополнительных зависимостей. В отличие от реализации алгоритмов ГОСТ из библиотеки Castle Bouncy Castle, в crypto-gost повышена производительность шифрования алгоритмом "Кузнечик", решены отдельные проблемы с безопасностью и предоставлены простые обёртки, не требующие глубоких знаний в криптографии. Код поставляется под собственной разрешительной лицензией, разрешающей распространение, модификацию и создание производных работ без ограничений.

Поддерживаемые алгоритмы:

  • ГОСТ Р 34.11-2012 (RFC 6986) - хэш-функция "Стрибог" 256 и 512 бит.
  • ГОСТ Р 34.12-2015 - блочный шифр "Кузнечик", ключ 256 бит.
  • ГОСТ Р 34.13-2015 - режимы шифрования CBC, CFB, CTR (ГАММА), OFB; имитовставка (CMAC).
  • ГОСТ Р 34.10-2012 (RFC 7091) - электронная подпись 256 и 512 бит.
  • HMAC-Стрибог (RFC 7836, HMAC-Streebog-256 и HMAC-Streebog-512).
  • MGM (Multilinear Galois Mode) - AEAD-режим для Кузнечика (RFC 9058). Совместим с OpenSSL.
  • SCrypt (RFC 7914) - функция формирования ключа на основе пароля.


  1. Главная ссылка к новости (https://gitflic.ru/project/red...)
  2. OpenNews: Реструктуризация проекта OpenSSL. Переход под крыло OpenSSL библиотек Bouncy Castle и Cryptlib
  3. OpenNews: Выпуск криптографической библиотеки OpenSSL 4.0.0
  4. OpenNews: Выпуск криптографической библиотеки LibreSSL 4.3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65312-gost
Ключевые слова: gost, crypto, java
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аркагоблин (?), 21:39, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Код поставляется под собственной разрешительной лицензией, разрешающей ... без ограничений

    Ну не сказать чтобы без ограничений. Она похожа на Apache 2.0, только ещё больше бюрократическая. Без ограничений - это 0BSD или MIT-0 например

     
  • 1.6, Аноним (6), 21:43, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подробнее:
    https://ru.wikipedia.org/wiki/Стрибог_(хеш-функция)
    https://ru.wikipedia.org/wiki/Кузнечик_(шифр)

     
  • 1.9, эксперт по всему (?), 22:03, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А оно точно надо? Нельзя просто через jni вызвать уже готовые и проверенные (товарищ майором) реализации?
     
     
  • 2.11, Аноним (11), 22:09, 28/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, что сабж можно юзать там, где нету этих "jni"
     

  • 1.13, Аноним (-), 23:04, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почитал изложенное в https://gitflic.ru/project/red-stars-systems/crypto-gost/blob?file=README.md

    1) Автор библиотеке демонстрирует определённую вменяемость и знакомство с рядом техник, которыми создаётся такой софт. Поскольку существует множество требований, которым должна соответствовать библиотека реализующая крипто-примитивы или режимы шифрования с помощью таковых.

    2) Это не похоже на студента решившего написать pet-project'ом нечто такое, что вынудило бы разобраться с ГОСТ-овой критографией. Однако, надо смотреть кодовую базу, красивы и праведные слова в README.md в зачёт не идут.

    3) Тесты на корректность работы (кросс-валидация) якобы проводились в наиболее официальном окружении из возможных (OpenSSL 3.3.x с ГОСТ-провайдером в AltLinux p11). Это важно, т.к. финтех (банки) в нескольких регионах РФ очень плотно использует именно AltLinux (чуть ли не поголовно).

    Однако, внимание на тесты реализации ГОСТ Р 34.10-2012.
    • Производительность: на двух видах кривых (256 и 512).
    • Валидация с BouncyCastle: все семь кривых.
    • Валидация с OpenSSL (ГОСТ): три кривых.

    Т.е. отсутствует валидация с кривыми TC26-A-256, TC26-A-512, TC26-B-512, TC26-C-512

    В целом очень неплохо. Видимо в РФ будет TLS 1.3 через MGM, что лучше нежели GCM :)

     
  • 1.15, Вирт (?), 23:11, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как на Java можно реализовать криптографию, как обеспечивается защита от того, чтобы в успешном и не успешном случае код бы выполнялся одинаковое время ( https://en.wikipedia.org/wiki/Timing_attack )?
     
  • 1.17, Tron is Whistling (?), 23:15, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А на фига оно вообще в глобальном масштабе надо, с учётом того, что в этом счастье предопределённые блоки подстановок - алгоритмические, и фиг его знает какие дыры в них зарыты?
     
  • 1.18, Аноним (18), 23:22, 28/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жаль что код опять явно с помощью нейронок написан. Я уж думал хоть такие серьезные проекты люди пишут сами.
     
  • 1.19, Аноним (19), 23:29, 28/04/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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