Криптосистема Райвеста - Шамира – Адлемана (система RSA) на основе возведения в степень в кольце вычетов



М.И. Рожков

 

МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ НА ОСНОВЕ  НЕСИММЕТРИЧНЫХ КРИПТОСИСТЕМ 

 

(курс лекций для студентов МГИЭМ)

 

1. ПРИНЦИПЫ ПОСТРОЕНИЯ КРИПТОСИСТЕМ

С “ОТКРЫТЫМ КЛЮЧОМ”

      

 

    Пусть имеется множество K = {k} пользователей (абонентов), которые могут обмениваться сообщениями из множества M = {m} по “незащищенным” каналам связи. Незащищенность каналов понимается в том смысле, что к ним могут подключаться любые посторонние абоненты. При этом проходящая по каналу связи информация может этими посторонними абонентами искажаться, перехватываться, переадресовываться и т.п.

    Традиционный способ сохранения точности и конфиденциальности передаваемой информации в этих условиях заключается в шифровании данной информации. Для этого пользователи снабжаются секретными криптоалгоритмами Eij, i,j Î K, Eij : M ® M, то есть обратимыми отображениями множества в себя, и когда пользователь i желает передать пользователю j сообщение “m”, то он вычисляет y = Eij(m) и направляет значение “y” по адресу j. На приемном конце для восстановления сообщения “m” к сообщению “y” применяют отображение Eij -1.

    Принципиальные сложности здесь возникают на этапах “согласованного” обмена между абонентами криптоалгоритмами Eij и Eij-1, замены криптоалгоритмов на новые, расширения круга пользователей.

    Весьма оригинальные пути решения этих трудностей предложили в 1976 году Диффи и Хеллман. Для организации секретной связи они предложили идею системы открытого шифрования (СОШ), суть которой заключается в следующем.

    Рассматриваются семейства алгоритмов {Ek }, kÎK и {Dk }, kÎK, Ek : M ® M , Dk : M ® M такие, что

    1) при любом kÎK отображение Dk  обратно к Ek , то есть при любом mÎM 

                                 Dk(Ek(m)) = m;

    2) при любых k и mÎM величины Ek(m) и Dk(m) вычисляются “достаточно легко”;

    3) при любом k “достаточно сложно” при известном Ek найти Dk;

    4) пары отображений Ek, Dk возможно генерировать сравнительно просто;

    5) при любом k и случайно выбранном mÎM сложно найти “m” при известном Ek(m).

 

    При наличии таких семейств отображений {Ek}, {Dk}, kÎK, при организации системы связи алгоритмы шифрования Ek  помещаются в общедоступный справочник, а обратные к ним алгоритмы Dk хранятся абонентами в секрете (абонент номер i хранит в секрете алгоритм Di ).

    Тогда, чтобы передать сообщение mÎM от абонента i к абоненту j абонент i берет из справочника алгоритм шифрования Ej, вычисляет y = Ej(m) и посылает результат абоненту j.

    Получив сообщение “y”, абонент j восстанавливает первоначальное сообщение “m” с помощью секретного алгоритма Dj :

                                 Dj(y) = Dj (Ej(m)) = m.

    Одновременно данная система допускает и возможность электронной подписи сообщений. В этом случае вместе с сообщением “m” абонент i передает Di(m)=s, что и является собственно подписью для сообщения “m”.

    На приемном конце критерием правильности подписи служит равенство Ei(s)=m, при этом алгоритм Ei берется из открытого справочника.

 

    Криптографические качества такой СОШ основаны на сложности решения двух задач:

    Задача 1. При известном отображении Ek: M®M найти       обратное к нему отображение Dk: M ® M.

    Задача 2. При заданных Ek: M®M и y=Ek(m) найти сообщение mÎM.

 

    СОШ называют также несимметричными криптосистемами или

