
- •Содержание
- •Введение
- •1.1. Общая система секретной связи (по К. Шеннону)
- •1.1.1. Основные криптографические термины
- •1.1.2. Модель системы секретной связи К.Шеннона
- •1.2. Подходы к оценке надежности реальных криптосистем
- •1.2.2. Метод сведения к общей алгоритмической проблеме
- •Глава 2. ОБЩИЕ АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ АНАЛИЗА ОСНОВНЫХ ТИПОВ ШИФРОВ
- •2.1. Элементарные шифры
- •2.2. Основные типы шифров
- •2.2.1 Потоковые шифры. Последовательность выбора шифрпреобразований
- •2.2.2. Качество гаммы
- •2.2.3. Периодичность гаммы
- •2.2.4. Блочные шифры
- •2.2.5. Алгоритмические проблемы, связанные со стойкостью основных типов шифров
- •Глава 3. ТЕСТИРОВАНИЕ УЗЛОВ КРИПТОСХЕМ КАК МЕТОД КОМПРОМЕТАЦИИ ШИФРОВ
- •3.1. Компрометация шифров
- •3.2. Задача тестирования линейной рекуррентной составляющей криптоузла
- •3.3. Задача восстановления параметров искаженной линейной рекурренты
- •3.3.1. Представление элементов рекурренты через элементы начального заполнения
- •3.3.2. Производные соотношения
- •3.3.4. Качественная характеристика задачи восстановления параметров линейной искаженной рекурренты
- •Глава 4. КРИПТОГРАФИЧЕСКИЕ СВОЙСТВА БУЛЕВЫХ ФУНКЦИЙ
- •4.1. Нелинейность булевой функции
- •4.2. Критерии распространения и корреляционная иммунность
- •4.3. Устойчивые булевы отображения
- •Глава 5. ОСОБЕННОСТИ ПРИМЕНЕНИЯ АЛГОРИТМА ГОСТ 28147-89
- •5.1. Криптоэквивалентная схема алгоритма ГОСТ 28147-89
- •5.2. Влияние блока подстановки на последовательности выходов итераций
- •5.2.1 Расшифрование в режиме простой замены
- •5.2.2. Возможность ослабления шифра за счет структуры сеансового ключа
- •5.3. Замечания о режимах шифрования и имитовставки
- •Глава 6. ВЫБОР ДОЛГОВРЕМЕННОГО КЛЮЧА АЛГОРИТМА ГОСТ 28147-89
- •6.1. Область сильных ключей
- •6.1.1. Достаточность условия равновероятности псевдогаммы для выбора сильного блока подстановки
- •6.2. Контроль долговременного ключа алгоритма ГОСТ 28147-89
- •6.2.1. Угроза внедрения слабых параметров
- •6.2.2. Подход к выявлению слабых долговременных ключей
- •6.2.3. Свойства теста
- •6.2.4. Тестирование долговременного ключа
- •Глава 7. ЭЛЕМЕНТЫ ТЕОРИИ СРАВНЕНИЙ
- •7.1.1. Расширенный алгоритм Эвклида
- •7.2. Модульная арифметика
- •7.2.1. Функция Эйлера и малая теорема Ферма
- •7.3. Сравнения первой степени от одного неизвестного
- •7.3.1. Китайская теорема об остатках
- •7.3.2. Степенные сравнения по простому модулю
- •Глава 8. ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
- •8.1.1. Символ Лежандра
- •8.1.2. Символ Якоби
- •8.2. Алгоритм нахождения квадратного корня в простом поле
- •9.1. Построение криптосистемы RSA. Идея цифровой подписи
- •9.2. Смешанные криптосистемы. Протокол Диффи-Хэллмана ключевого обмена
- •9.3. Цифровая подпись Эль-Гамаля
- •9.3.1. Криптосистема Эль-Гамаля
- •9.3.2. Механизм цифровой подписи Эль-Гамаля
- •9.3.3. Ослабление подписи Эль-Гамаля вследствие некорректной реализации схемы
- •9.3.4. Варианты цифровой подписи типа Эль-Гамаля
- •10.1 Обозначения и постановка задачи
- •10.2. Построение корней из единицы в поле
- •10.3. Алгоритм дискретного логарифмирования
- •10.3.1. Пример вычисления дискретного логарифма
- •10.4. Фальсификация подписи Эль-Гамаля в специальном случае выбора первообразного элемента и характеристики поля
- •10.4.1. Слабые параметры в подписи Эль-Гамаля
- •Глава 11. МЕТОДЫ ФАКТОРИЗАЦИИ ПОЛЛАРДА
- •11.2.1. Оценка вероятности выбора критической пары
- •11.2.2. Оптимизация выбора критической пары
- •Глава 12. НЕКОТОРЫЕ СЛУЧАИ ОСЛАБЛЕНИЯ КРИПТОСИСТЕМЫ RSA
- •12.1. Атаки на RSA, не использующие факторизацию модуля
- •12.2. Атаки на RSA, использующие факторизацию модуля
- •12.2.1. Алгоритм факторизации Диксона
- •Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
- •13.1. Решето Эратосфена и критерий Вильсона
- •13.2. Тест на основе малой теоремы Ферма
- •13.2.1. Основные свойства псевдопростых чисел
- •13.2.2. Свойства чисел Кармайкла
- •13.2.3. (n-1) - критерий Люка
- •13.2.3. Понятие о последовательностях Люка. (n+1) - критерий Люка
- •Глава 14. ТЕСТЫ СОЛОВЕЯ-ШТРАССЕНА И РАБИНА-МИЛЛЕРА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
- •14.1. Тест Соловея-Штрассена
- •14.1.1. Эйлеровы псевдопростые числа
- •14.2. Тест Рабина-Миллера
- •14.2.1. Сильно псевдопростые числа
- •Глава 15. ПОСТРОЕНИЕ БОЛЬШИХ ПРОСТЫХ ЧИСЕЛ
- •15.1. Детерминированный тест, основанный на обобщенном критерии Люка
- •15.1.1. Теорема Поклингтона
- •15.1.2. Обобщение критерия Люка
- •15.2. Детерминированный тест, основанный на теореме Димитко
- •Глава 16. ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
- •16.1. Общие требования к выбору параметров
- •16.2. Метод Гордона построения сильно простых чисел
- •16.3. Пример построения сильно простого числа
- •Глава 17. ОБЩИЕ СВЕДЕНИЯ ОБ ИНОСТРАННЫХ КРИПТОСРЕДСТВАХ
- •17.1. Аппаратные криптосредства
- •17.2. Основные принципы построения систем управления ключами
- •17.2.1. Ключевые системы потоковых шифров
- •17.3. Блочные шифры в смешанных криптосистемах
- •17.3.2. Смешанная криптосистема на основе алгоритмов RSA и IDEA
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА

Цифровая подпись Эль-Гамаля 121
9.3. Цифровая подпись Эль-Гамаля
Одним из примеров использования сложности задачи дискретного логарифмирования в криптографии является т.н. схема Эль-Гамаля, которую можно использовать как для цифровой подписи, так и для шифрования [43].
9.3.1. Криптосистема Эль-Гамаля
Криптосистема Эль-Гамаля является асимметричной. Для построения пары
ключей выбирается большое простое число p |
и два псевдослучайных числа, |
|||
меньших p −1. |
|
|
|
|
Одно из них, g , должно быть элементом большого порядка по модулю |
p , |
|||
скажем, первообразным корнем. Второе число, |
x , выбирается |
в качестве |
||
секретного ключа. Полагается, что сообщения – вычеты по модулю |
p . |
|
||
Открытым ключом является тройка чисел p, g, y = g x (p). |
|
|
||
Заметим, что дискретное возведение |
в |
степень ведет |
себя |
как |
односторонняя функция, но не как односторонняя функция с лазейкой.
Поэтому для каждого сообщения формируются дополнительные данные, играющие роль лазейки для конкретного сеанса шифрования.
Для зашифрования сообщения m выбирается псевдослучайное число k
(рандомизатор, разовый ключ) с условием НОД(k, p −1)=1. Рандомизаторы не должны повторяться и должны содержаться в секрете.
Затем вычисляются |
числа a = gk (p) - лазейка и |
b = yk m(p) |
- |
шифртекст. Криптограммой является пара блоков данных a,b . |
|
|
|
Для расшифрования |
достаточно получить сомножитель |
yk , что можно |
сделать с помощью секретного ключа, вычислив значение ax = gkx (p).
Действительно, yk = g xk (p), поэтому m = a−xb(p).

