- •Содержание
- •Crypton v1.0
- •Алгоритм зашифрования
- •Алгоритм расшифрования
- •Алгоритм зашифрования
- •Алгоритм расшифрования
- •Loki 91 и 97.
- •Serpent
- •Звездова mars
- •Алгоритм зашифрования
- •Алгоритм расшифрования
- •Генерация раундовых подключей
- •Noekeon
- •Алгоритм зашифрования
- •Rijndael
- •Skipjack
- •Алгоритм зашифрования
- •Алгоритм расшифрования
- •TwoFish
- •Алгоритм зашифрования
- •Алгоритм расшифрования
- •Гост 28147-89
- •Blowfish
- •Camellia
- •Алгоритм зашифрования
- •6 Раундов
- •6 Раундов
- •6 Раундов
- •4. Режимы использования блочных шрифтов
- •2. Функции хеширования
- •2.1. Ключевые функции хеширования
- •2.2. Бесключевые функции хеширования
- •3 А. Схемы эцп с использованием дискретных логарифмов в простом конечном поле
- •Предисловие
- •Введение
- •1 Область применения
- •2 Нормативные ссылки
- •3 Термины, определения и обозначения
- •3.1 Термины и определения
- •3.2 Обозначения
- •4 Общие положения
- •5 Значения параметров
- •5.1 Инициализационные векторы
- •5.2 Нелинейное биективное преобразование множества двоичных векторов
- •5.3 Перестановка байт
- •6 Преобразования
- •Государственный Стандарт Российской Федерации
- •Введение
- •1 Область применения
- •2 Нормативные ссылки
- •3 Определения и обозначения
- •3.1 Определения
- •3.2 Обозначения
- •4. Общие положения
- •5. Математические соглашения
- •5.1. Математические определения
- •5.2. Параметры цифровой подписи
- •5.3. Двоичные векторы
- •6. Основные процессы
- •6.1. Формирование цифровой подписи
- •6.2. Проверка цифровой подписи
- •Приложение а (справочное) Дополнительные термины в области эцп
- •Приложение б (справочное) Контрольный пример
- •Б.2. Процесс формирования цифровой подписи (алгоритм I)
- •4.Датчики псевдослучайных последовательностей (чисел)
- •4.1. Алгоритм rc4
Алгоритм зашифрования
Вход: P=(P0,P1,P2,P3) – 128‑блок открытых данных, разбитых на четыре 4‑байтовых слова P0,P1,P2 и P3.
(Входное забеливание.)
(C0,C1,C2,C3):=(P0ÅK0,P1ÅK1,P2ÅK2,P3ÅK3);
(16‑раундов, или 8 циклов зашифрования).
for i:=0 to 7 do {
(F0,F1):=F[K4i+8,K4i+9,S0,S1](C0,C1);
(C2,C3):=(rol1(C2ÅF0),rol1(C3)ÅF1);
(F0,F1):=F[K4i+10,K4i+11,S0,S1](C2,C3);
(C0,C1):=(rol1(C0ÅF0),rol1(C1)ÅF1)};
C0«C2;C1«C3;
(Выходное забеливание.)
(C0,C1,C2,C3):=(C0ÅK4,C1ÅK5,C2ÅK6,C3ÅK7).
Выход: C=(C0,C1,C2,C3) – 128‑битовый блок шифртекста.
Алгоритм расшифрования
Вход: C=(C0,C1,C2,C3) – 128‑битовый блок шифртекста, разбитый на четыре 4‑байтовых слова.
P:=(C0ÅK4,C1ÅK5,C2ÅK6,C6ÅK7);
for i:=7 downto 0 do {
(F0,F1):=F[K4i+10,K4i+11,S0,S1](P0,P1);
(P2,P3):=(rol1(P2ÅF0),rol1(P3)ÅF1);
(F0,F1):=F[K4i+8,K4i+9,S0,S1](P2,P3);
(P0,P1):=(rol1(P0)ÅF0,rol1(P1ÅF1))};
P0«P2; P1«P3;
(P0,P1,P2,P3):=(P0ÅK0,P1ÅK1,P2ÅK2,P3ÅK3).
Выход: Рис.1. Структура алгоритма Twofish
P=(P0,P1,P2,P3) – 128‑битовый блок открытых данных.
Рис.1. Структура алгоритма Twofish
кузнецова
Гост 28147-89
Стандарт криптографической защиты данных (СКЗД), принятый в СССР в 1989 году, предусматривает шифрование -битовых блоков открытых данных под управлением ‑битового секретного ключа, представленного в виде массива из восьми ‑битовых подключей , ,…, ). ГОСТ 28147-89 определяет три режима шифрования данных (простая замена, гаммирование и гаммирование с обратной связью) и режим выработки имитовставки.
1. Режим простой замены (режим электронной кодовой книги). Процедура шифрования соответствует итеративной схеме Фейстеля (см. рис. 1), в которой раундовая функция , задается операциями побитового сложения по модулю (⊕), арифметического сложения по модулю (⊞) и циклического сдвига влево на битов , выполняемыми над ‑битовыми подблоками (словами), а также табличными подстановками. Число раундов шифрования равно .
Табличные подстановки над ‑битовым блоком выполняются следующим образом. Блок разбивается на восемь полубайтов (‑битовых подблоков): . Для каждого полубайта vi выполняется операция подстановки (замены), задаваемая таблицей , , ,..., . Каждая из таблиц (их называют -блоками) представляет собой перестановку чисел (полубайтов) , ,..., . В результате операции подстановки блок заменяется на блок
),
где − результат замены на соответствующее значение с использованием таблицы , , ,…, . Например, если ), то , ,…, .
ГОСТ 28147-89 не определяет способ задания S-блоков. Их можно считать секретными элементами, что является дополнительным секретным ключом. Набор S-блоков, приведенный в табл.1, рекомендован уже позднее ГОСТом Р 34.11-9 (см. Приложение 1).
Таблица 1. ‑блоки ГОСТ 28147-89
vi |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
4 |
10 |
9 |
2 |
13 |
8 |
0 |
14 |
6 |
11 |
1 |
12 |
7 |
15 |
5 |
3 | |
14 |
11 |
4 |
12 |
6 |
13 |
15 |
10 |
2 |
3 |
8 |
1 |
0 |
7 |
5 |
9 | |
5 |
8 |
1 |
13 |
10 |
3 |
4 |
2 |
14 |
15 |
12 |
7 |
6 |
0 |
9 |
11 | |
7 |
13 |
10 |
1 |
0 |
8 |
9 |
15 |
14 |
4 |
6 |
12 |
11 |
2 |
5 |
3 | |
6 |
12 |
7 |
1 |
5 |
15 |
13 |
8 |
4 |
10 |
9 |
14 |
0 |
3 |
11 |
2 | |
4 |
11 |
10 |
0 |
7 |
2 |
1 |
13 |
3 |
6 |
8 |
5 |
9 |
12 |
15 |
14 | |
13 |
11 |
4 |
1 |
3 |
15 |
5 |
9 |
0 |
10 |
14 |
7 |
6 |
8 |
2 |
12 | |
1 |
15 |
13 |
0 |
5 |
7 |
10 |
4 |
9 |
2 |
3 |
14 |
6 |
11 |
8 |
12 |
Функция , , аргументами и значением которой являются ‑битовые блоки, определяется как
V:=R⊞q; V:=S(V); F:=rol11(V).
Алгоритм зашифрования
Вход: − ‑битовый блок открытых данных, разбитый на левую и правую половины и .
for i:=0 to 30 do {
if i≤23 then j:=i mod 8 else j:=31-i;
V:=R; R:=L⊕F(R,kj); L:=V};
L:=L⊕F(R,k0).
Выход: , – -битовый блок шифртекста.
Расшифрование выполняется точно так же, как и зашифрование. Единственное отличие состоит в том, что ключи используются в обратном порядке:
if i≤7 then j:=i else j:=7-(i mod 8).
{V:=R; R:=L⊕rol11(S(R+kj)); L:=V}.
Рис. 1. Один цикл преобразования ГОСТ 28147-89
а) б) в)
Рис. 2. а) Зашифрование в режиме гаммирования. Расшифрование осуществляется по той же схеме. ДПСЧ − датчик псевдослучайных чисел, используемых для выработки гаммы. б) Зашифрование и в) расшифрование в режиме гаммирования с обратной связью.
2. Режим гаммирования. Открытый текст , разбитый на -битовые блоки , ,..., , преобразуется в шифртекст по правилу:
Ci:=Pi⊕Ek(Гi), i=1,2,...,m.
Другими словами, на текст накладывается гамма . Здесь – криптографическое преобразование ГОСТ 28147-89 в режиме простой замены под управлением ‑битового секретного ключа (см. п. 1). Последовательность ‑битовых псевдослучайных блоков , представленных в виде двух ‑битовых подблоков и , т.е. , , определяется итеративно:
Yi:= Yi-1⊞const0;
Zi:=(( Zi-1+const1-1) mod (232-1))+1,
где , − ‑битовые константы. Значение , исходя из которого вычисляются последующие , получаются зашифрованием ‑битового блока , т.е. . Блок , называемый синхропосылкой, передается в открытом виде вместе с зашифрованным сообщением . Синхропосылка меняется от сообщения к сообщению. Расшифрование осуществляется по той же схеме, что и зашифрование:
Pi:=Ci⊕Ek(Гi), i=1,2,...,m.
Процесс шифрования в режиме гаммирования показан на рис. 2а.
Отметим, что при вычислении операция сложения по модулю может быть заменена на сложение по модулю :
причем значение имеет блок .
3. Режим гаммирования с обратной связью. Открытый текст , разбитый на -битовые блоки , ,..., , преобразуется в шифртекст , ,..., по правилу:
С1:=P1⊕Ek(S); Сi:=Pi⊕Ek(Ci-1), i=2,3,..,m,
где − ‑битовая синхропосылка (с использованием которой получается первый блок шифртекста), а – криптографическое преобразование ГОСТ 28147-89 в режиме простой замены под управлением ‑битового секретного ключа . Расшифрование осуществляется по той же схеме, что и зашифрование. Процесс зашифрования и расшифрования показан на рис. 2б и 2в.
4. Режим выработки имитовставки. В ГОСТ 28147-89 подлинность зашифрованных сообщений во всех режимах шифрования может дополнительно подтверждаться с использованием протокола сверки имитовставки.
Имитовставка – это блок из битов, который вычисляется либо перед зашифрованием, либо параллельно с зашифрованием отдельных блоков. Параметр выбирается в соответствии с установленным уровнем имитозащищенности (с учетом того, что вероятность навязывания ложного сообщения равна ).
Пусть обозначает процедуру зашифрования ГОСТ 28147-8 с раундами (вместо стандартных 32 раундов) в режиме простой замены под управлением того же ключа, что и для шифрования данных. Тогда вычисление имитовставки для исходного открытого текста P, разбитого на 64‑битовые блоки , ,..., (если − неполный блок, то он дополняется нулями), осуществляется по схеме:
B:=(P1);
for i:=2 to m do B:=(B⊕Pi).
Из ‑битового блока выбирается битов (из заранее оговоренных позиций), которые и образуют имитовставку .
Имитовставка присоединяется к шифртексту. Получатель сообщения расшифровывает шифртекст и аналогичным способом вычисляет имитовставку. Если вычисленная получателем имитовставка не совпадает с полученной, то сообщение считается ложным.
палачева
Anubis
Криптоалгоритм 3 шифрует ‑битовые блоки открытых данных под управлением секретного ключа такого же размера.
Каждый ‑байтовый блок , участвующий в криптографическом преобразовании, представляется в виде ‑матрицы
Множество таких матриц обозначим через . В алгоритме используются следующие функции, аргументами, параметрами и значениями которых являются матрицы из :
− матрица, полученная из транспонированием;
− матрица, полученная из заменой ее элемента на , где − подстановка на множестве байтов, заданная табл. 1;
, ,
где
,
− матрицы, элементы которых (байты) интерпретируются как элементы конечного поля , (при вычислении произведений и матрица также рассматривается над полем );
(другими словами, функция возвращает матрицу, получающуюся из циклическим сдвигом ее столбцов вниз соответственно на , , и позиций);
− добавление к матрице ключа − побитовое сложение по модулю элементов матриц и ;
Раундовая функция : определяется как
,
где .
Отметим следующие свойства введенных функций:
, , , ,
т.е. , , и инволютивны,
, ,
.
Шифрующая функция в определена (при раундовых ключах , , …, ) как
, , …, .
Обратная функция имеет вид:
, , …,
.
С учетом отмеченных свойств функций t, g, q и s нетрудно показать, что
, ,…, , ,…, , .
Другими словами, алгоритм Anubis симметричен, т.е. может быть использован как для зашифрования, так и для расшифрования. Но при этом раундовые подключи расшифрования , , …, и раундовые подключи расшифрования , , …, должны быть связаны соотношениями:
; , ; .
Раундовые подключи генерируются, исходя из секретного ключа , по следующей схеме:
Используемые при этом константы определяются как
Стандартное число раундов (число использований раундовой функции при шифровании) .
Таблица 1. Подстановка в s (в ‑ичном представлении)
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
a |
b |
c |
d |
e |
f |
0 |
a7 |
d3 |
e6 |
71 |
d0 |
ac |
4d |
79 |
3a |
c9 |
91 |
fc |
1e |
47 |
54 |
bd |
1 |
8c |
a5 |
7a |
fb |
63 |
b8 |
dd |
d4 |
e5 |
b3 |
c5 |
be |
a9 |
88 |
0c |
a2 |
2 |
39 |
df |
29 |
da |
2b |
a8 |
cb |
4c |
4b |
22 |
aa |
24 |
41 |
70 |
a6 |
f9 |
3 |
5a |
e2 |
b0 |
36 |
7d |
e4 |
33 |
ff |
60 |
20 |
08 |
8b |
5e |
ab |
7f |
78 |
4 |
7c |
2c |
57 |
d2 |
dc |
6d |
7e |
0d |
53 |
94 |
c3 |
28 |
27 |
06 |
5f |
ad |
5 |
67 |
5c |
55 |
48 |
0e |
52 |
ea |
42 |
5b |
5d |
30 |
58 |
51 |
59 |
3c |
4e |
6 |
38 |
8a |
72 |
14 |
e7 |
c6 |
de |
50 |
8e |
92 |
d1 |
77 |
93 |
45 |
9a |
ce |
7 |
2d |
03 |
62 |
b6 |
b9 |
bf |
96 |
6b |
3f |
07 |
12 |
ae |
40 |
34 |
46 |
3e |
8 |
db |
cf |
ec |
cc |
c1 |
a1 |
c0 |
d6 |
1d |
f4 |
61 |
3b |
10 |
d8 |
68 |
a0 |
9 |
b1 |
0a |
69 |
6c |
49 |
fa |
76 |
c4 |
9e |
9b |
6e |
99 |
c2 |
b7 |
98 |
bc |
a |
8f |
85 |
1f |
b4 |
f8 |
11 |
2e |
00 |
25 |
1c |
2a |
3d |
05 |
4f |
7b |
b2 |
b |
32 |
90 |
af |
19 |
a3 |
f7 |
73 |
9d |
15 |
74 |
ee |
ca |
9f |
0f |
1b |
75 |
c |
86 |
84 |
9c |
4a |
97 |
1a |
65 |
f6 |
ed |
09 |
bb |
26 |
83 |
eb |
6f |
81 |
d |
04 |
6a |
43 |
01 |
17 |
e1 |
87 |
f5 |
8d |
e3 |
23 |
80 |
44 |
16 |
66 |
21 |
e |
fe |
d5 |
31 |
d9 |
35 |
18 |
02 |
64 |
f2 |
f1 |
56 |
cd |
82 |
c8 |
ba |
f0 |
f |
ef |
e9 |
e8 |
fd |
89 |
d7 |
c7 |
b5 |
a4 |
2f |
95 |
13 |
0b |
f3 |
e0 |
37 |
Пояснение к таблице. Для байта значение находятся на пересечении строки и столбца . Например, .
пахомов