Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСы - ответы (КБ-71).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
7.88 Mб
Скачать
  1. Системы шифрования с открытыми ключами: 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 битов. В таком случае, полный перебор для взлома будет бессмысленным. На сегодняшний день существуют алгоритмы достаточно быстрого взлома оригинальной схемы и большинства её модификаций. Также есть варианты алгоритма рюкзака, считающиеся безопасными на сегодняшний день.