Реалізація базових VHDL-моделей

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

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

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

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

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

Вступ

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

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

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

Показано перспективи використання алгоритмів генерування ПВЧ в системах мобільного зв'язку стандарту GSM. Показано переваги застосування алгоритму Alpha1 у порівнянні з використовуваним на даний час алгоритмом A5 до задач захищеної комунікації.

Розроблено VHDL модель алгоритму Alpha1: структурну схему алгоритму шифрування Alpha1, базову компоненту регістру зсуву з оберненими зв'язками, блок керування пристроєм, компоненту обчислення кінцевого результату та проведено функціональну верифікацію спроектованого пристрою.

1. Відомі підходи до реалізації потокового шифрування даних

1.1 Актуальність задач потокового шифрування

Розвиток безпровідного зв'язку починався із аналогового зв'язку, який характеризувався низькою якістю та пропускною здатністю каналів. Проте зараз, завдяки використанню цифрових технологій - GSM, де якість зв'язку значно покращилася; додалися нові можливості по передачі текстових повідомлень типу (SMS), передачі мультимедійної інформації, підключення до всесвітньої мережі Інтернет та багато іншого.

Основу системи безпеки GSM складають три секретних алгоритми:

- А3 - алгоритм аутентифікації, що захищає телефон від клонування;

- А8 - алгоритм генерації криптоключа, по суті справи односпрямована функція, що бере фрагмент виходу від A3 і перетворює його в сеансовий ключ для A5;

- A5 - власне алгоритм потокового шифрування оцифрованої мови для забезпечення конфіденційності переговорів. У GSM використовуються два основні різновиди алгоритму: A5/1 - «сильна» версія шифру для обраних країн і A5/2 - ослаблена для всіх інших.

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

1.2 Підходи до реалізації потокового шифрування даних

Першою спробою реалізації процедури шифрування був так званий гама-блокнот. Одноразовий гама-блокнот використовує довгу шифрувальну послідовність (або гаму), яка складається із бітів, вибраних зовсім випадково - псевдовипадкова послідовність (ПВП). Гама побітово накладається на відкритий текст. Причому, довжина гами має бути не меншою, ніж довжина повідомлення, що зашифровується і може використовуватися тільки один раз. Зрозуміло, що при такому способі шифрування необхідно велику довжину шифрувальної гами. Відкритий текст повідомлення m записують як послідовність бітів , а послідовність гами k як . Шифротекст утворюється наступним чином:

, при , (1.1)

де означає операцію «побітове виключне або» (XOR). У своїй історичній роботі [1] Шеннон довів, що саме одноразовий гама-блокнот є криптосистема яку неможливо зламати у теоретичному сенсі.

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

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

Відносно підходів до побудови потокових шифрів є концепція, що отримала широке визнання і належить авторитетному швейцарському криптограму Лайнеру Рюппелю [2].

Як вже було сказано, основу потокового шифру складає генератор псевдовипадкових чисел. Переважна більшість запропонованих до теперішнього часу генераторів потокового шифрування так чи інакше базуються на використанні регістрів зсуву, або точніше регістрів зсуву з оберненими зв'язками (LFSR - linear feedback shift register). Для цього є дві основні причини:

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

- їхня поведінка порівняно легко аналізується з використанням алгебраїчної техніки.

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

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

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

Рисунок 1.1. Регістр зсуву з оберненими зв'язками

За допомогою LFSR можна отримати послідовність максимального періоду (2n-1, де n - розрядність регістра зсуву у бітах) у тому випадку, коли поліном, що представляє зворотні зв'язки, є примітивним поліномом. У довідковій літературі можна знайти поліноми зворотних зв'язків різної розрядності, при яких можна отримати вихідну послідовність «максимальної» довжини [3].

У визначених комірок регістрів роблять відводи (зворотні зв'язки); вміст цих комірок додається за модулем 2, а сума повертається у першу комірку регістру. Символ - це операція взяття за модулем 2 (mod 2).

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

Рисунок 1.2. Комбінуючий генератор

По-друге, теоретико-системні властивості цих генераторів, такі як період повтору, лінійна складність та статистичні характеристики часто піддаються аналізу завдяки детермінованій природі цих (нелінійних) пристроїв.

При розгляді цих двох класів генераторів треба пам'ятати, що будь-яка періодична послідовність має кінцевий лінійний еквівалент. Основна вимога для розробника генераторів ПВП, щоб він був не передбачуваний. Звідси виходить, що лінійна складність його вихідної послідовності має бути достатньо великою, щоб протидіяти будь-якій атаці, наприклад, основаній на алгоритмі Берлекампа-Массей для синтезу регістру зсуву.

Рисунок 1.3. Фільтруючий генератор

До відомих (опублікованих) генераторів ПВП побудованих з використанням регістрів зсуву можна віднести: Hughes XPD/KPD, Fish, Pike, Mush. Як було зазначено у попередньому підрозділі, потокове шифрування широко використовується для вирішення практичних задач захисту інформації. Прикладом може слугувати потоковий шифр A5, який реалізований апаратно та внесений у GSM стандарт - стандарт супутникового зв'язку.

A5 реалізує потоковий шифр на основі трьох лінійних регістрів зсуву з нерівномірним рухом. Такого роду схеми мовою фахівців називаються «криптографією військового рівня» і при правильному виборі параметрів здатні забезпечувати дуже високу стійкість шифру. В А5 довжини регістрів обрані довжиною 19, 22 і 23 біта, що в сумі і дає 64-бітний сеансовий ключ шифрування в GSM.

Ці три регістри зсуву мають відповідно такі поліноми зворотних зв'язків: «(18, 7, 0)», «(21, 2, 0)», «(22, 1, 0)». Загальна структура генератора ПВП за алгоритмом А5 наведена на рисунку 1.4.

Рисунок 1.4. Загальна структура генератора ПВЧ за алгоритмом А5

Алгоритм функціонує наступним чином. На початку, всі три регістри зсуву мають отримати певне ініціалізуюче значення (ключ). Відповідні поліноми зворотних зв'язків вже вбудовані і наведені вище. Виходом генератора є XOR із трьох LFSR. Проте у А5 використовується змінне керування запуском на роботу базових регістрів. Кожен регістр тактується в залежності від значення свого середнього біта, потім виконується зворотна порогова функція середніх бітів всіх трьох регістрів. Зазвичай на кожному етапі тактується два LFSR.

По мірі генерування (за один такт роботи алгоритму формується один псевдовипадковий біт) заповнюється буфер, де вони зберігаються до використання. Коли ж підготовча частина завершена, то проводиться операція «побітове виключне або» (XOR) над псевдовипадковими даними у буфері та сформованим фреймом відкритого тексту. Отриманий результат - зашифроване повідомлення передається по каналам зв'язку.

2. Потоковий шифр Alpha1

Разом з тим, для підсилення шифрування в стандарті GSM було запропоновано використовувати інший алгоритм шифрування (на заміну вже використовуваному А5) - наприклад Alpha1, який являє собою синхронізований по керуючому такту потоковий шифр із завантажуваним ззовні ключем шифрування [4] (початковим станом базових LFSR - генераторів). За інформацією наданою розробниками складність даного алгоритму більше ніж (на відміну у А5/1), що значно ускладнює задачу криптоаналітику.

Алгоритм використовує операцію виключного або над результуючим (згенерованим) псевдовипадковим бітом та бітом відкритого тексту. Псевдовипадковий біт отримується за формулою 1.2, використовуючи результати роботи вбудованих чотирьох LFSR розмірності 29, 31, 33 та 35 біт. Зовнішній вигляд алгоритму генерування ПВЧ в алгоритмі Alpha1 наведено на рисунку 2.1.

(1.2)

де result - біт результату, а x1, x2, x3, x4 - результати базових LFSR - генераторів.

Як бачимо із рисунку 1.6 генератор використовує три базові компоненти: базовий LFSR - генератор, компоненту двобітового AND та п'ятибітового XOR.

Рисунок 2.1. Генерування ПВЧ за алгоритмом Alpha1

3. Розробка VHDL-моделі шифру Alpha1

Відомим фактом є те, що мова VHDL (veryhigh hardware description language) - мова опису апаратних ресурсів є однією із найпотужніших мов, що використовуються у сучасних засобах проектування цифрових схем (системи автоматизованого проектування, САПР).

Вся робота по розробці генератора псевдовипадкових чисел за алгоритмом Alpha1 для потокового шифрування даних у безпровідних каналах зв'язку буде проводитися у пакеті автоматизованого проектування Active HDL версії 3.6.

3.1 Розробка структурної схеми алгоритму шифрування Alpha1

Як було згадано у попередньому розділі в алгоритмі Alpha1 використовуються чотири регістри зсуву з оберненими зв'язками різної розмірності і з різними поліномами зворотних зв'язків. Розрядності їх відповідно 29, 31, 33, 35, а поліноми зворотних зв'язків відповідно:

- (29, 27, 24, 8, 1);

- (31, 28, 23, 18, 1);

- (33, 28, 24, 4, 1);

- (35, 30, 22, 11, 6, 1);

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

Блок керування пристроєм повинен виконувати функцію почергового завантаження початковим заповненням регістрів зсуву, та у відповідності із описаним тактуванням запускати на роботі відповідні LFSR.

Для розробки базових LFSR - генераторів, блоку керування та блоку обчислення результату будемо користуватися особливостями мови програмування цифрових пристроїв VHDL. Після розробки кожної із базових компонент генератора їх можна буде компонувати разом (визначати зовнішні сигнали та шини даних, встановлювати зв'язки між компонентами та зовнішніми сигналами / шинами) у вбудованому у даний пакет засобі Block Diagram Editor (редактор блокових діаграм).

3.2 Розробка базового блоку LFSR

Для початку необхідно розробити за допомогою мови VHDL компоненту базового LFSR - генератора, відповідно до опису функціонування регістру зсуву з оберненими зв'язками, що наведений у попередньому розділі. Треба зауважити, що поліноми зворотних зв'язків, що використовуються у генераторі псевдо випадкових чисел Alpha1 мають визначені поліноми зворотних зв'язків, що значно спрощує розробку компоненти та зменшить VHDL опис. Розробимо для початку компоненту «lfsr29», яка буде відповідати найменшому LFSR, що необхідно розробити.

Для ефективної роботи базової LFSR - компоненти необхідно:

- завантажити її початковим станом, а отже треба мати вхідну шину відповідної розрядності (29 біт);

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

Зовнішній вигляд компоненти «lfsr29», що працює як LFSR розрядності 29 наведено на рисунку 3.1.

Рисунок 3.1. Компонента «lfsr29»

Компонента має наступні входи та виходи: «Data_in (28:0)» - шина даних шириною 29 біт; «CLK» - сигнал тактування пристрою; «Mode» - дворозрядна шина керування пристроєм; «Result» - даний сигнал слугує поточним результатом роботи; «Flag» - сигнал готовності результату на виході Result.

Для ефективної роботи, необхідно ввести змінну, де б зберігалося поточне значення регістру зсуву. Оскільки, стартове значення має завантажитися із зовні, то тип цієї змінної, а також розрядність мають співпадати. Для цього введено змінну «Reg» типу «STD_LOGIC_VECTOR» шириною «(28 downto 0)». Додатково введено змінні: «counter» - цілочисельного типу (використовується як лічильник), «current_value» - для зберігання поточного значення типу сигнал («STD_LOGIC»).

Якщо значення на вхідній шині команд рівне «00» - то проводиться перевірка: чи сигнал тактової частоти рівний одиниці. Коли пройдено всі умови, то проводиться завантаження даних із зовнішньої шини «Data_in» у внутрішній масив «Reg». Інакше, якщо «01» - то проводиться перевірка: чи сигнал тактової частоти рівний одиниці. Змінній «current_value» присвоюється початкове значення рівне «1» і обчислюється поточне псевдовипадкове значення шляхом додавання за модулем 2 тих бітів регістру зсуву, які зазначені як зворотні зв'язки. Наприклад для LFSR29 виконується таке обчислення:

(3.1)

де «current_value» - змінна, а елементи масиву Reg визначені відповідно поліному зворотних зв'язків.

Після цього, організовується цикл, з метою перемістити всі значення регістру зсуву на один біт. У вивільнений розряд записується значення раніше обчисленої змінної «current_value». На вихід результату подається обчислене значення «current_value». Інтерфейс ний та архітектурний опис даної компоненти наведено у додатку 1.

3.3 Розробка блоку керування пристрою

Блок керуванням пристроєм має виконувати функцію почергового завантаження початковим заповненням регістрів зсуву, та запускати на виконання (генерування псевдовипадкових значень) відповідні LFSR - генератори. Зовнішній вигляд компоненти «сontrol» блоку керування зображено на рисунку 3.2.

Рисунок 3.2. Компонента «control»

Інтерфейсний та архітектурний опис компоненти спроектованої компоненти керування роботою цілого генератора ПВЧ наведено у додатку 2.

Як вже було сказано, сигнал Reset введений для скидання пристрою, тобто, в описі введена перевірка цього сигналу. Якщо він встановлений у `1', то на вихідний сигнал пристрою Flag подається значення `0' а на шини керування LFSR - компонентами подається команда «11.

В залежності від надходження команд, по вхідній шині команд Mode компонента керування може перебувати у одному із наступних станів:

1. завантаження компонентами LFSR свого початкового стану (для цього виділений діапазон команд від «000» по «011»);

2. генерування (при цьому на відповідні компоненти подається сигнал «10», а на сигнал Flag значення `1').

3.4 Розробка компоненти обчислення результату

Для того, щоб обчислити кінцевий результат (із результатів виходів кожного з базових LFSR - генераторів) нам необхідно розробити спеціальну компоненту. Засобами автоматизованого проектування розроблено компоненту «compare_result». Відповідний інтерфейсний та архітектурний описи даної компоненти наведено у додатку 3.

За формулою 3.2 обчислюється кінцевий результат роботи

, (3.2)

де Result - біт кінцевого результату, r1, r2, r3, r4 - результати отримані від базових LFSR - компонент.

Додатково, введено перевірку значення системного сигналу Flag (від компоненти керування), та значення відповідних сигналів готовності результату від кожного з базових LFSR - генераторів за формулою (3.3).

, (3.3)

де змінна tmp_Flag введена додатково, у архітектурному опису компоненти.

В результаті проведеної роботи, розроблено всі необхідні компоненти, для функціонування аератора псевдовипадкових чисел за алгоритмом Alpha1. Вбудованим засобом Block Diagram Editor (редактор станів діаграм) у пакеті Active HDL, що дозволяє досить зручно графічно провести розводку компонент розроблюваного проекту було спроектовано функціонально-логічну схему пристрою генерування псевдовипадкових чисел, що працює за алгоритмом Alpha1 наведена у додатку 4.

3.5 Функціональна симуляція спроектованого пристрою

Для того, щоб визначити правильність функціонування спроектованого пристрою - алгоритму генерування псевдовипадкових послідовностей за алгоритмом Аlpha1 у пакеті Active HDL є спеціальний засіб - Випробувальний стенд (Test Bench). Текст випробувального стенду для алгоритму генерування псевдовипадкових послідовностей Аlpha1 наведено у додатку 5.

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

На рисунку 3.3 наведено частину діаграм роботи пристрою (під час проведення симуляції роботи).

Рисунок 3.3. Діаграми роботи пристрою

Висновки

В процесі виконання курсового проекту розроблено потоковий шифр Alpha1. Під час розробки даного проекту:

1) досліджено сучасні підходи до реалізації потокового шифрування даних;

2) розроблено структурну схему алгоритму шифрування Alpha1;

3) розроблено базовий блок LFSR;

4) розроблено блок керування пристроєм;

5) розроблено компоненту обчислення кінцевого результату;

6) проведено верифікацію спроектованого пристрою.

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

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

G.S. Vernam, Cipher printing telegraph systems for secret wire and radio telegraphic communications //J. Amer. Inst. Elec. Eng., 1996, Vol. 45, Pp. 109-115.

R.A. Rueppel. New Approaches to Stream Ciphers // PhD thesis, Swiss Federal Institute of Technology, Zurich, 1984., Pp/ 38-44.

http://www.ssl.stu.neva.ru/psw/crypto/potok/str_ciph.htm#b2

N. Komninos, B. Honary, M. Darnell. An Efficient Stream Cipher Alpha1 for Mobile and Wireless Devices // Cryptography and Coding, 8th IMA International Conference Cirencester, UK, December 17-19, 2001, pp. 294-300.

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

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

Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях / Под ред. В.Ф. Шаньгина, - М.: Радио и связь, 1999. -328 с.

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

Додаток 1

VHDL опис компоненти «lfsr29»

library IEEE;

use IEEE.std_logic_1164.all;

entity LFSR29 is

port (CLK: in STD_LOGIC;

Data_in: in STD_LOGIC_VECTOR (28 downto 0);

Mode: in STD_LOGIC_VECTOR (1 downto 0);

Flag: out STD_LOGIC;

Result: out STD_LOGIC);

end LFSR29;

architecture LFSR29 of LFSR29 is

begin process (CLK)

variable Reg: STD_LOGIC_VECTOR (28 downto 0);

- variable Pol: STD_LOGIC_VECTOR (28 downto 0)

variable counter: integer;

variable current_value: STD_LOGIC;

begin

if CLK'event and CLK = '1' then

- Good stop

if Mode = «11» then

Flag <= '0';

Result <= '0';

end if;

- load first state

if Mode = «01» then

Flag <= '0';

Reg:= Data_in;

end if;

-************************generating

if Mode = «10» then

current_value:= '1';

current_value:= current_value xor Reg (28) xor

Reg (26) xor Reg (23) xor Reg (7) xor Reg (0);

- end gener

- start shift

for counter in 28 downto 1 loop

Reg(counter):=Reg (counter-1);

end loop;

- end shift

Reg(0):= current_value;

- send result

Flag <= '1';

Result <= current_value;

end if;

-************************ end generating

end if; - for signal CLK

end process;

end LFSR29;

Додаток 2

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

library IEEE;

use IEEE.std_logic_1164.all;

entity control is

port (CLK: in STD_LOGIC;

Reset: in STD_LOGIC;

Mode: in STD_LOGIC_VECTOR (2 downto 0);

Mode1: out STD_LOGIC_VECTOR (1 downto 0);

Mode2: out STD_LOGIC_VECTOR (1 downto 0);

Mode3: out STD_LOGIC_VECTOR (1 downto 0);

Mode4: out STD_LOGIC_VECTOR (1 downto 0);

Flag: out STD_LOGIC); end control;

architecture control of control is

begin process (Reset, Mode, CLK)

begin if Reset = '1' then

Mode1 <= «11»; Mode2 <= «11»;

Mode3 <= «11»; Mode4 <= «11»;

Flag <= '0'; end if;

if CLK'event and CLK = '1' then

case Mode is

when «000» =>-load 1 1b

Mode1 <= «01»; Mode2 <= «11»;

Mode3 <= «11»; Mode4 <= «11»;

Flag <= '0';

when «001» => - load 2 fs

Mode1 <= «11»; Mode2 <= «01»;

Mode3 <= «11»; Mode4 <= «11»;

Flag <= '0';

when «010» => - load 3 fs

Mode1 <= «11»; Mode2 <= «11»;

Mode3 <= «01»; Mode4 <= «11»;

Flag <= '0';

when «011» => - load 4 fs

Mode1 <= «11»; Mode2 <= «11»;

Mode3 <= «11»; Mode4 <= «01»;

Flag <= '0';

when «100» => - Generate

Mode1 <= «10»; Mode2 <= «10»;

Mode3 <= «10»; Mode4 <= «10»;

Flag <= '1';

when others =>

Flag <= '0'; Mode1 <= «11»;

Mode2 <= «11»; Mode3 <= «11»;

Mode4 <= «11»;

end case;

end if; - CLK'event and CLK = '1' then

end process;

end control;

Додаток 3

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

library IEEE;

use IEEE.std_logic_1164.all;

entity conpare_result is

port (

Flag1: in STD_LOGIC;

Flag2: in STD_LOGIC;

Flag3: in STD_LOGIC;

Flag4: in STD_LOGIC;

Flag_main: in STD_LOGIC;

r1: in STD_LOGIC;

r2: in STD_LOGIC;

r3: in STD_LOGIC;

r4: in STD_LOGIC;

Flag: out STD_LOGIC;

Result: out STD_LOGIC

);

end conpare_result;

architecture conpare_result of conpare_result is

begin

process (r1, r2, r3, r4)

variable tmp_Flag: STD_LOGIC;

begin

if Flag_main = '1' then

tmp_Flag:= (Flag1 and Flag2) and (Flag3 and Flag4);

if tmp_flag = '1' then

Result <= r1 xor r2 xor r3 xor r4 xor (r3 and r2);

Flag <= Flag_main;

else Result <= 'X'; Flag <= 'X';

end if;

Flag1 and Flag2 and Flag3 and Flag4 = '1'

else Result <= 'X'; Flag <= 'X';

end if; - Flag_main = '1'

end process;

end conpare_result;

шифрування генератор алгоритм потоковий

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


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

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

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

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

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

  • Історія виникнення та розвиток методів шифрування. Особливості розробки програми, що виконує шифрування за допомогою доповнювального модуля, який надає доступ до самої програми. Вибір ефективного методу шифрування даних. Розробка відповідного інтерфейсу.

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

  • Розробка структурної схеми. Опис основних елементів мікропроцесора. Вибір підходящої структури процесорного елемента та його опис. Реалізація пристрою управління. Розробка мікропрограми та загальний алгоритм виконання процесором команди SBR Rm, B.

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

  • Основи технології запису на оптичні диски. Довготривале зберігання інформації на оптичних носіях. Дослідження існуючих програмних і технічних засобів шифрування даних. Можливі рішення проблем і попередження злому. Програмні засоби шифрування даних.

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

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

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

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

    курсовая работа [245,5 K], добавлен 25.08.2014

  • Види секретної інформації та методи захисту. Тип і об’єм вхідних даних. Програмна реалізація системи алгоритму шифрування зі стисненням. Призначення та опис програмного продукту Export. Алгоритми захисту зберігання та обміну секретною інформацією.

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

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

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

  • Використання адитивних властивостей множин у системі шифрування Цезаря. Розгляд основних етапів процедури шифрування. Шифр перестановки з використанням шифруючої таблиці. З'ясування особливостей шифруючих таблиць Трисемуса та біграмного шифру Плейфейра.

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

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