Формирование программно и аппаратно некриптостойкой квитанции – контрольной суммы CRC

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

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

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

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

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

ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Заочно-вечерний факультет

Кафедра вычислительной техники

Отчет

по контрольной работе

«Сформировать программно и аппаратно некриптостойкую квитанцию - контрольную сумму CRC»

По дисциплине: «Защита информации»

Выполнил: студент группы ЭВМбз-12 Самсонюк О.В.

Проверил: Глухих В.И.

Иркутск 2016

Постановка задачи

1. Построить контроллер контрольной суммы CRC для образующего полинома x8 + x2 + x + 1

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

3. Выполнить проверку квитанции для заданного файла аппаратным методом.

Теория

Квитанция - это сжатый образ (дайджест) блока передаваемых или хранимых данных, представляет собой структуру, имеющую относительно небольшой постоянный объем.

К квитанции предъявляется ряд требований:

- квитанция однозначно отражает содержимое файла.

- квитанция имеет постоянную длину.

- по квитанции не может быть восстановлен квитируемый файл.

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

Основная задача квитанции - защита передаваемых или хранимых данных от непреднамеренных искажений.

Существует множество массивов данных, дающих одинаковые квитанции - так называемые коллизии.

Простейшими примерами квитанций являются различные контрольные суммы:

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

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

- Логическая сумма «по модулю 2» 32- или 16-битных слов, на которые предварительно разбивается сообщение. Используется, например, в TCP/IP.

- Семейство контрольных сумм CRC (cyclic redundancy check «циклический избыточный код») основано на использовании циклических кодов применяемых в помехоустойчивом кодировании. Требует умеренных затрат вычислительных ресурсов.

КОНТРОЛЬНАЯ СУММА CRC

Контрольная сумма CRC (Cyclic Redundancy Check - циклический избыточный код), представляет собой метод выявления ошибок при хранении или передаче данных, но не вносит исправлений при обнаружении ошибок. CRC используется в основном в передаче данных. В методе CRC к передаваемому сообщению добавляется определенное количество контрольных бит, которые часто называют «контрольной суммой». Принимающая сторона, получив сообщение, может с определенной степенью вероятности определить, действительно ли контрольные биты согласуются с принятыми данными. Если произошла ошибка, принимающая сторона посылает обратно отправителю «отрицательный признак» (negative acknowledgement NAK) с просьбой о повторной передаче сообщения.

Отправитель и получатель должны договориться о некотором фиксированном многочлене, называемом «порождающим многочленом».

Программная реализация

контроллер защита квитанция табличный

Для аппаратной реализации необходимо сформировать CRC таблицу.

Код отвечающий за генерацию таблицы:

void TForm1::GenerateCRCTable()

{

for (int i = 0; i < 256; i++)

{

CRCTable[i] = i;

for (int j = 0; j < 8; j++)

{

if (CRCTable[i] & 0x80)

{

CRCTable[i] <<= 1;

CRCTable[i] ^= CRCPoly;

}

else

CRCTable[i] <<= 1;

}

}

}

Описание работы: так как образующий полином имеет степень 8 и будет находиться 256 элементов. Каждый элемент изначально имеет значение равное его порядковому номеру. Затем каждый элемент производит 8 сдвигов влево. Если перед сдвигом старший бит был равен единице, то после сдвига биты соответствующие образующему полиному будут инвертированы.

Часть кода отвечающая за кодирование:

...

unsigned char acc = 0x00;

char word;

...

while(!fileIn.eof())

{

fileIn.get(word);

if(!fileIn.eof())

{

acc = CRCTable[word ^ acc];

fileOut << word;

}

}

fileOut << acc;

...

Порядок вычисления CRC:

1. Предварительная инициализация аккумулятора CRC начальным кодом 0x00.

2. Побитное сложение «по модулю 2» входного байта со старшим байтом содержимого аккумулятора CRC. Получается индекс для адресации значений (слов) в таблице CRC.

3. Заносим значение по полученному индексу в аккумулятор.

4. Пункты 2 - 3 повторяются, пока не будет исчерпан весь файл.

Поскольку конечный код равен 0x00 суммирование с ним после 4 пункта не производится.

Тестирования

Входная информация: 995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A1716

CRC: 4D16

Аппаратная реализация

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

Тестирования

Входная информация: 995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A174D16

CRC: 016

Информация получена без ошибок.

Входная информация: 995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A17995A184D16

CRC: 4116

Информация получена с ошибками.

Список используемой литературы

1. Глухих В.И. Цифровая схемотехника. Технология внутрисхемного программирования. -Иркутск: Изд-во ИрГТУ,2001. -160 с.

2. Антонов А.П. Язык описания цифровых устройств AlteraHDL: Практический курс. - М.: ИП РадиоСофт, 2001. -224 с.

3. Аршинов М. Н., Садовский Л. Е. Коды и математика (рассказы о кодировании). - М.: Наука, 1983. - 144 с.

4. Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. Учебное пособие. - М.: Горячая линия - Телеком, 2001. - 120 с.

5. Белов Е.Б., Лось В.П., Мещеряков Р.В., Шелупанов А.А. Основы информационной безопасности. Учебное пособие для вузов. - М.: Горячая линия - Телеком, 2006. - 544 с.

6. Галатенко В.А. Основы информационной безопасности. Курс лекций. - М.: ИНТУИТ. РУ, 2006. - 205 с.

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


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

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

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

  • Табличный метод вычисления контрольной суммы. Реализация на практике вычисления циклического контрольного кода параллельным и последовательным методами. Аппаратная реализация вычисления CRC в параллельном и последовательном коде, математическое описание.

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

  • Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.

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

  • Классификация основных видов памяти компьютера. Использование оперативной памяти для временного хранения данных, используемых для работы программного обеспечения. Расчет потребления электроэнергии, формирование квитанции для потребителя в Microsoft Excel.

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

  • Разработка программы автоматизации учёта работы почты. Регистрация отправленной корреспонденции, печать квитанции об оплате. Регистрация полученной корреспонденции, ее выдача. Печать извещений для получателей. Формирование сопроводительной ведомости.

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

  • Разработка базы данных для местной телефонной связи Тираспольского филиала Московской академии экономики и права. Анализ объектов и процессов предметной области; инфологическое проектирование; составление отчета-квитанции, описание интерфейса программы.

    отчет по практике [520,1 K], добавлен 22.07.2012

  • Структура заданного исходного файла и структуры данных, соответствующие данным файла. Подпрограмма проверки принадлежности текста к одной из шести кодовых таблиц. Алгоритмы перекодировки файла в cp1251. Алгоритм сортировки записей исходного файла.

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

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

    реферат [14,5 K], добавлен 06.12.2011

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

    курсовая работа [19,0 K], добавлен 30.04.2011

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

    презентация [133,9 K], добавлен 21.06.2014

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