Commit 775b029f authored by Нестеренко Алексей Юрьевич's avatar Нестеренко Алексей Юрьевич :headphones:
Browse files

Изменен Readme.md

No related merge requests found
Showing with 48 additions and 40 deletions
+48 -40
# Libakrypt: abstract
Libakrypt is a free and open source library (software crypto module) distributed under
the MIT License. This library written in C99 and provides some interfaces for
key management, data encryption, integrity checking, signing messages and verifying
of digital signatures. The main goal of Libakrypt is implementation a lot of Russian
crypto mechanisms, decribed by national standards and methodological recomendations
in accordance with R 1323565.1.012-2017
"Basic principles of creating and modernization for crypto modules".
We have implementation of:
1. GOST R 34.12-2015 block ciphers "Magma" & "Kuznechik" with 64 bit and 128 bit block sizes respectively,
see [RFC 8891](https://tools.ietf.org/html/rfc8891) and [RFC 7801](https://tools.ietf.org/html/rfc7801);
2. GOST R 34.13-2015 modes for block ciphers including CMAC algorithm;
3. ACPKM encryption mode described by R 1323565.1.017-2018 and [RFC 8645](https://tools.ietf.org/html/rfc8645);
4. XTS mode described by [IEEE 1619-2007](https://standards.ieee.org/standard/1619-2007.html);
5. Authenticated encryption modes, including MGM (Multilinear Galois mode), described by R 1323565.026-2019,
see also [here](https://datatracker.ietf.org/doc/draft-smyshlyaev-mgm/), and much faster XTSMAC mode,
developed by the authors of the library;
6. GOST R 34.11-2012 hash functions from Streebog family, see [RFC-6986](https://tools.ietf.org/html/rfc6986);
7. R 50.1.113-2016 crypto algorithms such as HMAC;
8. Password-based key derivation function (PBKDF2) described by R 50.1.111-2016;
9. A some set of pseudo random generators for various operation systems including R 1323565.1.006-2017 mechanism;
10. Montgomery arithmetic for prime fileds;
11. Group operations on elliptic curves in short Weierstrass and twisted Edwards forms for
all elliptic curves described by R 1323565.024-2019;
12. GOST R 34.10-2012 digital signature generation and verification algorithms, see ISO/IEC 14888-3:2016;
13. Low level ASN.1 routines for data encoding with support of DER and PEM formats;
14. x509 certificate management, including public keys formats described by R 1323565.023-2018 and PKCS #7;
15. Rolf Blom's scheme for symmetric keys generation.
The library can be compiled with many compilers,
such as `gcc`, `clang`, `Microsoft Visual C`, `TinyCC` and `icc`.
The build system is [cmake](https://cmake.org/).
Library can be used successfully under `Linux`, `Windows` and `FreeBSD` operation systems.
Also we have positive runs on [ReactOS](https://reactos.org) and mobile devices under [Sailfish OS](https://sailfishos.org/).
We support various architectures such as `x86`, `x64`, `arm32v7`, `arm32v7eb`, `mips32r2` and `mips64r2`.
# Libakrypt: аннотация
Библиотека `libakrypt` написана на языке Си и реализует механизмы генерации, хранения, экспорта и импорта
ключевой информации, а также основные отечественные криптографические преобразования, регламентированные
национальными стандартами и рекомендациями по стандартизации.
Цель разработки библиотеки заключается в создании программного модуля с
открытыми исходными текстами для СКЗИ, удовлетворяющего рекомендациям по стандартизации Р 1323565.1.012-2017
«[Принципы разработки и модернизации шифровальных (криптографических) средств защиты
информации](https://tc26.ru/standarts/rekomendatsii-po-standartizatsii/r-1323565-1-012-2017-informatsionnaya-tekhnologiya-kriptograficheskaya-zashchita-informatsii-printsipy-razrabotki-i-modernizatsii-shifrovalnykh-kriptograficheskikh-sredstv-zashchity-informatsii.html>)»
по классу КС3.
Библиотека распространяется по лицензии [MIT](https://git.miem.hse.ru/axelkenzo/libakrypt-0.x/-/raw/master/LICENSE)
и содержит реализацию следующих криптографических преобразований.
1. Алгоритмы блочного шифрования "Магма" и "Кузнечик", регламентированные в ГОСТ Р 34.13-1015,
см. также [RFC 8891](https://tools.ietf.org/html/rfc8891) and [RFC 7801](https://tools.ietf.org/html/rfc7801);
2. Режимы блочного шифрования ГОСТ Р 34.13-2015, включая режим выработки имитовставки;
3. Режим шифрования ACPKM, см. рекомендации Р 1323565.1.017-2018
и [RFC 8645](https://tools.ietf.org/html/rfc8645);
4. Режим шифрования XTS, см. [IEEE 1619-2007](https://standards.ieee.org/standard/1619-2007.html);
5. Режимы аутентификационного шифрования, включая режим MGM (Multilinear Galois mode),
рекомендуемый в Р 1323565.026-2019, см. также [RFC 9058](https://tools.ietf.org/html/rfc9058);
6. Функции хеширования семейства "Стрибог", стандартизированные в ГОСТ Р 34.11-2012,
см. также [RFC-6986](https://tools.ietf.org/html/rfc6986);
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](https://tools.ietf.org/html/rfc5652);
15. Схема Блома для выработки симметричных ключей парной связи.
Библиотека `libakrypt` может быть собрана различными компиляторами такими, как `gcc`, `clang`,
`Microsoft Visual C`, `TinyCC` и `icc`. Система сборки: [cmake](https://cmake.org/).
Поддерживаемая архитектура: `x86`, `x64`, `arm32v7`, `arm32v7eb`, `armhf`, `mips32r2` и `mips64r2`.
Библиотека может применяться в различных операционных системах: `Linux`, `Windows` и `FreeBSD`.
Также были успешные тестовые запуски библиотеки под
[ReactOS](https://reactos.org) и [Sailfish OS](https://sailfishos.org/).
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment