Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

все лекции

.pdf
Скачиваний:
84
Добавлен:
13.03.2016
Размер:
9.73 Mб
Скачать

Отправитель А

Получатель В

Сообщение m

kAsecret

 

 

 

 

kApublic

h

 

V

 

 

 

 

 

 

s* = V(m, s, kApublict)

Хеш-образ h(m)

 

Сравнение

Подпись

 

 

 

 

 

признаётся

S

 

Хеш-образ h(m)

 

 

 

s = S(m, kAsecret)

h

 

 

 

s = S(m, kAsecret)

Конкатенация m и s

 

 

 

 

 

 

 

Конкатенация m и s

Рисунок 7.1 – Классическая схема создания и проверки электронной

подписи

В российском стандарте цифровой подписи ранее использовалась разрабо-

танная отечественными криптографами ХЭШ-ФУНКЦИЯ (256 бит) стандарта ГОСТ Р 34.11–94 (в основе алгоритм блочного шифрования по ГОСТ 28147–89).

Этот стандарт определяет алгоритм и ПРОЦЕДУРУ ВЫЧИСЛЕНИЯ ХЭШФУНКЦИИ ДЛЯ ЛЮБОЙ ПОСЛЕДОВАТЕЛЬНОСТИ двоичных символов, кото-

рые применяются в криптографических методах обработки и защиты информации, в

том числе применялся для реализации процедур электронной подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах.

**************** ОКОНЧАНИЕ БЛОК-1 ******************

*************************************************

5

******************** НАЧАЛО БЛОК-2 ********************

С 1 января 2013 года в РФ введён стандарт хэш-функции на

ГОСТ Р 34.11-2012 (полное название: «ГОСТ Р 34.11-2012. Информационная технология.

Криптографическая защита информации. Функция хэширования») – действующий россий-

ский криптографический стандарт, определяющий алгоритм и процедуру вычисле-

ния хэш-функции. Стандарт разработан «Центром защиты информации и специальной связи» ФСБ России с участием ОАО «ИнфоТеКС».

Размер хэша: 256 или 512 бит. Размер блока входных данных 512

бит.

Стандарт определяет алгоритм и процедуру вычисления хэш-функции для последовательности символов. Этот стандарт разработан и введён в качестве замены устаревшему стандарту ГОСТ Р 34.11-94. Название хэш-функции – «Стрибог» – часто используется вместо официального названия стандарта.

Отличительные особенности по сравнению со старым стандартом

следующие:

– в ГОСТ Р 34.11-2012 размер блоков сообщения и внутреннего со-

стояния хэш-функции составляет 512 бит против 256 бит в ГОСТ Р

34.11-1994;

новый стандарт определяет две функции хэширования с длинами

хэш-кода 256 и 512 бит, в то время как в старом стандарте длина хэш-кода может быть только 256 бит. Возможность вариации выходного хэша может быть полезна в случае встроенных реализаций с ограниченными ресурсами, или наличия ка- ких-то дополнительных требований в области криптографии;

основное отличие современной хэш-функции от старой – функ-

ция сжатия. В ГОСТ Р 34.11-2012 используется функции сжатия в основе кото-

рой лежат три преобразования.

1 Нелинейное биективное преобразование (обозначается S). Нелинейная биекция: 512 бит аргумента рассматриваются как массив из 64 байт, каждый из которых заменяется по заданной стандартом таблице подстановки.

6

2 Перестановка байт (обозначается P). P переупорядочивание байт. Байты аргумента меняются местами по определённому в стандарте порядку.

3 Линейное преобразование (обозначается L). L аргумент рассматривается как 8 штук 64-битных векторов, каждый из которых

заменяется результатом умножения на определённую стандартом матрицу 64×64.

В ГОСТ Р 34.11-1994 используется функция сжатия, основанная на симметричном блочном шифре ГОСТ Р 28147-89, также эта функция использует операции перемешивания;

– при вычислении новой хэш-функции, если размер сообщения не кра-

тен размеру обрабатываемого блока (для современного стандарта – 512

бит, для старого стандарта – 256 бит), то такой блок дополняется вектором

(00 … 01). При вычислении старой хэш-функции неполный блок дополняется значением (00 … 0). Считается, что дополнение (00 … 01) лучше, чем (00 … 0) с криптографической точки зрения;

– в стандарте ГОСТ Р 34.11-2012 значение инициализационного

(начального) вектора фиксировано и определено: для хэш-функции с раз-

мером выходного хэша 512 бит это вектор (00 … 0), для хэш-функции с размером выходного хэш-кода 256 бит (000000010 … 100000001) (все байты равны

1).

Алгоритм построен на основе подстановочно-перестановочных

сетей (SP-сеть – Substitution permutation network) (не сеть Фейстеля).

SP-сети обрабатывают за один раунд целиком шифруемый блок

[18].

Обработка данных сводится, в основном, к заменам, когда, например,

фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения клю-

ча Ki, и перестановкам, зависящим от ключа Ki (рисунок 7.2).

7

Рисунок 7.2 – Вид SP-сети

Важным параметром блочного шифра является то, как выбирается ключ,

который будет использовать на каждом раунде. В блочном шифре, ис-

пользуемом в ГОСТ Р 34.11-2012, ключи (К1, К2, ..., К13) для каждого из 13-

ти раундов генерируются с помощью самой функции шифрования.

В данном стандарте используются следующие константы и функции:

С1, С2, ..., С12 – итерационные константы, которые являются 512 битовыми векторами. Их значения можно посмотреть в соответствующем разделе стандарта.

X – побитовый XOR (суммирование «по модулю 2»);

512

[+] – сложение «по модулю 2 »; MSBs(A) – получение S бит вектора A;

A||B – объединение (конкатенация) двух векторов A и В.

Алгоритм работы функции хэширования ГОСТ Р 34.11-2012

Под хэш-функцией H понимается зависящее от инициализационного вектора

IV отображение, сопоставляющее строке бит произвольной длины хэш-код фикси-

рованной длины n. Для определения хэш-функции необходимы описание процедуры инициализации, алгоритма вычисления функции сжатия и итеративной процеду-

8

ры вычисления значения хэш-функции.

Данный стандарт определяет две функции хэширования – «Стрибог-256» и «Стрибог-512» – с длинами хэш-кода 256 и 512 бит соответственно.

1 Входное сообщение разбивается на блоки фиксированного размера, для сообщений размером не кратным длине блока используется дополнение.

2 Начальное внутреннее состояние хэш-функции обновляется последовательной обработкой блоков сообщения – функцией сжатия

(g).

3 Параллельно с этим вычисляются число обработанных бит N и

контрольная сумма блоков , рисунок 9.3.

4 После всех блоков сообщения функция сжатия g обрабатывает блок с общей длиной сообщения и блок с контрольной суммой для завершения вычисления значения хэш-функции. Размер блоков сообще-

ния и внутреннего состояния хэш-функции составляет 512 бит.

Для целей представления длины сообщения и контрольной суммы блоков данные блока рассматриваются как числа по модулю 2512.

9

Рисунок 9.3 – Схема функции хэширования

Фактически, функция хэширования состоит из трёх стадий работы.

1 Инициализация – задаются начальные параметры для вектора функции хэширования IV.

2 Усечение сообщения – если сообщение более 512 бит, то выполняются t определённых шагов для того, чтобы сообщение было не более 512 бит.

3 Вычисление хэш – на выходе получаем сообщение h.

Описание функции хэширования.

В основу хэш-функции положена итерационная конструкция Меркла-Дамгарда с использованием MD-усиления. Под MD-усилением понимается дополнение неполного блока при вычислении хэш-функции до полного путем добавления вектора (0 … 01) такой длины, чтобы получился полный блок. Из дополнительных элементов нужно отметить следующие:

а) завершающее преобразование, которое заключается в том, что функция сжатия применяется к контрольной сумме всех блоков сообщения по модулю 2512;

б) при вычислении хэш-кода на каждой итерации применяются разные функции сжатия. Можно сказать, что функция сжатия зависит от номера итерации.

Описанные выше решения позволяют противостоять многим известным атакам.

Кратко описание хэш-функции ГОСТ Р 34.11 – 2012 можно представить следующим об-

разом.

На вход хэш-функции подается сообщение произвольного размера.

Далее сообщение разбивается на блоки по 512 бит, если размер сообщения не кратен 512,

то оно дополняется необходимым количеством бит.

Потом итерационно используется функции сжатия, в результате действия которой обнов-

ляется внутреннее состояние хэш-функции.

Также вычисляется контрольная сумма блоков и число обработанных бит. Когда обра-

