СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Использование корректирующих кодов при защите информации

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Использование корректирующих кодов при защите информации»

Тема урока: «Использование корректирующих кодов при защите информации»

Цели урока:

Образовательные:

  • Углубить теоретические знания по теме «Программно-аппаратные средства обеспечения информационной безопасности».

  • Способствовать применению знаний в решении практических задач по обеспечению информационной безопасности.

Развивающие:

  • Развивать навыки индивидуальной и групповой практической работы.

  • Развивать способность логически рассуждать, делать выводы.

Воспитательные:

  • Формировать умения работать в коллективе и команде, эффективно общаться с коллегами, руководством, клиентами.

Методические:

  • Познакомить педколлектив с групповой формой организации деятельности студентов на уроке, освоением методов самостоятельного анализа полученной на уроке информации и самостоятельного решения задач.

Тип урока: урок применения знаний, умений, навыков на практике

Методы проведения:

  • решение практических задач с использованием УМК (лабораторного практикума с CD);

  • технология парного программирования;

  • технология разноуровневого обучения

Ход урока

  1. Организационный момент.

Приветствие, проверка отсутствующих, наличия письменных принадлежностей, готовности к уроку.


  1. Мотивация учебной деятельности студентов

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

  1. Актуализация опорных знаний

Фронтальный опрос:

  1. Перечислите методы контроля целостности программ и данных

  2. Поясните, в чем заключается метод использования контрольного суммирования

  3. Поясните, в чем заключается метод использования хэш-функции

  4. Перечислите виды ошибок, возникающих при передаче информации

  5. Поясните, что такое систематический код (корректирующий код)

  6. Поясните, в чем заключается идея метода помехоустойчивого кодирования

После окончания опроса преподаватель устно отмечает активно работающих студентов, дает оценку.

Если студент не отвечает на вопрос, ему помогают товарищи.

  1. Ознакомление с методом корректирующих кодов, инструкция по решению задач

  1. Работа с презентацией, методическими рекомендациями к выполнению лабораторной работы:

  1. Код с проверкой на четность

  2. Код Хэмминга: решение задачи на построение кода, проверка правильности, внесение ошибки, исправление ошибки

  1. Примеры практического использования метода корректирующих кодов:

  1. Сообщение «Разработки Хэмминга» - Багдасарян А.

  2. Сообщение «Примеры программной реализации корректирующих кодов» - Собко Н.


Методические рекомендации к выполнению лабораторной работы представлены в Приложении 1.

  1. Выполнение лабораторной работы.

  1. Самостоятельная работа студентов по группам по решению задач на построение кода Хэмминга – 25 мин

Студенты решают задачу №1 лабораторной работы «Корректирующие коды. Коды Хэмминга» по парам в 5 вариантах. Работа студентов на ПК.

Проверка выполнения в тетрадях с пояснением метода; замечания, корректировка, оценка.

Один любой вариант студенты представляют на демонстрационном экране с пояснением алгоритма решения.

Решения задач представлены в Приложении 2.

  1. Индивидуальная самостоятельная работа студентов по решению задач обнаружения ошибки в полученном сообщении и ее исправления – 20 мин.

Студенты решают задачу №2 лабораторной работы «Корректирующие коды. Коды Хэмминга» индивидуально в 3 вариантах. Работа студентов на ПК.

Проверка выполнения в тетрадях с пояснением метода; замечания, корректировка, оценка.

Один любой вариант студенты представляют на демонстрационном экране с пояснением алгоритма решения.

Решения задач представлены в Приложении 2

Дополнительное задание представлено в Приложении 4

  1. Проверка выполнения заданий

Обсуждение работ по контрольным вопросам в лабораторной работе

Контрольные вопросы:

  1. Охарактеризуйте понятие «корректирующий код»

  2. Приведите алгоритм построения кода Хэмминга

  3. К какому виду кодирования относится метод Хэмминга?

  4. Поясните алгоритм вычисления функции H(X)

  5. Каким образом можно установить наличие ошибки в сообщении Х? Как определить место ошибки?

  6. Какие ошибки можно исправить с помощью кода Хэмминга?

  1. Подведение итогов – 5 мин.

Подведение итогов: преподаватель подводит итог урока, оценивает работу каждого студента с последующей самооценкой студента.

Критерии оценки различных видов работ представлены в Приложении 3

Домашнее задание:

  • Подготовить сообщения о методах программной реализации кодов с проверкой на нечетность и других модификаций корректирующих кодов

Рефлексия:

Студенты по очереди высказываются одним предложением, выбирая начало фразы:

  1. сегодня я узнал…

  2. было интересно…

  3. было трудно…

  4. я выполнял задания…

  5. я понял, что…

  6. теперь я могу…

  7. я приобрел…

  8. я научился…

  9. у меня получилось …


Приложение 1

Лабораторная работа

Корректирующие коды. Коды Хэмминга


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


Кодом называется система условных знаков (символов) для передачи, обработки и хранения (запоминания) различной информации.

Предметом исследования теории кодирования являются отображения конечных или счетных множеств объектов произвольной природы в множества последовательностей из цифр 0, 1,…r-1, где r – некоторое целое положительное число (в частности, r = 2). Такие отображения называются кодированиями.


Большинство задач теории кодирования укладывается в следующую схему:

Для заданного множества объектов рассматривается класс кодирований, обладающих определенными свойствами. Требуется построить кодирование из рассматриваемого класса, оптимальное в некотором заранее заданном смысле. Обычно критерий оптимальности кодирования так или иначе связан с минимизацией длин кодов, в то время как требуемые свойства кодирований могут быть весьма разнообразными. Среди таких свойств:

  • существование однозначного обратного отображения (декодирования),

  • возможность исправления при декодировании ошибок различного типа,

  • возможность простой реализации (простота алгоритма) кодирования и декодирования и т.п.


Некоторые виды преобразований двоичных слов, называемых ошибками:


  1. Одиночная ошибка вида 01 (10) в слове X - замещение символа,

  2. Одиночная ошибка вида 0 (1) в слове X - удаление одного из символов 0 (соответственно 1)

  3. Одиночная ошибка вида 0 (1) - вставка символа перед некоторым символом слова или после его последнего символа

  4. Одиночная ошибка вида +2i (-2i) в слове X Вn, где 0 i


Для иллюстрации в таблице 1 приведены слова, полученные из слова 0001101 (двоичная запись числа 13) в результате ошибок рассматриваемых видов.


Таблица 1


Вид ошибки

Место ошибки

Слово, полученное в результате ошибки

Примечание

0 1

2 символ

0101101


1 0

5 символ

0001001


0

2 символ

001101


1

5 символ

000101


0

между 2 и 3 символами

00001101


1

между 2 и 3 символами

00101101


+22


0010001

13+4 = 17

-22


0001001

13-4 = 9


Далее мы будем рассматривать только случай одиночной ошибки типа замещения.


Способы контроля правильности передачи данных. Код с проверкой на четность

Контроль целостности информации при передаче от источника к приемнику может осуществляться с использованием корректирующих кодов.

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


Пример 1. Рассмотрим код с проверкой на четность, образованный добавлением контрольного разряда к простому двоичному коду:



Информационные разряды

Контрольный разряд

0

000

0

1

001

1

2

010

1

3

011

0

4

100

1

5

101

0

6

110

0

7

111

1


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

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


Возможно экономное помехоустойчивое кодирование. Идея таких методов заключается в следующем:

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

Н(Х) представляет собой вектор длины k, полученный в результате сложения векторов, являющихся двоичными записями (с помощью k цифр) номеров единичных символов слова X.


Теорема. Код Хэмминга Hn, состоящий из всех слов X = х1х2...хn Вn таких, что

Н(Х) = (0,0,…,0),

является кодом с исправлением одного замещения.


Примечание: при вычислении функции Н(Х) вычисляется сумма по модулю 2 двоичных номеров строк, в которых знак сообщения Х равен единице.



Р.Хэммингом предложен способ кодирования, обеспечивающий простое и удобное декодирование.

N-значный код Хэмминга имеет m информационных и k контрольных разрядов.

