VHDL модель схеми реалізації захищеної передачі даних через послідовний інтерфейс

Процес послідовної передачі даних, режим її здійснення. Типова схема інтерфейсу. Структурна схема модуля шифрування. Розробка генератора псевдовипадкових чисел на основі регістра зсуву з оберненими зв’язками. Симуляція роботи розробленої моделі пристрою.

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

Зміст

Вступ

1. Процес послідовної передачі даних

2. Проектування VHDL моделі схеми реалізації захищеної передачі даних

2.1 Структурна схема модуля шифрування

2.2 Розробка генератора псевдовипадкових чисел на основі регістра зсуву з оберненими зв'язками

3. Симуляція роботи розробленої моделі пристрою

Висновки

Список літератури

Додатки

інтерфейс передача даний шифрування

Вступ

Сучасні комп'ютерні системи для обміну інформації використовують різні канали передачі даних. Одним із широко розповсюджених каналів передачі даних є використання послідовних портів для встановлення доступу до корпоративної мережі, провайдера Інтернет та ін. Проте використання стандартних засобів передачі даних послідовними каналами не завжди забезпечують необхідний рівень захищеності. Тому розробка засобів передачі даних послідовним інтерфейсом із вбудованими функціями потокового шифрування є важливою та актуальною задачею.

Основою потокових шифрів (в основному це системи шифрування даних в режимі реального часу) є генератор псевдовипадкових послідовностей, що генерує гамму шифрування. Запропонований генератор будується на базі регістрів зсуву з оберненими зв'язками.

Процес послідовної передачі ДАНИХ

Послідовна передача даних може здійснюватися в асинхронному чи синхронному режимах. При асинхронній передачі кожному байту передує старт-біт, який подає сигнал приймачу про початок посилки, за яким випливають біти даних і, можливо, біт паритету (парності). Закінчує посилку стоп-біт, що гарантує паузу між посиланнями. На рисунку 1.1 зображено формат асинхронної передачі.

Малюнок 1.1 Формат асинхронної передачі

Старт-біт наступного байта посилається в будь-який момент після стоп-біта, тобто між передавачами можливі паузи довільної тривалості. Біт, має завжди строго визначене значення (логічний 0), забезпечує простий механізм синхронізації приймача по сигналі від передавача. Мається на увазі, що приймач і передавач працюють на одній швидкості обміну.

Внутрішній генератор синхронізації приймача використовує лічильник-дільник опорної частоти, який обнульовується у момент прийому старт-біта. Цей лічильник генерує внутрішні строби, по яких приймач фіксує наступні прийняті біти. В ідеалі строби розташовуються в середині бітових інтервалів, що дозволяє приймати дані і при незначній неузгодженості швидкостей приймача і передавача. Очевидно, що при передачі 8 біт даних, одного контрольного й одного стоп-біту гранично припустиме узгодження швидкостей, при якому дані будуть розпізнані вірно, не може перевищувати 5%.

З обліком фазових неточностей і дискретності роботи внутрішнього лічильника синхронізації реально припустиме менше відхилення година. Чим менше коефіцієнт розподілу опорної частоти внутрішнього генератора (чим вище частота передачі), тим більше погрішність прив'язки стробів до середини бітового інтервалу, і вимоги до погодженості частот стають більш жорсткішими. Чим вище частота передачі, тим більше вплив перекручувань фронтів на фазу прийнятого сигналу. Взаємодія цих факторів приводить до підвищення вимог до погодженості частот приймача і передавача з ростом частоти обміну.

Формат асинхронної посилки дозволяє виявляти можливі помилки передачі. Якщо прийнятий перепад, що сигналізує про початок посиланнями, а по стробу старт-біта зафіксований рівень логічної одиниці, старт-біт вважається помилковим і прийом знову переходить у стан чекання. Про цю помилку приймач може і не повідомляти. Якщо під час, відведений під стоп-біт, виявлений рівень логічного нуля, фіксується помилка стоп-біту. Якщо застосовується контроль парності, то після посилки біт даних передається контрольний біт. Цей біт доповнює кількість одиничних біт даних до парного чи непарних у залежності від прийнятої угоди. Прийом байту з невірним значенням контрольного біта приводить до фіксації помилки. Контроль формату дозволяє виявляти обрив лінії: при цьому приймаються логічний нуль, що спочатку трактується як старт-біт, і нульові біти даних, потім спрацьовує контроль стоп-біт.

Для асинхронного режиму прийнятий ряд стандартних швидкостей обміну: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 і 115 200 біт/с.

Асинхронний обмін у PC реалізується за допомогою Сом-порта з використанням протоколу RS-232C. Послідовний інтерфейс Сом-порт (Communication Port - комунікаційний порт) з'явився в перших моделях IBM PC. Він був реалізований на мікросхемі асинхронного приймача-передавача Intel 8250. Порт мав підтримку BIOS, однак широко застосовувалося (і застосовується) взаємодія з портом на рівні регістрів. Тому у всіх PC-сумісних комп'ютерах для послідовного інтерфейсу застосовують мікросхеми приймачів-передавачів, сумісні з i8250.

