Двоичный код Гоппы
В математике и информатике двоичный код Гоппы — это код, исправляющий ошибки , который принадлежит к классу общих кодов Гоппы, первоначально описанных Валерием Денисовичем Гоппой , но двоичная структура дает ему несколько математических преимуществ перед недвоичными вариантами, а также обеспечивает лучше подходит для общего использования в компьютерах и телекоммуникациях. Двоичные коды Гоппы обладают интересными свойствами, подходящими для криптографии в криптосистемах типа МакЭлиса и подобных установках.
Строительство и недвижимость
[ редактировать ]Неприводимый двоичный код Гоппы определяется полиномом степени над конечным полем без повторяющихся корней и последовательность из отдельные элементы из которые не являются корнями .
Кодовые слова принадлежат ядру синдромной функции, образуя подпространство :
Код, определенный кортежем имеет размерность как минимум ирасстояние по крайней мере , таким образом, он может кодировать сообщения длиной не менее используя кодовые слова размера хотя бы исправляя ошибки. Имеет удобную матрицу проверки четности по форме
Обратите внимание, что эта форма матрицы проверки четности, состоящая из матрицы Вандермонда и диагональная матрица , разделяет форму с проверочными матрицами альтернативных кодов , поэтому в этой форме можно использовать альтернативные декодеры. Такие декодеры обычно обеспечивают лишь ограниченные возможности исправления ошибок (в большинстве случаев ).
Для практических целей матрица проверки четности двоичного кода Гоппы обычно преобразуется в более удобную для компьютера двоичную форму с помощью конструкции трассировки, которая преобразует -к- матрица поверх к -к- двоичная матрица путем записи полиномиальных коэффициентов элементы на последовательные ряды.
Декодирование
[ редактировать ]Декодирование двоичных кодов Гоппы традиционно выполняется алгоритмом Паттерсона, который дает хорошие возможности исправления ошибок (он исправляет все ошибки проектирования), а также довольно прост в реализации.
Алгоритм Паттерсона преобразует синдром в вектор ошибок. Синдром двоичного слова ожидается, что она примет форму
Альтернативная форма матрицы проверки четности, основанная на формуле может быть использован для создания такого синдрома с помощью простого умножения матриц.
Затем алгоритм вычисляет . Это не удается, когда , но это тот случай, когда входное слово является кодовым, поэтому коррекция ошибок не требуется.
сводится к полиномам и используя расширенный алгоритм Евклида , так что , пока и .
Наконец, полином локатора ошибок вычисляется как . Обратите внимание, что в двоичном случае обнаружения ошибок достаточно для их исправления, поскольку возможно только одно другое значение. В недвоичных случаях также необходимо вычислить отдельный полином коррекции ошибок.
Если исходное кодовое слово было декодируемым и был вектор двоичной ошибки, тогда
Факторизация или оценка всех корней поэтому дает достаточно информации для восстановления вектора ошибок и исправления ошибок.
Свойства и использование
[ редактировать ]Двоичные коды Гоппы, рассматриваемые как частный случай кодов Гоппы, обладают интересным свойством: они полностью исправляют ошибки. ошибки, хотя только ошибки в троичном и всех остальных случаях. Асимптотически эта способность исправления ошибок соответствует знаменитой границе Гилберта-Варшамова .
Из-за высокой способности исправления ошибок по сравнению со скоростью кода и формы матрицы проверки на четность (которая обычно почти не отличается от случайной двоичной матрицы полного ранга), двоичные коды Гоппы используются в нескольких постквантовых криптосистемах , в частности в криптосистеме МакЭлиса. и криптосистема Нидеррайтера .
Ссылки
[ редактировать ]- Элвин Р. Берлекамп, Коды Гоппы, Транзакции IEEE по теории информации, Vol. IT-19, № 5, сентябрь 1973 г., https://web.archive.org/web/20170829142555/http://infosec.seu.edu.cn/space/kangwei/senior_thesis/Goppa.pdf
- Даниэла Энгельберт, Рафаэль Овербек, Артур Шмидт. «Краткий обзор криптосистем типа МакЭлиса и их безопасности». Журнал математической криптологии 1, 151–199. МИСТЕР 2345114 . Предыдущая версия: http://eprint.iacr.org/2006/162/
- Дэниел Дж. Бернштейн. «Декодирование списка двоичных кодов Гоппы». http://cr.yp.to/codes/goppalist-20110303.pdf