Число контрольных разрядов должно удовлетворять соотношению


k log2(n+1),

откуда m n - log2(n+1)


Для этого кодируемое слово X длины m дополняется k контрольными разрядами, которые определенным образом рассчитываются при кодировании, и полученное сообщение Х состоит из m информационных и k контрольных позиций.

Для контрольных разрядов отводятся 1-й, 2-й, 4-й, 8-й и т.д., номера которых являются целыми степенями числа 2: их двоичные представления содержат ровно одну единицу. На остальные места: 3, 5, 6, 7, 9, 10,... помещают символы кодируемого слова X.




Рассмотрим пример построения кода Хэмминга в следующей задаче:


Для заданного сообщения Х = 0110101 построить код Хэмминга Х. Внести одиночную ошибку замещения и произвести декодирование.


Решение:


  1. Построение кода Хэмминга


№ п/п

Алгоритм

Конкретное соответствие задания алгоритму

1

Подготовить строку для сообщения Х, отводя места с номерами, равными 2k , для контрольных символов, а остальные разряды – для информационных символов сообщения Х

Разряды 1, 2, 4, 8 – контрольные;

Разряды 3, 5, 6, 7, 9, 10, 11,… - информационные



Рис. 1.Подготовка строки для сообщения


2

Разместить знаки сообщения Х в информационных разрядах


Рис. 2. Размещение знаков сообщения в информационных разрядах








3

Построить таблицу с двоичными номерами разрядов и внести в информационные разряды знаки сообщения Х











Рис. 3. Построение таблицы с информационными знаками


4

Для каждого из контрольных разрядов с номером 2k определить строки, формирующие контрольные знаки кода Х:

  1. информационный знак кода Х равен 1;

  2. в двоичном представлении номера строки k-й разряд равен 1.








Рис. 4. Расчет контрольных знаков кода


В таблице выделены жирным шрифтом единицы в тех строках, в которых значение исходного сообщения равно1 (строки 3, 6, 9, 10)


5

Вычислить значения контрольных разрядов

Контрольные символы p1, p2, p4, p8 вычисляются следующим образом:

рi равно сумме по модулю 2 тех информационных символов, номера которых имеют единицу в двоичном представлении там же, где и номер рi, т.е. в i-ом разряде справа: p1 - в 1-ом разряде, p2 - во 2-ом, p4 - в 3-ем, p8 – в 4-ом.


6

Объединяя информационные и контрольные разряды, получить искомое сообщение Х



Рис. 5. Получен код Х


Построенное закодированное по Хэммингу сообщение Х = 01100101110 (списано снизу вверх поразрядно)



  1. Проверка кодирования. Проверка четности


7

Проверим правильность кодирования, вычислив значение H(X)


Выпишем в столбец двоичные номера строк, в которых знак сообщения Х равен единице. Сумма по модулю 2 знаков номеров в каждом разряде должна быть равной 0.


Рис. 6. Проверка четности



  1. Внесение ошибки. Исправление ошибки


8

Внести ошибку замещения в один из разрядов и произвести декодирование

Пусть при передаче сообщения Х произошла ошибка замещения в 7-ом разряде, т.е. полученное сообщение

Х = 01101101110

Вычислим значение H(Х):

  1. Выпишем в столбец двоичные номера строк, в которых знак сообщения Х равен единице.


  1. Суммируем по модулю 2 знаки номеров в каждом разряде:

Рис. 7. Проверка на наличие ошибки


Полученное двоичное число 0111 равно номеру разряда 7, в котором произошла ошибка.

Заменяя в сообщении Х значение 7-го разряда на противоположное, восстанавливаем Х; вычеркивая из Х проверочные разряды, получаем искомое сообщение Х.




Самостоятельно решить задачи:

  1. Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

а) Х = 11001010 (i = 6) б) Х = 10110011 (i = 4)

в) Х = 00110101 (i = 9) г) Х = 11101001 (i = 10)

д) Х = 1010011 (i = 5)


  1. Принят некоторый код, проверить правильность кода, при необходимости исправить ошибку. Выполнить декодирование, получить исходное сообщение Х

