Защита информации

Характеристика методов сжатия информации и понятие оптимального кодирования (метод Хаффмана). Специфика повышения эффективности и принципы помехоустойчивого кодирования. Разновидности помехоустойчивых кодов и особенности алгоритмов вычисления CRC.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 05.06.2015
Размер файла 631,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Рассмотренный алгоритм вычисления значения CRC называется прямым и чаще всего реализуется аппаратно. Очевидный недостаток прямого метода - большое количество операций сдвига, операций XOR и операций условного перехода, которые выполняются для каждого бита исходного сообщения. Поэтому на практике используются иные способы расчета CRC, например, табличный способ. Подобные способы в рамках данного курса не рассматриваются.

Лекция 9. Код Хэмминга

Данный код позволяет исправлять однократную ошибку в передаваемом сообщении. Под однократной понимается ошибка, возникающая только в одном из битов сообщения. Код Хэмминга не способен исправлять ошибки большей кратности - для исправления таких ошибок существуют более сложные способы кодирования (коды БЧХ, коды Рида-Соломона и другие). В то же время код Хэмминга достаточно быстрый, и его целесообразно использовать в тех случаях, когда ошибки при передаче данных возникают, по статистике, не чаще одного раза на передаваемое сообщение.

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

Пусть вся передаваемая информация разбивается на блоки размером N бит. Значение N обычно берется не менее 8, что соответствует одному байту. Если качество канала передачи информации хорошее (в среднем одна ошибка на 100 бит и реже), то N может быть увеличено до 32 и больше, то есть компьютер может пытаться за один раз передать блок в 32 бита и только потом проверить - возникла ошибка или нет. Если качество канала невысокое и ошибки возникают часто, значение N следует уменьшать. Величина N не обязательно должна быть кратна степени двойки.

Рассмотрим пример кодирования сообщения длиной N=10. Пусть задано следующее сообщение:

10

9

8

7

6

5

4

3

2

1

1

1

1

0

1

1

0

1

0

1

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

1. На первом шаге алгоритма необходимо «внедрить» в кодируемое сообщение специальные добавочные биты. Такие биты всегда ставятся в разряды, номера которых кратны степени двойки. Такими разрядами являются первый, второй, четвертый, восьмой, шестнадцатый и т.д.

После внедрения добавочных разрядов наше сообщение принимает следующий вид:

14

13

12

11

10

9

8

7

6

5

4

3

2

1

1

1

1

0

1

1

0

1

0

1

Здесь добавочные биты показаны закрашенными клетками. Пока значения добавочных битов не определены. Очевидно, что добавочные биты «разрывают» передаваемое сообщение, причем относительный порядок битов исходного сообщения сохраняется. Также можно заметить, что длина сообщения увеличилась до 14 битов.

2. Теперь сформируем значения добавочных битов. Здесь мы будем использовать не только значения разрядов сообщения, но и номера разрядов (точнее, их двоичное представление). Например, самый старший разряд имеет номер 1410 = 11102, самый младший разряд - номер 110=00012. Если бы у самого старшего разряда был номер 2510=110012, то номер самого младшего разряда также обозначался бы пятиразрядным двоичным кодом 000012. Таким образом, разрядность двоичного представления номеров разрядов одинакова для всех разрядов кодируемого сообщения.

Выполним следующее. Выпишем в столбик двоичные номера всех разрядов, содержащих единичные значения битов. В нашем примере это будут разряды с номерами 14, 13, 12, 10, 9, 6, 3.

Разряд

14

1

1

1

0

13

1

1

0

1

12

1

1

0

0

10

1

0

1

0

9

1

0

0

1

6

0

1

1

0

3

0

0

1

1

Между всеми разрядами каждого столбика выполним операцию сложения по модулю 2. Визуально это можно сделать следующим образом: если число единиц в столбце четное - результат равен нулю, нечетное - единице. В результате для каждого из столбцов мы получим один бит результата:

Результат:

1

0

0