Повна схема з'єднання за допомогою інтерфейсу RS-232C приведена на рисунку 1.2. Інтерфейс RS-232C є найбільше широко розповсюдженим стандартним послідовним зв'язком між мікрокомп'ютерами і периферійними пристроями. Інтерфейс, визначений стандартом Асоціації електронної промисловості (EIA), має на увазі наявність устаткування двох видів: термінального DTE і зв'язкового DCE.

Малюнок 1.2 З'єднання по RS-232C нуль-модемним кабелем

Щоб не скласти неправильного представлення про інтерфейс RS-232C, необхідно чітко розуміти розходження між цими видами устаткування. Термінальне устаткування, наприклад мікрокомп'ютер, може посилати і (чи) приймати дані по послідовному інтерфейсі. Воно як би закінчує (terminate) послідовну лінію. Зв'язне устаткування -- пристрою, що можуть спростити передачу даних разом з термінальним устаткуванням. Наочним приклад зв'язного устаткування служить модем (модулятор-демодулятор). Він виявляється сполучною ланкою в послідовному ланцюжку між комп'ютером і телефонною лінією.

Розходження між термінальними і зв'язними пристроями досить розпливчасте, тому виникають деякі складності в розумінні того, до якого типу устаткування відноситься той чи інший пристрій. Розглянемо ситуацію з принтером. До якого устаткування його віднести? Як зв'язати два комп'ютери, коли вони обоє діють як термінальне устаткування. Для відповіді на ці питання варто розглянути фізичне з'єднання пристроїв. Зробивши незначні зміни в лініях інтерфейсу RS-232C, можна змусити зв'язне устаткування функціонувати як термінальне. На рисунку 1.3 зображена типова схема інтерфейсу RS-232C.

Синхронний режим передачі припускає постійну активність каналу зв'язку. Посилка починається із синхронізуючого байту, за яким відразу ж випливає потік інформаційних біт.

Якщо в передавача немає даних для передачі, він заповнює паузу безупинною посилкою байтів синхронізації. Очевидно, що при передачі великих масивів даних, накладені витрати на синхронізацію в даному режимі будуть нижчі, ніж в асинхронному.

Однак у синхронному режимі необхідна зовнішня синхронізація приймача з передавачем, оскільки навіть мале відхилення частот приведе до збою прийнятих даних. Зовнішня синхронізація можлива або за допомогою окремої лінії для передачі сигналу синхронізації, або з використанням само-синхронізуючого кодування даних, при якому на стороні приймача з прийнятого сигналу можуть бути виділені імпульси синхронізації.

У будь-якому випадку синхронний режим вимагає дорогих ліній зв'язку. Для PC існують спеціальні плати - адаптери SDLC (дорогі), що підтримують синхронний режим променя. Вони використовуються в основному для зв'язку з великими машинами (mainframes) IBM і мало поширені. Із синхронних адаптерів у даний час застосовуються адаптери інтерфейсу V.35.

Малюнок 1.3 Типова схема інтерфейсу RS-232C.

На фізичному рівні послідовний інтерфейс має різні реалізації, що розрізняються способом передачі електричних сигналів. Існує ряд родинних міжнародних стандартів: RS-232C, RS-423A, RS-422A і RS-485. На рисунку 1.4 зображено схеми з'єднання приймачів і передавачів, а також показані обмеження на довжину лінії (L) і максимальну швидкість передачі даних (V).

У перерахованих стандартах сигнал представляється потенціалом. Існують послідовні інтерфейси, де інформативний струм, що протікає по загальному ланцюзі передавач-приймач - "токова петля" і MIDI. Для зв'язку на короткі відстані прийняті стандарти без провідного інфрачервоного зв'язку. Найбільше поширення в PC одержав найпростіший з перерахованих - стандарт RS-232C, реалізований Сом-портами. У промисловій автоматиці широко застосовується RS-485, а також RS-422A, які зустрічаються й у деяких принтерах. Існують перетворювачі сигналів для узгодження цих родинних інтерфейсів.

Малюнок 1.4 Стандарти послідовного інтерфейсу

Послідовний інтерфейс для передачі даних використовують одну сигнальну лінію, по якій інформаційні біти передаються друг за другом послідовно. Звідси назва інтерфейсу і порту. Англійські терміни - Serial Interface і Serial Port (іноді їх неправильно переводять як "серійні"). Послідовна передача дозволяє зменшити кількість сигнальних ліній і збільшити дальність зв'язку. Характерною рисою є застосування не ТТЛ сигналів. У ряді послідовних інтерфейсів застосовується гальванічна розв'язка зовнішніх (звичайно вхідних) сигналів від схемної землі пристрою, що дозволяє з'єднувати пристрої, що знаходяться під різними потенціалами.

По способі передачі інформації інтерфейси діляться на паралельні і послідовні. У паралельному інтерфейсі всі біти переданого слова (звичайно байта) виставляються і передаються по відповідним паралельним проводам, що йдуть, одночасно. У PC традиційно і користуються паралельним інтерфейсом Centronics, реалізованим LPT-портами. У послідовному інтерфейсі біти передуються друг за другом, звичайно по одній лінії. Сом-порти PC забезпечують послідовний інтерфейс у відповідності зі стандартом RS-232C.