а) принят код 111100

б) принят код 111010

в) принят код 100000


Примечание: при решении задач используйте справочный материал к работе, оформите решения средствами MS Excel или MS Word.


Выполните конспект работы в тетради.



Контрольные вопросы:

  1. Охарактеризуйте понятие «корректирующий код»

  2. Приведите алгоритм построения кода Хэмминга

  3. К какому виду кодирования относится метод Хэмминга?

  4. Поясните алгоритм вычисления функции H(X)

  5. Каким образом можно установить наличие ошибки в сообщении Х? Как определить место ошибки?

  6. Какие ошибки можно исправить с помощью кода Хэмминга?



Справочный материал к лабораторной работе


  1. Восьмеричная система счисления


Для представления одной цифры восьмеричной системы используется три двоичных разряда (триада):


Цифра

0

1

2

3

4

5

6

7

Триада

000

001

010

011

100

101

110

111



  1. Шестнадцатеричная система счисления


Для представления одной цифры шестнадцатеричной системы используется четыре двоичных разряда (тетрада):


Цифра

0

1

2

3

4

5

6

7

Тетрада

0000

0001

0010

0011

0100

0101

0110

0111

Цифра

8

9

А

В

С

D

E

F

Тетрада

1000

1001

1010

1011

1100

1101

1110

1111


  1. Основные логические операции


ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)

Отличается от обычного ИЛИ последней строкой в таблице истинности:


А

В

А  В


А

В

А XOR B

0

0

0


0

0

0

0

1

1


0

1

1

1

0

1


1

0

1

1

1

1


1

1

0


Схема ИСКЛЮЧАЮЩЕЕ ИЛИ соответствует «сложению по модулю 2» и представлена на рис. 1.

Рис. 8 Схема ИСКЛЮЧАЮЩЕЕ ИЛИ

Приложение 2

Решения задач лабораторной работы


  1. Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

а) Х = 11001010 (i = 6) б) Х = 10110011 (i = 4)

в) Х = 00110101 (i = 9) г) Х = 11101001 (i = 10)

д) Х = 1010011 (i = 5)







Решение №1 (а):

Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

а) Х = 11001010 (i = 6)



  1. Размещение знаков сообщения в информационных разрядах


Рис. 9. Первый этап решения: информационные знаки



  1. Вычисление контрольных разрядов


Рис. 10. Вычисление контрольных знаков





  1. Построенный код Х = 110001011001


  1. Проверка четности. Вычисление Н(Х)


Рис. 11. Проверка четности



  1. Ошибка в разряде 6: Х = 110001111001


6. Проверка кода:


Рис. 12. Проверка кода


7. Замена знака в разряде 6; получение сообщения Х = 110001011001; удаление контрольных знаков, получение Х = 11001010








Решение №1 (б):

Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

б) Х = 10110011 (i = 4)





  1. Размещение знаков сообщения в информационных разрядах


Рис. 13. Первый этап решения: информационные знаки


  1. Вычисление контрольных разрядов


Рис. 14. Вычисление контрольных знаков


3. Построенный код Х = 101110010101


  1. Проверка четности. Вычисление Н(Х)


Рис. 15. Проверка четности


  1. Ошибка в разряде 4: Х = 101110011101





6. Проверка кода:


Рис. 16. Проверка кода




7. Замена знака в разряде 4; получение сообщения Х = 101110010101; удаление контрольных знаков, получение Х = 10110011


Решение №1 (в):

Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

в) Х = 00110101 (i = 9)



  1. Размещение знаков сообщения в информационных разрядах


Рис. 17. Первый этап решения: информационные знаки



  1. Вычисление контрольных разрядов


Рис. 18. Вычисление контрольных знаков



3. Построенный код Х = 001100101110


  1. Проверка четности. Вычисление Н(Х)


Рис. 19. Проверка четности



5. Ошибка в разряде 9: Х = 001000101110




6. Проверка кода:


Рис. 20. Проверка кода





7. Замена знака в разряде 9; получение сообщения Х = 001100101110; удаление контрольных знаков, получение Х = 00110101



Решение №1 (г):

Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

