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

Приложения шифров. Криптоанализ. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
873 Кб
Скачать

Алгоритм SHA разработан АНБ США в рамках стандарта безопас- ного хэширования SHS в 1992 г. Предназначен для использования совместно с алгоримом цифровой подписи DSA. Отличия от MD5 со- стоят в следующем:

1)SHA выдает 160-битовое хэш-значение и более устойчив к ата- кам полного перебора и «дня рождения», чем MD5, формирующий 128-битовый хэш;

2)сжимающая функция SHA состоит из 80 шагов, а не 64, как в

MD5;

3)расширение входных данных производится не простым их по- вторением в другом порядке, а с помощью рекуррентной функции;

4)усложнен процесс перемешивания.

Отечественный стандарт ГОСТ Р 34.11–94

Для нахождения хэш-функции используется алгоритм шифрования ГОСТ 28147–89. Вычисление шаговой хэш-функции для сообщения x длиной 256 бит (при необходимости оно дополняется фиксированными символами до 256 бит) содержит три этапа: генерацию четырех клю-

чей K1K4, шифрование стартового вектора H на этих ключах, пере-

мешивание результата. Стандарт предусматривает, что все пользовате- ли системы имеют общую информацию: блок подстановки для шифрования и стартовый вектор длиной 256 бит.

Шаговая функция хэширования

Алгоритм вычисления шаговой функции хэширования включает в себя три части, реализующие последовательно:

генерацию ключей слово длиной 256 бит;

шифрующее преобразование зашифрование 64-битных подслов слова Н на ключах Ki (i = 1, 2, 3, 4) c использованием алгоритма по

ГОСТ 28147–89 в режиме простой замены;

перемешивающее преобразование результата шифрования.

Генерация ключей

Рассмотрим X (b256, b255, , b1) V256(2).

Пусть

X x4 || x3 || x2 || x1 16 || 15 || 1 32 || 31 || 1,

11

где

 

 

 

 

 

 

(bi64, , b(i 1)64 1 V64(2),

i 1, , 4 ;

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

j (bj16, , b( j 1)16 1 V16(2),

j 1, , 16 ;

 

 

 

 

 

 

 

k (bk8, , b(k 1)8 1 V8(2), k 1, , 32 .

 

 

Обозначают A(X ) x1

 

x2

 

x4

 

 

 

 

 

 

 

 

 

 

 

x3

 

x2 .

 

 

 

Используют

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

 

 

 

 

P : V256(2) V256(2)

слова

32

 

31

 

 

 

1 в

слово (32)

 

(1) ,

где i 1 4(k 1)

 

 

 

 

(31)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8i k, i 0 3, k 1 8 .

Для генерации ключей необходимо использовать следующие ис- ходные данные:

слова H, M V256(2) ;

параметры слова Ci (i = 2, 3, 4), имеющие значения С2 С4 0256 ,

С3 = 180811602411608(0818)21808(0818)4(1808)4 = FF00FFFF000000FFFF

0000FF00FFFF0000FF00FF00FF00FFFF00FF00FF00FF00.

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

1.Присвоить значения: i = 1, U = H, V = M.

2.Выполнить вычисление W U V, K1 P(W).

3.Присвоить i = i + 1.

4.Проверить условие i = 5. При положительном исходе перейти к шагу 7. При отрицательном перейти к шагу 5.

 

Выполнить вычисления U A U

 

Ci ,

V A A(V ) ,

5.

 

W U

 

V, Ki P(W) .

 

 

 

6.

Перейти к шагу 3.

 

7.

Конец работы алгоритма.

 

Шифрующее преобразование

На данном этапе осуществляется зашифрование 64-битных подслов слова Н на ключах Ki (i = 1, 2, 3, 4).

Для шифрующего преобразования необходимо использовать сле- дующие исходные данные: H = h4||h3||h2||h1, hi V64(2), i = 1, …, 4 и набор ключей K1 , K2 , K3 , K4 .

12

Реализуют алгоритм зашифрования и получают слова si EKi (hi ),

где i = 1, 2, 3, 4.

Врезультате данного этапа образуется последовательность S =

=s4||s3||s2||s1.

Перемешивающее преобразование

На данном этапе осуществляется перемешивание полученной по- следовательности с применением регистра сдвига. Исходными данны-

ми являются слова H, M, S V256(2) . Пусть

отображение ѱ:

V256(2) V256(2) преобразует слово 16

 

 

 

15

 

 

 

1,

i V16(2) в сло-

 

 

 

 

во 1 2 3 4 13 16 || 16 15 1.

Тогда в качестве значения шаговой функции хэширования прини- мается слово (M, H) 61 H M 12 (S) , где i i-я сте-

пень преобразования ѱ. Структурные схемы отображений шаговой хэш-функции ГОСТ Р 34.11–94 по [7] приведены на рис. 5.

Рис. 5. Схемы отображений шаговой хэш-функции ГОСТ Р 34.11–94

13

Процедура вычисления хэш-функции

Исходными данными для процедуры вычисления значения функ-

ции h является подлежащая хэшированию последовательность M B* , а параметром стартовый вектор хэширования Н произвольное фик-

сированное слово из V256(2) .

Процедура вычисления функции h на каждой итерации использует следующие величины:

M B* часть последовательности М, не прошедшая процедуры хэширования на предыдущих итерациях;

H V256(2) – текущее значение хэш-функции;

V256(2) – текущее значение контрольной суммы;

L V256(2) – текущее значение длины, обработанной на предыду-

щих итерациях части последовательности М.

Алгоритм вычисления функции h включает следующие этапы.

Первый этап

Присвоить начальные значения текущих величин:

M = M;

H = H;

0256 ;

L 0256 .

Переход ко второму этапу.

Второй этап

Проверить условие |M| > 256.

При положительном исходе перейти к этапу 3. В противном случае выполнить последовательность вычислений:

1)L Lˆ + M > 256;

2)M 0256 |M | || M ;

3)M ;

