КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Задано: n N
Найти: р и Для решения этой задачи применяется полиномиальная вероятностная процедура порождения случайного числа х из промежутка от n до 2 n вместе с его разложением на простые множители. Далее производится тестирование числа х +1 на простоту. Если х +1 – число простое, то полагают р = х +1. Если тест не пройден, то выбирают другое х. Следовательно, при положительном решении такой задачи можно переходить к задаче построения первообразного корня по модулю р. Заметим, что в этом случае р есть случайное простое заданного размера.
3. Задача дискретного логарифмирования. Рассмотрим задачу дискретного логарифмирования по простому модулю. Задано: модулю р. Найти: у такое, что Стандартное обозначение: По состоянию на сегодняшний день эта задача является трудной. Время лучших алгоритмов имеет такую же асимптотику, как и в случае задачи факторизации, хотя связи между этими задачами не обнаружено. Лучший на сегодняшний день (2005 г.) алгоритм имеет время работы
4. Алгоритм «Шаг лилипута, шаг великана» дискретного логарифмирования. Это один из первых алгоритмов (1973 г.), который показал, что задача вычисления дискретного логарифма может быть решена быстрее, чем методом перебора. Вход: модулю р. 1. Выбрать два натуральных числа m и k такие, что 2. Вычислить два ряда чисел
3. Найти такие i и j, для которых выполняется равенство
4. Число Покажем корректность алгоритма. Действительно,
Остается проверить, что указанные i и j существуют. Легко видеть, что числа в ряду (8.1) имеют вид Поэтому найдется показатель Оценим сложность этого метода.
Теорема. Время работы алгоритма «Шаг лилипута, шаг великана» для достаточно больших p удовлетворяет неравенству
Доказательство. Выберем так что (8.1) выполняется. Тогда в (8.2) потребуется не более
5. Алгоритм Силвера-Полига-Хеллмана дискретного логарифмирования. Этот алгоритм предполагает, что число р –1 имеет «небольшие» простые делители, точнее любое простое
Требуется найти последовательность
для
что можно переписать в виде
Покажем, как из последнего сравнения получить
С помощью бинарного метода возведения в степень вычислим последовательность чисел
Заметим, что все элементы последовательности попарно различны, ибо g – первообразный корень. Вычислим также степень Допустим, что уже найдены
членами последовательности (8.6), находим
6. Некоторые задачи. Задача 1. Построить первообразный корень по модулю 197. Задача 2. Построить первообразный корень по модулю 1931.
Задача 3. Найти
Задача 4. Найти Задача 5. Найти Задача 6. Найти Задача 7. Найти Задача 8. Найти Раздел девятый
1. Концепция криптосистем с открытым ключом. В 1976 г. американцы W. Diffie и M. Hellmann предложили новую концепцию т. н. двухключевой криптографии, в которой процедура шифрования является общедоступной, а расшифрование может успешно провести лишь тот, кто владеет секретным ключом. Таким образом, система требует наличия двух ключей – открытого, находящегося в общем пользовании, и закрытого, секретного, которым владеет лишь адресат. Это добавляет к общей схеме закрытого информационного обмена специальный генератор ключей, который вырабатывает соответствующие пары.
В симметричных системах ключ зашифрования и расшифрования мог быть один или, если их два, каждый из них получался из другого полиномиальной процедурой. Значит, оба ключа надо держать в секрете. В двухключевой криптографии секретный ключ получить из открытого легко не представляется возможным в силу большой вычислительной сложности соответствующей задачи. Такие системы стали называть асимметричными, или системами с открытым ключом.
2. Формальные составляющие асимметричных криптосистем. Необходимыми составляющими любой асимметричной криптосистемы являются следующие: 1) алфавиты открытых и закрытых текстов; 2) пространство ключей (множество слов в некотором алфавите); 3) алгоритм генерирование ключей – вероятностный полиномиальный алгоритм, который получив на вход 4) полиномиальный детерминированный алгоритм зашифрования Е, который получив на вход открытое сообщение М и открытый ключ 5) полиномиальный детерминированный алгоритм расшифрования D, который получив на вход шифртекст С и секретный ключ В дальнейшем появились системы, где алгоритм зашифрования носит вероятностный характер. Перечисленные алгоритмы должны удовлетворять следующим условиям: 1) если пара 2) неизвестны (или не существуют) эффективные алгоритмы, которые позволяют по известным Первое условие гарантирует восстановление любого открытого текста из зашифрованного, а второе обеспечивает надежность системы. Из второго условия, в частности, следует, что неизвестен эффективный алгоритм, который бы по известному открытому ключу
3. Криптосистема RSA. Криптосистема RSA предложена в 1977 г. Ее авторами являются R. Rivest, A. Shamir, L. Adleman. Это одна из самых известных асимметричных систем. 1 ) Генерирование ключей. Выбираются два больших различных простых числа р и q, вычисляется их произведение 2) Зашифрование. RSA – система блочная. Открытый текст разбивается на блоки, каждый из которых рассматривается как элемент кольца Z
3) Расшифрование. Процедура расшифрования выглядит также просто:
Укажем на корректность процедуры, т.е. что действительно для любого открытого текста М выполняется условие M = D(E(M)). Пусть
Рассмотрим первое из них, привлекая малую теорему Ферма.
То же проделаем и со вторым сравнением. В итоге получим требуемое, так как р и q числа взаимно простые. Для каждого из описанных действий существуют эффективные алгоритмы. Именно: для построения больших простых чисел, выбора числа е и решения сравнения по большому модулю (расширенный алгоритм Евклида), для процедур зашифрования и расшифрования (бинарный метод). Это говорит в пользу эффективности системы в целом. Наконец, следует сказать о стойкости криптосистемы. Любую систему можно считать стойкой, если задача нахождения открытого текста по шифртексту и открытому ключу является сложной. В данном случае эта задача выглядит так. Задано: Найти: х такое, что
Таким образом, задача слома системы сводится к задаче извлечения корня е -й степени по модулю Задано: Найти: d такое, что Из алгоритма генерирования ключей вытекает, что решение такой задачи сводится к вычислению значения функции Эйлера Рассмотрим небольшой пример. Выберем простые p и q. Пусть р = 997, q = 977. Тогда n = 974069, a «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 сравнение тогда и только тогда, когда Доказательство. Действительно, из сравнения
Рассмотрим первое из сравнений системы. Если
Но по теореме Ферма
заведомо выполняется, а потому выполняется и первое сравнение системы. То же можно утверждать и для второго сравнения системы, а окончательный результат следует из Китайской теоремы.
Доказанное утверждение, в частности, говорит о том, что выбирая часть е открытого ключа, следует учитывать появляющуюся возможность «нешифрования» сообщения.
Теорема. В условиях RSA сравнение тогда и только тогда, когда Рассуждая также, как и в предыдущем случае, докажем справедливость этого утверждения, откуда следует, что выбирать открытый элемент е ключа следует и с учетом такого результата.
Для ускорения процедуры зашифрования напрашивается выбор малых элементов Пусть три пользователя имеют общую малую компоненту
решая которую по китайской теореме получает ответ
Так как Чтобы воспрепятствовать такому течению дел, можно сообщение
Но и в этом случае оказывается возможным расшифровать сообщение методом, который придумал Хастад. Именно, он предложил воспользоваться следующей теоремой Копперсмита. Теорема. Пусть натуральное число. Если у многочлена удовлетворяющий неравенству найти за полиномиальное от значении Будем считать, что имеется
Рассмотрим многочлены
Известно, что существует такое Будем считать, что
будет удовлетворять соотношению
Теперь, если имеется достаточно много шифртекстов, т.е.
Рассмотрим еще одну из возможных атак на RSA – метод повторного шифрования. Итак, пусть
Это значит, что
Поскольку
откуда вытекает
Тогда Представленная попытка добраться до решения рассматриваемого сравнения относительно простым способом означает, что порядок элемента е открытого ключа в группе Сформулируем еще теорему М.Винера. Теорема. Пусть задана RSA-криптосистема с параметрами
Тогда d эффективно вычислимо. Доказательство. Для доказательства потребуется результат из теории рациональных приближений вещественных чисел. Именно: Теорема. Пусть
тогда Теперь вернемся к исходной теореме. Оценим величину
Поэтому Положим
Воспользуемся тем, что
Полученное неравенство означает, что величина Атака на основе теоремы Винера может быть усилена до
Поочередно проверяя знаменатели, легко убедиться, что
Можно доказать и такой результат.
Теорема. Если в условиях RSA-криптосистемы известен секретный ключ существует вероятностный полиномиальный алгоритм факторизации Доказательство. Пусть известны
Пусть Для любого элемента
Поэтому Далее представим Сравнение
Проиндексируем первое сравнение. Получим
После чего легко получаем, что
Из этого вытекает, что вероятность того, что случайно взятый элемент
Таким образом, эквивалентность суженной задачи факторизации и поиска ключа
4. Криптосистема Рабина. Система предложена в 1979 г. Rabin’ым. 1) Генерирование ключей. Выбирают два больших различных простых числа р и q, вычисляют их произведение 2) Зашифрование. Шифрование производится поблочно в соответствии с формулой
3) Расшифрование. Процедура расшифрования предполагает для получения блока М извлечь корень квадратный из С. Зная р и q это можно осуществить эффективно. Так как имеется четыре корня по модулю 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. Поэтому х Число q имеет вид q = 4m + 3, где m = 247. Отсюда получаем х
Дата добавления: 2014-11-16; Просмотров: 523; Нарушение авторских прав?; Мы поможем в написании вашей работы! |