Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Описание алгоритма. Диффи и Хеллман определили новый подход к шифрованию, что вызвало к жизни разработку алгоритмов шифрования




Алгоритм RSA

Диффи и Хеллман определили новый подход к шифрованию, что вызвало к жизни разработку алгоритмов шифрования, удовлетворяющих требованиям систем с открытым ключом. Одним из первых результатов был алгоритм, разработанный в 1977 году Роном Ривестом, Ади Шамиром и Леном Адлеманом и опубликованный в 1978 году. С тех пор алгоритм Rivest-Shamir-Adleman (RSA) широко применяется практически во всех приложениях, использующих криптографию с открытым ключом.

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

Алгоритм RSA представляет собой блочный алгоритм шифрования, где зашифрованные и незашифрованные данные являются целыми между 0 и n -1 для некоторого n.

Алгоритм, разработанный Ривестом, Шамиром и Адлеманом, использует выражения с экспонентами. Данные шифруются блоками, каждый блок рассматривается как число, меньшее некоторого числа n. Шифрование и дешифрование имеют следующий вид для некоторого незашифрованного блока М и зашифрованного блока С.

С = Ме (mod n)M = Cd (mod n) = (Me)d (mod n) = Med (mod n)

Как отправитель, так и получатель должны знать значение n. Отправитель знает значение е, получатель знает значение d. Таким образом, открытый ключ есть KU = {e, n} и закрытый ключ есть KR = {d, n}. При этом должны выполняться следующие условия:

  1. Возможность найти значения е, d и n такие, что Med = M mod n для всех М < n.
  2. Относительная легкость вычисления Ме и Сd для всех значений М < n.
  3. Невозможность определить d, зная е и n.

Сначала рассмотрим первое условие. Нам необходимо выполнение равенства:

Med = М (mod n)

Рассмотрим некоторые математические понятия, свойства и теоремы, которые позволят нам определить e, d и n.

  1. Если (а · b) (a · c) mod n, то b c mod n, если а и n взаимнопростые, т.е gcd (a, n) = 1.
  2. Обозначим Zp - все числа, взаимнопростые с p и меньшие p. Если p - простое, то Zp - это все остатки. Обозначим w-1 такое число, что w · w-1 1 mod p.

Тогда w Zp z: w · z 1 mod p

Доказательство этого следует из того, что т.к. w и p взаимнопростые, то при умножении всех элементов Zp на w остатками будут все элементы Zp, возможно, переставленные. Таким образом, хотя бы один остаток будет равен 1.

  1. Определим функцию Эйлера следующим образом: Φ(n) - число положительных чисел, меньших n и взаимнопростых с n. Если p - простое, то Φ(р) = p-1.

Если p и q - простые, то Φ(p · q) = (p-1) · (q-1).

В этом случае Zp · q ={0, 1, ј, (p · q - 1)}.

Перечислим остатки, которые не являются взаимнопростыми с p · q:

{p, 2 · p, ј, (q-1) · p}{q, 2 · q, ј, (p-1) · q}0

Таким образом Φ(p · q) = p · q - [(q-1) + (p-1) + 1] = p · q - (p+q) + 1 = (p-1) · (q-1).

  1. Теорема Ферма.

an-1 1 mod n, если n - простое.

Если все элементы Zn умножить на а по модулю n, то в результате получим все элементы Zn, быть может, в другом порядке. Рассмотрим следующие числа:

{a mod n, 2 · a mod n, ј, (n-1) · a mod n} являются числами {1, 2, ј, (n-1)}, быть может, в некотором другом порядке. Теперь перемножим по модулю n числа из этих двух множеств.

[(a mod n) · (2a mod n) ·... · (n-1)a mod n] mod n (n-1)! mod n(n-1)! an-1 (n-1)! mod n

n и (n-1)! являются взаимнопростыми, если n - простое, следовательно, an-1 1 mod n.

  1. Теорема Эйлера.

aΦ(n) 1 mod n для всех взаимнопростых a и n.

Это верно, если n - простое, т.к. в этом случае Φ(n) = n-1. Рассмотрим множество R = {x1, x2, ј, xΦ(n)}. Теперь умножим по модулю n каждый элемент этого множества на a. Получим множество S = {a · x1 mod n, a · x2 mod n, ј, a · xΦ(n) mod n}. Это множество является перестановкой множества R по следующим причинам.