При розгляді інтерфейсів важливим параметром являється пропускна здатність. Технічний прогрес приводить до неухильного росту обсягів переданої інформації. Якщо раніше матричні принтери, що друкують у символьному режимі, могли обходитися і Сом-портом з невисокою пропускною здатністю, то сучасним лазерним принтерам при високому дозволі не вистачає і продуктивності найшвидших LPT-портів.

Для послідовних інтерфейсів, звичайно ж, є свої проблеми підвищення продуктивності, але, оскільки в них використовується менше число (у межі - одна), підвищення пропускної здатності ліній зв'язку обходиться дешевше. Може, хто-небудь ще пам'ятає інтерфейс каналу ЄС ЕОМ (два пучки коаксіальних кабелів товщиною в руку) і бачив кабель - ці
інтерфейси (паралельний і послідовний) мають при розмірно-однакову пропускну здатність.

З появою шин USB і FireWire у якості характеристики інтерфейсу стала фігурувати і топологія з'єднання. Для інтерфейсів RS-232C і Cenbronics практично усі застосовувалася двоточкова топологія PC - пристрій (чи PC - PC). Виключеннями з цього правила є різні пристрої безпеки і захисту даних (Security devices), що підключаються до СОМ - чи LPT-портів, але мають рознімання для підключення зовнішнього пристрою.

Оскільки ці пристрої для традиційної периферії прозорі, можна вважати, що вони не порушують загального правила. Аналогічно обстоїть справа і з адаптера - між локальних мереж (наприклад, Paraport) і зовнішніх дискових нагромаджувачів (lomega Zip), що підключаються до LPT-портів. Хоча розроблювальні стандарти для паралельного порту (IEEE 1284.3) і передбачають з'єднання пристроїв у ланцюжок (Daisy Chain) чи через мультиплексові, широкого поширення такі способи підключення поки не одержали.

До іншого класу виключень відноситься побудова моноканалу на Сом-портах, що кілька років назад застосовувалося в "аматорських" локальних мережах, але було витиснуто істотно більш ефективною і дешевшою технологією Ethernet. Інтерфейсні шини USB і FireWire реалізують деревоподібну топологію, у якій зовнішні пристрої можуть бути як доконечними, так і проміжковими (розділювачами). Ця топологія дозволяє підключать безліч пристроїв до одного порту USB чи FireWire.

USB (Universal Serial Bus -- універсальна послідовна шина) є промисловим стандартом розширення архітектури PC, орієнтованим на інтеграцію з телефонією і пристроями побутової електроніки. Версія 1.0 була опублікована в січні 1996 року. Архітектура USB визначається наступними критеріями:

легко реалізоване розширення периферії PC та дешеве рішення, що підтримує швидкість передачі до 12 Мбіт/с;

повна підтримка в реальному часі передачі аудіо і (стиснутих) відео даних;

гнучкість протоколу змішаної передачі даних і асинхронних повідомлень та інтеграція з пристроями, що випускаються;

приступність у PC усіх конфігурацій і розмірів та забезпечення стандартного інтерфейсу, здатного швидко завоювати ринок;

створення нових класів пристроїв, що розширюють PC.

Із середини 1996 року випускаються PC з убудованим контролером USB, реалізованим чіпсетом. Уже з'явилися модеми, клавіатури, сканери, динаміки й інші пристрої введення/висновку з підтримкою USB, а також моніторів з USB-адаптерами - вони відіграють роль концентраторів для підключення інших пристроїв.

USB забезпечує одночасний обмін даними між хост-компьютером і безліччю периферійних пристроїв (ПП). Розподіл пропускної здатності шини між ПУ планується хостом і реалізується їм за допомогою посилки маркерів. Шина дозволяє підключати, конфігурувати, використовувати і відключати пристрої під час роботи хоста і самих пристроїв.

Інтерфейс FireWire підтримує синхронну й асинхронну передачу даних і надає можливість підключення до 63 пристроїв на один порт. При цьому підтримується швидкість передачі 100, 200 і 400 Мбіт/с (тобто 12,5, 25, 50 Мбайт/с), проробляються варіанти на 800 і 1600 Мбіт/с. При цьому різні пари пристроїв можуть обмінюватися даними на різній швидкості, наприклад, на 100 і на 400 Мбіт/с.

Споконвічно планувалося використання FireWire у цифровому відео (першими пристроями FireWire стали цифрові відеокамери і відеомагнітофони Sony). Специфікації РС98 і PC99 припускають, крім відео, використання FireWire для підключення твердих дисків, мережних карт, магнітооптичних нагромаджувачів і іншого високошвидкісного устаткування.

