Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
терентьев шифры и тд.docx
Скачиваний:
0
Добавлен:
12.02.2026
Размер:
282.83 Кб
Скачать
  1. Электронная цифровая подпись (в сочетании с ГОСТ Р 34.10-94)

  2. Системы защиты информации

  3. Банковские приложения

  4. Государственные информационные системы

Сравнение с другими хеш-функциями

Переход к новому стандарту

В 2012 году был принят новый стандарт ГОСТ Р 34.11-2012 ("Стрибог"), который:

  • Использует более современную конструкцию

  • Поддерживает размеры хеша 256 и 512 бит

  • Обеспечивает более высокую криптостойкость

Вывод

ГОСТ Р 34.11-94 представляет собой важный этап в развитии российской криптографии. Несмотря на обнаруженные уязвимости, он успешно применялся в течение почти 20 лет и заложил основы для создания более современных отечественных хеш-функций.

Ключевые особенности:

  • Построение на основе блочного шифра ГОСТ 28147-89

  • Четырехпроходная структура обработки

  • Большой размер хеша (256 бит)

  • Широкое применение в системах ЭЦП

Сегодня использование ГОСТ Р 34.11-94 не рекомендуется для новых систем — следует применять более современный ГОСТ Р 34.11-2012, но понимание старого стандарта важно для работы с унаследованными системами и изучения эволюции криптографических алгоритмов.

Исторический контекст

Алгоритм был предложен Тахером Эль-Гамалем в 1985 году. Это была одна из первых практических схем цифровой подписи, основанная на сложности задачи дискретного логарифмирования.

Математическая основа

Безопасность EGSA основана на сложности задачи дискретного логарифмирования в конечных полях:

Для известных g, y и p трудно найти x такой, что: y ≡ g^x (mod p)

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

Параметры системы:

  1. p — большое простое число

  2. g — первообразный корень по модулю p (генератор мультипликативной группы Z_p*)

  3. x — закрытый ключ, случайное число: 1 < x < p-1

  4. y — открытый ключ: y ≡ g^x (mod p)

Открытый ключ: (p, g, y) Закрытый ключ: x

Процесс создания подписи

Для подписания сообщения m:

  1. Выбор случайного числа k:

    • k — случайное число, взаимно простое с (p-1): 1 < k < p-1

    • НОД(k, p-1) = 1

    • k должно быть уникальным для каждой подписи

  2. Вычисление первого элемента подписи:

    • r ≡ g^k (mod p)

  3. Вычисление второго элемента подписи:

    • Решается уравнение: m ≡ x × r + k × s (mod (p-1))

    • Отсюда находим s: s ≡ (m - x × r) × k^(-1) (mod (p-1))

Цифровая подпись: (r, s)

Процесс проверки подписи

Для проверки подписи (r, s) для сообщения m:

  1. Проверка условий:

    • 1 ≤ r ≤ p-1

    • 1 ≤ s ≤ p-1

  2. Вычисление левой части:

    • A ≡ g^m (mod p)

  3. Вычисление правой части:

    • B ≡ y^r × r^s (mod p)

  4. Проверка равенства:

    • Подпись верна, если A ≡ B (mod p)

Почему это работает? (Доказательство корректности)

Из определения s: m ≡ x × r + k × s (mod (p-1))

Тогда: g^m ≡ g^(x×r + k×s) (mod p) g^m ≡ (g^x)^r × (g^k)^s (mod p) g^m ≡ y^r × r^s (mod p)

Что exactly соответствует проверочной формуле.

Пример с маленькими числами

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

  1. p = 23, g = 5

  2. x = 7 (закрытый ключ)

  3. y = 5^7 mod 23 = 17

Открытый ключ: (23, 5, 17) Закрытый ключ: 7

Создание подписи для m = 12:

  1. Выбираем k = 11 (НОД(11, 22) = 1)

  2. r = 5^11 mod 23 = 22

  3. s = (12 - 7×22) × 11^(-1) mod 22 = (12 - 154) × 11^(-1) mod 22 = (-142) × 11^(-1) mod 22 = 10 × 11^(-1) mod 22

Находим обратный к 11 mod 22: 11 × 1 = 11 ≠ 1 11 × 2 = 22 ≡ 0 ... не существует! Выбираем другое k = 5

С k = 5:

  1. r = 5^5 mod 23 = 20

  2. s = (12 - 7×20) × 5^(-1) mod 22 = (12 - 140) × 5^(-1) mod 22 = (-128) × 5^(-1) mod 22 = 4 × 5^(-1) mod 22

Обратный к 5 mod 22: 5×9 = 45 ≡ 1 mod 22 s = 4 × 9 mod 22 = 36 mod 22 = 14

Подпись: (r=20, s=14)

Проверка подписи: A = 5^12 mod 23 = 6 B = 17^20 × 20^14 mod 23 = 6 A ≡ B → подпись верна!

Особенности и требования

Критически важные требования:

  1. k должно быть уникальным для каждой подписи

  2. k должно быть случайным и непредсказуемым

  3. НОД(k, p-1) = 1

Уязвимости и атаки

1. Раскрытие ключа при повторном использовании k

Если два сообщения подписаны с одинаковым k:

  • m₁ ≡ x×r + k×s₁ (mod p-1)

  • m₂ ≡ x×r + k×s₂ (mod p-1)

Вычитая: (m₁ - m₂) ≡ k×(s₁ - s₂) (mod p-1) Можно найти k, а затем x.

2. Атака на подобранное сообщение

Злоумышленник может создать валидную подпись для определенных сообщений.

3. Необходимость хеширования

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

Модификации и улучшения

Цифровая подпись Шнорра (Schnorr)

Упрощенная версия с меньшим размером подписи.

DSA (Digital Signature Algorithm)

Модификация Эль-Гамаля, принятая как стандарт в США:

  • Меньший размер подписи

  • Определенные параметры

  • Жесткая структура

ECDSA (Elliptic Curve DSA)

Версия на эллиптических кривых с повышенной безопасностью.

Преимущества EGSA