4)H (М , H) ;

5)H (L, H) ;

6)H ( , H) ;

7)конец работы алгоритма.

14

Третий этап

Вычислить подслово М s V256(2) слова М (М М р || М s ) . Далее выполнить последовательность вычислений:

H (Ms, H) ;

LL + 256 > 256;

Ms ;

M M p .

Перейти ко второму этапу.

Значение величины Н, полученное на шаге вычисления 6 второго этапа, является значением функции хэширования h(M).

1.2. Криптографическая аутентификация субъектов

Аутентификация субъектов (или пользователей) основана на ис- пользовании механизма запроса-ответа. Суть его заключается в следу- ющем.

Пусть есть два субъекта: А и В. Если А хочет быть уверен, что со- общения, получаемые от В, не являются ложными (т. е. субъект В подлинный), то А посылает В непредсказуемый элемент запрос ХА (например, случайное число). Субъект В должен выполнить над ХА за- ранее оговоренную операцию (например, вычислить значение функции

YB fAB (X А )) . Получив ответ YB , субъект А может сравнить его с вычисленным самостоятельно значением YA (YA YB ?) и установить,

является ли субъект В подлинным.

Для взаимной проверки подлинности механизм применяется с двух сторон и образует так называемую процедуру «рукопожатия», которая

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

том. Тогда в качестве fAB может быть применена криптографическая функция (шифр) EAB и субъекты А, В признают друг друга подлин-

ными, если докажут, что обладают «правильными» ключами; в слу- чае применения симметричных шифров если владеют общим клю-

чом KАВ .

15

Для аутентификации субъекта можно использовать и криптографи- ческие системы с открытым ключом. Секретный ключ d известен толь- ко его владельцу, в то время как отрытый ключ доступен всем. Так как последовательность использования ключей не имеет значения, шифро- вание на закрытом ключе выделяет (не раскрывая) аутентификатор субъекта (а именно состояние памяти, хранящей значение d), под- тверждаемый расшифрованием на открытом ключе. Следовательно, пока закрытый ключ не покидает головы человека, он является таким же аутентификатором, как и привычные нам остальные аутентифика- торы рисунки кровеносных сосудов сетчатки, радужной оболочки, папиллярных линий, формы лица, ушей и т. д.