Інтерфейс IEEE-1394 розроблявся для того, щоб забезпечити високошвидкісний доступ, головним чином до пристроїв збереження інформації, таким як тверді диски, приводи CD і DVD. При цьому планувалося зробити даний інтерфейс універсальним і оснастити його по можливості також пристроєм введення -- сканери, цифрові фото- і відеокамери та іншу аудіовізуальну апаратуру. Однак його чудові характеристики -- гнучкість і простота використання, поряд зі здатністю при необхідності надавати при передачі пріоритет тим даним, для яких синхронізація за часом є критичним чинником, виявилися оптимальними для передачі цифрового відео і до тепер практично не мають у цій області альтернативи (у всякому разі, для непрофесійних застосувань).

Цей стандарт дозволяє поєднувати апаратні і програмні засоби для передачі потоків даних 100, 200, 400 Мбіт/с, а в останній реалізації інтерфейсу і до 800 Мбіт/с. Додамо, що зв'язок між пристроями з інтерфейсом IEEE-1394 може включатися і виключатися безпосередньо на час їхньої роботи (так називане гаряче підключення) без відключення харчування і перезавантаження.

З інтерфейсом IEEE-1394 останнім часом активно конкурує новий USB-інтерфейс (версії 2.0), що забезпечує передачу даних зі швидкістю до 480 Мбіт/с проти старих 12 Мбіт/с, тобто в 40 разів швидше існуючого USB-стандарту!

Шина USB одержала широке поширення завдяки своїй дешевині і могутній підтримці у виді контролера, що вбудовується безпосередньо в чіпсети для материнських плат. При цьому заявлялося, що високошвидкісний USB 2.0 також буде реалізований у виді убудованого в чіпсет контролера (Intel ICH3).

Усі IEEE-1394-пристрої, такі як цифрові фото- і відеокамери, DVD-пристрої й інші прилади, прекрасно стикуються як з персональними комп'ютерами, оснащеними подібним інтерфейсом (його підтримують і Maс, і PC-комп'ютери), так і між собою. Це означає, що тепер користувачі можуть передавати, обробляти і зберігати дані (у тому числі зображення, звук і відео) з високою швидкістю і практично без погіршення якості.

Усі ці відмінні риси IEEE-1394 роблять його одним з найбільш привабливих та універсальним цифровим інтерфейсом майбутнього, проте на даний час розвитку і поширення стандартів передачі даних не останню роль грають „ветерани” - послідовний інтерфейс RS232, який підтримується наприклад всіма поколіннями персональних комп'ютерів, що є досить важливим.

2. Проектування VHDL моделі схеми реалізації захищеної передачі даних

2.1 Структурна схема модуля шифрування

Відповідно до загальновідомої архітектури моделі послідовної передачі інформації розроблено дану модель з потоковим шифруванням даних. Оскільки основу потокового шифрування становить генератор псевдовипадкових чисел, то також має бути присутній блок RNG (Random-Number Generator) - генератор випадкових чисел та блок проведення шифрування, у даному випадку виконання операції XOR над отримаю гамою (із ГПВЧ) та оцифрованим потоком вхідних даних, які потрібно зашифрувати.

Оскільки дана структура порівняно складана, то маю бути введено також блок керування усім цим процесом. Звичайно даний блок співпрацює із інтерфейсом ЕОМ, і в залежності від команд керує роботою пристрою шифрування.

За допомогою засобу автоматизованого проектування Active HDL, на основі узагальненої схеми моделі UART з потокових шифруванням розроблено функціональну схему моделі UART з потоковим шифруванням, що наведена у додатку 1. До стандартної моделі UART входять наступні стандартні функціональні блоки:

„div” - дільник частоти;

„rx” - блок приймання;

„tx” - блок передавання;

„mp” - мікропроцесорний блок.

Додатково, для реалізації моделі послідовної передачі з потоковим шифруванням розроблено компоненту шифрування „XOR_cipher” та компоненту керування блоком шифрування „CU_lfsr_12”.

Зовнішній вигляд компоненти блоку керування зображено на рисунку 2.1, а її інтерфейсний опис наведено у додатку 2.

Малюнок 2.1 Компонента „cu_lfsr_12”

Зовнішній вигляд компоненти „XOR_cipher” зображено на рисунку 2.2, а її інтерфейсний та архітектурний опис наведено у додатку 3.

Малюнок 2.2 Компонента „XOR_cipher”

Компонента „XOR_cipher” має такі входи/виходи:

CLK - сигнал тактування;

Control_XOR - вхідна шина керування;

In1 - вхідний сигнал (подається бітове значення отримане на генераторі псевдовипадкових чисел);

In2 - бітове значення, що опрацювалося ПОСЛІДОВНОЇ ПЕРЕДАЧІ моделлю

In3 - бітове значення, що передається на UART модель (приймається);

Result1 - сигнал, куди подається результат шифрування, у випадку, коли відкриті дані опрацювалися UART моделлю;

Result2 - сигнал, куди подається результат шифрування, у випадку, коли відкриті дані надійшли ззовні.

2.2 Розробка генератора псевдовипадкових чисел на основі регістра зсуву з оберненими зв'язками

Як вже було раніше зазначено - основою потокового шифру виступає генератор псевдовипадкових чисел. На даний час найбільш популярними генераторами псевдовипадкових чисел є генератори побудовані на базі регістрів зсуву або лінійних рекурентних співвідношень (ЛРР). Послідовності регістрів зсуву успішно використовуються як для криптографічних задач, так і в теорії кодування. Дана теорія чудово пропрацьовано, а потокові шифри на базі регістрів зсуву вже давно використовувалися у військових для за шифрування інформації. LFSR неважко реалізувати програмно, а апаратно - це є малогабаритні, легкі, недорогі пристрої. Генератор на базі LFSR задовольняє таким вимогам: великий розмір ансамблю послідовностей, що формуються на одній алгоритмічній основі; оптимальність кореляційних функцій в ансамблі; збалансованість структури; можливість отримання максимального періоду.

На рисунку 2.3 зображено 4-ри розрядний LFSR із зворотними зв'язками на першому та останньому розряді. У відкритій літературі наведені приклади поліномів, на базі яких можна побудувати генератори із максимальним періодом повтору. Вище викладений теоретичний базис послугував для розробки генератора псевдовипадкових чисел на базі LFSR.

Малюнок 2.3 Чотири розрядний LFSR

У якості засобу обрано мову програмування VHDL. Мова VHDL (Very high speed integrated circuits Hardware Description Language) - це фактично міжнародний стандарт в області автоматизації проектування цифрових схем. VHDL підтримують більшість сучасних системи автоматизованого проектування (САПР): програмованих логічних інтегральних схем (ПЛІС), програмованих користувачами вентильних матриць.

VHDL у першу чергу призначений для специфікації - точного опису проектованих систем та їх моделювання на початкових етапах проектування - алгоритмічному та логічному. VHDL дозволяє описувати поведінку, тобто алгоритм функціонування цифрових схем, А також проводити ієрархічний функціонально-структурний опис систем.

Перш за все, при реалізації такого генератора ПВЧ необхідно: організувати регістр зсуву; в залежності від розрядності регістру зсуву та вибраного поліному зворотних зв'язків „відвести” зворотні зв'язки на суматор по модулю 2 (бітова операція XOR); обчислити функцію зворотних зв'язків та подати результат на початок регістру зсуву.

Регістри, і взагалі регістри пам'яті зручно організовувати на базі стандартних D-тригерів. Хоча стандартні бібліотеки, що входять до пакету Active HDL містять компоненту „dff”, яка виконує функції D-тригера, але було вирішено не використовувати стандартну компоненту а написати самим. Також всі інші компоненти, що використовувалися при розробці LFSR- генератора розписані засобами мови VHDL.

Було обрано розробити 13-ти розрядний LFSR із наступним поліномом зворотних зв'язків - (12, 6, 4, 1, 0). Зовнішній вигляд компоненти „dff_my”, що виконує функцію D- тригера зображено на рисунку 2.4 Компонента має такі входи: CLK - сигнал тактової частоти; Enable - сигнал режиму роботу; d1 - сигнал, що буде використовуватися при завантаженні даних (режим №1); d2 - буде використовуватися для організації регістру зсуву (режим №2). У компоненти „dff_my” є один вихідний сигнал q - результат.

Малюнок 2.5 Компонента „dff_my”

Інтерфейсний та архітектурний описи даної і наступних компонент наведено у додатку 4. Робота компоненти організовується наступним чином:

організовано процес, де в списку чутливості внесено сигнали Enable та CLK, тобто процес ініціалізує свою роботу, коли змінився будь-який із сигналів, що внесений у список чутливості;

поставлена умова на поточне значення сигналу Enable. Якщо сигнал має значення `0', то на вихідний q сигнал передати значення сигналу d1, тобто виконується режим №1. Коли Enable не рівне 0, то значить, що D-тригер має працювати у другому режимі роботи (як регістр зсуву). Ставиться наступна умова: чи сигнал тактової частоти CLK змінився і чи він рівний одиниці якщо так, то таким чином з кожним тактом на вихідний сигнал подається значення, що є на вході d2 (режим №2).

Наступна компонента, яка була розроблена „XOR_6”. Призначена виконувати операцію XOR над 6-ма вхідними значеннями. Отримане значення подається на вихід компоненти. На рисунку 2.5 зображено зовнішній вигляд компоненти „XOR_6”.

Компонента має компонента має 6 входів типу „STD_LOGIC” відповідно А0, А1, ..., А5 і вихід Z0. Робота компоненти організована наступним чином:

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

Об'явлено дві додаткові змінні типу „STD_LOGIC”: pZ0 та іZ0. Спочатку проводиться присвоєння pZ0 := іZ0. Потім іZ0 присвоюється значення XOR значень всіх вхідних сигналів. Простою перевіркою визначається, чи змінився будь-який із вхідних сигналів після перерахунку операції XOR, якщо та то із вказаною затримкою отриманий результат подається на вихід Z0, якщо ні, то результат подається без затримки.

Малюнок 2.5 Компонента „XOR_6”

Компонента „inv_my” - інвертор - на вихід подається інвертоване вхідне значення, а компонента „and2_my”- виконує бітове додавання.

За допомогою вбудованого у пакет Active HDL засобу Block Diagram Editor - редактор блоків діаграм, розроблені і наведені вище компоненти об'єднано у одну загальну логічну схему, яка б мала виконувати функціональні можливості ГПВЧ на базі регістру зсуву з оберненими зв'язками.

Після успішної компіляції схеми, пакет Active HDL дозволяє використовувати даний пристрій як одну цілісну компоненту „lfsr_mvd”, зовнішній вигляд якої зображено на рисунку 2.6.

Дана компонента має такі входи: CLK - сигнал тактової частоти; Enable - сигнал вмикання режиму роботи; Reset - сигнал скидання; data (12:0) - шина даних шириною 13 біт.

Треба зазначити, що специфіка сигналу Enable наступна - якщо він рівний `1', то це дає команду на завантаження D- тригерами вхідного значення на шині, а інакше, якщо він рівний `0', то об'єднані у кільце базові D- тригери працюються як регістр зсуву.

Малюнок 2.6 Компонента „lfsr_mvd”

Оригінально використано функціональні можливості базових логічних операторів для організації процесу скидання пристрою. Введений сигнал Reset таким чином підключений поряд із сигналом тактової частоти, що при його значенні `1' на пристрій не буде йти жоден такт. Оскільки, кожен базовий D- тригер синхронізований по сигналу тактової частоти CLK, то без наявного такту вони не будуть функціонувати, що і прагнулося досягнути.

Також наявна шина даних data шириною 13 біт. Кожний D- тригер, при завантаженні даних, бере своє значення із відповідного сегменту шини.

Всі зворотні зв'язки підводяться до компоненти „XOR_6”. Отриманий результат подається на відповідний вихідний сигнал Result кожного такту також, отриманий результат подається на початок регістру зсуву.

3. Симуляція роботи розробленого пристрою

Випробувальний стенд - вбудований засіб у пакет Active HDL для перевірки правильності роботи проектованого пристрою. Застосування їхнє очевидне, адже процес проекту буде неповним без процесу перевірки роботи проекту. Серед засобів, за допомогою яких перевіряється робота проекту, випробувальні стенди, завдяки своїм характеристикам та гнучкості займають найвищу сходинку. Випробувальний стенд - це зовнішнє середовище, в якому проект (тестований блок) перевіряється за допомогою стимулів і при цьому контролюється його реакція шляхом нагляду та дослідження (зондування) сигналів, а також моніторингу. Іншими словами, випробувальний стенд є оточуючи середовищем проекту, при якому можна запустити проект на виконання і досліджувати у повній мірі його роботу.

На рисунку 3.1 зображено фрагмент симуляції роботи досліджуваного пристрою у редакторів форм сигналів.

У редакторі форм сигналів зображено функціонування таких сигналів:

CLK - тактова частота пристрою;

Reset - сигнал зкидання;

Data - ініціалізуючі дані для регістру зсуву;

Enable - сигнал, що керує режимами роботи пристрою;

Result - вихідний сигнал, куди подається

Малюнок 3.1 Симуляція роботи пристрою „lfsr_mvd_12”

Висновки

В процесі виконання курсового проектування спроектовано VHDL- модель схеми реалізації захищеної передачі даних через послідовний інтерфейс. Під час проектування:

досліджено сучасні засоби для реалізації послідовної передачі даних;

розроблено структурну схему моделі реалізації захищеної передачі даних;

розроблено необхідні компоненти для реалізації структури шифрування;

розроблено генератор псевдовипадкових чисел на основі регістра зсуву з оберненими зв'язками ;

проведено функціональну симуляцію розробленого пристрою.

Результати отримані при виконанні даного курсового проектування можуть бути використані для розробки інших типових апаратних засобів, призначених для захисту інформації.

Список використаної літератури

Вильям Столлингс. Криптография и защита сетей: принципы и практика: Пер. с англ. - М.: Издательский дом “Вильямс”, 2001. - 672 с.

http://www.channel-e.ru/news/mikrocontroller/mikro_archiv2000.htm

http://intraserv.mephi.ru/conference/reports.asp?rid=38

Гундарь К.Ю., Гундарь А.Ю., Янишевський Д.А. Защита Информации в компьютерных системах. К.: "Корнийчук", 2000. - 132 с.

Васильцов І.В., Коркішко Т.А., Мельник А.О., Саченко А.О. Основи автоматизованого проектування засобів обчислювальної техніки // Методичні вказівки до проведення лекційних та лабораторних занять / За ред. Саченка А.О. Тернопіль, 2000. - 129 с.

П. Н. Библио. Основы языка VHDL. - М.: СОЛОН-Р, 2002. - 224 с.

Додаток

Функціональна схема моделі реалізації захищеної передачі даних через послідовний інтерфейс

Додаток 2

Інфоетфейсний опис компоненти „„CU_lfsr_12””

library IEEE;

use IEEE.std_logic_1164.all;

entity CU_lfsr_12 is

port (

CLK: in STD_LOGIC;

Data: in STD_LOGIC_VECTOR (12 downto 0);

Comntrol_CU: in STD_LOGIC_VECTOR (2 downto 0);

Comntrol_XOR: out STD_LOGIC_VECTOR (1 downto 0);

Enable: in STD_LOGIC;

Reset: in STD_LOGIC;

En_lfsr: out STD_LOGIC;

Data_lfsr: out STD_LOGIC_VECTOR (12 downto 0);

Reset_lfsr: out STD_LOGIC

);

end CU_lfsr_12;

Додаток 3

Інтерфейс ний та архітектурний опис компоненти „XOR_cipher”

library IEEE;

use IEEE.std_logic_1164.all;

entity XOR_cipher is

port (

In1: in STD_LOGIC;

In2: in STD_LOGIC;

In3: in STD_LOGIC;

CLK: in STD_LOGIC;

Control_XOR: in STD_LOGIC_VECTOR (1 downto 0);

Result1: out STD_LOGIC;

Result2: out STD_LOGIC

);

end XOR_cipher;

architecture XOR_cipher of XOR_cipher is

begin

process (CLK)

variable a: time;

variable tmp: std_logic;

begin

a := 1 ns;

if CLK = '1' and CLK'event then

if Control_XOR = "00" then

tmp := (In1 XOR In2); Result1 <= tmp after a;

end if;

if Control_XOR = "01" then

tmp := (In1 XOR In3); Result2 <= tmp after a;

end if;

end if;

end process;

end XOR_cipher;

Додаток 4

Інтерфейсні та архітектурні описи

компоненти „dff_my”

library IEEE;

use IEEE.std_logic_1164.all;

entity dff_my is

port (CLK: in STD_LOGIC;d1: in STD_LOGIC;

d2: in STD_LOGIC;Enable: in STD_LOGIC;

q: out STD_LOGIC);

end dff_my;

architecture dff_my of dff_my is

begin

--variable data: STD_LOGIC;

process (Enable, CLK)begin

if (Enable = '0') thenq <= d1;

elsif (CLK'event and CLK = '1') thenq <= d2;

end if;

end process;end dff_my;

компоненти „XOR_6”

library IEEE;use IEEE.std_logic_1164.all;

entity XOR_6 is

generic ( TDELAY : TIME := 1 ns);

port (A0: in STD_LOGIC;A1: in STD_LOGIC;A2: in STD_LOGIC;

A3: in STD_LOGIC;A4: in STD_LOGIC;A5: in STD_LOGIC;

Z0: out STD_LOGIC);

end XOR_6;

architecture XOR_6 of XOR_6 is

begin

process(A0, A1, A2, A3, A4, A5)

variable pZ0 : std_logic;variable iZ0 : std_logic;

beginpZ0 := iZ0;

iZ0 := (A0 XOR (A1 XOR (A2 XOR (A3 XOR (A4 XOR (A5))))));

if pZ0 /= iZ0 thenZ0 <= transport iZ0 after TDELAY;

elseZ0 <= transport iZ0;

end if;

end process;

end XOR_6;

компоненти „lfsr_mvd”

library IEEE;

use IEEE.std_logic_1164.all;

entity lfsr_mvd_12 is

port(CLK : in STD_LOGIC;

Enable : in STD_LOGIC;

Reset : in STD_LOGIC;

Data : in STD_LOGIC_VECTOR (12 downto 0);

Result : out STD_LOGIC );

end lfsr_mvd_12;

architecture LFSR_MVD_12 of lfsr_mvd_12 is

signal NET1231 : STD_LOGIC ;

signal NET1323 : STD_LOGIC ;

signal NET1590 : STD_LOGIC ;

signal NET1598 : STD_LOGIC ;

signal NET1633 : STD_LOGIC ;

signal NET1683 : STD_LOGIC ;

signal NET1773 : STD_LOGIC ;

signal NET1777 : STD_LOGIC ;

signal NET1922 : STD_LOGIC ;

signal NET1930 : STD_LOGIC ;

signal NET1957 : STD_LOGIC ;

signal NET2528 : STD_LOGIC ;

signal NET2641 : STD_LOGIC ;

signal NET2677 : STD_LOGIC ;

signal NET2976 : STD_LOGIC ;

signal NET3011 : STD_LOGIC ;

signal NET44 : STD_LOGIC ;

component AND2_MY

generic(

TDELAY : TIME := 1 ns

);

port ( A0 : in STD_LOGIC;

A1 : in STD_LOGIC;

Z0 : out STD_LOGIC

);

end component ;

component BUF_MY

port ( A : in STD_LOGIC;

Z1 : out STD_LOGIC;

Z2 : out STD_LOGIC );

end component ;

component DFF_MY

port ( CLK : in STD_LOGIC;

Enable : in STD_LOGIC;

d1 : in STD_LOGIC;

d2 : in STD_LOGIC;

q : out STD_LOGIC );

end component ;

component INV_MY

generic( TDELAY : TIME := 1 ns );

port ( A0 : in STD_LOGIC;

B0 : out STD_LOGIC );

end component ;

component XOR_6

generic( TDELAY : TIME := 1 ns );

port ( A0 : in STD_LOGIC;

A1 : in STD_LOGIC;

A2 : in STD_LOGIC;

A3 : in STD_LOGIC;

A4 : in STD_LOGIC;

A5 : in STD_LOGIC;

Z0 : out STD_LOGIC );

end component ;

begin

U13 : XOR_6

port map( A0 => NET1957,

A1 => NET2641, A2 => NET1930,

A3 => NET1922, A4 => Enable,

A5 => NET2528, Z0 => NET2976 );

U15 : INV_MY

port map(

A0 => Reset,

B0 => NET44 );

U14 : AND2_MY

port map( A0 => NET44,

A1 => CLK, Z0 => NET1231 );

U0 : DFF_MY

port map( CLK => NET1231,

Enable => NET3011, d1 => Data(0),

d2 => Enable, q => NET1957 );

U1 : DFF_MY

port map( CLK => NET1231,

Enable => NET1957, d1 => Data(1),

d2 => Enable, q => NET2641 );

U2 : DFF_MY

port map( CLK => NET1231,

Enable => NET2641, d1 => Data(2),

d2 => Enable, q => NET1323 );

U4 : DFF_MY

port map(

CLK => NET1231, Enable => NET1773, d1 => Data(4), d2 => Enable, q => NET1930 );

U5 : DFF_MY

port map( CLK => NET1231,

Enable => NET1930, d1 => Data(5),

d2 => Enable, q => NET2677 );

U6 : DFF_MY

port map( CLK => NET1231,

Enable => NET2677, d1 => Data(6),

d2 => Enable, q => NET1922 );

U7 : DFF_MY

port map( CLK => NET1231,

Enable => NET1922, d1 => Data(7),

d2 => Enable, q => NET1777 );

U8 : DFF_MY

port map( CLK => NET1231,

Enable => NET1777, d1 => Data(8),

d2 => Enable, q => NET1590 );

U9 : DFF_MY

port map( CLK => NET1231,

Enable => NET1590, d1 => Data(9),

d2 => Enable, q => NET1598 );

U11 : DFF_MY

port map( CLK => NET1231,

Enable => NET1633, d1 => Data(11), d2 => Enable, q => NET1683 );

U12 : DFF_MY

port map( CLK => NET1231,

Enable => NET1683, d1 => Data(12), d2 => Enable, q => NET2528 );

U3 : DFF_MY

port map(

CLK => NET1231, Enable => NET1323, d1 => Data(3), d2 => Enable,

q => NET1773 );

U10 : DFF_MY

port map(

CLK => NET1231, Enable => NET1598, d1 => Data(10), d2 => Enable,

q => NET1633 );

U16 : BUF_MY

port map(

A => NET2976, Z1 => NET3011,

Z2 => Result );

end LFSR_MVD_12;

Размещено на www.stud.wiki.




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

  • Відомі підходи до реалізації потокового шифрування даних. Регістр зсуву з оберненими зв’язками. Комбінуючий та фільтруючий генератор. Потоковий шифр Alpha1. Розробка структурної схеми алгоритму шифрування Alpha1. Розробка блоку керування пристрою.

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

  • Розрахунок часових затримок для формування імпульсів у програмі передачі даних через послідовний порт мікроконтролера, а також розрахунок швидкості передачі даних через послідовний порт. Алгоритм підпрограми обробки переривань від послідовного порту.

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

  • Формати прийому та передачі даних через послідовний порт, його технічні характеристики, будова і принцип роботи. Характеристика протоколів послідовної передачі. Способи керування портами у WINDOWS95 та WINDOWS XP. Опис алгоритму і функціонування програми.

    дипломная работа [752,6 K], добавлен 09.06.2010

  • Функціонально-логічні та технічно-функціональні аспекти програми. Структурна схема приладу. Обмін інформацією між вузлами метеорологічного комплексу. Розробка протоколу передачі даних. Розрахунок антенного модуля для прийомо-передавального пристрою.

    дипломная работа [467,2 K], добавлен 21.06.2009

  • Опис інтерфейсу паралельного порту Centronics, який має 25-контактний 2-рядний роз'єм DB-25-female. Швидкість передачі даних, фірмові розширення. Розгляд BIOS для LPT-порту. Опис програмного середовища. Приклад виконання програми, блок-схема алгоритму.

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

  • Розробка VHDL-програми та синтез елементів пристрою для реалізації підстановки в S-блоках алгоритму DES. Основна функція шифрування (функція Фейстеля). Генерування ключів ki. Проведення симуляції роботи даних програм в середовищі САПР Aldec Riviera 2004.

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

  • Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.

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

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

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

  • Взаємодія комп’ютера з зовнішніми пристроями. Послідовний потік даних як біти синхронізації і власне біти даних. Специфіка формату послідовних даних, які формує UART. Електричний інтерфейс RS-232C. Способи керування портами у WINDOWS95 та WINDOWS XP.

    реферат [660,1 K], добавлен 19.06.2010

  • Аналіз аналогової системи передачі. Порівняння завадостійкості системи зв’язку. Розрахунок інформаційних характеристик системи передачі. Декодування коректуючого коду. Шифрування кодами Цезаря та Віженера. Структурна схема цифрової системи передачі.

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