Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСы - ответы (КБ-61).docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
3.51 Mб
Скачать

59. Системы шифрования с открытыми ключами: rsa, системы Эль-Гамаля, системы на основе «проблемы рюкзака».

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

RSA.

Общая схема алгоритма:

  1. каждый пользователь генерирует пару ключей: один для зашифрования и один для расшифрования;

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

  3. посылая пользователю В сообщение, пользователь А зашифровывает его открытым ключам пользователя В;

  4. пользователь В расшифровывает полученное сообщение с помощью своего секретного ключа.

Пользователь выбирает простые числа и , вычисляет и выбирает число , взаимно простое с , где - функция Эйлера (равна количеству целых чисел, меньших и взаимно простых с ). Далее находим число , обратное относительно умножения к : . Ключ является ключом шифрования, ключ является ключом расшифрования. Шифрующее преобразование: , расшифровывающее преобразование: . Легко заметить, что

В зависимости от поставленной задачи (шифрование / ЭЦП), один из ключей , засекречивается, а второй помещается в общий доступ. Криптостойкость данной системы основана на сложности разложения числа на простые множители и . Для обеспечения лучшей криптостойкости числа и должны различаться по размеру на несколько десятичных разрядов, иметь небольшой НОД (в идеале 1) и каждое из них должно иметь хотя бы один большой простой делитель.

ElGamal.

Безопасность алгоритма основана на трудности вычисления дискретных логарифмов в конечном поле. Для генерации пары ключей сначала выбирается простое число и два случайных числа, и : . Затем вычисляется . Открытым ключом являются , и . И и можно сделать общими для группы пользователей. Закрытым ключом является . Для шифрования сообщения М сначала выбирает­ся случайное число , взаимно простое с . Затем вычисляются и . Пара является закрытым шифртекстом. Для расшифрования вычисляют: .

Система на основе «проблемы рюкзака».

Безопасность алгоритмов рукзака опирается на NP-полную проблему. Проблем рюкзака заключается в следующем: пусть дан набор значений M­1,M2,…,Mn и сумма S. Необходимо найти значения biтакие, что: , где может быть либо нулем, либо единицей. Существует 2 проблемы рюкзака. Проблема рюкзака является «Легкой», если перечень значений (Mi) представляет собой сверхвозрастающую последовательность (когда каждый член больше суммы всех предыдущих). Решение заключается в сравнении суммы (S) с самым большим числом последовательности. Если S больше, либо равен этому числу (Mi), то biпринимают за «1». Уменьшаем S на значение Mi и переходим к следующему числу последовательности. Процесс повторяется, пока последовательность не закончится. Если по окончании S равно нулю, то решение найдено. Проблема рюкзака является «Трудной», если перечень значений (Mi) – не сверхвозрастающая последовательность. Алгоритма быстрого решения не найдено.

В основу алгоритма рюкзака Меркла-Хеллмана лежит идея шифровать сообщение, как решение набора проблем рюкзака. Сверхвозрастающая последовательность рюкзака является закрытым ключам, а нормальная – открытым.

Для шифрования данных используется нормальная последовательность, которая получается из сверхвозрастающей следующим образом: Здесь - член сверхвозрастающей последовательности, - полученный член нормальной последовательности для шифрования, - число, большее суммы элементов сверхвозрастающей последовательности, k- число, взаимно простое с .

Для шифрования данные разбиваются на блоки по n бит. Считается сумма , которая является шифрованным текстом. Нормальная последовательность является открытым ключом шифрования.

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

Реальные рюкзаки должны содержать не менее 250 элементов. Длина каждого члена сверхвозрастающей последовательности должна быть где-то между 200 и 400 битами, а длина модуля должна быть от 100 до 200 битов. В таком случае, полный перебор для взлома будет бессмысленным. На сегодняшний день существуют алгоритмы достаточно быстрого взлома оригинальной схемы и большинства её модификаций. Также есть варианты алгоритма рюкзака, считающиеся безопасными на сегодняшний день.