г) Х = 11101001 (i = 10)



  1. Размещение знаков сообщения в информационных разрядах


Рис. 21. Первый этап решения: информационные знаки



  1. Вычисление контрольных разрядов


Рис. 22. Вычисление контрольных знаков



  1. Построенный код Х = 111011000101


  1. Проверка четности. Вычисление Н(Х)


Рис. 23. Проверка четности



5. Ошибка в разряде 10: Х = 110011000101





6. Проверка кода:


Рис. 24. Проверка кода



7. Замена знака в разряде 10; получение сообщения Х = 111011000101; удаление контрольных знаков, получение Х = 11101001






Решение №1 (д):

Построить код Хэмминга Х для заданного сообщения Х. Внести одиночную ошибку замещения в i-й разряд и, произведя декодирование, подтвердить место ошибки:

д) Х = 1010011 (i = 5)




  1. Размещение знаков сообщения в информационных разрядах


Рис. 25. Первый этап решения: информационные знаки



  1. Вычисление контрольных разрядов


Рис. 26. Вычисление контрольных знаков




3. Построенный код Х = 10100011100


  1. Проверка четности. Вычисление Н(Х)


Рис. 27. Проверка четности



5. Ошибка в разряде 5: Х = 10100001100


6. Проверка кода:


Рис. 28. Проверка кода



7. Замена знака в разряде 5; получение сообщения Х = 10100011100; удаление контрольных знаков, исходное сообщение Х = 1010011





Решение задачи №2



Принят некоторый код, проверить правильность кода, при необходимости исправить ошибку. Выполнить декодирование, получить исходное сообщение Х

А) принят код 111100

Б) принят код 111010

В) принят код 100000


Решение №2 (а)


Принят некоторый код, проверить правильность кода, при необходимости исправить ошибку. Выполнить декодирование, получить исходное сообщение Х

А) принят код 111100


  1. Размещение знаков сообщения в информационных разрядах


Рис. 29. Запись разрядов кода



2. Проверка четности. Вычисление Н(Х)


Рис. 30 Проверка четности



  1. Замена знака в разряде 4, отправленный код


Рис. 31. Отправленный код


  1. Определение контрольных разрядов, удаление контрольных разрядов из кода, исходное сообщение Х = 111



Решение №2 (б)


Принят некоторый код, проверить правильность кода, при необходимости исправить ошибку. Выполнить декодирование, получить исходное сообщение Х


Б) принят код 111010


  1. Размещение знаков сообщения в информационных разрядах


Рис. 32. Запись разрядов кода



2. Проверка четности. Вычисление Н(Х)


Рис. 33 Проверка четности



  1. Замена знака в разряде 5, отправленный код


Рис.34. Отправленный код


  1. Определение контрольных разрядов, удаление контрольных разрядов из кода, исходное сообщение Х = 100





Решение №2 (в)


Принят некоторый код, проверить правильность кода, при необходимости исправить ошибку. Выполнить декодирование, получить исходное сообщение Х


В) принят код 100000


  1. Размещение знаков сообщения в информационных разрядах


Рис. 35. Запись разрядов кода



2. Проверка четности. Вычисление Н(Х)


Рис. 36. Проверка четности



  1. Замена знака в разряде 6, отправленный код


Рис.37. Отправленный код


  1. Определение контрольных разрядов, удаление контрольных разрядов из кода, исходное сообщение Х = 000






Приложение 3

Критерии оценки различных видов работ


Актуализация знаний

Решение задач

Защита работы по контрольным вопросам


Максимальный балл – 5

За дополнение - 1


Максимальный балл (решены верно 2 задачи) - 5

Решение задачи №2 не закончено, но студент может рассказать ход и методы решения – 4

Решена 1 задача, контрольные вопросы – 4

Конспект работы в тетради, записана рассмотренная задача – 3


Представление решения задачи на демонстрационном экране - 5

Защита работы на ПК - 5

Защита работы (обсуждение по вопросам) – 4

За дополнение - 1


В результате выводится средняя оценка каждому студенту.

Дополнительное задание оценивается отдельно, студент получает вторую оценку на занятии.



30