ݺߣ

ݺߣShare a Scribd company logo
Теория кодирования
МФТИ, осень 2013
Александр Дайняк
www.dainiak.com
Коммуникационная сложность
• У Аси есть слово 𝑋, а у Бори слово 𝑌, где 𝑋, 𝑌 ∈ 0,1 𝑘
.
(Ася не знает 𝑌, а Боря не знает 𝑋.)
• Задана функция 𝑓, определённая на 0,1 𝑘 × 0,1 𝑘.
• Ася и Боря хотят вычислить значение 𝑓 𝑋, 𝑌 , переслав для этого
друг другу минимум данных.
• 𝐿comm 𝑓 ≔ число битов, которые в сумме Ася и Боря перешлют
друг другу в худшем случае при использовании фиксированного
алгоритма вычисления 𝑓.
• Пример: 𝐿comm 𝟙 𝑋=𝑌 = 𝑘 + 1. (Доказательство: пр-п Дирихле.)
Коды в качестве усилителей различия
Построим рандомизированный алгоритм вычисления 𝟙 𝑋=𝑌, при котором Ася и
Боря пересылаю друг другу всего 𝑂 log 𝑘 битов.
Идея: используем код, исправляющий ошибки, в качестве «усилителя
различия» слов.
Ася и Боря кодируют 𝑋 и 𝑌 в одном и том же 𝑛, 𝑘, 𝑑 𝑞-коде (кодируя биты 0 и 1
различными элементами из 𝔽 𝑞), получая слова 𝑋′
, 𝑌′
∈ 𝔽 𝑞
𝑛
.
Ася выбирает случайную позицию в 𝑋′ и пересылает её номер (в двоичной
записи объёмом log2 𝑛 ) и её значение (объёмом log2 𝑞 ).
Боря проверяет, совпадает ли принятое от Аси значение с соответствующим
значением в 𝑌′, и затем результат сравнения он одним битом пересылает Асе.
Вероятность ошибки не превосходит 𝑛 − 𝑑 𝑛.
Коды в качестве усилителей различия
Пусть 𝜀 ∈ 0,1 .
Ася и Боря используют 1
𝜀
⋅ 𝑘, 𝑘, 1−𝜀
𝜀
⋅ 𝑘 + 1
𝑞
-код Рида—Соломона,
где 𝑞 ∈ 𝑘
𝜀
, 2𝑘
𝜀
.
Тогда вероятность ошибки будет не больше 𝜀, а количество бит,
которые Ася и Боря перешлют друг другу, равно 𝑂 log 𝑘
𝜀
.
О криптографии с открытым ключом
на одном слайде
• Ася вывешивает в интернете алгоритм c открытыми исходниками,
который преобразует сообщения 𝑋 в 𝜙 𝑋 .
• У Аси есть алгоритм, который знает только она, позволяющий
по коду вида 𝜙 𝑋 эффективно восстановить сам 𝑋.
• Никто, кроме Аси (т.е. у кого нет секретного алгоритма
декодирования) не должен уметь эффективно восстанавливать 𝑋
по 𝜙 𝑋 . Так что собеседник Аси Боря может выкладывать
в открытый доступ сообщения, к которым сможет обращаться кто
угодно, но расшифровать (за приемлемое время) Борины
послания сможет только Ася.
Криптосхема МакЭлиса (R. McEliece ’1978)
Ася выбирает (не раскрывая никому)
• произвольный 𝑛, 𝑘, 𝑑 -код 𝐶, где 𝑑 ≥ 2𝑡 + 1; этот код должен
обладать эффективными алгоритмами построения порождающей
матрицы 𝐺 ∈ 𝔽2
𝑘×𝑛
и декодирования с исправлением не более 𝑡
ошибок.
• случайную невырожденную матрицу 𝑆 из 𝔽2
𝑘×𝑘
,
• случайную перестановочную матрицу 𝑃 из 𝔽2
𝑛×𝑛
.
Затем Ася вычисляет матрицу 𝐺 ≔ 𝑆𝐺𝑃 ∈ 𝔽2
𝑘×𝑛
и выкладывает в
открытый доступ алгоритм, который
• по сообщению 𝑋 ∈ 𝔽2
𝑘
вычисляет вектор 𝑋 𝐺 ∈ 𝔽2
𝑛
и искажает его в
𝑡 случайных битах.
Криптосхема МакЭлиса (R. McEliece ’1978)
• 𝑛, 𝑘, 𝑑 -код 𝐶, с порождающей матрицей 𝐺 ∈ 𝔽2
𝑘×𝑛
• случайная невырожденная матрица 𝑆 ∈ 𝔽2
𝑘×𝑘
(секрет Аси!),
• случайная перестановочная матрица 𝑃 ∈ 𝔽2
𝑛×𝑛
(секрет Аси!),
• 𝐺 ≔ 𝑆𝐺𝑃 ∈ 𝔽2
𝑘×𝑛
— известная всем матрица,
• По сообщению 𝑋 ∈ 𝔽2
𝑘
вычисляется вектор 𝑋 𝐺 ∈ 𝔽2
𝑛
и искажается
в 𝑡 случайных битах. Получается вектор 𝑋.
Ася может восстановить 𝑋, декодировав с исправлением ошибок
вектор 𝑋𝑃−1
(ведь это искажённое слово кода 𝐶), и домножив
результат на 𝑆−1
.
Криптосхема МакЭлиса (R. McEliece ’1978)
• 𝐺 ∈ 𝔽2
𝑘×𝑛
— порождающая матрица «хорошего» 𝑛, 𝑘, 𝑑 -кода
• случайная невырожденная матрица 𝑆 ∈ 𝔽2
𝑘×𝑘
(секрет Аси!),
• случайная перестановочная матрица 𝑃 ∈ 𝔽2
𝑛×𝑛
(секрет Аси!),
• 𝑋 → 𝑋𝑆𝐺𝑃 → 𝑋
Почему именно так:
• Предполагается, что задача NCP даже при известной порождающей матрице
кода трудна для «почти всех» кодов.
Значит, даже зная хороший алгоритм декодирования кода с матрицей 𝐺,
трудно декодировать код с матрицей 𝐺𝑃.
• Домножение 𝑋 на 𝑆 перед кодированием призвано разрушить внутреннюю
структуру 𝑋, чтобы трудно было «угадать» 𝑋.
𝑙-однородные множества
Множество наборов 𝑈 ⊆ 0,1 𝑛 называется 𝑙-однородным, если
для любых 𝑖1, … , 𝑖𝑙 ∈ 1, … , 𝑛 и любых 𝑡1, … , 𝑡𝑙 ∈ 0,1 выполнено
𝑎1, … , 𝑎 𝑛 ∈ 𝑈 ∣ 𝑎𝑖1
= 𝑡1, 𝑎𝑖2
= 𝑡2, … , 𝑎𝑖 𝑙
= 𝑡𝑙
𝑈
= 2−𝑙
То есть при случайном равномерном выборе набора 𝒂 ∈ 𝑈 любые 𝑙
бит в 𝒂 будут равны фиксированным значениям с той же
вероятностью, что и при случайном выборе из «полного»
множества 0,1 𝑛.
𝑙-однородность и порождающая матрица
Лемма.
Пусть 𝐶 ⊆ 𝔽2
𝑛
— линейный 𝑛, 𝑘, … -код. Множество 𝐶 является
𝑙-однородным т. и т.т., когда любые 𝑙 столбцов порождающей
матрицы кода линейно независимы.
Доказательство:
Пусть 𝐺1, … , 𝐺 𝑛 ∈ 𝔽2
𝑘
— столбцы порождающей матрицы 𝐺 кода 𝐶.
Пусть, например, 𝐺1 + 𝐺2 + ⋯ + 𝐺𝑠 = 𝟎, где 𝑠 ≤ 𝑙. Рассмотрим
тогда любые 𝑡1, … , 𝑡𝑙, такие, что 𝑡1 + ⋯ + 𝑡 𝑠 = 1. Имеем
𝑎1, … , 𝑎 𝑛 ∈ 𝐶 ∣ 𝑎1 = 𝑡1, … , 𝑎𝑙 = 𝑡𝑙
𝐶
= 0 ≠ 2−𝑙
𝑙-однородность и порождающая матрица
𝐺1, … , 𝐺 𝑛 ∈ 𝔽2
𝑘
— столбцы порождающей матрицы 𝐺 кода 𝐶.
Пусть теперь 𝐺1, … , 𝐺𝑙 линейно независимы. Тогда ранг матрицы
𝐺1 𝐺2 … |𝐺𝑙 равен 𝑙, и значит в 𝐺 найдутся строки, — пусть это строки
𝒈1, … , 𝒈𝑙 ∈ 𝔽2
𝑛
, — такие, что их начальные куски длины 𝑙 линейно
независимы.
Обозначим 𝐶𝑡1,…,𝑡 𝑙
≔ 𝒄 ∈ 𝐶 ∣ 𝑐1 = 𝑡1, … , 𝑐𝑙 = 𝑡𝑙 .
Для любых 𝑡1
′
, … , 𝑡𝑙
′
, 𝑡1
′′
, … , 𝑡𝑙
′′
найдётся кодовое слово 𝒂 (линейная
комбинация строк 𝒈1, … , 𝒈𝑙), для которого
𝑎1 = 𝑡1
′
+ 𝑡1
′′
, … , 𝑎𝑙 = 𝑡𝑙
′
+ 𝑡𝑙
′′
.
Тогда 𝐶 𝑡1
′ ,…,𝑡 𝑙
′ = 𝐶 𝑡1
′′,…,𝑡 𝑙
′′ + 𝒂, отсюда 𝐶 𝑡1
′ ,…,𝑡 𝑙
′ = 𝐶 𝑡1
′′,…,𝑡 𝑙
′′ .
𝑙-однородность и порождающая матрица
𝐺1, … , 𝐺 𝑛 ∈ 𝔽2
𝑘
— столбцы порождающей матрицы 𝐺 кода 𝐶.
𝐶𝑡1,…,𝑡 𝑙
≔ 𝒄 ∈ 𝐶 ∣ 𝑐1 = 𝑡1, … , 𝑐𝑙 = 𝑡𝑙 .
Если 𝐺1, … , 𝐺𝑙 линейно независимы, то для любых 𝑡1
′
, … , 𝑡𝑙
′
, 𝑡1
′′
, … , 𝑡𝑙
′′
имеем 𝐶 𝑡1
′,…,𝑡 𝑙
′ = 𝐶 𝑡1
′′,…,𝑡 𝑙
′′ .
Отсюда 𝐶𝑡1,…,𝑡 𝑙
= 𝐶
2 𝑙 для любых 𝑡1, … , 𝑡𝑙.
Лемма доказана.
𝑙-однородность и кодовое расстояние
Лемма.
Пусть 𝐶 ⊆ 𝔽2
𝑛
— линейный 𝑛, 𝑘, … -код. Множество 𝐶 является
𝑙-однородным т. и т.т., когда любые 𝑙 столбцов порождающей матрицы
кода линейно независимы.
Теорема.
Двоичный линейный код 𝐶 является 𝑙-однородным множеством т. и т.т.,
когда 𝑑 𝐶⟂ > 𝑙.
Доказательство: применяем лемму, заметив, что порождающая
матрица 𝐶 является проверочной для 𝐶⟂, и используем утверждение о
связи кодового расстояния с проверочной матрицей линейного кода.
𝑞-ичные 𝑙-однородные множества
Теорема.
Двоичный линейный код 𝐶 образует 𝑙-однородное множество
т. и т.т., когда 𝑑 𝐶⟂ > 𝑙.
Замечание.
Аналогично можно вести понятие 𝑞-ичного 𝑙-однородного
множества и доказать похожую теорему: линейный код 𝐶 ⊆ 𝔽 𝑞
𝑛
образует 𝑙-однородное множество т. и т.т., когда 𝑑 𝐶⟂ > 𝑙.
𝑙-однородные множества на основе РМ-кодов
Интересны 𝑙-однородные множества малой (полиномиальной по 𝑛) мощности.
Для того, чтобы получить такое множество, нужно взять линейный код 𝐶 у которого
• 𝑑 𝐶 > 𝑙
• dim 𝐶 велико
и затем рассмотреть 𝐶⟂.
Возьмём в качестве 𝐶 код Рида—Маллера с параметрами
𝑚 ≔ log2 𝑛 , 𝑟 ≔ 𝑚 − 2
Для такого 𝐶 имеем 𝑑 𝐶 = 2 𝑚−𝑟
= 4.
Код 𝐶⟂ тоже является РМ-кодом, с параметром 𝑟′ = 𝑚 − 𝑟 − 1 = 1.
При этом 𝐶⟂ = 21+𝑚
≤ 4𝑛.
𝑙-однородные множества на основе РМ-кодов
Доказанное утверждение:
Код Рида—Маллера с параметрами 𝑚 = log2 𝑛 и 𝑟 = 1 образует
3-однородное множество наборов длины 𝑛, мощность которого
линейна по 𝑛.
Задача 3≥𝛾-SAT
Задача 3≥𝛾-SAT: для заданной 3-КНФ найти набор, на котором
не менее чем 𝛾-я доля всех скобок обращается в единицу.
Обычная задача 3-SAT — это 3≥1-SAT.
Теорема.
Задача 3≥7/8-SAT полиномиально разрешима.
Полиномиальность 3≥7/8-SAT
Теорема.
Задача 3≥7/8-SAT полиномиально разрешима.
Доказательство:
Пусть 3-КНФ содержит 𝑛 переменных и 𝑚 скобок.
При случайном выборе набора из 0,1 𝑛 имеем
Pr фиксированная скобка равна нулю = 1
8
Отсюда
𝔼 #скобок, равных нулю = 𝑚
8
Заметим, что Pr фикс. ск. = 0 = 1
8
и в том случае, когда берётся
случайный набор из произвольного 3-однородного множества.
Полиномиальность 3≥7/8-SAT
Получается, что в любом 3-однородном множестве найдётся
набор, на котором ≤ 𝑚
8
скобок равны нулю.
Получается простой алгоритм:
• Перебираем всевозможные наборы РМ-кода (с нужными
параметрами) и подставляем их в 3-КНФ.
Хотя бы один из наборов должен сгодиться.
Задача о разделении секрета
Задача:
Есть несколько человек и секрет.
Нужно сообщить людям некоторую информацию, так, чтобы
• все вместе они могли бы восстановить секрет
• никакая компания из меньшего числа человек не могла бы
восстановить секрет
Задача о разделении секрета
Пусть нужно разделить секрет между 𝑚 людьми.
• Сопоставляем секрету элемент 𝑠 ∈ 𝔽 𝑞.
• Берём 𝑞-ичный код 𝐶, такой, что 𝑑 𝐶⟂ = 𝑚 + 1.
• В порождающей матрице 𝐺 кода 𝐶 найдутся 𝑚 + 1 линейно
зависимых столбцов, пусть это первые 𝑚 + 1 столбцов.
Тогда найдутся такие 𝛼1, … , 𝛼 𝑚+1 ∈ 𝔽 𝑞 ∖ 0 , что в любом
кодовом слове 𝒄 первые 𝑚 + 1 разрядов удовлетворяют
соотношению 𝛼1 𝑐1 + ⋯ + 𝛼 𝑚+1 𝑐 𝑚+1 = 0.
Т.е. 𝑐 𝑚+1 всегда можно однозначно определить по 𝑐1, … , 𝑐 𝑚.
Задача о разделении секрета
Секрет 𝑠 ∈ 𝔽 𝑞 разделяем между 𝑚 людьми.
• Берём 𝑞-ичный код 𝐶, такой, что 𝑑 𝐶⟂ = 𝑚 + 1.
Пусть в порождающей матрице 𝐺 кода 𝐶 первые 𝑚 + 1
столбцов линейно зависимы.
• Выбираем случайные элементы 𝑡1, … , 𝑡 𝑚−1.
• Элемент 𝑡 𝑚 однозначно выбираем так, чтобы в коде 𝐶 нашлось
слово вида
𝑡1, … 𝑡 𝑚−1, 𝑡 𝑚, 𝑠, …
Поскольку 𝐶 является 𝑞-ичным 𝑚-однородным множеством,
зная любые 𝑚 − 1 из чисел 𝑡1, … , 𝑡 𝑚, об 𝑠 ничего нельзя сказать.
Как кодируются данные на CD
Параметры CD-ROM:
• Длина дорожки ≈ 5 км
• Ширина дорожки ≈ 6 мкм
• Высота углублений ≈ 1.2 мкм
Задача: обеспечить сохранность данных при наличии
царапин/пыли/грязи.
Как кодируются данные на CD
Одна царапина может затрагивать много последовательных битов:
В этом случае говорят о наличии пакетов ошибок.
… 001010111010101010101 …
… 101001010010101110100 …
… 101001111101010000100 …
Как кодируются данные на CD
Одна царапина может затрагивать много последовательных битов.
Выход: кодировать данные с перемежением (interleaving), так,
чтобы последовательные биты на дорожке не отвечали одному и
тому же кодовому слову.
Добавляем помехоустойчивое кодирование Рида—Соломона и
получаем технологию:
CIRC = Cross-interleaved Reed—Solomon Codes
Кодирование CIRC
• Каждый отсчёт одного канала звукозаписи занимает 16 бит
• Разбиваем 16 бит на две восьмёрки, и считаем каждую из них
элементом 𝔽256. Пару элементов 𝔽256 будем обозначать одной
буквой.
• Запись на CD двухканальная (стерео), так что данные выглядят
так:
𝐿1 𝑅1 𝐿2 𝑅2 𝐿3 𝑅3 …
— где 𝐿𝑖, 𝑅𝑖 ∈ 𝔽256
2
.
Кодирование CIRC
Последовательность данных
𝐿1 𝑅1 𝐿2 𝑅2 𝐿3 𝑅3 …
разбивается на кадры (фреймы):
𝐿1 𝑅1 … 𝐿6 𝑅6 ∣ 𝐿7 𝑅7 … 𝐿12 𝑅12 ∣ 𝐿13 𝑅13 …
Затем в каждой паре последовательных фреймов перемежаем
данные так (на примере первой пары фреймов):
𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12 𝐿7 𝐿9 𝐿11 𝑅7 𝑅9 𝑅11 𝐿2 𝐿4 𝐿6 𝑅2 𝑅4 𝑅6
Кодирование CIRC
После перемежения фреймов получается последовательность:
𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12 𝐿7 𝐿9 𝐿11 𝑅7 𝑅9 𝑅11 𝐿2 𝐿4 𝐿6 𝑅2 𝑅4 𝑅6 …
Далее к каждым 24 последовательным байтам применяется
систематический 28,24,5 256-код Рида—Соломона.
Так, например, к последовательности
𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12
добавятся 4 проверочных байта, которые вставляются в середину:
𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝑷 𝟏 𝑷 𝟐 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12
Кодирование CIRC
Получается последовательность 28-байтных слов.
Каждый блок из 28 таких слов записывается в виде матрицы 28 × 136:
𝑐1,1 𝑐2,1 𝑐3,1 𝑐4,1 𝑐5,1 𝑐6,1 𝑐7,1 𝑐8,1 𝑐9,1 𝑐10,1 …
0 0 0 0 𝑐1,2 𝑐2,2 𝑐3,2 𝑐4,2 𝑐5,2 𝑐6,2 …
0 0 0 0 0 0 0 0 𝑐1,3 𝑐2,3 …
⋮
Здесь 𝑐𝑖,𝑗 — это 𝑗-й байт 𝑖-го слова.
Затем каждый столбец этой матрицы кодируется с помощью
32,28,5 256-кода Рида—Соломона.
Получается последовательность 32-байтных слов,
она и записывается на CD.

More Related Content

Viewers also liked (16)

Основы теории графов 07: сепараторы в планарных графах
Основы теории графов 07: сепараторы в планарных графахОсновы теории графов 07: сепараторы в планарных графах
Основы теории графов 07: сепараторы в планарных графах
Alex Dainiak
Графовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкостьГрафовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкость
Alex Dainiak
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—ФалкерсонаОсновы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Alex Dainiak
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизацииЦиклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Alex Dainiak
Основы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьяхОсновы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьях
Alex Dainiak
Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
Alex Dainiak
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Alex Dainiak
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
Alex Dainiak
Основы теории графов 05: критерии планарности графов
Основы теории графов 05: критерии планарности графовОсновы теории графов 05: критерии планарности графов
Основы теории графов 05: критерии планарности графов
Alex Dainiak
Основы теории графов 03: связность
Основы теории графов 03: связностьОсновы теории графов 03: связность
Основы теории графов 03: связность
Alex Dainiak
Основы теории графов 11: гамильтоновы циклы
Основы теории графов 11: гамильтоновы циклыОсновы теории графов 11: гамильтоновы циклы
Основы теории графов 11: гамильтоновы циклы
Alex Dainiak
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Основы теории графов 02: факторизация графов (разложение на простые подграфы)Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Alex Dainiak
Основы теории графов 08: раскраски и списочные раскраски
Основы теории графов 08: раскраски и списочные раскраскиОсновы теории графов 08: раскраски и списочные раскраски
Основы теории графов 08: раскраски и списочные раскраски
Alex Dainiak
Основы теории графов 09: раскраски планарных графов, совершенные графы
Основы теории графов 09: раскраски планарных графов, совершенные графыОсновы теории графов 09: раскраски планарных графов, совершенные графы
Основы теории графов 09: раскраски планарных графов, совершенные графы
Alex Dainiak
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
Основы теории графов 06: триангуляции и трёхсвязные планарные графыОсновы теории графов 06: триангуляции и трёхсвязные планарные графы
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
Alex Dainiak
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Alex Dainiak
Основы теории графов 07: сепараторы в планарных графах
Основы теории графов 07: сепараторы в планарных графахОсновы теории графов 07: сепараторы в планарных графах
Основы теории графов 07: сепараторы в планарных графах
Alex Dainiak
Графовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкостьГрафовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкость
Alex Dainiak
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—ФалкерсонаОсновы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Alex Dainiak
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизацииЦиклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Alex Dainiak
Основы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьяхОсновы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьях
Alex Dainiak
Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
Alex Dainiak
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Alex Dainiak
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
Alex Dainiak
Основы теории графов 05: критерии планарности графов
Основы теории графов 05: критерии планарности графовОсновы теории графов 05: критерии планарности графов
Основы теории графов 05: критерии планарности графов
Alex Dainiak
Основы теории графов 03: связность
Основы теории графов 03: связностьОсновы теории графов 03: связность
Основы теории графов 03: связность
Alex Dainiak
Основы теории графов 11: гамильтоновы циклы
Основы теории графов 11: гамильтоновы циклыОсновы теории графов 11: гамильтоновы циклы
Основы теории графов 11: гамильтоновы циклы
Alex Dainiak
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Основы теории графов 02: факторизация графов (разложение на простые подграфы)Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Alex Dainiak
Основы теории графов 08: раскраски и списочные раскраски
Основы теории графов 08: раскраски и списочные раскраскиОсновы теории графов 08: раскраски и списочные раскраски
Основы теории графов 08: раскраски и списочные раскраски
Alex Dainiak
Основы теории графов 09: раскраски планарных графов, совершенные графы
Основы теории графов 09: раскраски планарных графов, совершенные графыОсновы теории графов 09: раскраски планарных графов, совершенные графы
Основы теории графов 09: раскраски планарных графов, совершенные графы
Alex Dainiak
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
Основы теории графов 06: триангуляции и трёхсвязные планарные графыОсновы теории графов 06: триангуляции и трёхсвязные планарные графы
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
Alex Dainiak
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Alex Dainiak

