Читайте также:
|
|
Схема электрическая принципиальная (рис.1) данного шифрующего/дешифрующего процессора содержит следующие входные и выходные порты:
- порты для приёма и выдачи информационных данных;
text[7..0] -входной порт текстовых данных;
kluch[7..0] -входной порт ключевых данных;
kod_text[15..0] -выходной порт зашифрованного символа;
decod_text[15..0] -выходной порт дешифрованного символа;
- порты управляющих сигналов:
as_clr - асинхронная очистка адресных счетчиков текстовой памяти, памяти ключей, выходных регистров;
cnt_en_wr_data -разрешение на изменение адреса памяти, хранящей исходную текстовую информацию, в режиме записи;
clk_en_wr_data -разрешение на прием тактового сигнала адресным счетчиком, обслуживающим текстовую память, в режиме записи исходных данных;
wren_dmem -сигнал разрешения записи данных в текстовую память;
clk -тактовый сигнал адресных счетчиков;
wrtclk -тактовый сигнал записи данных в текстовую память и память ключей;
readclk -тактовый сигнал чтения данных из текстовой памяти и памяти ключей;
clk_en_kluch -разрешающий сигнал приема тактового сигнала счетчиков адресов записи ключей;
cnt_en_wr_kluch -разрешение на изменение адреса памяти, хранящей исходную информацию о шифрующих/дешифрующих ключах, в режиме записи;
clk_en_rd - сигнал, разрешающий прием тактового сигнала адресными счетчиками чтения;
cnt_en_rd -сигнал, разрешающий выдачу адресов из счетчиков адресов чтения данных;
wren_klmem - стробирующий сигнал записи данных в память ключей;
clk_out -тактовый сигнал записи данных в выходные регистры ff16.
Схема содержит четыре счётчика: 4 - count4.
Верхняя пара счетчиков count4 обслуживают двухпортовую память mem, куда записывается исходная текстовая информация, которую необходимо зашифровать. Верхний счётчик этой пары предназначен для выбора адреса памяти, по которому будет осуществлена запись одного из кодов символа исходного текста. Второй счётчик count4 предназначен для выбора адреса памяти mem, из которого считывается код символа, подлежащий кодированию шифрующим процессором.
Самая нижняя пара счетчиков count4 обслуживает двухпортовую память mem, где хранятся коды шифрующих/дешифрующих ключей. Верхний счетчик count4 предназначен для формирования адресов памяти при записи в нее кодов шифрующих/дешифрующих ключей. Нижний счетчик count4 предназначен для формирования адресов памяти при считывании из нее кодов шифрующих/дешифрующих ключей.
Шифрующий процесс в данном проекте построен на основе формулы (циклический сдвиг на 3 бита)/ ключ, а шифрующий процессор в данном проекте построен на базе сдвигового регистра shift_L и делителя del. На каждом элементарном такте (clk) на вход numerator[7..0] делителя del поступает сдвинутый на 3 бита код текстового символа из сдвигового регистра shift_L. На вход denominator[7..0] делителя поступает значения ключей шифрования из памяти ключей mem.
Исходный код шифруемого символа поступает на вход q[7..0] сдвигового регистра shift_L из памяти mem взятого по і-тому адресу. Заметим, что количество сдвигов исходного текстового символа влево задается со входного порта shift_d_L[2..0].
Выходная информация (зашифрованный символ) с выхода делителя quotient[15..0] по тактовому сигналу clk_FF записывается в регистр FF хранения кода зашифрованного символа, выходы которого связанны с выходным портом kod_text[15.. 0].
Дешифрующий процессор построен на базе умножителя mux16 и сдвигового регистра shift_R_16 (циклический сдвиг вправо). Зашифрованный код символа с выхода result[15..0] умножителя поступает на вход data[15..0] сдвигового регистра shift_R_16.
На вход datаb[7..0] умножителя поступает код шифрирующего ключа с выхода q[7..0] памяти ключей mem. Выход result[7..0] сдвигового регистра shift_R_16 связан со входом data[15..0] регистра ff16, который по тактовому сигналу clk_FF записывает код дешифрованного символа. Выход этого регистра связан с выходным портом texrt[15..0].
. Заметим, что количество сдвигов исходного текстового символа вправо задается со входного порта shift_d_R[2..0].
С помощью редактора Waveform Editor была построена временная диаграмма работы проекта и выполнена проверка его функциональной работоспособности. На Рис.2 приведена временная диаграмма работы проекта на временном интервале 500 – 650мсек. Полная временная диаграмма работы проекта содержится в файле part1.scf.
Примечание: Так как в структуре проекта обычно содержится несколько последовательно соединенных функциональных узлов цифровой схемотехники, для выхода проекта на рабочий режим его работы требуется некоторое время, т.е.несколько тактовых импульсов для разгона.
Рис.2
Работа проекта на временном интервале 0 млсек 700 млсек была промоделирована с использованием модуля Simulator. Временные задержки между функциональными блоками в проекте были получены при запуске модуля Timing Analizer
Выводы:
1) С помощью графического редактора САПР МАХ+PlusII (Graphic Editor) была построена схема электрическая принципиальная процессора, который выполняет шифрование/дешифрование текстовой информации, представленной в шестнадцатиричных кодах ASCII;
2) Так как данный проект занимает довольно много места, компилятор разместил его на микросхеме семейства Flex10KE (тип СБИС EPF10K30EFC 481-1), потому что использовалась двухпортовая память;
Рекомендации по выполнению КР:
Перед построением проекта шифрующего/дешифрующего процессора своего варианта:
– Изучите временную диаграмму работы счетчика count. Для этого целесообразно построить автономный проект count и с помощью этого проекта промоделировать работу счетчика.
– Изучите временную диаграмму работы двух портовой памяти ramdp. Для этого целесообразно построить автономный проект ramdp и с помощью этого проекта промоделировать работу памяти. Это дает возможность более четко уяснить принципы работы с блоками памяти.
– Постройте автономные проекты для других функциональных узлов, содержащихся в структуре Вашего проекта.
Примечание: Справочную информацию обиблиотечных функциях и мегафункциях можно получить из справочной системы MAX+Plus II.
Форма Отчетности:
1. Номер варианта задания взятого из таблицы №1 должен соответствовать номеру студента по деканатскому журналу группы
2. Составить отчет, оформленный в соответствии ГОСТ в котором должны присутствовать следующие разделы:
· Титульный лист с указанием Темы 1-й части курсовой работы.
· Цель работы;
· Задание на проектирование;
· Блок-схема алгоритма функционирования проекта
· Графический проект криптографического процессора;
· Описание работы проекта криптографического процессора;
· Временную диаграмму работы процессора;
· Временные характеристики процессоров.
· Выводы по работе
3. Защитить 1-ю часть курсового проекта до 20 ноября 2012 года.
Таблица 1
2012-2013
Вариант | Наименование метода шифрования | Особые характеристики проекта |
1. | Метод сложной замены символов + ключ | (Ti Ki+1 )+K, где l (K)= l (T) количество раундов замены – 4 |
2. | Метод сложной замены символов - ключ | (Ti Ki+1 )+K, где l (K)= l (T) количество раундов замены – 3 |
3. | Комбинированный метод перестановки соседних пар бит Тшифр=Тпер * ключ | на 1 байт - 8 перестановок, (1 2, 2 3) (3 4, 4 5) (5 6, 6 7) (7 8, 8 1) l (K)= l (T) |
4. | Комбинированный метод перестановки соседних пар бит Тшифр=Тпер + ключ | на 1 байт – 2 раунда перестановки по 8 бит в следующей последовательности: 1й раунд (1 3, 2 4) (3 1, 4 2)(5 7, 6 8) (7 5, 8 6) 2й раунд (1 5, 2 6) (3 7, 4 8) (5 1, 6 2) (7 3, 8 4) l (K)= l (T) |
5. | Метод перестановки группы бит Тшифр=Тпер * ключ | 2 бита в группе, на 1 байт количество раундов перестановки – 4. l (K)=2 байта |
6. | Виженера | Длина ключа 3 символа |
7. | Линейных преобразований | матрица шифр. Ключей |
8. | Эль Гамаля | |
9. | RSA | |
10. | RSA | |
11. | Циклический сдвиг влево на 3 бита Тшифр=(Тсдви –К1) * К2 | Количество раундов сдвига – 3. Количество раундов наложения/снятия ключа – 6. l (K1)=128 бит, l (K2)= l (T) |
12. | RSA | |
13. | Циклический сдвиг вправо на 5 бит Тшифр=Тсдви - ключ | Количество раундов сдвига – 4. Количество раундов наложения/снятия ключа – 4. l (K)= l (T) |
14. | Циклический сдвиг влево на 3 бита Тшифр=Тсдви*К1 – К2 | Количество раундов сдвига – 8. Количество раундов наложения/снятия ключа – 4 l (K1)=1 байт, l (K2)= l (T) |
15. | Логический сдвиг влево на 3 бита Тшифр=(Тсдви*К1) – К2 | Количество раундов сдвига – 1. Количество раундов наложения/снятия ключа К1 – 1. l (K1)=16 бит, l (K2)= l (T) |
16. | Метод перестановки пар битов Тшифр=(Тпер+К1)6+К2 | на 1 байт - 4 перестановки, количество раундов перестановки –6 l (K1)= l (T) l (K2)= l (T) |
17. | Логический сдвиг вправо на 3 бита с простой заменой Тшифр=(Т(i)сдви Кi) – К2 | Количество раундов сдвига – 1. Количество раундов замены – 1. l (K2)=16 бит, l (K)= l (T) |
18. | Метод перестановки группы битов с простой заменой Тшифр=(Т(i)сдви К1i)4*К2 | Количество бит в группе - 3 бита Количество раундов перестановки на 1 байт - 4 Количество раундов наложения/снятия ключа К1 – 4. Количество раундов наложения/снятия ключа К2 – 1. l (K1)= l (T) l (K2)= l (T) |
19. | Логический сдвиг вправо на 5 бит Тшифр=((Тпер+К1)4+К2)3 | Количество раундов сдвига – 2. Количество раундов наложения/снятия ключа К1 – 4. Количество раундов наложения/снятия ключа К2 – 3. l (K1)=64 бита, l (K2)= l (T) |
20. | Метод перестановки группы бит Тшифр=(Т(i)сдви +К1i)2*К2 | Количество бит в группе - 2 бита Количество раундов перестановки на 1 байт - 2 Количество раундов наложения/снятия ключа К1 – 2. Количество раундов наложения/снятия ключа К2 – 3. l (K1)=1 байт l (K2)= l (T) |
21. | Логический сдвиг влево на 4 бита с простой заменой Тшифр=((Тсдв К1)+К2)4 | Количество раундов сдвига на 1 байт - 2 Количество раундов наложения/снятия ключа К1 – 2. Количество раундов наложения/снятия ключа К2 – 4. l (K1)= l (T) l (K2)= l (T) |
22. | Виженера | Длина ключа 4 символа |
23. | Метод перестановки группы бит Тшифр=(Тпер+К1)4+2К2 | Количество бит в группе - 3 бита на 1 байт - 4 перестановки Количество раундов наложения/снятия ключа К2 – 2. l (K1)= l (T) l (K2)= l (T) |
24. | Метод подстановки с логическим сдвигом вправо на 3 бита Тшифр=(Тi К1i)сдвиг + (Тi К2i) сдвиг | Количество раундов сдвига – 1. Количество раундов замены – 1. l (K2)= l (T), l (K1)= l (T) |
25. | Метод перестановки группы битов с простой заменой Тшифр=(Т(откр)пер К1i)4+(Т(откр)пер К2i)2 | Количество бит в группе - 3 бита Количество раундов перестановки на 1 байт - 1 Количество раундов наложения/снятия ключа К1 – 4. Количество раундов наложения/снятия ключа К2 – 2. l (K1)= l (T) l (K2)= l (T) |
26. | Перестановка бит с циклическим сдвигом вправо на 2 бита Тшифр=((Тпер)сдвиг+К) | Количество раундов перестановки на 1 байт - 4 Количество раундов сдвига – 1 Количество раундов наложения/снятия ключа К – 4. l (K) = l (T) |
27. | Метод перестановки группы бит с циклическим сдвигом влево Тшифр=(Тпер)сдви +К1i)2*К2 | Количество бит в группе - 2 бита Количество перестановок на 1байт – 4 Количество раундов перестановки на 1 байт - 2 Количество раундов наложения/снятия ключа К1 – 2. Количество раундов наложения/снятия ключа К2 – 3. l (K1)= l (K2)= l (T) |
28. | Перестановка бит с логическим сдвигом влево на 1 бит Тшифр=(((Тпер)сдви +К1)2+К2)4 | на 1 байт - 8 перестановок, (1 2, 2 3) (3 4, 4 5) (5 6, 6 7) (7 8, 8 1) Количество раундов сдвига на 1 байт - 1 Количество раундов наложения/снятия ключа К1 – 2. Количество раундов наложения/снятия ключа К2 – 4. l (K1)= l (T) l (K2)= l (T) |
29. | Эль Гамаля | |
30. | RSA |
Разработчик: доц. Тимошенко Н.П.
Дата добавления: 2015-07-20; просмотров: 83 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Задание | | | Задание |