Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Некоторые приложения теории кодирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Ю. В. Косолапов

Некоторыеприложения теориикодирования

Учебное пособие

Ростов-на-Дону –Таганрог Издательство Южного федерального университета

2024

УДК 003.26:512.64(075.8) ББК 16.84+22.1я73

К71

Печатается по решению кафедры алгебры и дискретной математики Института математики, механики и компьютерных наук им. И. И. Воровича Южного федерального университета

(протокол № 7 от 10 июня 2024 г.)

Рецензенты:

доктор физико-математических наук, профессор кафедры алгебры

идискретной математики Института математики, механики

икомпьютерных наук им. И. И. Воровича Южного федерального университета В. А. Скороходов;

кандидат технических наук, доцент, заместитель директора по науке

ООО «Стэл КС» А. В. Балакин

Косолапов, Ю. В.

К71 Некоторые приложения теории кодирования : учебное пособие / Ю. В. Косолапов ; Южный федеральный университет. – Ростов-на- Дону ; Таганрог : Издательство Южного федерального университе-

та, 2024. – 100 с.

ISBN 978-5-9275-4854-5

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

Настоящее пособие содержит материал, входящий в учебную программу курса «Криптография», изучаемого студентами по направлению подготовки «Прикладная математика и информатика», специализирующимися в области защиты информации.

УДК 003.26:512.64(075.8) ББК 22.18я73

ISBN 978-5-9275-4854-5

©Южный федеральный университет, 2024

©Косолапов Ю. В., 2024

Оглавление

Глава 1. Линейные блоковые коды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1. Носитель, вес, расстояние . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2. Линейный код и его характеристики . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3. Минимальные векторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4. Сумма кодов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5. Покрывающий код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Глава 2. Схема защиты в канале с помехами . . . . . . . . . . . . . . . . . . . . . 16 2.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2. Обнаружение ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3. Исправление ошибок. Декодер в ближайшее кодовое слово . . . . . . . . . . 18 2.4. Исправление стираний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5. Декодирование по информационным совокупностям . . . . . . . . . . . . . . . 20 2.6. Исправление ошибок и стираний в случае F2 . . . . . . . . . . . . . . . . . . . . 23 2.7. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Глава 3. Схема симметричного шифрования . . . . . . . . . . . . . . . . . . . . . . 26 3.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2. Определение схемы симметричного шифрования . . . . . . . . . . . . . . . . . 27 3.3. Наивная симметричная кодовая схема шифрования . . . . . . . . . . . . . . . 29 3.4. Стойкость наивной схемы шифрования . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5. Схема Рао-Нама . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.6. Стойкость схемы Рао-Нама . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.7. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.8. Модификация схемы Рао-Нама . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.9. LPN-проблема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.10.Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.11.Схема шифрования LPN-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.12.Стойкость LPN-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.13.RSD-проблема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3

Оглавление

3.14.Схема SYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.15.Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Глава 4. Схема асимметричного шифрования . . . . . . . . . . . . . . . . . . . . . 45 4.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2. Определение схемы асимметричного шифрования. KEM . . . . . . . . . . . . 46 4.3. Схема типа Мак-Элиса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.4. Схема типа Нидеррайтера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5. KEM на основе схем типа Мак-Элиса и типа Нидеррайтера . . . . . . . . . 49 4.6. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.7. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Глава 5. Схема цифровой подписи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2. Определение схемы подписи для модели без доверия . . . . . . . . . . . . . . 54 5.3. Схема CFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Глава 6. Схема защиты в канале с утечкой . . . . . . . . . . . . . . . . . . . . . . . 57 6.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2. Защита от утечки. Кодовое зашумление . . . . . . . . . . . . . . . . . . . . . . . 58 6.3. Стойкость кодового зашумления . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.4. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.5. Защита от утечки и искажений. Обобщенное кодовое зашумление . . . . . 61 6.6. Стойкость обобщенного кодового зашумления . . . . . . . . . . . . . . . . . . . 63 6.7. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.8. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Глава 7. Схема защиты в канале с дефектами . . . . . . . . . . . . . . . . . . . . 68 7.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.2. Математическая модель канала с дефектами . . . . . . . . . . . . . . . . . . . . 68 7.3. Способ кодирования для канала с дефектами . . . . . . . . . . . . . . . . . . . 70 7.4. Устойчивость к дефектам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.5. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.6. Способ кодирования для канала с дефектами и ошибками . . . . . . . . . . 72 7.7. Устойчивость к дефектам и ошибкам . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.8. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.9. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Глава 8. Схема разделения секрета . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4