Именно на этом и основаны протоколы идентификации и аутенти- фикации с так называемой «нулевой передачей знаний». Одна из пер- вых схем такой идентификации была предложена в 1986 г. У. Фейге, А. Фиатом и А. Шамиром. Рассмотрим ее упрощенный вариант. Но сначала дадим несколько определений.

Целые числа a и b называют сравнимыми по модулю n, если их остатки при делении на n совпадают. Обычно для обозначения этого факта используется запись a b(mod n).

Отсюда, в частности, следует, что число n делит разность чисел a и b. Операцию нахождения числа b = a mod n называют приведением числа a по модулю n.

Множество целых чисел a0, , an–1, таких, что для любого целого числа b найдется k 0, …, n – 1} со свойством ak bmodn , называет-

ся полной системой вычетов по модулю n.

Число d называют обратным к числу а по модулю n, если произве- дение ad при делении на n дает в остатке единицу: ad(modn) 1. При-

нятое обозначение: d a 1(modn). Это число существует тогда и только тогда, когда число а является взаимно простым с n.

Числа a, удовлетворяющие сравнению x2 а(mod р) для некото-

рого х, называются квадратичными вычетами. Если это сравнение неразрешимо, то числа a называются квадратичными невычетами. Ровно половина всех чисел вида 1, 2,..., р – 1 для нечетного p являет- ся квадратичными вычетами, а вторая половина квадратичными не- вычетами.

16

Примеры

1.Для р = 11 числа 1, 3, 4, 5, 9 являются квадратичными вычетами, числа 2, 6, 7, 8, 10 – квадратичными невычетами.

2.Для p = 7 числа 1, 2, 4 являются квадратичными вычетами, числа 3, 5, 6 – квадратичными невычетами. Однако при переходе к квадра- тичному расширению поля числа 3, 5, 6 тоже становятся квадратичны- ми вычетами.

Число g называют корнем из а по модулю n, если произведение gg

при делении на n дает в остатке а: gg(modn) a . Принятое обозначение: g = a (mod n).

Схема идентификации с нулевой передачей знаний

А доказывает, В проверяет подлинность, С доверенный ар- битр.

1. С выбирает V, такое, что x2 V(modn) имеет решение и суще- ствует V 1(modn) .

Вычисляется S V 1 (mod n); V открытый ключ А; S секрет- ный ключ А.

2. A выбирает случайное число r < n, вычисляет x r2(modn) и отправляет х к В.

3.В посылает А случайный бит b.

4.Если b = 0, А отправляет число r стороне В. Если b = 1, то А от- правляет В число y = rS(mod n).

5.Если b = 0, то В проверяет, что x r2(modn) , чтобы убедиться,

что А знает x . Если b = 1, то В проверяет, что x y2V (modn) , чтобы

иметь подтверждение, что А знает V 1 .

Шаги 2–5 образуют один цикл протокола, называемый аккредита- цией. Стороны повторяют этот цикл t раз до тех пор, пока В не убедит- ся, что А знает значение S.

Если А не знает S, то сможет обмануть В при b = 0 или при b = 1, но не в обоих случаях сразу. То есть вероятность того, что А обманет В

в одном цикле аккредитации, составляет 2 1, соответственно в t цик- лах – 2 t .

17

Пример

Возьмем n 5 7 35. Квадратичные вычеты:

1: х 1 (mod 35) имеет решения 1, 6, 29, 34 (далее запись x i(mod 35) опускаем);

4: 2, 12, 23, 33; 9: 3, 17, 18, 32; 11: 9, 16, 19, 26;

14:7, 28;

15:15, 20;

16:4, 11, 24, 31;

21:14, 21;

25:5, 30;

29:8, 13, 22, 27;

30: 10, 25.

