Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Березин Александр Евгеньевич
libakrypt-0.x
Commits
775b029f
Commit
775b029f
authored
2 years ago
by
Нестеренко Алексей Юрьевич
Browse files
Options
Download
Patches
Plain Diff
Изменен Readme.md
parent
ca4f7b06
master
limonnik
0.9.12
0.9.11
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Readme.md
+48
-40
Readme.md
with
48 additions
and
40 deletions
+48
-40
Readme.md
+
48
−
40
View file @
775b029f
# 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/
)
.
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets