Code Monkey home page Code Monkey logo

libakrypt-schnorr's Introduction

Libakrypt: аннотация

Библиотека libakrypt написана на языке Си и реализует механизмы генерации, хранения, экспорта и импорта ключевой информации, а также основные отечественные криптографические преобразования, регламентированные национальными стандартами и рекомендациями по стандартизации.

Цель разработки библиотеки заключается в создании программного модуля с открытыми исходными текстами для СКЗИ, удовлетворяющего рекомендациям по стандартизации Р 1323565.1.012-2017 «Принципы разработки и модернизации шифровальных (криптографических) средств защиты информации» по классу КС3.

Библиотека распространяется по лицензии MIT и содержит реализацию следующих криптографических преобразований.

  1. Алгоритмы блочного шифрования "Магма" и "Кузнечик", регламентированные в ГОСТ Р 34.13-1015, см. также RFC 8891 and RFC 7801;
  2. Режимы блочного шифрования ГОСТ Р 34.13-2015, включая режим выработки имитовставки;
  3. Режим шифрования ACPKM, см. рекомендации Р 1323565.1.017-2018 и RFC 8645;
  4. Режим шифрования XTS, см. IEEE 1619-2007;
  5. Режимы аутентификационного шифрования, включая режим MGM (Multilinear Galois mode), рекомендуемый в Р 1323565.026-2019, см. также RFC 9058;
  6. Функции хеширования семейства "Стрибог", стандартизированные в ГОСТ Р 34.11-2012, см. также RFC 6986;
  7. Криптографические алгоритмы из рекомендаций Р 50.1.113-2016, включая алгоритм HMAC;
  8. Функция выработки ключа из пароля (PBKDF2), рекомендованная в Р 50.1.111-2016;
  9. Несколько генераторов псевдослучайных чисел, включая алгоритм рекомендованный в Р 1323565.1.006-2017;
  10. Арифметика Монтгомери для конечных простых полей;
  11. Операции в группе точек эллиптической кривой в формах Вейерштрасса и Эдвардса. Поддерживаются все эллиптические кривые, указанные в рекомендациях Р 1323565.024-2019;
  12. Процедуры выработки и проверки электронной подписи согласно ГОСТР Р 34.10-2012 и ISO/IEC 14888-3:2016;
  13. Низкоуровневые функции для работы с ASN.1 нотацией и кодирования данных в форматах DER и PEM, см. ГОСТ Р ИСО/МЭК 8825-1-2003;
  14. Функции для работы с сертфикатами форматов x509, включая форматы открытых ключей, описываемые в рекомендациях Р 1323565.023-2018 и RFC 5652;
  15. Схема Блома для выработки симметричных ключей парной связи.

Библиотека libakrypt может быть собрана различными компиляторами такими, как gcc, clang, Microsoft Visual C, TinyCC и icc. Система сборки: cmake.

Поддерживаемая архитектура: x86, x64, arm32v7, arm32v7eb, armhf, mips32r2 и mips64r2.

Библиотека может применяться в различных операционных системах: Linux, Windows и FreeBSD. Также были успешные тестовые запуски библиотеки под ReactOS и Sailfish OS.

Libakrypt: сборка

Получить исходные коды библиотеки можно с помощью следующего вызова.

git clone https://git.miem.hse.ru/axelkenzo/libakrypt-0.x

Cборка библиотеки осуществляется привычным способом.

mkdir build
cd build
cmake ../libakrypt-0.x
make

После компиляции исходных текстов будут собраны две библиотеки libakrypt-base и libakrypt, а также консольная утилита aktool. Установка собранных библиотек и консольной утилиты выполняется с правами суперпользователя следующим образом.

make install

Подробная инструкция по установке и сборке библиотеки находится в подкаталоге doc дерева исходных текстов.

libakrypt-schnorr's People

Contributors

anton-sakharov avatar georgiy-rudenko avatar gruzdev avatar kirlit26 avatar maloleg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.