Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 11 - Криптосистема Мак-Элис.pptx
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
1.71 Mб
Скачать

Шифрование КС Мак-Элис

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

1)получить от А открытый ключ ( GA , tA ) ;

2)преобразовать сообщение M в последовательность

двоичных блоков Mi длины k. Далее для

каждого из

полученных блоков проделать следующие шаги 3–5;

3) сгенерировать случайный двоичный вектор

Zi длины n и

веса (т. е. числа единиц в нем) не более tA ;

 

4)вычислить двоичный вектор Ci MiGA Zi ;

5)послать вектор Ci к пользователю А как криптограмму для сообщения Mi .

 

 

 

Дешифрование КС Мак-Элис

 

 

Для того чтобы восстановить сообщение

Mi

по

криптограмме

Ci, пользователь А должен выполнить следующие

шаги:

 

 

 

 

1

 

 

 

 

 

 

C

P

1

– это

матрица, обратная

 

1) вычислить C

, где PA

P

 

;

i

i

A

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

2) используя известный алгоритм декодирования для кода с

порождающей матрицей GA , исправить не более tA ошибок в

 

, что даст некоторый двоичный вектор

 

длины k;

C

i

 

1

Mi

 

 

3) восстановить Mi

 

 

 

Mi S.A

 

 

 

Для доказательства

того,

что описанная

выше процедура

действительно восстанавливает зашифрованное сообщение Mi ,

 

 

 

 

 

 

 

 

 

 

:

 

 

 

преобразуем сначала представление для Ci

 

 

 

 

C

P

1

M

 

 

Z

P

1

 

 

C

 

G

A

 

(3.15)

i

i

A

 

i

 

 

i

A

 

Mi SAGA PA Zi PA 1 Mi SA GA Zi PA 1.

 

 

Из выражения (3.15) видно, что двоичный вектор Ci представляет

собой закодированное ЛК (с порождающей матрицей GA) сообщение

Mi SA

с добавкой двоичного шума Zi PA1 веса не более tA ,

так как

PA1 будет также перестановочной матрицей, умножение на

которую сохраняет вес слова Zi , который был определен ранее не

более чем tA .

 

 

 

 

 

 

 

 

Поскольку

код с

порождающей

матрицей

GA

 

может

гарантированно исправить не менее

tA

ошибок, это означает, что

по

C

пользователь A может абсолютно точно восстановить

Mi S A

,

 

 

 

 

i

 

 

 

 

 

 

 

 

 

причем сложность декодирования будет при этом полиномиальной.

 

 

Наконец,

исходное

сообщение

Mi

восстанавливается

после

умножения последнего результата на

SA1, т. е.

 

 

 

 

MiS A SA1 Mi .

Заметим, что в отличие от метода РША и подобно тому, как это было в шифре Эль-Гамаля, метод Мак-Элис является рандомизационным, поскольку случайный вектор помехи Zi не входит в состав ключей этой КС.

Если на шаге 1 генерирования ключей используется семейство кодов Гоппы, то можно иметь в виду [3], что для

любого неприводимого над полем

GF (2m )

многочлена

g(x) степени tA существует двоичный

код

Гоппы

длины

n 2m с числом информационных символов

k n mt A ,

где

tA – число ошибок, исправляемых этим кодом, причем этот код имеет полиномиально сложный алгоритм декодирования.

Стойкость КС Мак-Элис

Рассмотрим две основные атаки на КС Мак-Элис:

1) зная

 

 

,

tA , можно попытаться исправить

Ci , GA

ошибки в Ci , но поскольку, как легко убедиться, порождающая

матрица

GA

является

 

совершенно

случайной,

для

 

 

определяемого ей кода не известно непереборных методов исправления ошибок, а переборные практически нереализуемы при соответствующем выборе параметров исходного кода;

2) для восстановления

 

Mi

можно попытаться случайно выбрать

 

 

 

 

 

.

 

Если

теперь

обозначим

через

k столбцов в матрице GA

 

G ,C

 

, Z

 

ограничение

 

 

,C , Z

 

этими столбцами, то будет

k

k

 

G

A

i

k

 

 

 

Сk

i

 

 

Gk .

 

 

выполняться уравнение

Zk

Mi

Если

случайно

окажется, что

Zk 0 и

 

 

 

несингулярна, то Mi

может

быть

G

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

получено как решение уравнения Ck M Gk. Однако вероятность

того, что

Zk

0 , оказывается равной

 

Cnk t / Cnk ,

и

при

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

Для обеспечения высокой стойкости КС Мак-Элис рекомендуются следующие ее параметры [3]: n 1024 бит, t 38, k 644 .

Представленный ранее материал позволяет сформулировать следующие основные свойства КС Мак-Элис:

1)достаточно предсказуемая стойкость;

2)простота шифрования и дешифрования;

3)увеличение длины криптограммы по сравнению с длиной сообщений в n / k раз;

4)большая битовая длина как открытого, так и закрытого ключей.

Последнее свойство особенно существенно ограничивает практическое применение КС Мак-Элис.

Криптосистема Ниддерайтера 1986 г.

Криптосистем на осносе алгебраического кодирования

Генерация ключа: фиксируем k, n, t.

Каждый участник должень сделать следующее.

1.Выбрать проверочную матрицу кода H размера (n-k) × n для (n, k)-линейного кода, исправляющего t ошибок, для которого известен эффективный алгоритм декодирования (например, код Гоппы).

2.Выбрать случайную невырожденную матрицу S размера (n-k) × (n-k).

3.Выбрать случайную матрицу перестановки P размера n ×

n.

4.Выдать публичный ключ t и H’ = SHP; секретный ключ — (S, H,P).

Алгоритмы шифрования -дешифрования

Алгоритм шифрования:

(даны t, H’, F(x) и сообщение m).

1.Представить сообщение как F(m) строку длины n веса от 0 до t. m e

2.Зашифровать c F(m.)H T

Алгоритм декодирования

 

(даны c и ключ (S, H, P)).

 

1.

Вычислить c cS 1

.

2.

Декодировать то, что получилось, алгоритмом

декодирования кода; получится e’ . Проверить, что вес e’ < t

3. Вычислить m F

1

 

1

) .

 

(e P

 

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