Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекци ИБ (з.о для СсО).doc
Скачиваний:
137
Добавлен:
23.08.2019
Размер:
4.62 Mб
Скачать

2.3.1.1. Метод возведения в степень

Известно несколько методов шифрования, разработанных на основе дис­кретного возведения в степень. Наиболее распространенным из них явля­ется метод дискретного возведения в степень в конечных полях. К ним от­носятся криптоалгоритмы Диффи-Хелмана (DH) и Месси-Омура. Задача дискретного возведения в степень в аддитивной абелевой группе положена в основу построения алгоритмов на алгеброических кривых.

Идея криптографии с открытым ключом тесно связана с идеей односто­ронних функций. По заданному аргументу х легко вычислить значение фун­кции f(x), тогда как определение х из f(x) трудновычислимо. Здесь «трудно-вычислимость» понимается в смысле теории сложности. Ситуация изобра­жена на рис. 5.27.

Мы говорим о f(x), как о функции. Определение х из f(x) трудновычис­лимо только для криптоаналитика. Законный получатель информации име­ет подходящую лазейку. Далее такие односторонние функции будем назы­вать криптографическими.

Упомянем по этому поводу, что ни одного примера криптографической односторонней функции не известно. Зато существует много криптографи­ческих функций f(x), таких, что:

• Легко вычислить f(x) из х

• Определение х из f(x), вероятно, будет трудновычислимым.

Рис. 5.27. Смысл теории сложности для односторонней функции

С точки зрения криптографии с открытым ключом вполне подходят функ­ции, удовлетворяющие этим двум требованиям. В типичных криптосисте­мах с открытым ключом только прямой криптоанализ основан на вычисле­нии х из ^х). Могут существовать и другие, более гениальные криптоаналитические методы, избегающие этого вычисления. Таким образом, криптоаналитик может достичь успеха даже в том случае, когда доказано, что нахождение х из f(x) трудно вычислимо.

Функция f(x) будет односторонней, если перевод х в f(x) легок, а об­ратный перевод из f(x) в х трудновычислим. Второе требование часто заменяется более слабым условием: обратный перевод, вероятно, будет трудновычислимым.

Можно выделить две основные группы методов криптографической за-

щиты информации с открытым ключом, использующих ту или иную одно­стороннюю функцию с «потайной лазейкой». В качестве такой функции может быть использовано модульное возведение в степень с фиксирован­ным показателем степени m и модулем п:

f(x)=xmmodn ( )

Эффективный алгоритм для обратной операции — извлечения корня т-ой степени по модулю п для произвольных тип неизвестен. Это так называ­емая проблема дискретного логарифмирования для больших чисел. Один из методов использует эффективный алгоритм извлечения корня при извест­ном разложении числа п на простые множители. Это и позволяет отнести функцию вида f(x) к классу односторонних функций с «потайной лазейкой».

2.3.1.2. Метод укладки (упаковки) рюкзака (ранца)

Реализацией задачи об укладке рюкзака является криптоалгоритм Мер-кле и Хелмана. Рассмотрим этот криптоалгоритм на примере. Пусть задан набор чисел

(а,,а2,...ап) = А.

Задачей является нахождение таких чисел а|5 если это возможно, сумма которых равна числу к. В простейшем случае это число к указывает размер рюкзака, а каждое из чисел а. указывает размер предмета, который может быть упакован в рюкзак. Задачей является нахождение тако­го набора предметов, чтобы рюкзак был полностью заполнен.

В качестве примера возьмем число к=3231 и набор из 10 целых чисел а^...,

аю:

43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523.

Заметим, что число k получается при сложении только некоторых чи­сел а:

Рис. 5.28. Метод укладки рюкзака

3231 = 129+ 473 + 903 + 561 + 1165

Таким образом, сложив эти числа, мы нашли решение, то есть заполни­ли рюкзак. Ситуация наглядно проиллюстрирована на рис. 5.28.

В принципе решение всегда может быть найдено полным перебором подмножеств А и проверкой, какая из сумм равна числу к. В нашем случае это означает перебор 210=1024 подмножеств (включая при этом и пустое множество). Это вполне осуществимо.

Но что будет, если существует несколько сотен чисел а/? В нашем примере п=10, чтобы не усложнять положение и расчеты. В реальных условиях при­мер будет иметь, скажем, 300 чисел а.. Суть здесь в том, что неизвестны алго­ритмы, имеющие существенно меньшую сложность по сравнению с полным перебором. Поиск правильного решения среди 2300 подмножеств не поддается обработке.