Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_ЗИ.doc
Скачиваний:
49
Добавлен:
29.03.2015
Размер:
524.29 Кб
Скачать

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

  1. Охарактеризуйте направление «криптография». Что называют криптографическим ключом?

  2. Проклассифицируйте традиционные алгоритмы шифрования. Кратко охарактеризуйте эти классы.

  3. Охарактеризуйте методы шифрования Цезаря, простую моноалфавитную замену, простую перестановку, перестановки Гамильтона.

  1. Вычисление контрольной суммы сообщения

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

Алгоритм вычисления контрольной суммы

Рассмотрим алгоритм вычисления контрольной суммы (КС).

КСспособ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения еёкода.

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

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

P(x) = 1 * x6 + 0 * x5 + 1 * x4 + 1 * x3 + 0 * x2 + 1 * x1 + 0 * x0

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

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

R(x) = P(x) * xr mod G(x)

(6.1)

где

R(x) — контрольный код многочлена P(x).

P(x) — исходный многочлен.

G(x) — порождающий многочлен.

r — степень порождающего многочлена.

Применим алгоритм к поиску КС, если задано:

Р(х) = 90, х = 2.

Пусть G(x)= 1 * x3 + 0 * x2 + 1 * x1 + 0 * x0 – этот полином скрыт от передачи и не изменен.

r=3, G(x) = 8 + 0 + 2 + 0 = 10. Тогда, согласно формуле получим:

R(x) = 90 * 2r mod 10=90*8 mod 10 = 720 mod 10 = 0.

Продолжим решение и внесем изменение в передаваемую информацию, изменив только один последний бит, получим число 91 (1011011 в двоичной записи) соответствует многочлену следующего вида:

P(x) = 1 * x6 + 0 * x5 + 1 * x4 + 1 * x3 + 0 * x2 + 1 * x1 + 1 * x0

Далее действуем по аналогии с выше рассмотренными действиями. Получим:

Р(х) = 91, х = 2.

Пусть G(x)= 1 * x3 + 0 * x2 + 1 * x1 + 0 * x0

r=3, G(x) = 8 + 0 + 2 + 0 = 10. Тогда, согласно формуле получим:

R(x) = 91 * 2r mod 10=91*8 mod 10 = 728 mod 10 = 8.

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