Система открытого шифрования Эль-Гамаля на основе возведения в степень в конечном поле



 

    Пусть Zp – поле вычетов по модулю большого простого числа p.  Пусть участник A желает послать участнику B сообщение m, 0£m£p-1. Для этого A берет случайное число k из интервала от 0 до p-1. Это число k используется для образования ключа K следующим образом:

                                 K = (yB)k mod p,                               (2.1)

где yB = ax(B) (mod p) - открытый ключ абонента B (этот открытый ключ либо хранится в общем файле открытых ключей, либо высылается абонентом B по запросу), x(B) – секретный ключ абонента B.

    Шифртекст далее будет состоять из пары (c1, c2), где

                                  c1 = ak (mod p), c2 = K×m (mod p).               (2.2)

    Таким образом, размер шифртекста вдвое превосходит размер открытого сообщения. Заметим также, что мультипликативная операция в (2.2) может быть заменена любой другой обратимой операцией, например, сложением:  K+m (mod p).

    На приемном конце операция расшифрования выполняется в два этапа. На первом этапе вычисляют ключ K, используя секретный ключ x(B):

                                 K = (ak )x(B) = (c1)x(B)    (mod p).                 

 

    На втором этапе восстанавливается сообщение “m” путем деления c2 на K.

    Отметим, что параметры a и p могут быть одними и теми же для всех пользователей. Это приводит к экономии памяти для хранения открытых ключей абонентов (для каждого абонента “i” надо хранить всего один блок ключевой информации “y”).

    Если же параметры a и p будут свои для каждого пользователя, то это приведет к утроению объема файла, содержащего информацию об открытых ключах абонентов. Однако данный вариант организации связи с точки зрения безопасности связи представляется более надежным.

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

    Действительно, пусть

c1,1 = ak (mod p), c2,1 = m1 K (mod p),

                            c1,2 = ak mod p, c2,2 = m2 K (mod p).

 

    Тогда  

 

m1  c2,1

¾  = ¾  (mod p).  

m2  c2,2

 

    Следовательно, сообщение m2 легко восстанавливается при известном m1.

    Данная схема открытого шифрования с точки зрения криптографической безопасности эквивалентна схеме распределения ключей Диффи-Хеллмана. Действительно, если открытый текст “m” может быть вычислен по c1, c2  и yB, тогда и K можно вычислить (т.е. раскрыть систему Диффи-Хеллмана).

    Попытка же вычислить k или x(B) по c1, c2, yB  (даже при известном m) приводит к необходимости решать задачу дискретного логарифмирования.

 

Система Меркля – Хеллмана на основе задачи о ранце

 

    Пусть W = {w(1), ... , w(k)} - заданное множество целых чисел и S – их частичная сумма S = w(i1) + ... + w(it), i1< ... <it.

    Напомним, что задача о ранце состоит в отыскании w(i1),...,w(it) при известных W и S.

    Хотя в общем случае эта задача является NP-полной, для некоторых множеств W эта задача решается весьма эффективно. Это имеет место, в частности, когда последовательность W = w(1),w(2), ...,w(k) является супервозрастающей, т.е. при всех i     

w(i+1) > w(1) + ... + w(i).

    Тогда восстановление w(i1),...,w(it) при заданном S происходит следующим образом:     

    w(it) - это наибольшее число из W, не превосходящее S,

    w(it-1) - наибольшее число, не превосходящее S-w(it) и т.д.

    Одна из первых СОШ, основанная на проблеме укладки ранца, была предложена в 1978 году и заключается в следующем.

    Пусть W = {w1, ... , wk} - супервозрастающая последовательность,   n = w1 + ... + wk . Выбираем целое M случайным образом из промежутка между n и 2n, а также случайное целое число aÎ{0,1,..,M-1}, взаимно простое с M. Вычисляем b = a-1 (mod M). Выбираем случайную перестановку p чисел {1,2,…,k}.

    Пусть

vi =a×wp(i) (mod M), 1£ i £ k.

    Набор V = {v1, ... ,vk} помещается в открытый справочник.

    Секретным ключом является набор (b, M, W, p).

    Открытый текст “m” представляется в двоичной форме вектором длины k:

m = (x1, x2, ... , xk), xi = 0,1.

    Тогда шифрованным текстом для сообщения “m” будет число

                                 y = vi(1) + ... + vi(t) ,                    

где i(1), ... , i(t) - номера единичных координат вектора m = (x1, ... , xk).

    Процесс расшифрования заключается в следующем. Имеем соотношения:

                                 y º a×wp(i(1)) + ... + a×wp(i(t)) (mod M),                 

                                 b×y º wp(i(1)) + ... + wp(i(t)) (mod M).                 

    Так как M > wp(i(1)) + wp(i(2)) + ... + wp(i(t)) , то

                                 b×y (mod M) = wp(i(1)) + wp(i(2)) + ... + wp(i(t)).

    Отсюда, учитывая свойство супервозрастания последовательности W = {w1, w2, ... , wk}, легко восстанавливаются индексы p(i(1)), ... , p(i(t)), откуда находятся единичные координаты i(1), ... , i(t) открытого сообщения “m”.

    Главным достоинством данной СОШ (как и всех систем, основанных на проблеме ранца) является простота процессов зашифрования - расшифрования. Однако, как показано в [8], данная криптосистема может быть эффективно дешифрована.

 


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

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






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