криптосистемами с двумя ключами.

    Отображения (функции) Ek со свойствами 5) называют также однонаправленными (такой термин означает, что значение функции при любом заданном аргументе вычисляется “легко”, в то время как по заданному значению функции нахождение аргумента - “трудная задача”).

    На практике отображения Ek, Dk следует выбирать таким образом, чтобы задачи 1,2 были эквивалентны в вычислительном смысле известным трудным задачам в области математики.

    Кроме изложенной выше СОШ Диффи и Хеллман предложили также систему открытого распределения ключей (СОРК), суть которой можно изложить следующим образом.

    Пусть имеется функция от двух переменных ¦: X´X®X, обладающая следующими свойствами:

    а) при любых a, x Î X значение ¦(a,x) легко вычисляется;

    б) при любых a, x, y Î X справедливо равенство

                                 ¦ ( ¦(a,x), y) = ¦ ( ¦(a,y), x);

    в) по значениям ¦(a,x) и ¦(a,y) при неизвестных x, y  (аргумент “a”  при этом может считаться известным) трудно найти значение ¦(¦(a,x), y).

 

    При наличии такой функции ¦ система распределения ключей реализуется даже таким образом. Функция ¦ и фиксированный элемент aÎX помещаются в общедоступный справочник. Для выработки общего секретного ключа абоненты i и j генерируют случайным образом соответственно элементы x и y, сохраняя их в секрете на время выработки общего секретного ключа. Далее они обмениваются значениями ¦(a,x) и ¦(a,y). После чего вырабатывают общий секретный ключ по схеме :

                                 k = ¦(¦(a,y), x) = ¦(¦(a,x), y),

пользуясь свойством б) функции ¦.

    Если в изложенной ранее СОШ принципиально важная роль отводилась свойству однонаправленности функций Ek , то в данном случае аналогичная роль отводится однонаправленности функций ¦(a,x) по аргументу “x”.

    Что касается конкретных однонаправленных функций, задача “обращения” которых относилась бы к известным трудным задачам вычислительной математики и которые, следовательно, можно было бы использовать в СОШ и СОРК, то Диффи и Хеллман предложили использовать функцию возведения в степень в конечном поле.

    Пусть GF(q) - конечное поле из q элементов, a - примитивный элемент поля GF(q), X = {0,1,...,q-2}, ¦: X®GF(q), ¦(x) = ax, то есть в качестве однонаправленной функции ¦ рассматривается функция возведения в натуральную степень примитивного элемента конечного поля. Задача обращения такой функции, т.е. решения уравнения ax = b при заданных a,b  известна в математике как “проблема логарифмирования в конечном поле”.

    Тогда базовый протокол открытого распределения ключей состоит в следующем. Полагаем, что поле GF(q) и примитивный элемент a - общеизвестны.

    Участник A выбирает секретный ключ x(A), а участник B - секретный ключ x(B), x(A),x(B)Î{1,2,…,q-1}. Затем A вычисляет yA = ax(A) и посылает абоненту B.

    Аналогичным образом B вычисляет yB = ax(B) и результат посылает абоненту A.

    Тогда абоненты A и B образуют общий секретный ключ kAB следующим образом

kAB = ax(A)x(B)= (yA)x(B)= (yB)x(A).        

    Отметим, что до сих пор нет доказательства того, что сложность раскрытия этой системы не может быть меньше сложности решения задачи дискретного логарифмирования в поле GF(q).

    Отметим также, что число q-1 должно иметь по крайней мере один большой делитель. В противном случае задача дискретного логарифмирования в поле GF(q) решается легко.

    Серьезным недостатком изложенного базового протокола СОРК является возможность атаки «злоумышленник в середине», суть которой состоит в следующем. Злоумышленник выбирает числа z(A) и z(B), затем подменяет в канале связи сообщения ax(A) и ax(B) на az(A) и az(B) соответственно. Далее он формирует ключи k1=ax(A)z(B) и k2=ax(B)z(A) для связи с пользователями A и B соответственно.

    Это приводит к тому, что в конечном итоге абоненты будут обмениваться сообщениями не непосредственно друг с другом а через злоумышленника, который получает полный контроль над каналом связи. При этом абоненты не смогут обнаружить такого «посредника» и будут уверены, что связываются непосредственно друг с другом.

    Для устранения данного недостатка базового протокола был предложен протокол MTI (Т.Мацумото, И.Такашима, Х.Имаи, см [10]), в котором пользователи имеют открытые ключи и используют модифицированный алгоритм выработки общего ключа.

    Итак, пользователи A и B имеют секретные ключи a и b соответственно и публикуют свои открытые ключи zA=aa, zB=ab , a - примитивный элемент поля  GF(q).

    Для выработки общего ключа k они генерируют случайные числа соответственно x(A) и x(B), 1£x(A),x(B)£q-2, и обмениваются сообщениями : A®B: ax(A),  B®A: ax(B).

    При этом искомый общий ключ находится по формуле