Так как а является взаимнопростым с n и xi являются взаимнопростыми с n, то a · xi также являются взаимнопростыми с n. Таким образом, S - это множество целых, меньших n и взаимнопростых с n.

В S нет дублей, т.к. если a · xi mod n = a · xj mod n xi = xj.

Следовательно, перемножив элементы множеств S и R, получим:

Φ(n) Φ(n) ∏ (a · xi mod n) ∏ xi mod ni=1 i=1 Φ(n) Φ(n)(∏ a · xi ∏ xi) mod n i=1 i=1 Φ(n) Φ(n)(aΦ(n) · ∏ xi ∏ xi) mod n i=1 i=1(aΦ(n) 1) mod n

Теперь рассмотрим сам алгоритм RSA. Пусть p и q - простые.

n = p · q.

Надо доказать, что M < n: MΦ(n) = M(p-1) · (q-1) 1 mod n

Если gcd (M, n) = 1, то соотношение выполняется. Теперь предположим, что gcd (M, n) 1, т.е. gcd (M, p · q) 1. Пусть gcd (M, p) 1, т.е. M = c · p gcd (M, q) = 1, так как в противном случае M = c · p и M = l · q, но по условию M < p · q.

Следовательно,

MΦ(q) 1 mod q(MΦ(q))(p) 1 mod qMΦ(n) 1 mod q

По определению модуля это означает, что MΦ(n) = 1 + k · q. Умножим обе части равенства на M = c · p. Получим

MΦ(n)+1 = c · p + k · q · c · p.MΦ(n) 1 mod n

Или

MΦ(n)+1 M mod n

Таким образом, следует выбрать e и d такие, что е · d 1 mod (n)

Или e d-1 mod Φ(n)

e и d являются взаимнообратными по умножению по модулю Φ(n). Заметим, что в соответствии с правилами модульной арифметики, это верно только в том случае, если d (и следовательно, е) являются взаимнопростыми с Φ(n). Таким образом, gcd (Φ(n), d) = 1.

Теперь рассмотрим все элементы алгоритма RSA.

p, q - два простых целых числа - открыто, вычисляемо.
n = p · q - закрыто, вычисляемо.
d, gcd (Φ(n), d) = 1; - открыто, выбираемо.
1 < d < Φ(n)
е d-1 mod Φ(n) - закрыты, выбираемы.

Закрытый ключ состоит из {d, n}, открытый ключ состоит из {e, n}. Предположим, что пользователь А опубликовал свой открытый ключ, и что пользователь В хочет послать пользователю А сообщение М. Тогда В вычисляет С = Ме (mod n) и передает С. При получении этого зашифрованного текста пользователь А дешифрует вычислением М = С d (mod n).

Суммируем алгоритм RSA:

Создание ключей

Выбрать простые р и q
Вычислить n = p · q
Выбрать d gcd (Φ(n), d) = 1; 1 < d < Φ(n)
Вычислить е е = d-1 mod Φ(n)
Открытый ключ KU = {e, n}
Закрытый ключ KR = {d, n}

Шифрование

Незашифрованный текст: М < n
Зашифрованный текст: С = М е (mod n)

Дешифрование

Зашифрованный текст: С
Незашифрованный текст: М = Сd (mod n)

Рассмотрим конкретный пример:

Выбрать два простых числа: р = 7, q = 17.
Вычислить n = p · q = 7 · 17 = 119.
Вычислить Φ(n) = (p - 1) · (q - 1) = 96.
Выбрать е так, чтобы е было взаимнопростым с Φ(n) = 96 и меньше, чем Φ(n): е = 5.
Определить d так, чтобы d · e 1 mod 96 и d < 96.
d = 77, так как 77 · 5 = 385 = 4 · 96 + 1.
Результирующие ключи открытый KU = {5, 119} и закрытый KR = {77, 119}.
Например, требуется зашифровать сообщение М = 19.
195 = 66 (mod 119); С = 66.
Для дешифрования вычисляется 6677 (mod 119) = 19.



Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.034 сек.