Similar to Приложения теории кодирования (20)

лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2
Gulnaz Shakirova
лабораторная работа 3
лабораторная работа 3лабораторная работа 3
лабораторная работа 3
Gulnaz Shakirova
ОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строкОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строк
Vladimir Parfinenko
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
Елена Ключева
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
dimonz9
8 3-3
8 3-38 3-3
8 3-3
natanikonenko19
представление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятойпредставление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятой
tanamukina
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
Andrey Dolinin
представление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятойпредставление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятой
tanamukina
Теорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел РамсеяТеорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел Рамсея
Alex Dainiak
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
Positive Hack Days
Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7
Technopark
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
Alex Dainiak
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
23
2323
23
ssusera868ff
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)
mainstreamless
лабораторная работа 2
лабораторная работа 2лабораторная работа 2
лабораторная работа 2
Gulnaz Shakirova
лабораторная работа 3
лабораторная работа 3лабораторная работа 3
лабораторная работа 3
Gulnaz Shakirova
ОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строкОПК № 3 – Машинное представление целых чисел, символов, строк
ОПК № 3 – Машинное представление целых чисел, символов, строк
Vladimir Parfinenko
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
Елена Ключева
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
dimonz9
представление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятойпредставление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятой
tanamukina
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
Andrey Dolinin
представление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятойпредставление целых чисел в формате с фиксированной запятой
представление целых чисел в формате с фиксированной запятой
tanamukina
Теорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел РамсеяТеорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел Рамсея
Alex Dainiak
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
Positive Hack Days
Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7
Technopark
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
Alex Dainiak
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)
mainstreamless