Оглавление

8.2. Схемы разделения секрета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 8.3. Линейная СРС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.4. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.5. Связь ЛСРС и линейных кодов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.6. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 8.7. Выявление активных нарушителей в одномерных ЛСРС . . . . . . . . . . . . 86 8.8. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Глава 9. Схема сокрытия информации . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.2. Наивное сокрытие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.3. Матричное сокрытие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.4. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.5. Метод «мокрая бумага» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.6. Конструкция ZZW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.7. Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.8. Вопросы для самоконтроля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

5

Основные обозначения

пустое множество

Nмножество натуральных чисел

Zm

кольцо вычетов по модулю m N

|A|

мощность множества A

2A

множество всех подмножеств множества A

a ← A

равновероятный выбор элемента a из множества A

[n]

множество натуральных чисел в диапазоне от 1 до n

 

 

дополнение множества A

A = [n] \ A

Fq

поле Галуа мощности q, где q — степень простого числа

Kn

линейное пространство над полем K

0n

нулевой вектор из Kn, 0n = (0, . . . , 0)

1n

вектор, состоящий из единиц, 1n = (1, . . . , 1)

dim(V )

размерность пространства V

xвектор x = (x1, ..., xn) Fnq

supp(x)

носитель x = (x1, ..., xn), supp(x) = {i [n]: xi ̸= 0}

wt(x)

вес Хэмминга вектора x, wt(x) = |supp(x)|

ρ(x, y)

расстояние Хэмминга между x и y, ρ(x, y) = wt(x − y)

AT

транспонированная матрица A

A|τ

матрица, составленная из столбцов матрицы A с номерами из τ

A|τ

матрица, составленная из строк матрицы A с номерами из τ

L(A)

линейная оболочка, натянутая на строки матрицы A

rank(A)

ранг матрицы A

Ik

единичная (k × k)-матрица

V + W

сумма подпространств V ( Fqn) и W ( Fqn)

[n, k, d]q

линейный код размерности k, длины n с минимальным рассто-

Sn

янием d над полем Fq

симметрическая группа подстановок, действующая на [n]

PAut(C)

группа перестановочных автоморфизмов [n, k, d]q-кода C,

 

PAut(C) Sn

(a, b)

конкатенация векторов a и b

a, b

скалярное произведение векторов a и b

6

Оглавление

a b

покомпонентное произведение a = (a1, ..., an) и b = (b1, ..., bn)

(A|B)

приписывание матрицы B справа к матрице A

Oнулевая матрица, размер определяется из контекста

n k

pX(x)

aa

число сочетаний из n по k

вероятность появления значения x случайной величины X; если из контекста ясно, о какой случайной величине идет речь, то вместо pX(x) будем писать p(x)

для a R обозначает ближайшее целое сверху для a R обозначает ближайшее целое снизу

7

Введение

Традиционно методы помехоустойчивого кодирования применяются в области, где необходима защита целостности информации от искажений, носящих случайный характер. Так, например, коды используются для защиты информации от искажений, возникающих в линиях связи и системах хранения. Но в настоящее время применение теории помехоустойчивого кодирования уже не ограничивается рамками только этой области. Все больше коды находят применение при решении задач, в которых деструктивные воздействия носят не случайный характер, а являются преднамеренными. Такие воздействия могут быть направлены на нарушение не только свойства целостности, но и конфиденциальности, а также скрытности информации. Имеющиеся результаты в области линейных кодов позволяют адаптировать методы кодирования для борьбы с такими воздействиями. Например, вычислительная трудность некоторых задач, возникающих в теории линейных кодов, является для ряда схем шифрования и цифровой подписи основой стойкости к атакам, использующим квантовые вычисления. Кроме того, характеристики схем защиты (такие, как стойкость, скрытность и т.п.) часто могут быть описаны, используя уже разработанный понятийный аппарат теории линейных кодов.

