Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology_konspekt.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.09 Mб
Скачать

Раздел девятый

1. Концепция криптосистем с открытым ключом.

В 1976 г. американцы W. Diffy и M. Hellmann предложили новую концепцию т. н. двухключевой криптографии, в которой процедура шифрования является общедоступной, а расшифрование может успешно провести лишь тот, кто владеет секретным ключом. Таким образом, система требует наличия двух ключей – открытого, находящегося в общем пользовании, и закрытого, секретного, которым владеет лишь адресат. Это добавляет к общей схеме закрытого информационного обмена специальный генератор ключей, который вырабатывает соответствующие пары.

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

2. Формальные составляющие асимметричных криптосистем.

Необходимыми составляющими любой асимметричной криптосистемы являются следующие:

  1. алфавиты открытых и закрытых текстов;

  2. пространство ключей (множество слов в некотором алфавите);

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

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

  5. полиномиальный детерминированный алгоритм расшифрования D, который получив на вход шифртекст С и секретный ключ , дает на выход открытый текст М, что записывается в виде .

Перечисленные алгоритмы должны удовлетворять следующим условиям:

  1. если пара получена генератором производства ключей, то для любого открытого текста М должно из следовать ;

  2. неизвестны (или не существуют) эффективные алгоритмы, которые позволяют по известным и находить М.

Первое условие гарантирует восстановление любого открытого текста из зашифрованного, а второе обеспечивает надежность системы. Из второго условия, в частности, следует, что неизвестен эффективный алгоритм, который бы по известному открытому ключу производил пару , которая, в свою очередь, могла быть порожденной алгоритмом генерирования ключей.

3. Криптосистема RSA.

Криптосистема RSA предложена в 1977 г. Ее авторами являются R. Rivest, A. Shamir, L. Adleman. Это одна из самых известных асимметричных систем.

1) Генерирование ключей.

Выбираются два больших различных простых числа р и q, вычисляется их произведение и значение функции Эйлера . Затем выбирается случайное число Z и вычисляется d такое, что . После этого полагают открытым ключом числа n и e, а секретным ключом – число d.

2) Зашифрование.

RSA – система блочная. Открытый текст разбивается на блоки, каждый из которых рассматривается как элемент кольца Z . Таким образом, для двоичной записи блока длины m должно выполняться неравенство . Если М есть блок открытого текста, то результат его шифрования выглядит так:

.

3) Расшифрование.

Процедура расшифрования выглядит также просто:

.

Укажем на корректность процедуры, т.е. что действительно для любого открытого текста М выполняется условие M = D(E(M)). Пусть . Это сравнение можно свести к системе сравнений

,

.

Рассмотрим первое из них, привлекая теорему Ферма.

.

То же проделаем и со вторым сравнением. В итоге получим требуемое, так как р и q числа взаимно простые.

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

Наконец, следует сказать о стойкости криптосистемы. Любую систему можно считать стойкой, если задача нахождения открытого текста по шифртексту и открытому ключу является сложной. В данном случае эта задача выглядит так.

Задано: N , где и .

Найти: х такое, что .

Таким образом, задача слома системы сводится к задаче извлечения корня е-й степени по модулю . На сегодняшний день для такой задачи неизвестны эффективные алгоритмы. Но и не доказано, что таких алгоритмов не существует. С другой стороны, любую асимметричную систему можно сломать, если указать эффективный алгоритм получения секретного ключа из открытого. Поэтому сформулируем еще одну задачу.

Задано: N , где и .

Найти: d такое, что для всех х.

Из алгоритма генерирования ключей вытекает, что решение такой задачи сводится к вычислению значения функции Эйлера , что на сегодня является трудной задачей, если неизвестны множители р и q. Для того, чтобы лишить противников всякой надежды на возможность факторизации числа n, р и q выбирают величиной порядка , так что число n имеет порядок . Итак, задачу нахождения секретного ключа можно свести к факторизации числа n, а последняя является сложной. Все это говорит в пользу того факта, что криптосистему в настоящее время считают стойкой при надлежащем выборе параметров безопасности. Числа р и q выбирают сильными простыми (см. з.7). Добавим к сказанному, что при том, что р и q должны быть большими, они не должны сильно отличаться друг от друга, но и не должны быть слишком близки друг другу. Наконец, р и q должны быть таковы, чтобы наибольший общий делитель чисел р-1 и q-1 был небольшим, желательно, чтобы . Нарушение любого из этих условий позволяет применить к числу n один из эффективных алгоритмов факторизации. Имеются и некоторые другие секреты использования RSA.