k= (ax(B))a×(zB)x(A) = (ax(A))b×(zA)x(B) =ax(A)b+x(B)a .

    Теперь при подмене сообщений выработка общего ключа не удается.

 

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

СИСТЕМЫ ОТКРЫТОГО ШИФРОВАНИЯ

Криптосистема Райвеста - Шамира – Адлемана (система RSA) на основе возведения в степень в кольце вычетов

 

    Пусть n = pq, где p, q - различные простые большие числа, M = Zn - кольцо вычетов по модулю n, j(n) = (p-1)(q-1) - функция Эйлера, e, d - целые числа такие, что

                                 ed º 1 (mod j(n)) .                    

    Тогда алгоритм зашифрования E сообщения mÎM заключается в возведении в степень e в кольце Zn , т.е.

                                 E(m) = me (mod n).      

    Одновременно алгоритм расшифрования D=E-1 заключается в возведении шифрованного текста c= E(m) в степень d:

cd=m (mod n).

    Таким образом, в данной системе в открытый справочник абонент помещает пару (n,e), которая позволяет зашифровать любое сообщение.

    В секрете же абонент держит число d, что позволяет расшифровать сообщения только ему. Кроме того, секретными должны быть и числа p, q, ибо при известном разложении числа “n” на простые составляющие нахождение секретного “d” не составляет труда с помощью алгоритма Евклида. При этом после вычисления пары e, d абонент может информацию о числах p и q просто стереть.

    Итак, однонаправленная функция, лежащая в основе RSA - системы, представляет собой возведение в степень e в кольце Zn. Обращение такой функции, т.е. нахождение целого d такого, что

                                 ed º 1 (mod j(n)) , 

является “сложной” задачей, эквивалентной задаче разложения числа “n” на простые множители p и q.

    Покажем, что введенные выше функции шифрования и расшифрования определены корректно.

    2.1.1. Утверждение.  Пусть n = pq, где p, q - различные простые числа, j(n) = (p-1)(q-1) - функция Эйлера, e, d - целые числа такие, что

                                 ed º 1 (mod j(n)) .                    

    Тогда доля любого mÎZn справедливо равенство:

med=m (mod n).

    Доказательство. Так как кольцо Zn изоморфно прямой сумме полей Zp и Zq, то достаточно доказать, что для заданного простого числа p при любом mÎZp верно равенство:

med=m (mod p).

    Без потери общности можно полагать, что m¹0 (mod p), и рассматриваемое равенство приводится к эквивалентному виду

med-1=1 (mod p).

    Учитывая, что ed º 1 (mod j(n)), для некоторого целого k получаем

ed-1=k×j(n)=k×(p-1)(q-1).

Отсюда, с учетом малой теоремы Ферма

med-1=(mp-1)k×(q-1)=1 (mod p).

    На этом доказательство завершено.

    Рекомендуется, в частности, выбирать параметры системы RSA такими, чтобы  

    d>n1/4;

    число p+1 имеет большой простой делитель;

    число p-1 имеет большой простой делитель s такой, что число s-1 также обладает большим простым делителем.

        

 

 


Дата добавления: 2019-02-12; просмотров: 304; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!