ботаны все блоки исходного сообщения, производятся еще два вычисления:

1)обработка функцией сжатия блока с общей длиной сообщения;

2)обработка функцией сжатия блока с контрольной суммой.

Это и завершает вычисление хэш-функции.

Функция сжатия (g). В хэш-функции важным элементом является функ-

ция сжатия. В ГОСТ Р 34.11-2012 функция сжатия основана на конструкции Миагучи-Пренели.

На рисунке 9.4 приведена схема конструкции Миагучи-Пренели,

в которой:

h, m – вектора, поступающие на вход функции сжатия; g(h, m) – результат функции сжатия;

F – блочный шифр с длиной блока и ключа 512 бит. В качестве блочного шифра в хэш-функции ГОСТ Р 34.11-2012 взят XSPL-шифр. Этот

10

шифр состоит из следующих преобразований.

1 Сложение «по модулю 2».

2 Преобразование «замены» или «подстановки». Обозначается S-

преобразование.

3Преобразование «перестановки». Обозначено P-преобразование.

4Линейное преобразование. Обозначено L-преобразование.

Математически функция сжатия g описывается:

gN(h, m) = E(LPS(h N), m) h m, h,m F2512

где E(K, m) = X[K13 ]

;

Ki = LPS(Ki-1 Ci-1 ),

K1 = K, i {2,...,13}.

Основное отличие хэш-функции Стрибог от своего предшественника – функция сжатия. Её основная операция состоит из трёх преобразований: подстановки на байтах, транспонирования матрицы байт и умножения 64-битных векторов на матрицу 64×64 в GF(2).

Рисунок 9.4 – Функция сжатия

11

В функции Е используется только результат преобразования LPS и побитовое «исключающее ИЛИ» над 512-битными блоками.

Вместе со сложением «по модулю 2512», они составляют полный набор операций, использующихся в данной хэш-функции.

Функция Е показана на рисунке 9.5.

Рисунок 9.5 – Функция Е

Перестановка байт задаётся в стандарте, и представить это можно как таблица замены, рисунок 9.6.

12

Рисунок 9.6 – Блок замен

9.3 Типовые схемы идентификации и аутентификации пользователя

Первая из типовых схем – «С ОБЪЕКТОМ-ЭТАЛОНОМ» [1]:

в системе создаётся объект–эталон Ei (используя идентификатор

IDi и аутентификатор Ki) для идентификации и аутентификации поль-

зователя.

Структура объекта–эталона приведена в таблице 7.1.

Таблица 7.1 Структура объекта–эталона

 

 

 

 

 

 

 

 

 

 

 

 

 

Информация для аутентифика-

 

 

 

 

 

 

 

 

Информация

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ции

 

 

 

Номер поль-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для идентифи-

 

 

 

 

 

 

 

 

 

Ei = F(IDi, Ki)

 

 

зователя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кации

 

 

 

 

 

 

 

 

 

 

 

 

 

Ki – аутентификатор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

ID1

 

 

E1

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

ID2

 

 

E2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

N

IDn

En

 

 

 

Здесь Ei = F(IDi, Ki), где F функция, обладающая свойством «невосстановимости» значения аутентификатора Ki по Ei и IDi.

Невосстановимость Ki оценивается по пороговой трудоемкости

Т0 решения задачи восстановления аутентифицирующей информа-

ции Ki по Ei и IDi.

Так как для пары Ki и Kj возможно совпадения значений Е, то ве-

роятность ложной аутентификации не должна быть больше некоторо-

го порогового значения Р0.

На практике задают Т0 = 1020 1030, Р0 = 10–7 10–9.

Протокол идентификации и аутентификации следующий:

а) пользователь предъявляет свой идентификатор ID;

б) если ID = IDi, то пользователь i прошёл идентификацию;

в) субъект аутентификации запрашивает у пользователя его

аутентификатор Кi;

д) субъект аутентификации вычисляет значение Yi = F(IDi, Ki);

е) субъект аутентификации сравнивает значения Yi и Ei, и при сов-

падении пользователь аутентифицирован в системе: информация о нем

передается в программные модули, использующие ключи пользователей (систе-

му шифрования, разграничения доступа, и т. п.).

Вторая типовая схема «С МОДИФИЦИРОВАННЫМ ОБЪЕКТОМ–ЭТАЛОНОМ»: в системе также создаётся объект–

эталон, таблица 7.2.

14