More from Alex Dainiak (8)

Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодирования
Alex Dainiak
Визуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарностиВизуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарности
Alex Dainiak
Визуализация графов: укладки деревьев
Визуализация графов: укладки деревьевВизуализация графов: укладки деревьев
Визуализация графов: укладки деревьев
Alex Dainiak
Визуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладкеВизуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладке
Alex Dainiak
Визуализация графов: история
Визуализация графов: историяВизуализация графов: история
Визуализация графов: история
Alex Dainiak
Визуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудностьВизуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудность
Alex Dainiak
Размерность Вапника—Червоненкиса
Размерность Вапника—ЧервоненкисаРазмерность Вапника—Червоненкиса
Размерность Вапника—Червоненкиса
Alex Dainiak
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Alex Dainiak
Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодирования
Alex Dainiak
Визуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарностиВизуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарности
Alex Dainiak
Визуализация графов: укладки деревьев
Визуализация графов: укладки деревьевВизуализация графов: укладки деревьев
Визуализация графов: укладки деревьев
Alex Dainiak
Визуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладкеВизуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладке
Alex Dainiak
Визуализация графов: история
Визуализация графов: историяВизуализация графов: история
Визуализация графов: история
Alex Dainiak
Визуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудностьВизуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудность
Alex Dainiak
Размерность Вапника—Червоненкиса
Размерность Вапника—ЧервоненкисаРазмерность Вапника—Червоненкиса
Размерность Вапника—Червоненкиса
Alex Dainiak
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Alex Dainiak

