Реализация самокорректирующихся кодов на основе интерполяционных формул. Система независимых векторов
:
![]()
![]()
линейно независимая система
Задача
интерполирования: заданы значения
нечет. функции ![]()
![]()
![]()
…;![]()
в
точках
;
;
;
…;
(узлы, локаторы)
(все
различны).
Найти
:![]()
:
![]()
![]()
![]()
![]()
![]()

![]()
![]()
C+-код ((
)
– код)
задаются
произвольно локаторы :
?????????
n|Fq|![]()

С
–система называется системой Маркова,
если любое подмножество множества
является
Чебышевским.
Если
С -система является Марковской, то
,
![]()
на
которых базис
является
Марковским.
Пусть
-символы
сообщения
,
тогда вектор ![]()
является кодовым вектором кода С+,
если выполн. условие:
,
,
где ![]()
Т.е. линейное преобразование вида
![]()
![]()


![]()
-кодовое
пространство
(min)
вес

![]()
-по
крайне мере имеет k-1
корней =>
по
крайней мере имеет k-1
нулей. Для
того чтобы код
обнаруживая
и исправляя
-кратные
ошибки требуется, чтобы
(min)
![]()
-код
явл.
кодом с max
кодовым расстоянием
Пусть
задан
код
,
любые
локаторов
этого кода м.б. приняты за информационные
(следует из марковости системы).
код
(
-код)
заданы
локаторы ![]()
базис
(марковский)
Вектор
является
кодовым вектором кода
,
если
,
,
где
,
где ![]()
![]()
,
![]()
![]()

![]()
kk
,
где

![]()
называется
проверочной матрицей
-
![]()
![]()
а соответствующий ей код С++ называется систематическим.
Оба
кода С+
и
С++
является
эквивалентными, т.к. произведены одной
и той же интерполяционной функцией ![]()
Важное
замечание: все
коды
с max
кодовым расстоянием эквивалентные
кодам С+
и С++
м.б.
получены след. Матричным преобразованием:
,
где матрица Т-любая
невырожд. ,![]()
а
Р-подстановочно-перестановочная,
-
в каждом столбце и каждой строке имеет
ровно один оператор взоимно-однозначно
отображающий ![]()

