Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_СТЗИ_Клепач.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
644.79 Кб
Скачать

М ІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

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

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

Курсовий проект (пояснювальна записка)

з дисципліни “Системи технічного захисту інформації”

Тема: Розробка проекту криптографічного процесора текстової інформації

Виконав: ______________/ студентка 431 групи інституту

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

Клепач О.М.

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

Київ 2012

Часть 1

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

Цель работы:

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

  2. Изучить приемы проектирования цифровых устройств в базисе библиотечных функций и мегафункций САПР Max +Plus II.

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

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

  2. Объем шифруемой информации: не менее 128 байт.

  3. Для шифрования информации применить вектор, содержащий ключи из случайного набора 16-тиричных кодов. Шифрующий вектор должен содержать не менее 8-ми ключей. Коды ключей должны храниться в двух портовой памяти.

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

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

  1. Дешифрованный код символа должен (храниться) в регистре и с выхода регистра пересылаться на выходной порт процессора.

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

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

  4. Снять временные характеристики спроектированного процессора, используя модуль Timing Analyzer.

Алгоритмическое изображение схемы

Порядок выполнения работы

В данном курсовом проекте используется метод шифрования RSA, названный так по начальным буквам фамилий его изобретателей (Rivest, Shamir, Adleman).

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

Можно выделить следующие три свойства метода шифрования RSA:

  1. расшифровать данные с помощью открытого ключа невозможно;

  2. ключ для расшифрования не может быть определен из открытого ключа, т.е. из ключа шифрования;

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

Чтобы использовать алгоритм RSA, нужно сначала сгенерировать открытый и закрытый ключи, выполнив следующие шаги:

  1. выбирают два простых числа p и q (в идеале берут очень большие числа);

  2. определяют два произведения: n=p*q и m=(p-1)*(q-1);

  3. выбирают случайное целое число d взаимно простое с m;

  4. подбирают такое целое число е, для которого является истинным следующее соотношение: (e*d)mod m =1;

После произведенных действий получим:

(d, n) – открытый ключ;

(e, n) – закрытый (секретный) ключ.

Теперь, чтобы зашифровать исходные данные по известному ключу (d, n), необходимо выполнить следующее:

  1. разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде целого числа (text(i));

  1. зашифровать текст, рассматриваемый как последовательность чисел, по формуле: code(i) = (text(i)^d) mod n.

Для расшифрования этих данных, используя секретный ключ (e, n), необходимо применить следующую формулу: decode(i) = (code(i)^e) mod n.

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

Сгенерируем открытый и закрытый ключи, выполнив следующие шаги:

  1. согласно заданию: p = 3, q = 11;

  2. вычисляем n = p*q = 33 и m = (p-1)*(q-1) = 20;

  3. выбираем случайное целое число e = 5 взаимно простое с m;

  4. подбираем такое целое число d = 7, для которого является истинным следующее соотношение: (e*d)mod m =1;

В итоге получаем:

(3, 33)открытый ключ;

(7, 33)закрытый ключ.

Разрабатываемый криптографический процессор будет шифровать данные по формуле: code(i) = (data(i) ^ 3) mod 33.

Соответственно для расшифрования полученной информации необходимо будет применить формулу: decode(i) = (code(i) ^ 7) mod 33.

Cогласно заданию будем шифровать следующие данные:

№сим

0

1

2

3

4

5

6

текс

K

l

e

p

a

c

h

код

0100/1011

4/11

0110/1100

6/12

0110/0101

6/5

0111/0000

7/0

0110/0001

6/1

0110/0011

6/3

0110/1000

6/8

№сим

7

8

9

10

11

12

13

текс

O

l

g

a

4

3

1

код

0110/1111

6/15

0110/1100

6/12

0110/0111

6/7

0110/0001

6/1

0011/0100

3/4

0011/011

3/3

0011/0001

3/1

№сим

14

текс

G

код

0100/0111

4/7

В проекте используются следующие элементы и условные обозначения:

  • входные порты:

clk – тактовый сигнал;

wren_dmem– тактовый сигнал разрешения записи данных в память;

asclr – сигнал асинхронной очистки адресных счетчиков памяти, выходных регистров;

clk_registr – тактовый сигнал записи данных в выходные регистры;

text(7:0) – входной порт для ввода данных, подлежащих шифрованию;

stepin –тактовой сигнал для возведения числа в 3-ю степень;

stepindesh – тактовый сигнал для возведения числа в 7-ю степень и определения остатка;

а(4..0) – входной порт для ввода числа , остаток от которого определяется;

  • выходные порты:

ram(7..0) –порт для вывода данных, которые хранятся в памяти

Q(4..0) – порт для вывода данных счетчика;

th(38..0) –порт для вывода данных, возведенных в 3-ю степень;

mod33(4..0) –порт для вывода зашифрованной информации в потоковом формате;

Kod_text – порт для вывода зашифрованной информации;

dekod_text – порт для вывода дешифрованной информации.

Элементы:

Olya – адресные счетчики памяти;