КАТЕГОРИИ: Архитектура-(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) |
Теорема Эйлера
Алгоритм Евклида Алгоритм Евклида позволяет найти наибольший общий делитель двух многочленов, т.е. многочлен наибольшей степени, на который делятся без остатка оба данных многочлена. f (x) = g (x)∙ q (x) + r (x), (*) при этом степень остатка меньше степени делителя, многочлена g (x), и, кроме того, по данным многочленам f (x) и g (x) частное и остаток находятся однозначно. Если в равенстве (*) остаток r (x) равен нулевому многочлену (нулю), то говорят, что многочлен f (x) делится на g (x) без остатка.
затем, если r 1(x) ≠ 0, – второго данного многочлена, g (x), на первый остаток – на многочлен r 1(x): g (x) = r 1(x)∙ q 2(x) + r 2(x), (2) далее, если r 2(x) ≠ 0, – первого остатка, r 1(x), на второй остаток, r 2(x): r 1(x) = r 2(x)∙ q 3(x) + r 3(x), (3) затем, если r 3(x) ≠ 0, – второго остатка на третий: r 2(x) = r 3(x)∙ q 4(x) + r 4(x), (4) и т.д. Поскольку на каждом этапе степень очередного остатка уменьшается, процесс не может продолжаться бесконечно, так что на некотором этапе мы обязательно придем к ситуации, когда очередной, n + 1-й остаток rn + 1 равен нулю:
Тогда последний не равный нулю остаток rn и будет наибольшим общим делителем исходной пары многочленов f (x) и g (x). Если у нас есть два числа M и n, где M < n, а также что очень важное чтобы данные числа были взаимно простыми, то выполняется соотношение. M^(j(n)) = 1 (mod n). В данной формуле мы вычисляем значение степени для числа M равной функции Эйлера для n. В качесте числа M мы возьмем исходное сообщение которое мы хотим зашифровать. Для того чтобы обеспечить взаимную простоту чисел M и n, следует выбирать число n, равным произведенную двух больших простых множителей. Надеюсь, вы помните что число является простым если оно не имеет других делителей кроме себя и единицы. Предполагается, что если n = p*q, где p и q являются большими простыми числами, то вероятность того что случайное сообщение M будет делителем n, т.е. не будет взаимно простым с данным числом, будет достаточно мала и ей можно пренебречь. В алгоритме RSA в качестве односторонней функции с потайной лазейкой, про которую я упоминал ранее, будет взято возведение в степень по модулю простого числа. В общем случае SecretText = PlainText ^ (e) mod (n). Значение величины e мы будем считать общедоступным, это будет нашим открытым ключом. Значение данной величины будет известно всем, кто хочет посылать сообщения лицу владеющим другим значением d — и именно он будет использовано для того чтобы вычислить открытый текст на базе закрытого (зашифрованного). И данное значение будет известно только получателю сообщения. Идея расшифровки информации основана на повторном возведении зашифрованного текста в в степень, но уже числа d, для того чтобы такая идея работала необходимо чтобы между e и d существовало особое соотношение. И действительно есть требования чтобы e*d = 1 (mod fi(n)). В данной формуле fi(n) — это значении функции Эйлера. Следовательно эти две операции возведения в степень будут взаимно обратными и мы получим (M^e)^d = M ^ (e*d) = M (mod n). Итак значение d — секретный ключ, а значеие e — открытый ключ. Наиболее сложный вопрос — как вычислить значение данных переменных. Очевидно, что первым шагом в поиске значение e и d будет определение значения правой части уравнения. Необходимо узнать значение функции Эйлера для переменной n. В общем случае значение функции Эйлера от некоторой величины x равно количеству чисел взаимно простых с x и меньших его. Для произвольного аргумента нам придется заняться перебором всех значений меньших x и проверять каждое из них на предмет того кратно он x или нет.
Дата добавления: 2015-04-23; Просмотров: 814; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |