Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АПКС.docx
Скачиваний:
16
Добавлен:
19.02.2016
Размер:
1.28 Mб
Скачать

Національний авіаційний університет

Інститут інформаційно-діагностичних систем

Кафедра безпеки інформаційних технологій

РОЗРАХУНКОВО ГРАФІЧНА робота

(пояснювальна записка)

з дисципліни: “Алгоритмічне проектування криптосистем”

Виконала: студентка 532 групи ІКІТ Лукієнко Н.А.

Керівник: доцент Тимошенко М.П.

Київ 2013

НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ

Інститут інформаційно-діагностичних систем

Кафедра безпеки інформаційних технологій

ЗАВДАННЯ

на виконання розрахунково графічної роботи

Тема: Разработка программного VHDL проекта криптографического процессора текстовой информации в среде Active-HDL

Виконала: ___________________/ студентка 532 групи ІКІТ Лукієнко Н.А.

Керівник: __________________/ к.д.н. доц. Тимошенко М.П.

Тема: Разработка программного VHDL проекта криптографического процессора текстовой информации в среде Active-HDL

Цель работы:

  1. Изучить приемы метода программного проектирования электронных технических средств защиты информации на языке VHDL.

  2. Изучить приемы проектирования и моделирования работы программных проектов криптопроцессоров в среде Active HDL 8.1.

Объём часов на выполнение: 8 часов.

Задание на выполнение работы:

    1. Процессор должен шифровать текстовую информацию заданного объёма представленную символами ASII. Текстовая информация долж­на содержать фамилию, имя, отчество студента, номер группы (остав­шаяся часть может быть произвольной). Пример шифруемой текстовой информации:

Gornostajev Ivan Petrovich grupa 519!!! Произвольная часть: Maman hello is!! / \ \

    1. Исходная текстовая информация в процессоре должна храниться в созданном Вами файле ОС, читаться из файла и затем перезаписывать­ся в массив объявленный в программном проекте.

    2. Используемый метод шифрования информации выбирается в со­ответствии с таблицей № 1: ( Смотри таблицу № 1)

    3. Зашифрованный код символа в формате std_logic_vector должен на выходной порт.

    4. Дешифрованный код символа в формате character должен пере­сылаться на выходной порт, а также должен быть записан в созданный Вами файл ОС.

    5. После разработки и успешной компиляции VHDL проекта, построить, используя Waveform Editor, временную диаграмму работы проекта и, используя модуль Simulator, промоделировать работу проекта. Убедиться в правильности получения дешифрованной текстовой ин­формации.

Руководящие материалы для разработки проекта процессора:

      1. Материалы лекций.

      2. Созданные Вами VHDL проекты при выполнении лабораторных работ.

      3. Описание языка VHDL и учебные VHDL проекты, содержаться в файле VHDL_TUTORIAL3.doc

      4. Примеры учебных VHDL проектов можно также найти в папке Labor.

Форма Отчетности:

        1. Составить отчет, оформленный в соответствии ГОСТ в котором должны присутствовать следующие разделы:

  • Титульный лист с указанием Темы;

  • Цель работы;

  • Задание на проектирование;

  • Краткие теоретические сведения о языке VHDL;

  • Блок-схема алгоритма функционирования проекта;

  • VHDL проект криптографического процессора;

  • Временная диаграмма работы процессора;

  • Выводы по работе;

  • Список литературы;

  1. Защитить расчетно-графическую работу до 15 декабря 2013 года.

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

ПОРЯДОК ВИКОНАННЯ РОБОТИ

VHDL является аббревиатурой термина VHSIC (сверхбыстродействую­щая интегральная схема -Very High Speed Integrated Circuits) и термина Hard­ware Description Language (Язык Описания Аппаратных средств). В середине 1980-х годов американское Министерство обороны и институт IEEE спонти­ровали разработку этого языка описания цифровой аппаратуры с целью полу­чить простые методы проектирования сверхбыстродействующих ИС. Он стал теперь одним из стандартных промышленных языков, который широко ис­пользуется для описания работы цифровых систем. Другой широко исполь­зуемый язык описания цифровой аппаратуры это язык Verilog. Оба эти мощ­ные языки позволяют описывать и имитировать работу сложных цифровых систем.

Третьим представителем языков HDL является язык - ABEL (Advanced Boolean Equation Language - Расширенный Язык Boolean Уравнений), который был целенаправленно разработан для создания проектов цифровых уст­ройств посредством Программируемых Логических Устройств (PLD - Pro­grammable Logic Devices). Язык ABEL менее мощен, чем другие два языка и менее популярен в промышленности. Это справочное пособие содержит ос­новные положения языка VHDL, которые определенны в стандарте IEEE 1076-1993.

Хотя язык VHDL внешне выглядит, как и другие языки традиционные программирования (имеет в своей конструкции литералы, разделители, опе­раторы и т.д.) он имеет некоторые важные отличительные характеристики.

Основные характеристики языка:

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

  • Каждый автономный проектируемый модуль (субблок проектируемо­го цифрового устройства) имеет:

  • четкий интерфейс для того, чтобы соединяться с другими модуля­ми;

  • точную спецификацию внутреннего устройства проектируемого модуля описывающую концепцию функционирование модуля.

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

  • Использование событийного принципа управления при моделиро­вании алгоритма работы проекта.

Моделирование Протекания параллельных процессов (Concurrency Process) в электрических схемах, временной анализ (timing) сигналов и их па­раметров, синхронную и асинхронную схем электрических- принципиальных цифровых устройств.

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

  • Используя VHDL, Вы можете проектировать, имитировать (моде­лировать) и синтезировать практически любое цифровое устройство, начиная от простой комбинационной схемы до законченной микропроцессорной сис­темы на СБИС.

Перечисленные выше возможности языка VHDL поддерживают такие его средства:

  • Библиотеки, пакеты;

  • Проекты: интерфейс (entity) проекта, архитектура (architecture) проекта;

  • Подпрограммы: подпрограммы-функции, подпрограммы процедуры;

  • Скалярные типы данных: перечисления, числовые, физические;

  • Программные объекты данных: константы, переменные, сигналы, порты, идентификаторы;

  • Математические операции: логические, отношений (сравнения), арифметические;

  • Программные операции: назначения значений сигналам, присвое­ния значений переменным, связывания портов и сигналов;

  • Математические выражения: логические, алгебраические, логико-алгебраические;

  • Операторы объявления (Операторы декларации) программных объектов;

  • Операторы комбинаторной логики: простого назначения значения сигналу, условного назначения значения сигналу, селективного назначения значения сигналу, оператор process, оператор внедрения (реализации) компо­нента, оператор generate;

  • Операторы регистровой логики: оператор process, простого назна­чения значения сигналу, оператор условной передачи управления, оператор цикла, оператор выбора;

  • В противоположность процедурным языкам программирования, которые обеспечивают способы для вычисления значений абстрактных данных и управления ими, язык VHDL описывают цифровую систему, учитывая ее многогранность (многоплановость), поведение, структуру, функциональ­ные свойства, физические свойства, а также взаимодействуют со специ­альной аппаратурой физически реализующей проект цифровой системы в СБИС.

Обычно для создания аппаратной реализации проекта цифрового устройства приходится выполнять такие этапы.

  1. Разработка Иерархической блок-схема проекта. Выяснение базо­вого конструктивно-технологического метода и стандартных блоков на уров­не структурной схемы.

Большие логические проекты являются обычно иерархическими и VHDL дает Вам хорошую структуру {каркас} для того, чтобы определить мо­дули (субпроекты) и их интерфейсы.

  1. Программирование{Кодирование}. Запись VHDL кода для модулей, их интерфейсов.

  2. Компиляция (Трансляция). Анализ общего кода (программы) ваше­го VHDL проекта для выявления синтаксических ошибок и проверка его на предмет совместимости с другими модулями, которые содержатся в его структуре. Трансляция также создает внутреннюю информацию о структуре проекта, которая необходима для моделирования его работы.

  3. Моделирование (Имитация). Имитация позволяет Вам определить и применить входные воздействия к вашему проекту и наблюдать выходную реакцию. Имитация - часть большего шага, называемого проверкой функцио­нальной работоспособности (verification ) проекта. Функциональный кон­троль выполняется, для того чтобы проверить логику работы Вашего проекта без учета временных соотношений и задержек распространения сигналов на логических элементах.

  4. Синтез. Преобразование VHDL описания в набор примитивов или ло­гических элементов, которые могут быть ассемблированы в конкретной тех­нологии.

  5. Компоновка/Монтаж и Маршрутизация (Fitting / Placement & Routing ). Это отображение проекта на карте синтезирующих элементов со­держащихся в СБИС.

  6. Временной анализ. Это стадия, получения фактических задержек реализованного в СБИС цифровой схемы проекта, вследствие длинных со­единений, электрических нагрузок, и других известных факторов.