1

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

1

0

0

1

14

13

12

11

10

9

8

7

6

5

4

3

2

1

1

1

1

0

1

1

1

0

1

0

0

1

0

1

Данное сообщение готово к передаче по каналу связи. Предположим, что в процессе передачи бит № 11 был передан с ошибкой: вместо переданного нуля была принята единица:

14

13

12

11

10

9

8

7

6

5

4

3

2

1

1

1

1

1

1

1

1

0

1

0

0

1

0

1

Компьютер, принимающий сообщение, ничего не знает о том, была ли ошибка, и если была - то в каком разряде. Тем не менее, он делает те же самые действия, что делались для получения значений добавочных битов. Сделаем эти действия вручную.

В столбик записываем двоичные номера всех разрядов, равных единице (включая и добавочные разряды):

Разряд

14

1

1

1

0

13

1

1

0

1

12

1

1

0

0

11

1

0

1

1

10

1

0

1

0

9

1

0

0

1

8

1

0

0

0

6

0

1

1

0

3

0

0

1

1

1

0

0

0

1

Можно заметить, что в данной таблице появился одиннадцатый «неправильный» разряд (поскольку он в принятом сообщении равен единице), а также равные единицам добавочные разряды 8 и 1.

Выполняя для каждого столбца операцию сложения по модулю 2, получим следующий результат:

1

0

1

1

Данная комбинация битов представляет собой двоичное значения числа «одиннадцать» и соответствует номеру того разряда, который был передан с ошибкой. Как видим, с помощью кода Хэмминга компьютер, принявший сообщение, смог сам обнаружить ошибку - причем не только факт наличия ошибки, но и точное ее положение в принятом сообщении. Бит - это всегда одно из двух чисел - ноль или единица, поэтому обнаруженная ошибка исправляется элементарно - путем замены значения бита на противоположное. В нашем случае для получения исходного сообщения необходимо сделать два действия:

1) инвертировать одиннадцатый бит;

2) выбросить из сообщения все добавочные биты.

Студентам предлагается самостоятельно выполнить и проанализировать примеры декодирования для следующих ситуаций:

- ошибка произошла в разряде, изначально равном единице;

- ошибка произошла в одном из добавочных разрядов;

- ошибки произошли одновременно в двух разрядах;

- ошибки произошли одновременно в трех разрядах;

Заметим, что если при передаче сообщения ошибки не произошло, то результат сложения по модулю 2 номеров единичных разрядов будет равен нулю (0000). Поскольку мы изначально нумеровали разряды с единицы, а не с нуля, то в принятом сообщении нет разряда с номером ноль. Таким образом, получаемый код «0000» не может быть спутан с номером разряда и однозначно свидетельствует об отсутствии ошибки.

Рассмотренный код Хэмминга позволяет исправить лишь однократную ошибку. При возникновении ошибок в нескольких разрядах возможны ситуации, когда в процессе декодирования будет получена комбинация «0000», говорящая якобы об отсутствии ошибки. Сделать здесь ничего нельзя: при частых ошибках код Хэмминга будет работать неправильно, исправляя ошибки не в тех местах и пропуская ошибочные биты. В таком случае следует использовать более «серьезные» помехозащищенные коды.

Размещено на Allbest.ru

...