Приложения теории кодирования

  • 1. Теория кодирования МФТИ, осень 2013 Александр Дайняк www.dainiak.com
  • 2. Коммуникационная сложность • У Аси есть слово 𝑋, а у Бори слово 𝑌, где 𝑋, 𝑌 ∈ 0,1 𝑘 . (Ася не знает 𝑌, а Боря не знает 𝑋.) • Задана функция 𝑓, определённая на 0,1 𝑘 × 0,1 𝑘. • Ася и Боря хотят вычислить значение 𝑓 𝑋, 𝑌 , переслав для этого друг другу минимум данных. • 𝐿comm 𝑓 ≔ число битов, которые в сумме Ася и Боря перешлют друг другу в худшем случае при использовании фиксированного алгоритма вычисления 𝑓. • Пример: 𝐿comm 𝟙 𝑋=𝑌 = 𝑘 + 1. (Доказательство: пр-п Дирихле.)
  • 3. Коды в качестве усилителей различия Построим рандомизированный алгоритм вычисления 𝟙 𝑋=𝑌, при котором Ася и Боря пересылаю друг другу всего 𝑂 log 𝑘 битов. Идея: используем код, исправляющий ошибки, в качестве «усилителя различия» слов. Ася и Боря кодируют 𝑋 и 𝑌 в одном и том же 𝑛, 𝑘, 𝑑 𝑞-коде (кодируя биты 0 и 1 различными элементами из 𝔽 𝑞), получая слова 𝑋′ , 𝑌′ ∈ 𝔽 𝑞 𝑛 . Ася выбирает случайную позицию в 𝑋′ и пересылает её номер (в двоичной записи объёмом log2 𝑛 ) и её значение (объёмом log2 𝑞 ). Боря проверяет, совпадает ли принятое от Аси значение с соответствующим значением в 𝑌′, и затем результат сравнения он одним битом пересылает Асе. Вероятность ошибки не превосходит 𝑛 − 𝑑 𝑛.
  • 4. Коды в качестве усилителей различия Пусть 𝜀 ∈ 0,1 . Ася и Боря используют 1 𝜀 ⋅ 𝑘, 𝑘, 1−𝜀 𝜀 ⋅ 𝑘 + 1 𝑞 -код Рида—Соломона, где 𝑞 ∈ 𝑘 𝜀 , 2𝑘 𝜀 . Тогда вероятность ошибки будет не больше 𝜀, а количество бит, которые Ася и Боря перешлют друг другу, равно 𝑂 log 𝑘 𝜀 .
  • 5. О криптографии с открытым ключом на одном слайде • Ася вывешивает в интернете алгоритм c открытыми исходниками, который преобразует сообщения 𝑋 в 𝜙 𝑋 . • У Аси есть алгоритм, который знает только она, позволяющий по коду вида 𝜙 𝑋 эффективно восстановить сам 𝑋. • Никто, кроме Аси (т.е. у кого нет секретного алгоритма декодирования) не должен уметь эффективно восстанавливать 𝑋 по 𝜙 𝑋 . Так что собеседник Аси Боря может выкладывать в открытый доступ сообщения, к которым сможет обращаться кто угодно, но расшифровать (за приемлемое время) Борины послания сможет только Ася.
  • 6. Криптосхема МакЭлиса (R. McEliece ’1978) Ася выбирает (не раскрывая никому) • произвольный 𝑛, 𝑘, 𝑑 -код 𝐶, где 𝑑 ≥ 2𝑡 + 1; этот код должен обладать эффективными алгоритмами построения порождающей матрицы 𝐺 ∈ 𝔽2 𝑘×𝑛 и декодирования с исправлением не более 𝑡 ошибок. • случайную невырожденную матрицу 𝑆 из 𝔽2 𝑘×𝑘 , • случайную перестановочную матрицу 𝑃 из 𝔽2 𝑛×𝑛 . Затем Ася вычисляет матрицу 𝐺 ≔ 𝑆𝐺𝑃 ∈ 𝔽2 𝑘×𝑛 и выкладывает в открытый доступ алгоритм, который • по сообщению 𝑋 ∈ 𝔽2 𝑘 вычисляет вектор 𝑋 𝐺 ∈ 𝔽2 𝑛 и искажает его в 𝑡 случайных битах.
  • 7. Криптосхема МакЭлиса (R. McEliece ’1978) • 𝑛, 𝑘, 𝑑 -код 𝐶, с порождающей матрицей 𝐺 ∈ 𝔽2 𝑘×𝑛 • случайная невырожденная матрица 𝑆 ∈ 𝔽2 𝑘×𝑘 (секрет Аси!), • случайная перестановочная матрица 𝑃 ∈ 𝔽2 𝑛×𝑛 (секрет Аси!), • 𝐺 ≔ 𝑆𝐺𝑃 ∈ 𝔽2 𝑘×𝑛 — известная всем матрица, • По сообщению 𝑋 ∈ 𝔽2 𝑘 вычисляется вектор 𝑋 𝐺 ∈ 𝔽2 𝑛 и искажается в 𝑡 случайных битах. Получается вектор 𝑋. Ася может восстановить 𝑋, декодировав с исправлением ошибок вектор 𝑋𝑃−1 (ведь это искажённое слово кода 𝐶), и домножив результат на 𝑆−1 .
  • 8. Криптосхема МакЭлиса (R. McEliece ’1978) • 𝐺 ∈ 𝔽2 𝑘×𝑛 — порождающая матрица «хорошего» 𝑛, 𝑘, 𝑑 -кода • случайная невырожденная матрица 𝑆 ∈ 𝔽2 𝑘×𝑘 (секрет Аси!), • случайная перестановочная матрица 𝑃 ∈ 𝔽2 𝑛×𝑛 (секрет Аси!), • 𝑋 → 𝑋𝑆𝐺𝑃 → 𝑋 Почему именно так: • Предполагается, что задача NCP даже при известной порождающей матрице кода трудна для «почти всех» кодов. Значит, даже зная хороший алгоритм декодирования кода с матрицей 𝐺, трудно декодировать код с матрицей 𝐺𝑃. • Домножение 𝑋 на 𝑆 перед кодированием призвано разрушить внутреннюю структуру 𝑋, чтобы трудно было «угадать» 𝑋.
  • 9. 𝑙-однородные множества Множество наборов 𝑈 ⊆ 0,1 𝑛 называется 𝑙-однородным, если для любых 𝑖1, … , 𝑖𝑙 ∈ 1, … , 𝑛 и любых 𝑡1, … , 𝑡𝑙 ∈ 0,1 выполнено 𝑎1, … , 𝑎 𝑛 ∈ 𝑈 ∣ 𝑎𝑖1 = 𝑡1, 𝑎𝑖2 = 𝑡2, … , 𝑎𝑖 𝑙 = 𝑡𝑙 𝑈 = 2−𝑙 То есть при случайном равномерном выборе набора 𝒂 ∈ 𝑈 любые 𝑙 бит в 𝒂 будут равны фиксированным значениям с той же вероятностью, что и при случайном выборе из «полного» множества 0,1 𝑛.
  • 10. 𝑙-однородность и порождающая матрица Лемма. Пусть 𝐶 ⊆ 𝔽2 𝑛 — линейный 𝑛, 𝑘, … -код. Множество 𝐶 является 𝑙-однородным т. и т.т., когда любые 𝑙 столбцов порождающей матрицы кода линейно независимы. Доказательство: Пусть 𝐺1, … , 𝐺 𝑛 ∈ 𝔽2 𝑘 — столбцы порождающей матрицы 𝐺 кода 𝐶. Пусть, например, 𝐺1 + 𝐺2 + ⋯ + 𝐺𝑠 = 𝟎, где 𝑠 ≤ 𝑙. Рассмотрим тогда любые 𝑡1, … , 𝑡𝑙, такие, что 𝑡1 + ⋯ + 𝑡 𝑠 = 1. Имеем 𝑎1, … , 𝑎 𝑛 ∈ 𝐶 ∣ 𝑎1 = 𝑡1, … , 𝑎𝑙 = 𝑡𝑙 𝐶 = 0 ≠ 2−𝑙
  • 11. 𝑙-однородность и порождающая матрица 𝐺1, … , 𝐺 𝑛 ∈ 𝔽2 𝑘 — столбцы порождающей матрицы 𝐺 кода 𝐶. Пусть теперь 𝐺1, … , 𝐺𝑙 линейно независимы. Тогда ранг матрицы 𝐺1 𝐺2 … |𝐺𝑙 равен 𝑙, и значит в 𝐺 найдутся строки, — пусть это строки 𝒈1, … , 𝒈𝑙 ∈ 𝔽2 𝑛 , — такие, что их начальные куски длины 𝑙 линейно независимы. Обозначим 𝐶𝑡1,…,𝑡 𝑙 ≔ 𝒄 ∈ 𝐶 ∣ 𝑐1 = 𝑡1, … , 𝑐𝑙 = 𝑡𝑙 . Для любых 𝑡1 ′ , … , 𝑡𝑙 ′ , 𝑡1 ′′ , … , 𝑡𝑙 ′′ найдётся кодовое слово 𝒂 (линейная комбинация строк 𝒈1, … , 𝒈𝑙), для которого 𝑎1 = 𝑡1 ′ + 𝑡1 ′′ , … , 𝑎𝑙 = 𝑡𝑙 ′ + 𝑡𝑙 ′′ . Тогда 𝐶 𝑡1 ′ ,…,𝑡 𝑙 ′ = 𝐶 𝑡1 ′′,…,𝑡 𝑙 ′′ + 𝒂, отсюда 𝐶 𝑡1 ′ ,…,𝑡 𝑙 ′ = 𝐶 𝑡1 ′′,…,𝑡 𝑙 ′′ .
  • 12. 𝑙-однородность и порождающая матрица 𝐺1, … , 𝐺 𝑛 ∈ 𝔽2 𝑘 — столбцы порождающей матрицы 𝐺 кода 𝐶. 𝐶𝑡1,…,𝑡 𝑙 ≔ 𝒄 ∈ 𝐶 ∣ 𝑐1 = 𝑡1, … , 𝑐𝑙 = 𝑡𝑙 . Если 𝐺1, … , 𝐺𝑙 линейно независимы, то для любых 𝑡1 ′ , … , 𝑡𝑙 ′ , 𝑡1 ′′ , … , 𝑡𝑙 ′′ имеем 𝐶 𝑡1 ′,…,𝑡 𝑙 ′ = 𝐶 𝑡1 ′′,…,𝑡 𝑙 ′′ . Отсюда 𝐶𝑡1,…,𝑡 𝑙 = 𝐶 2 𝑙 для любых 𝑡1, … , 𝑡𝑙. Лемма доказана.
  • 13. 𝑙-однородность и кодовое расстояние Лемма. Пусть 𝐶 ⊆ 𝔽2 𝑛 — линейный 𝑛, 𝑘, … -код. Множество 𝐶 является 𝑙-однородным т. и т.т., когда любые 𝑙 столбцов порождающей матрицы кода линейно независимы. Теорема. Двоичный линейный код 𝐶 является 𝑙-однородным множеством т. и т.т., когда 𝑑 𝐶⟂ > 𝑙. Доказательство: применяем лемму, заметив, что порождающая матрица 𝐶 является проверочной для 𝐶⟂, и используем утверждение о связи кодового расстояния с проверочной матрицей линейного кода.
  • 14. 𝑞-ичные 𝑙-однородные множества Теорема. Двоичный линейный код 𝐶 образует 𝑙-однородное множество т. и т.т., когда 𝑑 𝐶⟂ > 𝑙. Замечание. Аналогично можно вести понятие 𝑞-ичного 𝑙-однородного множества и доказать похожую теорему: линейный код 𝐶 ⊆ 𝔽 𝑞 𝑛 образует 𝑙-однородное множество т. и т.т., когда 𝑑 𝐶⟂ > 𝑙.
  • 15. 𝑙-однородные множества на основе РМ-кодов Интересны 𝑙-однородные множества малой (полиномиальной по 𝑛) мощности. Для того, чтобы получить такое множество, нужно взять линейный код 𝐶 у которого • 𝑑 𝐶 > 𝑙 • dim 𝐶 велико и затем рассмотреть 𝐶⟂. Возьмём в качестве 𝐶 код Рида—Маллера с параметрами 𝑚 ≔ log2 𝑛 , 𝑟 ≔ 𝑚 − 2 Для такого 𝐶 имеем 𝑑 𝐶 = 2 𝑚−𝑟 = 4. Код 𝐶⟂ тоже является РМ-кодом, с параметром 𝑟′ = 𝑚 − 𝑟 − 1 = 1. При этом 𝐶⟂ = 21+𝑚 ≤ 4𝑛.
  • 16. 𝑙-однородные множества на основе РМ-кодов Доказанное утверждение: Код Рида—Маллера с параметрами 𝑚 = log2 𝑛 и 𝑟 = 1 образует 3-однородное множество наборов длины 𝑛, мощность которого линейна по 𝑛.
  • 17. Задача 3≥𝛾-SAT Задача 3≥𝛾-SAT: для заданной 3-КНФ найти набор, на котором не менее чем 𝛾-я доля всех скобок обращается в единицу. Обычная задача 3-SAT — это 3≥1-SAT. Теорема. Задача 3≥7/8-SAT полиномиально разрешима.
  • 18. Полиномиальность 3≥7/8-SAT Теорема. Задача 3≥7/8-SAT полиномиально разрешима. Доказательство: Пусть 3-КНФ содержит 𝑛 переменных и 𝑚 скобок. При случайном выборе набора из 0,1 𝑛 имеем Pr фиксированная скобка равна нулю = 1 8 Отсюда 𝔼 #скобок, равных нулю = 𝑚 8 Заметим, что Pr фикс. ск. = 0 = 1 8 и в том случае, когда берётся случайный набор из произвольного 3-однородного множества.
  • 19. Полиномиальность 3≥7/8-SAT Получается, что в любом 3-однородном множестве найдётся набор, на котором ≤ 𝑚 8 скобок равны нулю. Получается простой алгоритм: • Перебираем всевозможные наборы РМ-кода (с нужными параметрами) и подставляем их в 3-КНФ. Хотя бы один из наборов должен сгодиться.
  • 20. Задача о разделении секрета Задача: Есть несколько человек и секрет. Нужно сообщить людям некоторую информацию, так, чтобы • все вместе они могли бы восстановить секрет • никакая компания из меньшего числа человек не могла бы восстановить секрет
  • 21. Задача о разделении секрета Пусть нужно разделить секрет между 𝑚 людьми. • Сопоставляем секрету элемент 𝑠 ∈ 𝔽 𝑞. • Берём 𝑞-ичный код 𝐶, такой, что 𝑑 𝐶⟂ = 𝑚 + 1. • В порождающей матрице 𝐺 кода 𝐶 найдутся 𝑚 + 1 линейно зависимых столбцов, пусть это первые 𝑚 + 1 столбцов. Тогда найдутся такие 𝛼1, … , 𝛼 𝑚+1 ∈ 𝔽 𝑞 ∖ 0 , что в любом кодовом слове 𝒄 первые 𝑚 + 1 разрядов удовлетворяют соотношению 𝛼1 𝑐1 + ⋯ + 𝛼 𝑚+1 𝑐 𝑚+1 = 0. Т.е. 𝑐 𝑚+1 всегда можно однозначно определить по 𝑐1, … , 𝑐 𝑚.
  • 22. Задача о разделении секрета Секрет 𝑠 ∈ 𝔽 𝑞 разделяем между 𝑚 людьми. • Берём 𝑞-ичный код 𝐶, такой, что 𝑑 𝐶⟂ = 𝑚 + 1. Пусть в порождающей матрице 𝐺 кода 𝐶 первые 𝑚 + 1 столбцов линейно зависимы. • Выбираем случайные элементы 𝑡1, … , 𝑡 𝑚−1. • Элемент 𝑡 𝑚 однозначно выбираем так, чтобы в коде 𝐶 нашлось слово вида 𝑡1, … 𝑡 𝑚−1, 𝑡 𝑚, 𝑠, … Поскольку 𝐶 является 𝑞-ичным 𝑚-однородным множеством, зная любые 𝑚 − 1 из чисел 𝑡1, … , 𝑡 𝑚, об 𝑠 ничего нельзя сказать.
  • 23. Как кодируются данные на CD Параметры CD-ROM: • Длина дорожки ≈ 5 км • Ширина дорожки ≈ 6 мкм • Высота углублений ≈ 1.2 мкм Задача: обеспечить сохранность данных при наличии царапин/пыли/грязи.
  • 24. Как кодируются данные на CD Одна царапина может затрагивать много последовательных битов: В этом случае говорят о наличии пакетов ошибок. … 001010111010101010101 … … 101001010010101110100 … … 101001111101010000100 …
  • 25. Как кодируются данные на CD Одна царапина может затрагивать много последовательных битов. Выход: кодировать данные с перемежением (interleaving), так, чтобы последовательные биты на дорожке не отвечали одному и тому же кодовому слову. Добавляем помехоустойчивое кодирование Рида—Соломона и получаем технологию: CIRC = Cross-interleaved Reed—Solomon Codes
  • 26. Кодирование CIRC • Каждый отсчёт одного канала звукозаписи занимает 16 бит • Разбиваем 16 бит на две восьмёрки, и считаем каждую из них элементом 𝔽256. Пару элементов 𝔽256 будем обозначать одной буквой. • Запись на CD двухканальная (стерео), так что данные выглядят так: 𝐿1 𝑅1 𝐿2 𝑅2 𝐿3 𝑅3 … — где 𝐿𝑖, 𝑅𝑖 ∈ 𝔽256 2 .
  • 27. Кодирование CIRC Последовательность данных 𝐿1 𝑅1 𝐿2 𝑅2 𝐿3 𝑅3 … разбивается на кадры (фреймы): 𝐿1 𝑅1 … 𝐿6 𝑅6 ∣ 𝐿7 𝑅7 … 𝐿12 𝑅12 ∣ 𝐿13 𝑅13 … Затем в каждой паре последовательных фреймов перемежаем данные так (на примере первой пары фреймов): 𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12 𝐿7 𝐿9 𝐿11 𝑅7 𝑅9 𝑅11 𝐿2 𝐿4 𝐿6 𝑅2 𝑅4 𝑅6
  • 28. Кодирование CIRC После перемежения фреймов получается последовательность: 𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12 𝐿7 𝐿9 𝐿11 𝑅7 𝑅9 𝑅11 𝐿2 𝐿4 𝐿6 𝑅2 𝑅4 𝑅6 … Далее к каждым 24 последовательным байтам применяется систематический 28,24,5 256-код Рида—Соломона. Так, например, к последовательности 𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12 добавятся 4 проверочных байта, которые вставляются в середину: 𝐿1 𝐿3 𝐿5 𝑅1 𝑅3 𝑅5 𝑷 𝟏 𝑷 𝟐 𝐿8 𝐿10 𝐿12 𝑅8 𝑅10 𝑅12
  • 29. Кодирование CIRC Получается последовательность 28-байтных слов. Каждый блок из 28 таких слов записывается в виде матрицы 28 × 136: 𝑐1,1 𝑐2,1 𝑐3,1 𝑐4,1 𝑐5,1 𝑐6,1 𝑐7,1 𝑐8,1 𝑐9,1 𝑐10,1 … 0 0 0 0 𝑐1,2 𝑐2,2 𝑐3,2 𝑐4,2 𝑐5,2 𝑐6,2 … 0 0 0 0 0 0 0 0 𝑐1,3 𝑐2,3 … ⋮ Здесь 𝑐𝑖,𝑗 — это 𝑗-й байт 𝑖-го слова. Затем каждый столбец этой матрицы кодируется с помощью 32,28,5 256-кода Рида—Соломона. Получается последовательность 32-байтных слов, она и записывается на CD.