Рассмотрим небольшой пример. Выберем простые p и q. Пусть р = 997, q = 977. Тогда n = 974069, a = (р – 1)(q – 1) = 972096. Положим е = 868121, и решая сравнение ed = 1 (mod ), получаем, что d = 586025. Итак, сформированы ключи криптосистемы. Пусть задан открытый текст

«BETTER LATE THAN NEVER».

При длине алфавита равной 27 получаем следующий цифровой текст:

«01041919041726110019042619070013261304210417».

Разобьем его на блоки длины 4:

«0104 1919 0417 2611 0019 0426 1907 0013 2613 0421 0417».

Возводя каждый блок в степень е = 868121 по mod 974069, получаем цифровой криптотекст:

“491794 547096 837824 773497 682113 110037 449993 489740 770973 767593 837824”

Если теперь каждый блок этого текста возвести в степень d = 586025 по mod 974069, то

получим исходный цифровой текст.

Легко видеть, что в системе RSA не шифруются некоторые сообщения, например, 0 или 1. Справедлива

Теорема. В условиях RSA сравнение выполняется для всех

тогда и только тогда, когда .

Доказательство. Действительно, из сравнения следует система

Рассмотрим первое из сравнений системы. Если , то сравнение выполнимо. Поэтому пусть . Тогда сокращая обе части сравнения на М, получаем:

.

Но по теореме Ферма , и так как среди М встречаются первообразные корни по mod p, то . Подобный вывод справедлив и для простого q, откуда и следует необходимость. С другой стороны, если , то, например, сравнение

заведомо выполняется, а потому выполняется и первое сравнение системы. То же можно утверждать и для второго сравнения системы, а окончательный результат следует из Китайской теоремы.

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

Рассмотрим одну из возможных атак на RSA – метод повторного шифрования. Итак,

пусть , при этом и, значит, также . Строим последовательность :

Это значит, что

Поскольку , то существует натуральное число m такое, что Но тогда

откуда вытекает

Тогда будет решением рассматриваемого сравнения.

Сформулируем еще теорему М.Винера.

Теорема. Пусть задана RSA-криптосистема с параметрами

.

Тогда d эффективно вычислимо.

Существует предположение, что все секретные элементы небезопасны.

4. Криптосистема Рабина.

Система предложена в 1979 г. Rabin’ым.

1) Генерирование ключей.

Выбирают два больших различных простых числа р и q, вычисляют их произведение . Полагают открытым ключом число n, а секретным – р и q.

2) Зашифрование.

Шифрование производится поблочно в соответствии с формулой

.

3) Расшифрование.

Процедура расшифрования предполагает для получения блока М извлечь корень квадратный из С. Зная р и q это можно осуществить эффективно. Так как имеется четыре корня по модулю n, то при переходе к буквенному тексту берут тот, что обладает смысловым содержанием. Несложная модификация алгоритма делает шифрующее отображение инъективным.

Замечание. При описании алгоритма исходили из допущения, что (это эквивалентно тому, что ). Пересылку таких сообщений следует исключить, ибо противник может получить нетривиальный делитель числа n.

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

Стойкость криптосистемы основывается на сложности задачи извлечения корня квадратного из числа С по модулю . Как уже говорилось, такая задача по сложности эквивалентна задаче факторизации (эта задача в данном случае совпадает с задачей нахождения секретного ключа по открытому).

Рассмотрим пример. Пусть теперь р = 997, а q = 991. Тогда n = 988027. Предлагается зашифровать текст:

“ARGUMENTUM OMNI DENUDATUM ORNAMENTO”.

Запишем цифровой эквивалент этой фразы:

«001706201204131920122614121308260304132003001920122614171300120413191409»

Эту запись разобьем на блоки длины 6, для чего в конце дописана буква «J» с номе-

ром 09. Имеем:

«001706 201204 131920 122614 121308 260304 132003 001920 122614 171300 120413

191409»

Каждый из блоков возводим в квадрат по модулю 988027 и получаем:

«934382 619345 766849 374164 944753 268783 935864 722319 374164 276127 982371

376094»

Для расшифровки, например, первого блока поступаем так, как это описывалось выше. Число р, как легко проверяется, имеет вид р = 8m + 5, где m = 124. Поэтому

х = 934382 2 = 709 (mod 997).

Число q имеет вид q = 4m + 3, где m = 247. Отсюда получаем

х = 934382 = 276 (mod 991).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]