Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Криптографическая система RSA




Алгоритм RSA был предложен в 1977 году и стал первым полноценным алгоритмом асимметричного шифрования и электронной цифровой подписи. Алгоритм назван по первым буквам фамилий авторов – Рональд Райвест (Ronald Rivest), Ади Шамир (Adi Shamir) и Леонард Адлеман (Leonard Adleman). Стойкость алгоритма основывается на вычислительной сложности задачи факторизации (разложения на множители) больших чисел и задачи дискретного логарифмирования.

Криптосистема основана на теореме Эйлера, которая гласит, что для любых взаимно простых чисел M и n (M<n) выполняется соотношение:

M (n)1(mod n), (2.14)

где (n) - функция Эйлера. Эта функция равна количеству натуральных чисел меньших n, которые взаимно просты с n. По определению, (1) 1. Также доказано, что для любых двух натуральных взаимно простых чисел a и b выполняется равенство (a b) (a) (b).

Алгоритм строится следующим образом. Пусть M – блок сообщения, 0≤M<n. Он шифруется в соответствии с формулой: (2.14)

В этом случае e – открытый ключ получателя. Тогда соответствующий ему секретный ключ d должен быть таким, что

MCd (mod n)(M e) d (mod n) M ed (mod n). (2.15)
   
Как уже отмечалось, теорема Эйлера   утверждает, что
M (n)1 (mod n) или, что то же самое, M k (n)1 M (mod n), где k
       

натуральный множитель. Сопоставив данное выражение c выражением (2.15) получаем, что e и d должны быть связаны соотношением:

 

edk (n)1 ed 1(mod(n)). (2.16)
     
Теперь предположим, что n pq,где p и q – простые числа,

 

причем p q. Нетрудно показать, что для простого числа p 1 функция Эйлера будет равна (p) p 1. Тогда, учитывая, что p и q – простые и не равны друг другу (а значит, они и взаимно простые), будет справедливо равенство:

 

(pq)(p)(q)(p 1)(q 1). (2.17)

 

Рассмотрим теперь алгоритм RSA «по шагам». Первым этапом является генерация ключей.

1) Выбираются два больших простых числа p и q, p q.

2) Вычисляется модуль n: n = p q. Обратите внимание, что для криптосистемы RSA модуль n является частью открытого ключа и должен меняться при смене ключевой пары.

3) Случайным образом выбирается число d, такое что
1 d (p 1)(q 1)и НОД(d, (p-1)(q-1))=1.
4) Вычисляется значение e такое что:

1 e (p 1) (q 1)

e d 1 mod((p 1)(q 1))

Доказано, что для случая, когда НОД(d, (p-1)(q-1))=1 такое e существует и единственно.

В результате выполнения данных вычислений имеем открытый ключ, представленный парой чисел (n, e) и секретный ключ d.

Шифрование производится следующим образом.

Отправителю известен открытый ключ получателя – (n,e). Пусть M –секретное сообщение,которое надо зашифровать M < n. Криптограмма вычисляется по формуле:

 

CM e mod n (2.18)
  Криптограмма C передается получателю. Владелец секретного
ключа d может расшифровать сообщение по формуле (2.22).  
MCd mod n (2.19)

 

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

SM d mod n (2.20)

 

Отправитель передает получателю подписанное сообщение, т. е. пару значений (M,S). Проверка ЭЦП по открытому ключу (n,e) производится так:  
M ' S e mod n. (2.21)

 

Совпадение значений M и M' служит доказательством того, что сообщение получено от владельца соответствующего секретного ключа и не было изменено в процессе передачи.

Как видно, сами преобразования относительно просты. Основную сложность при реализации алгоритма RSA представляет этап генерации ключей. В частности, простые числа p и q выбираются такими, что:

- одно из них должно быть меньше другого на несколько порядков;

- (p-1) и (q-1) должны иметь как можно меньший НОД;

- хотя бы одно из чисел (p-1), (q-1) должно иметь в разложении большой простой множитель (например, (p-1) = 2t, где t – простое).

Точное определение, является ли большое число простым или нет, во многих случаях является вычислительно сложной задачей. Поэтому, как правило, используются «псевдопростые» тесты, которые позволяют с достаточно большой вероятностью отбросить числа не являющиеся простыми. Один из таких тестов основан на малой теореме Ферма, которая гласит, что если p – простое число и 1 x<p, то x p 11 mod p. Проверив«кандидата»в простые числа с несколькими x,выбираемыми в соответствии со специальными требованиями,можно с большой вероятностью выяснить, является ли он простым.

