]> Cypherpunks.ru repositories - gost-www.git/blob - ru/28147-89.texi
RFC для Магмы
[gost-www.git] / ru / 28147-89.texi
1 @node ru2814789
2 @section ГОСТ 28147-89 (Магма)
3
4 @table @asis
5 @item Что за алгоритм
6     Блочный шифр
7 @item Размер блока
8     64 бит
9 @item Размер ключа
10     256 бит
11 @item Структура
12     Сеть Фейстеля
13 @item Число раундов
14     32
15 @item RFC
16     @itemize
17     @item @url{https://tools.ietf.org/html/rfc5830.html, 5830}
18     @item @url{https://tools.ietf.org/html/rfc8891.html, 8891} (Магма)
19     @end itemize
20 @item Лучшая атака
21     2@sup{224} имея 2@sup{32} пар открытый-зашифрованный текст.
22     Всё очень сильно зависит от используемых таблиц замен
23 @item Wikipedia
24     @url{https://ru.wikipedia.org/wiki/%D0%93%D0%9E%D0%A1%D0%A2_28147-89, статья}
25 @end table
26
27 @strong{Особенности}:
28 @itemize
29 @item Разработан ещё в СССР, 8-ым управлением КГБ.
30 @item Стандарт не фиксирует значения таблиц замен (S-box).
31     @itemize
32     @item Если бы S-box был фиксирован в стандарте, то в нём могли бы
33     быть "лазейки".
34     @item Секретный S-box можно использовать как дополнительную ключевую
35     информацию.
36     @item Это не позволяет определить стойкость алгоритма не зная
37     таблиц замены. Самостоятельный выбор может существенно повлиять на
38     криптостойкость алгоритма.
39     @item Реализации алгоритма, использующие разные таблицы, не
40     совместимы между собой.
41     @end itemize
42 @item Из-за маленького размера блока необходимо быть аккуратным при его
43 использовании и часто менять ключи.
44 @item Название "Магма" введено в стандарте @ref{ru34122015, Кузнечика}.
45 Магма идентичен ГОСТ 28147-89, за исключением фиксированной таблицы
46 замены и немного отличающегося преобразования ключей и блоков.
47 @end itemize
48
49 @anchor{2814789Impl}
50 @strong{Реализации}
51
52 @multitable @columnfractions 0.6 0.1 0.3
53 @headitem Ссылка @tab Язык @tab Комментарий
54
55 @item @url{http://gostcrypto.com/doc/GostCipher.html} @tab JavaScript @tab
56 @item @url{http://www.gogost.cypherpunks.ru/} @tab Go @tab
57 @item @url{http://www.pygost.cypherpunks.ru/} @tab Python @tab
58 @item @url{http://www.libressl.org/} @tab C @tab
59 @item @url{https://github.com/openssl/openssl/tree/master/engines} @tab C @tab
60 @item @url{https://github.com/Roman-Oliynykov/ciphers-speed} @tab C++ @tab
61 @item @url{https://www.gnu.org/software/libgcrypt/} @tab C @tab
62
63 @end multitable