122 Глава 9. КРИПТОСИСТЕМА RSA, ПРОТОКОЛ ДИФФИ-ХЭЛЛМАНА И ЦИФРОВАЯ ПОДПИСЬ ЭЛЬ-ГАМАЛЯ
9.3.2. Механизм цифровой подписи Эль-Гамаля
Цифровая подпись Эль-Гамаля состоит из пары блоков r, s .
В механизме этой подписи используются те же параметры что и в криптосистеме Эль-Гамаля. Преобразование, естественно, производится лицом, обладающим секретным ключом. Кроме того, используется хэш-функция сообщения h(m).
Лицо, подписывающее документ, должно для каждого подписываемого сообщения m выбрать рандомизатор k и вычислить «предподпись»
r = gk (p).
Затем необходимо использовать секретный ключ как один из коэффициентов сравнения, из которого определяется блок подписи s .
Сравнение имеет вид h = h(m)= xr + ks mod(p −1). Здесь модулем сравнения выбрано число p −1, поскольку обе части сравнения в проверочном соотношении будут участвовать в показателях.
Заметим, что число r может равняться |
p −1, поскольку оно определяется |
|
из сравнения по модулю p . |
|
|
Подпись r, s считается действительной, если gh = g xr+ks (p). |
||
Поскольку y = g x (p) |
и r = gk (p), то окончательный вид проверочного |
|
соотношения следующий: |
gh = yr rs (p). |
Таким образом, для проверки |
подписи достаточно знания открытого ключа.
Очевидно, необходимость выбора рандомизатора требует применения криптографически стойких датчиков (генераторов) псевдослучайных чисел.

Цифровая подпись Эль-Гамаля 123
Выходные последовательности таких генераторов являются непредсказуемыми. Кроме того, структура выходной последовательности не позволяет определить начальное состояние и, возможно, другие параметры соответствующего датчика.
Определение и свойства криптографически стойкого псевдослучайного генератора можно найти в [2].
В Государственном Стандарте Украины ДСТУ 4145-2002 [19] для построения рандомизаторов цифровой подписи применяется датчик псевдослучайных чисел, схема которого использует криптоалгоритм ГОСТ
28147-89.
9.3.3. Ослабление подписи Эль-Гамаля вследствие некорректной реализации схемы
Схемы цифровой подписи типа Эль-Гамаля стандартизованы и широко используются на практике. Следует отметить, что малейшее отклонение от
рекомендаций стандартов может привести к ослаблению подписи. |
|
||||||
Приведем |
примеры. |
Пусть |
k известно, |
тогда |
из |
соотношения |
|
h = xr + ks mod(p −1) |
находим секретный ключ |
x и можем подписывать |
|||||
сообщения вместо владельца подписи. |
|
|
|
||||
Далее. При повторении рандомизатора получим систему сравнений |
|||||||
относительно |
x |
и |
k |
вида |
h1 = xr1 + ks1 mod(p −1), |
||
h2 = xr2 + ks2 mod(p −1), |
что |
позволяет определить |
ключ |
даже при |
переменной хэш-функции.
Третий пример – несоблюдение ограничения на размер параметра: r < p .
Допустим, что проверяющая сторона не учитывает возможность возникновения ситуации, когда r > p .

124 Глава 9. КРИПТОСИСТЕМА RSA, ПРОТОКОЛ ДИФФИ-ХЭЛЛМАНА И ЦИФРОВАЯ ПОДПИСЬ ЭЛЬ-ГАМАЛЯ
Наблюдая за сетью связи, можно получить подписанное сообщение m и выделить блоки некоторой истинной подписи r, s , связанные со значением хэш-кода h = h(m).
Пусть необходимо подделать подпись для сообщения m1 с хэш-кодом. h1 = h(m1 ). Предположим, хэш-коды двух рассматриваемых сообщений отличаются некоторым множителем u , который можно найти из сравнения h1 =uh mod(p −1). (Если это сравнение не имеет решения, то перехватим в сети следующее подписанное сообщение и т.д.)
Для истинной подписи выполняется проверочное соотношение
gh = yr rs (p). Попытаемся подобрать такую подпись r ,s , чтобы аналогичное |
|
1 |
1 |
соотношение выполнялось для r1,s1 , h1 . |
|
Рассмотрим gh1 = guh =[yr rs ]u (p), т.е. gh1 = yru r su (p). |
|
Очевидно, можно принять s1 = su mod(p −1). |
Однако, если принять |
r1 = ru mod(p −1), то проверочное соотношение выполняться не будет, так как r1 должно участвовать в основании и показателе степени одновременно, что не имеет места. Оказывается, выход из положения существует, если допускается возможность значений r1 > p .
Действительно, r1 в показателе и основании степени приводятся по различным модулям, т.е. должны одновременно выполняться сравнения
r1 = ru mod(p −1) и r1 = r mod(p).
Модули сравнений взаимно просты, следовательно, по китайской теореме об остатках, существует решение r1 = r mod(p(p −1)), однако r1 > p .