Применение алгоритма RSA для шифрования потоков данных
| Категория реферата: Рефераты по математике
| Теги реферата: болезни реферат, рефераты без регистрации
| Добавил(а) на сайт: Jaranov.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
[pic],
(6) то единственное условие на выбор показателя степени [pic] в отображении (1) есть
[pic].
(7)
Итак, лицо, заинтересованное в организации шифрованной переписки с
помощью схемы RSA, выбирает два достаточно больших простых числа [pic] и
[pic]. Перемножая их, оно находит число [pic]. Затем выбирается число
[pic], удовлетворяющее условиям (7), вычисляется с помощью (6) число [pic]
и с помощью (3) - число [pic]. Числа [pic] и [pic] публикуются, число [pic]
остается секретным. Теперь любой может отправлять зашифрованные с помощью
(1) сообщения организатору этой системы, а организатор легко сможет
расшифровывать их с помощью (5).
Для иллюстрации своего метода Ривест, Шамир и Адлеман зашифровали
таким способом некоторую английскую фразу. Сначала она стандартным образом
(а=01, b=02, .... z=26, пробел=00) была записана в виде целого числа [pic], а затем зашифрована с помощью отображения (1) при m=11438162575788886766932577997614661201021829672124236256256184293570
6935245733897830597123563958705058989075147599290026879543541
и [pic]. Эти два числа были опубликованы, причем дополнительно сообщалось, что [pic]. где [pic] и [pic] - простые числа, записываемые соответственно
64 и 65 десятичными знаками. Первому, кто расшифрует соответствующее
сообщение
[pic], была обещана награда в 100$.
Эта история завершилась спустя 17 лет в 1994 г., когда D. Atkins, M.
Graff, А. К. Lenstra и Р. С. Leyland сообщили о расшифровке фразы. Числа
[pic] и [pic] оказались равными
[pic],
[pic].
Этот замечательный результат (разложение на множители 129-значного
десятичного числа) был достигнут благодаря использованию алгоритма
разложения чисел на множители, называемого методом квадратичного решета.
Выполнение вычислений потребовало колоссальных ресурсов. В работе, возглавлявшейся четырьмя авторами проекта, и продолжавшейся после
предварительной теоретической подготовки примерно 220 дней, на добровольных
началах участвовало около 600 человек и примерно 1600 компьютеров, объединённых сетью Internet. Наконец, отметим, что премия в 100$ была
передана в Free Software Foundation.
2.2.Сложность теоретико-числовых алгоритмов
Сложность алгоритмов теории чисел обычно принято измерять количеством арифметических операций (сложений, вычитаний, умножений и делений с остатком), необходимых для выполнения всех действий, предписанных алгоритмом. Впрочем, это определение не учитывает величины чисел, участвующих в вычислениях. Ясно, что перемножить два стозначных числа значительно сложнее, чем два однозначных, хотя при этом и в том, и в другом случае выполняется лишь одна арифметическая операция. Поэтому иногда учитывают ещё и величину чисел, сводя дело к так называемым битовым операциям, т. е. оценивая количество необходимых операций с цифрами 0 и 1, в двоичной записи чисел.
Говоря о сложности алгоритмов, мы будем иметь в виду количество арифметических операций. При построении эффективных алгоритмов и обсуждении верхних оценок сложности обычно хватает интуитивных понятий той области математики, которой принадлежит алгоритм. Формализация же этих понятий требуется лишь тогда, когда речь идёт об отсутствии алгоритма или доказательстве нижних опенок сложности.
Приведем теперь примеры достаточно быстрых алгоритмов с опенками их сложности. Здесь и в дальнейшем мы не будем придерживаться формального описания алгоритмов, стараясь в первую очередь объяснить смысл выполняемых действий.
Следующий алгоритм вычисляет [pic] за [pic] арифметических операций.
При этом, конечно, предполагается, что натуральные числа [pic] и [pic] не
превосходят по величине [pic].
2.2.1. Алгоритм вычисления [pic]
1) Представим [pic] в двоичной системе счисления [pic], где [pic], цифры в
двоичном представлении, равны 0 или 1, [pic].
2) Положим [pic] и затем для [pic] вычислим
[pic].
3) [pic] есть искомый вычет [pic].
Справедливость этого алгоритма вытекает из сравнения
[pic], легко доказываемого индукцией по [pic].
Так как каждое вычисление на шаге 2 требует не более трёх умножений по модулю [pic] и этот шаг выполняется [pic] раз, то сложность алгоритма может быть оценена величиной [pic].
Второй алгоритм - это классический алгоритм Евклида вычисления
наибольшего общего делителя целых чисел. Мы предполагаем заданными два
натуральных числа [pic] и [pic] и вычисляем их наибольший общий делитель
[pic].
2.2.2. Алгоритм Евклида
1) Вычислим [pic] - остаток от деления числа [pic] на [pic], [pic], [pic].
2) Если [pic], то [pic] есть искомое число.
3) Если [pic], то заменим пару чисел [pic] парой [pic] и перейдем к
шагу 1.
Теорема 1. При вычислении наибольшего общего делителя [pic] с помощью алгоритма Евклида будет выполнено не более [pic] операций деления с остатком, где [pic] есть количество цифр в десятичной записи меньшего из чисел [pic] и [pic].
Доказательство. Положим [pic] и определим [pic] - последовательность
делителей, появляющихся в процессе выполнения шага 1 алгоритма Евклида.
Тогда
Рекомендуем скачать другие рефераты по теме: оценка реферата, диплом на тему.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата