Система Мак–Элиса на основе линейного кода, исправляющего заданное число ошибок



 

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

    Общими параметрами в системе Мак-Элиса являются натуральные числа k, n, t. Для получения открытого и соответствущего ему секретного ключа абонентом A проводятся следующие действия.

    1. Берется порождающая матрица G=Gk´n двоичного (n,k)-линейного кода, исправляющего t ошибок, для которого известен эффективный алгоритм декодирования.

    2. Выбирается случайная двоичная невырожденная матрица S=Sk´k.

    3. Выбирается случайная подстановочная матрица P=Pn´n.

    4. Вычисляется произведение матриц G1=S×G×P.

    Открытым ключом является пара (G1,t), а секретным – тройка (S,G,P)

    Для зашифрования сообщения m, предназначенного для абонента A, абонент B выполняет следующие действия:

    1) представляет сообщение m в виде двоичного вектора длины k;

    2) выбирает случайный двоичный вектор ошибок Z длины n, содержащий £t единиц;

    3) вычисляет вектор C=m×G1+Z и направляет его (в качестве шифрованного текста) абоненту A.

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

    1. Вычисляется вектор C1=C×P-1.

    2. Получает вектор m1, применяя к вектору C1 алгоритм декодирования кода с порождающей матрицей G.

    3. Вычисляет вектор исходного сообщения m=m1×S-1.

    Корректность приведенного алгоритма расшифрования  вытекает из следующих соотношений

C1=C×P-1=(m×G1+Z)×P-1=(m×S×G×P+Z)×P-1=(m×S)×G+Z×P-1.

А так как вектор Z×P-1 имеет не более t единиц, алгоритм декодирует вектор С1 в m1=m×S .

    В качестве кода в системе Мак-Элиса можно использовать, например, код Гоппы. Известно, что для любого неприводимого многочлена g(x) степени t над полем GF(2m) существует бинарный код (код Гоппы) длины n=2m и размерности k³n-mt, исправляющий до t ошибок, для которого имеется эффективный алгоритм декодирования. В настоящее время не известны эффективные алгоритмы дешифрования системы Мак-Элиса, использующей код Гоппы при правильном выборе параметров системы.

    Однако рекомендуемые параметры такой системы (n=1024, t=38, k³644) приводят к значительному увеличению открытого ключа системы (около 219 бит) и увеличению длины сообщения при шифровании ( примерно в полтора раза). По этой причине данная система не имеет широкого распространения.   

        

СИСТЕМЫ ЭЛЕКТРОННОЙ ПОДПИСИ

Система электронной подписи на основе криптосистем RSA

 

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

    Тогда данный абонент может использовать данную систему для электронной подписи сообщений, направляемых от него абоненту B.

    Для этого абонент A вместе с сообщением m ÎZn направляет

абоненту B также и величину s=md (mod n), которая собственно и является подписью абонента A под собщением “m”.

    Для проверки правильности подписи абонент B, получив пару    (m, s), проверяет на истинность равенство

                       se= m (mod n).                    

    Если данное равенство выполняется, то принимается решение о том, что сообщение “m” действительно исходит от абонента A.

    Следует отметить, что само сообщение “m” не скрывается, а всего лишь подтверждается (проверяется) то, что данное сообщение действительно исходит от абонента A.

 

 

Схема электронной подписи Рабина

 

    Абонент A генерирует два больших простых числа p и q, p¹q. Пусть n= pq. Далее абонент A выбирает случайным образом целое число bÎZn, (b,n) = 1 и помещает пару (n,b) в открытый справочник. Числа же p и q он хранит у себя в секрете.

    Пусть также R - некоторое фиксированное множество, h - хэш-функция, отображающая Zn´R в Zn. Хэш-функция h также является общеизвестной.

    Подписью сообщения mÎZn объявляется пара (r,x), rÎR, xÎZn такая, что справедливо равенство

                                 x(x + b) º h(m,r) (mod n).               

    Абонент A для подписи сообщения mÎZn выбирает случайным образом rÎR и вычисляет h(m,r). Далее находятся решения x1, x2 соответственно сравнений вида

                                 x(x + b) º h(m, r) (mod p)                

и

                                 x(x + b) º h(m, r) (mod q).               

 

    Пара (x1, x2) с помощью китайской теоремы об остатках позволяет найти решение x сравнения вида

                                 x(x + b) º h(m, r) (mod n),               

то есть получить подпись (r,x) для сообщения “m”.

    Если при выбранном значении rÎR решения (x1, x2) указанных выше сравнений не существует, то выбирается другое значение r'ÎR и процедура повторяется. Среднее число попыток для получения подписи (при определенных теоретико-вероятностных предположениях о поведении хэш-функции при случайном выборе ее аргументов) составляет 4.

 

    Попытка же найти подпись для сообщения “m” без знания p и q приводит к необходимости решения сравнения

                                 x(x + b) = c (mod n),                  

что является трудной задачей, сравнимой по сложности (как считается) с задачей разложения числа n.

 


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

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






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