Подобные документы

  • Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.

    дипломная работа [1,1 M], добавлен 26.05.2012

  • Описание метода сжатия информации на основе двоичных кодирующих деревьев Хаффмана. Среда разработки Delphi версии 7.0. Понятия объектно-ориентированного программирования. Программа, разработанная в Delphi. Реализация на Delphi метода кодирования Хаффмана.

    курсовая работа [2,1 M], добавлен 26.03.2013

  • Методы компрессии информации. Обзор и характеристика существующих методов сжатия информации, основанных на процедуре кодирования Хаффмена. Алгоритмы динамического кодирования методом FGK и Виттера. Программная реализация и руководство пользователя.

    курсовая работа [33,2 K], добавлен 09.03.2009

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

    курсовая работа [136,2 K], добавлен 15.06.2013

  • Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.

    курсовая работа [212,6 K], добавлен 25.02.2009

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

    курсовая работа [55,8 K], добавлен 23.04.2014

  • Определение среднего количества информации. Зависимость между символами матрицы условных вероятностей. Кодирование методом Шеннона–Фано. Пропускная способность канала связи. Эффективность кодирования сообщений методом Д. Хаффмана, характеристика кода.

    контрольная работа [94,6 K], добавлен 04.05.2015

  • Разработка алгоритма и программы кодирования и декодирования данных кодом Рида-Малера. Понятие избыточных кодов, их применение. Корелляционный код. Особенности построения простых помехоустойчивых кодов Рида-Маллера. Рассмотрение частных случаев.

    курсовая работа [31,9 K], добавлен 09.03.2009

  • Описание и особенности некоторых алгоритмов архивации. Построение кода Хаффмана. Динамический алгоритм построения кода Хаффмана. Обратное восстановление текста. Способы двухступенчатого кодирования информации. Практическая реализация алгоритма LZ77.

    курсовая работа [51,7 K], добавлен 24.12.2012

  • Оценка вычислительной сложности программы. Реализация алгоритма кодирования информации Хаффмана. Кодировка теста двоичным кодом и в дереве Хаффмана. Бинарный код символов. Символ и частота его появления в тексте. Вычисление трудоемкости алгоритма.

    контрольная работа [21,0 K], добавлен 16.12.2012

  • Сущность информации, ее структура и основные компоненты, классификация и разновидности. Методика и назначение обработки и кодирования информации, понятие и виды кодов. Анализ и классификация, использование автоматизированных информационных систем.

    реферат [22,9 K], добавлен 29.09.2009

  • Задачи и постулаты прикладной теории информации. Разновидности помехоустойчивых кодов. Кодирование информации для канала с помехами. Энтропия при непрерывном сообщении. Количественная оценка информации. Условная и взаимная энтропия и ее свойства.

    курс лекций [3,2 M], добавлен 28.04.2009

  • Анализ методов сверточного кодирования. Понятие канала связи и корректирующих кодов, характеристика автомата типа Мура. Особенности сверточного декодирования Витерби. Сущность разработки программного обеспечения системы кодирования сверточным кодом.

    дипломная работа [4,9 M], добавлен 11.03.2012

  • Описание системы кодирования, порядка присвоения кодов единицам информации. Изучение этапов создания классификаторов. Штриховое кодирование и особенности его применения. Юридическая сила документа, полученного из автоматизированной информационной системы.

    презентация [409,6 K], добавлен 25.06.2013

  • Сущность и содержание двоичного кодирования, цели и задачи, этапы реализации данного процесса, оценка его эффективности. Принципы и особенности кодирования чисел и символов, а также рисунков и звука. Используемые методы и приемы, применяемые инструменты.

    презентация [756,5 K], добавлен 29.10.2013

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

    дипломная работа [2,7 M], добавлен 10.09.2011

  • Анализ способов кодирования информации. Разработка устройства кодирования (кодера) информации методом Хемминга. Реализация кодера–декодера на базе ИМС К555ВЖ1. Разработка стенда контроля передаваемой информации, принципиальная схема устройства.

    дипломная работа [602,9 K], добавлен 30.08.2010

  • Представление информации в двоичной системе. Необходимость кодирования в программировании. Кодирование графической информации, чисел, текста, звука. Разница между кодированием и шифрованием. Двоичное кодирование символьной (текстовой) информации.

    реферат [31,7 K], добавлен 27.03.2010

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

    презентация [393,2 K], добавлен 05.04.2012

  • Современные физические и законодательные методы защиты информации. Внедрение системы безопасности. Управление доступом. Основные направления использования криптографических методов. Использование шифрования, кодирования и иного преобразования информации.

    реферат [17,4 K], добавлен 16.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.