Как говорилось выше, хотя язык VHDL внешне выглядит, как и другие языки программирования (имеет в своей конструкции литералы, разделители, операторы и т.д.) он имеет некоторые важные отличия на которых следует особо остановиться. Аппаратный язык описания VHDL по существу является языком параллельного программирования, то есть в его конструкции существуют команды (операторы), которые соответствуют логическим вентилям. Эти команды выполняются (вычисляются) по параллельному принципу. Суть этого принципа состоит в том, что как только сигнал, содержащийся в описа­нии проектируемого цифрового устройства, изменяет свое значение (как только свершается событие на сигнале), то все операторы принимающие уча­стие в его обслуживании запускаются мгновенно на исполнение и в один и тот же момент времени выдают конечный результат. Программа, написанная на HDL языке, имитирует физическое поведение систем (обычно цифровых систем) сигналы, в которой распространяются мгновенно. Такая программа позволяет также формировать временную спецификацию (время задержки распространения сигнала на логическом элементе), а так же как описывать систему как соединение различного рода компонент (components) и функцио­нальных блоков.

Базовая структура VHDL файла (Basic Structure of a VHDL file)

Проект любого цифрового устройства на языке VHDL это прежде всего программа, которая содержит в своей конструкции ключевые и зарезер­вированные слова. Эти слова не могут использоваться как имена сигналов или как идентификаторы. Ключевые слова, зарезервированные слова и опреде­ляемые пользователем идентификаторы - нечувствительны к регистру (case insensitive). Строки с комментариями в VHDL программе начинаются с двух смежных дефисов (-) и игнорироваться компилятором. VHDL компиля­тор также игнорирует концы строк и пустые пространства. VHDL - это язык со строгим контролем типов (is a strongly typed), который подразумевает, что каждая используемая в проекте программная величина (константа, пере­менная, сигнал) всегда должна иметь тип. В объявлении каждой программной величины (программного объекта данных) тип (Туре) определяет ее инфор­мационные характеристики, допустимые числовые значения программного объекта и допустимые операции над ним. Кроме того, согласно требованию строгого контроля типов в языке VHDL запрещено напрямую (без дополни­тельных конвертирующих преобразований) выполнять операции над про­граммными объектами данных разных типов.

В языке VHDL (как и в классических языках программирования) из ключевых, зарезервированных слов и других лексических элементов строят­ся

образования, которые принято называть операторами. Оператором в язы­ке VHDL считается любая запись, начинающаяся с ключевого слова и заканчивающаяся символом точка с запятой.

В языке VHDL операторы, с точки зрения их функционального программного назначения (как при поведенческой, так и при структурной методо­логии описания проектов) приято делить на 2 группы:

  • Декларирующие операторы (Операторы объявления программных объектов, программных объектов данных, типов программных объектов данных)',

  • Выполняемые операторы.

С точки зрения конструктивного устройства операторы обеих групп принято подразделять на 2 класса:

  • Простые (однострочные) операторы; (Простой оператор пред­ставляет собой текстовую запись, располагающуюся, как правило, на одной строку, которая не содержит в своем составе других операторов)

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

Ход работы

Исходный текст:

Информация для шифрования:

Lukienko_Natasha_Anatoliivna_5kurs_kafedra_bezopasnosti_informatsionnih_ tehnologiyN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Информация для шифрования и ее представление кодах ASCI (HEX): 47 6е 61 74 65 6е 6Ь 6f 5f 53 65 72 67 69 79 5f 4f 6c 65 6b 73 61 6e 64 72 6f 76 69 63 68 5f 35 6b 75 72 73 5f 6b 61 66 65 64 72 61 5f 62 65 7a 6f 70 61 73 6e 6f 73 74 69 5f 69 6e 66 6f 72 6d 61 74 73 69 6f 6e 6e 69 68 5f20 74 65 68 6e 6f6c 6f 67 69 79 4e 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 2. 2. Базовая операция, применяемая для шифрования информации:

СШ на основе одноразового блокнота (квадрат Виженера)

Пусть ключом у нас будут первые буквы ФИО:

42 6f 64 а длинна этого ключа будет 32 бит

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

CONV- конвертирующая функция из

  • STD_LOGIC_VECTOR в BIT_VECTOR

  • BIT_VECTOR в STD_LOGIC_VECTOR

  • STD_LOGIC_VECTOR в CHARACTER

  • CHARACTER в STD_LOGIC_VECTOR

  • STD_LOGIC_VECTOR в INTEGER

CONV8 - конвертирующая функция из INTEGER в

STD_LOGIC_VECTOR

Функции конвертации содержаться в отдельном файле CONVERTfunc.vhd