Нахождение наибольшего общего делителя и определение значения e на шаге 4) алгоритма генерации ключей производится в соответствии с алгоритмом Евклида и обобщенным алгоритмом Евклида [7,9,12].

 

3.4.4 Криптографическая система Эль-Гамаля

В 1984 году американским исследователем египетского происхождения Тахером Эль-Гамалем (Taher Elgamal) были опубликованы алгоритмы шифрования с открытым ключом и ЭЦП, получившие его имя. Криптографическая система Эль-Гамаля использует ту же математическую основу, что и рассмотренная ранее схема распределения ключей Диффи-Хеллмана: в качестве односторонней функции в этой криптосистеме используется возведение в степень по модулю большого простого числа.

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

числа (р-1) содержит большой простой множитель, а также число а такое, что 1 < а < (p-1) и a – первообразный корень по модулю p.

Получатель сообщения генерирует ключевую пару: случайным образом выбирает секретный ключ x (0 < x < р) и вычисляет открытый ключ y a x mod p.

Для шифрования сообщения М (0 ≤ М < р), отправитель должен выполнить следующие действия.

1. Выбратьслучайноечисло k такое,что 1 < k < p-1, НОД(k,р-1)=1.

2. Вычислить вспомогательное значение ryk mod p.

3. Рассчитать значение криптограммы, состоящее из двух час

тей: c 1 ak mod p, с 2 rM mod p.

Надо отметить, что в [10] приводится вариация данного алгоритма, где вторая часть криптограммы рассчитывается как

с 2' r M,где – побитное сложение по модулю 2.

Рассмотрим процесс расшифровки. Для того, чтобы по c2 определить M, получателю потребуется рассчитать значение r. С учетом того, что ему известен секретный ключ x и значение c1 это становится возможным: c 1 x (ak) x r mod p. Тогда M c 2 r 1 c 2 (c 1 x) 1 mod p. Или для варианта со сложением по модулю 2: M c 2' c 1 x mod p.

При использовании шифра Эль-Гамаля требуется, чтобы выбираемое в процессе шифрования число k, каждый раз менялось. В противном случае, если сообщения М и М' предназначены одному получателю, и нарушитель смог узнать одно из них, то ему не составит труда рассчитать и второе. Пусть, например, нарушитель знает сообщение M, соответствующие ему криптограммы c1 и c2, и криптограммы c1' и с2'. Из-за того, что k и ключи не менялись, будут совпадать r и r', c1 и с1'. М' нарушитель может рассчитать как:

 

Mcr 1mod p; M ' c ' r 1 c ' Mc 1 mod p. (2.22)
           
  Рассмотрим теперь предложенный Эль-Гамалем алгоритм
           

электронной цифровой подписи. Надо отметить,что он получил широкое распространение и на его базе был разработан американский стандарт ЭЦП DSA (англ. «Digital Signature Algorithm»).

Как и при шифровании, стороны согласуют параметры a и p. После этого, отправитель выбирает секретный ключ x и рассчитывает открытый ключ y a x mod p.

  Подписываемое сообщение M должно удовлетворять условию
0 M < p. Подписью абонента служит пара чисел r и s (0r < p,
0 s < p),которые удовлетворяют соотношению:  
    aMyr r s mod p (2.23)

 

Получатель, знающий сообщение и открытый ключ, может проверить выполнение этого равенства. Но только владелец секретного ключа x может правильно рассчитать значения r и s. Для этого он выполняет следующие действия.

1. Выбирает случайное число k: 1 < k < p-1, НОД(k,р-1)=1.

2. Вычисляет rak mod p.

3. Вычисляет s из уравнения Mxrks mod(p 1). Это уравнение получено, основываясь на доказанном в теории числе утверждении: если p – простое, a – целое, 1<a<p (в этом случае, a и p будут и xy mod(p1)для любых целых не отрицательных x, y.

Таким образом, s (M xr) k 1mod(p 1). При выполнении условия НОД(k,р-1)=1, s существует и единственно.

Отправитель передает сообщение с подписью (M,r,s) получателю, который, пользуясь соотношением (2.23), может проверить ЭЦП.

При применении алгоритма ЭЦП Эль-Гамаля, также как и в случае шифрования, недопустимо использовать одно и то же значение k для подписи двух разных сообщений.

 





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


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 629 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2444 - | 2243 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.