В настоящем пособии сначала приводятся необходимые сведения из теории линейных кодов, а затем рассматриваются некоторые схемы защиты, построенные на таких кодах: 1) схема защиты в канале с помехами, 2) схема симметричного шифрования, 3) схема асимметричного шифрования, 4) схема цифровой подписи, 5) схема защиты в канале с утечкой, 6) схема защиты в канале с дефектами, 7) схема разделения секрета, 8) схема сокрытия информации.

8

Глава 1

Линейные блоковые коды

В основе схем защиты данных, рассматриваемых в этом пособии, лежат линейные блоковые коды. Поэтому в первой главе приводится определение таких кодов, а также свойства этих кодов, используемые при описании характеристик схем защиты. Термины, обозначения, а также формулировки, по большей части, приводятся в соответствии с [1].

1.1. Носитель, вес, расстояние

Пусть K — поле, V = Kn — пространство размерности n N над этим полем. Носителем вектора x = (x1, ..., xn) V называется множество ненулевых координат этого вектора, которое далее обозначается supp(x):

supp(x) = {i : xi ̸= 0}.

Носителем вектора a · 1n = (a, . . . , a) для a K \ {0} будет множество

[n] = {1, . . . , n}, а носителем вектора 0 · 1n = 0n — пустое множество. Весом вектора x Fnq называется мощность носителя этого вектора:

wt(x) = |supp(x)|.

В частности, wt(1n) = n, wt(0n) = 0. Умножение вектора x V на ненулевой скаляр a K не меняет веса вектора, так как K — поле.

Расстоянием Хэмминга между последовательностями x = (x1, ..., xn) и y = (y1, ..., yn) называется число координат ρ(x, y), где эти последовательности отличаются:

ρ(x, y) = |{i : xi ̸= yi}|.

9

Глава 1. Линейные блоковые коды

Если x, y V , то

 

ρ(x, y) = |supp(x − y)| = wt(x − y).

(1.1)

В частности, ρ(a1n, b1n) = n для a ̸= b. Расстояние Хэмминга является метрикой на V , так как

(i)ρ(x, y) 0, причем равенство выполняется тогда и только тогда, когда x = y;

(ii)ρ(x, y) = ρ(y, x);

(iii)выполняется неравенство треугольника: ρ(x, y) ρ(x, z) + ρ(z, y).

1.2. Линейный код и его характеристики

В теории помехоустойчивых кодов линейные коды рассматриваются как подпространства пространств над конечным полем K = Fq мощности q = pr, где p — простое число, r N.

Определение 1. Линейным блоковым [n, k, d]q-кодом C называется подпространство размерности k линейного пространства Fnq , такое, что

min {ρ(c, c)} = d.

c,cC,c̸=c

Так как C — подпространство, то из (1.1) получаем, что линейный [n, k, d]q-код C — это подпространство размерности k линейного пространства Fnq , такое, что

min {wt(c)} = d.

c C\{0n}

Характеристика d называется кодовым расстоянием кода C, а k и n

— соответственно размерностью и длиной. В случае, когда кодовое расстояние d неизвестно или не используется в контексте, то код C называется [n, k]q-кодом. Элементы кода будем называть кодовыми векторами или кодовыми словами. Матрица, строками которой являются все кодовые слова кода C, называется кодовой матрицей. Если в кодовой матрице имеются f нулевых столбцов с номерами {i1, ..., if } [n], то координаты с номерами из {i1, ..., if } называются фиктивными. [n, k, d]q-код с f фиктивными координатами можно преобразовать в изоморфный ему [n − f, k, d]-код, удалив

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]