Вычеты 14, 15, 21, 25 и 30 не имеют обратных значений по mod 35, так как не являются взаимно простыми с 35, поэтому исключаются

(табл. 1).

 

 

 

 

Т а б л и ц а 1

 

 

 

 

 

V

 

V 1

 

S = V 1

1

 

1

 

1

4

 

9*

 

3

9

 

4

 

2

 

 

 

 

 

11

 

16

 

4

16

 

11

 

9**

29

 

29

 

8

 

 

 

 

 

 

 

Пояснение:

 

 

*(4 9) mod 35 = 1; **(9 9) mod 35 = 11

 

Пусть открытый ключ А состоит из четырех значений V: {4, 11, 16, 29}. Соответственно секретный ключ S: {3, 4, 9, 8}.

1.А выбирает r = 16, x 162 mod35 11 и посылает х к В.

2.В отправляет А случайную двоичную строку: (1, 1, 0, 1).

18

3. А вычисляет

yr S1b1S2b2S3b3S4b4 modn 16(31 41 90 81)mod35 31

иотправляет y к В.

4.В проверяет, что

x y2 V1b1V2b2V3b3V4b4 modn 312(41 111 160 291)mod35 11.

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

В подобной схеме идентификации с нулевой передачей знаний, разработанной Л. Гиллоу и Ж. Куискуотером, аккредитации в каждом обмене доведены до абсолютного минимума для каждого доказа- тельства требуется только один обмен с одной аккредитацией. Но объ- ем требуемых вычислений при этом выше, чем в схеме ФейгеФиата Шамира.

1.3. Электронно-цифровая подпись

Таким образом, для каждого из объектов аутентификации (данных

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

иd для документа и человека соответственно. Аутентификатор m вы- деляется с помощью хэш-функции. Аутентификатором d является за- крытый ключ асимметричного шифра.

Осталось соединить два имеющихся аутентификатора m и d в одно целое. Для этого полученное хэш-значение документа хэш») шифру- ется с использованием секретного ключа. Что же представляет собой этот зашифрованный хэш, или, иными словами, электронно-цифровая подпись (ЭЦП)? С точки зрения теории множеств это не что иное, как упорядоченная пара (т. е. новый, единый элемент) < d, m > (именно в таком порядке, так как не зная d, не узнаешь m). Таким образом, если

M {mi} – множество аутентификаторов электронных документов, D {di} – множество аутентификаторов пользователей, то множество ЭЦП = S есть прямое (декартово) произведение S = D M.

19

ЭЦП является аутентификатором, уникальным в том смысле, что представляет одновременно два реальных объекта электронный до- кумент и человека, его подписавшего. Формируется она следующим образом (на примере ЭЦП RSA, рис. 6).

ОТПРАВИТЕЛЬ

КАНАЛ

ПОЛУЧАТЕЛЬ

 

 

ПЕРЕДАЧИ

 

 

 

 

 

ДАННЫХ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S = md(modN)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E, N

 

 

ЭЦП

 

m = m

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m = h(M)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЭЦП+

 

 

 

 

 

 

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m = h(M)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6. Схема ЭЦП RSA

 

 

 

 

 

 

 

 

У ЭЦП RSA есть один недостаток. Если для различных документов

М1 , М2 и М3 их хэш-значения m1, m2 и m3

связаны соотношением

m3 m1m2(mod N) , то получить подпись s3

можно, перемножив s1

и

s

2

,

s

s s

(mod N) .

Действительно,

s md (mod N) ,

s

 

 

 

3

1 2

 

 

 

 

 

 

 

 

1

1

 

 

2

 

md (mod N),

s s (mod N) md md (mod N)

 

(m m )d (mod N)

 

2

 

 

 

 

 

1 2

 

1

2

 

 

 

 

1

2

 

 

 

 

m3d s3.

Существуют алгоритмы подписи на основе схемы ЭльГамаля – EGSA, и стандарты подписи на основе этого алгоритма: DSA–DSS, а также отечественный стандарт электронно-цифровой подписи

ГОСТ Р.34.10–2012.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]