Лекция №12
Типы кодов в интерполяционной трактовке.
Коды Рида-Соломона. (RS-коды)
-поле
(
,
-простое,
)
-
различные локаторы
базис:
(С-система Марковская)
Определитель
Вондермонда
:
det
![]()
-интерполяционный
полином в форме Лаграгранжа
фундаментальный полином Лагранжа:
![]()
![]()
!
![]()
?
,
![]()
!
![]()
?
![]()
![]()
![]()
![]()
![]()
,
![]()
построили
фундаментальный полином Лагранжа.
![]()
![]()
![]()
![]()
![]()
Свойства интерпол. полиномов:
1)
если степень
,(степень
),
то ![]()
2)
число корней любого интерполяционного
многочлена
не превышает ![]()
Код
RS-типа
С++
(
-код
-
информационных сигналов; (
)
-избыточн. (контр.).
Кодовый
вектор кода С++
:
Если
-последовательность
информационных символов,
то кодов векторов имеет вид:
где
,
![]()
d(C++
)=![]()
![]()
![]()
-обнаруживает
и исправляет t-кратные
ошибки.
Процесс
кодирования
RS++![]()
![]()
,
![]()
Процесс декодирования
имеем
переданный по каналу вектор ![]()
,
если в
ой
позиции не произошла ошибка
,
если в
ой
ой
позиции произошла ошибка –
такие
позиции м.б. не более, чем ![]()
Комбинаторный
алгоритм обнаружения и исправления
ошибок – в систематическом RS-коде
любые
символов
м.б. приняты за информационные.
Разложим
по степеням
:
![]()
![]()
…![]()
выделяя из этой системы любые
уравнений получим невырожденную
систему, которые единственным образом
определяют коэффициенты 
В
свете указан. свойства кодовых слов
RS(
)
алгоритм обнаружения и исправления
ошибок м.б. построен следующим образом:
выбираем произвольно конфигурацию локаторов состоящих из t позиций и “выбрасываем” все компоненты полученного
каналу-выходного вектора
по
этим позициям.в оставшихся позициях мы назначаем k информацион., а остальные считаем избыточными.
по этим информационным символам вычисляем интерполяционный многочлен Лагранжа, вычисляем его значения в принятых избыточных локаторах.
если вычисленные значения интерполяционного многочленана построен на предыдущем шаге в отмеченных избыточных локаторах совпадают с соответствующими компонентами выходного вектора на этих локаторах, то в числе t выброшенных позициях может находится t-кратная ошибка, а в оставшихся ошибок нет.
если выполнен предикат (условие) 4 шага, то выходной вектор в целом восстанавливается интерполяционным многочленом Лагранжа, получен. на предыдущем шаге, в выброшенных позициях.
Иначе переходим к шагу 1.
БЧХ-коды.
Базис: такой же как и в RS-коде, отличие в формировании узлов (локаторов)
,
![]()
-примитивный
элемент поля ![]()
циклический код
3. Коды ???
,
-элементы
отличные от принятых
локаторов
![]()
4. Коды Гоппы и их обобщение
Пусть
функция
не имеет корней в поле ![]()
Базис:
выбор функции
при
спец. выборе
получаются
коды Гоппы и их обобщение.
Как эти коды могут использоваться для защиты от НСД одновременно выполняя функцию самокоррекции от ошибок?
пусть
-
порождающая матрица
Выполним важное замечание (на прошлой лекции)
допустимо
эквивалентное преобразование матрицы
G
в матрицу ![]()
-перест-подст.
матр. ![]()
-невырожд.
матр.
Будем
использовать матрицу
как
криптографическую матрицу – в роли
матрицы
могут
избираться, например, матрица Холла или
другие случайно формируемые матрицы,
легко обратимые. В роли матрицы
могут
избираться любые случайно перестановленные
матрицы где в позициях, в которых стоит
“1”, используется любой оператор
(например циклический сдвиг по ключу),
отображающий Fq
->
Fq
.
Ключевой
материал образуют матрицы
и
![]()
Лекция №13
Модулярные вычисления.
1.
элементные операции –вычисления в Z
пусть
-натуральное
число, ![]()
Z
Zp
=![]()
![]()
Z
![]()
-процедура
на прогр. языке.
![]()
![]()
-целая
часть числа ![]()
![]()
![]()
Компьютерная реализация.
![]()
![]()
-32-битн.
цел. числа.
![]()
![]()
![]()
![]()
![]()
![]()
если
,
то существ. инверсный вычет:
![]()
![]()
Процедура мультипликативного инвертирования осуществляется с помощью алгоритма Евклида.
?
![]()
2.
-
составное число
,
;
![]()
Имеем с одной стороны кольцо вычетов по мод. ???:
![]()
![]()
элементные
операц. в диапазоне ![]()
Организация
вычислений в диапазоне
возможна двумя путями:
посредством представления чисел из
позиционным кодом по какому-либо
основанию и реализация алгоритма
операций в позицион. системе счисления.
Зам.: для больших чисел вычисления осуществляется в режиме многократной точности, при этом мы систематически должны следить и учитывать переполнения из младших разрядов в старшие.
представление чисел из
в непозиционной системе счисления и
реализация арифметических операций в
модулярной арифметике
В основе модулярной арифметики лежит китайская теорема об остатках.
Китайская теорема об остатках.
Если
элементн. модули ![]()
попарно взаимно простые, т.е.
![]()
![]()
,
то любое число ![]()
![]()
из
диапазона
,
где
единствен.
образом представлено системой остатков
:
,
где
,
;
при этом модульные операции кольца
представляются
параллельно по модулям
,
,
т.е.
если
![]()
![]()
![]()
Док-во:
рассмотрим сумму ![]()
![]()
,
![]()
=
(1)
![]()
Какова
связь между
и ![]()
Равенство
(1) возьмем по
![]()
![]()


![]()
![]()

![]()
2)
![]()
![]()
Вывод:
если
попарно
взаимно-простые, то ![]()
![]()
С переходом к модулярному представлению чисел приобрели возможность распараллеливать арифметические операции элементным модулям, но при этом мы потеряли представление о порядке чисел - непозиционное счисление.
Полиадическое
позиционное представление чисел
![]()
![]()
число
единственным
образом представимо в форме:
,
где ![]()
-
цифры полиадического представления
![]()
![]()
![]()
Лекция №14
![]()
![]()
![]()
![]()

![]()
![]()
![]()
полиадический
код числа ![]()
![]()
![]()
![]()
![]()
![]()
в
частном случае, при
,
то получаем
ичную
систему.
,
![]()
общее
число состояний
![]()
модулярный
код
необходимо перевести в полиадический :
1)
![]()
![]()
вычитаем
![]()
домножили
на ![]()

![]()
-алгоритм
…………
![]()
перевод
в 2ый
код
Модулярный код с избыточным основанием обладает свойством арифметической самокоррекцией.
Приложение модулярной арифметики к криптографии.
симметричные шифры
шифры с открытыми ключами
применение протоколов
Простая задача
