Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (НСиНК) - лабораторные работы.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
477.18 Кб
Скачать

1.2 Реализация алгоритма шифрования на процессоре nm6403

Для реализации шифрования на нейропроцессоре был взят алгоритм ГОСТ 28147-89 в режиме простой замены, то есть шифрование заканчивается после осуществления всех базовых циклов.

Преимущество использования 64-разрядного нейропроцессора состоит в том, что он может одновременно обрабатывать не один блок, а два, в связи с чем, скорость шифрования существенно повышается. Также, так как процессор имеет 6-то ступенчатый конвейер команд, то он одновременно может выполнять до 5-ти векторных операций и одну скалярную.

В данной программу на вход поступают два 64-разрядныъ блока, старшие части которых обрабатываются в соответствии с алгоритмом с 1-го по 3 шаг. Затем младшие части используются на 4-м шаге, происходит замена старшей и младшей части данных.

Такая последовательность повторяется 32 раза и в конце передаются выходные данные, которые выводятся на экран.

Практическая часть

2.1 Реализация алгоритма гост 28147-89 на нейропроцессоре nm 6403/6404

  1. разработать программу шифрования shifr1.exe;

  2. запустить shift и дешифрирования deshifr2.exe;

  3. запустите файл shifr.exe, сравнить с результатом;

  4. введите данные для шифрования согласно своему варианту задания;

  5. запишите результаты выполнения программы;

  6. запустите файл deshifr.exe

  7. введите результаты, полученные в пункте 3;

  8. резултаты сравните с вариантом задания и сделайте выводы.

2.2 Реализация алгоритма гост 28147-89 на эмуляторе векторе векторных команд

  1. запустите файл X.exe;

  2. переведите данные по таблице ASCII в шестнадцатеричную систему счисления;

  3. введите старшие части полученных данных, подлежащих шифрованию, в поле X, а в Y – старшую часть используемого на данной итерации ключа.

  4. Выберите операцию сложение по модулю 2 (xor) на эмуляторе, запишите результат и переведите его в двоичный вид;

  5. переведите результат по таблице замен (см. пример);

  6. используя эмулятор, сделайте сдвиг на 11 разрядов влево

Примечание 1: используйте операцию маскирования.

Примечание 2:сдвигайте сначала старшую часть, а потом младшую.

  1. сложите младшие части исходных данных с результатами, полученными в пункте 6:

  2. повторите пункты 2-7 еще 2 раза и получившиеся данные сравните с результатом выполнения пункта 2.1.3.

2.3 Варианты заданий

  1. N=careless M=deserter

  2. N=hydrogen M=entrealy

  3. N=monarchy M=darkness

  4. N=separate M=abstract

  5. N=fracture M=infantry

  6. N=skeleton M=discount

  7. N=sergeant M=military

  8. N=strategy M=maintain

  9. N=antennae M=friction

  10. N=standart M=together

  11. N= courtier M=official

  12. N=supreme M=distress

Ключ для всех вариантов abcd efgh klmn.

2.4 Удаленный доступа к плате NeuroMatrix

Возможность доступа к плате NeuroMatrix по сети осуществляется по средствам специально написанной программы работающей по принципу клиент - сервер. Решения реализованные в программе позволяют решить следующие проблемы:

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

  2. Возможен доступ к плате по сети с любого количества компьютеров

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

Программный модуль является и клиентом и сервером в одном лице, а способ работы определяет по наличию локально установленной платы на компьютере.

Программа начинает работу специальной процедурой опроса наличия платы если результат опроса положительный то программа в дальнейшем оперирует процедурами серверной части модуля, в противном случае по указанному IP адресу высылается тестовый пакет информации с целью определения «запущен ли модуль в режиме сервера»

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

Через сетевой интерфейс между клиентской и серверной частью передаются пакеты с командами следующего типа. «Загрузить и выполнить микрокод», «Файл к загрузке», «Получить результат», «Плата занята», «Проверка запущенного сервера». Затем команды принятые серверной частью расшифровываются и в зависимости от полученной команды выполняется та или иная процедура взаимодействия с платой. Помимо этого серверная часть получает информацию о пути к микропрограмме в виде пути к файлу в сетевой папке для общего доступа.

Рис.4.1. Взаимодействие с платой NeuroMatriх по сети.

Для корректной работы с платой были введены следующие ограничения:

1. Файлы с микропрограммами должны находиться в папке с сетевым общим доступом. Это сделано для унифицирования пути расположения микропрограммы

2. Серверная часть на время выполнения микропрограммы переходит в состояние «Занята», это исключает коллизии при попытках одновременно выполнять с разных компьютеров микропрограммы.

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

Выбрав файл *.ASM возможно его компилировать в файл ELF и затем скомпоновать в файл ABS. Который и будет являться исполняемым файлом на плате с NeuroMatrix.

Для запуска файла ABS удаленно его нужно выбрать (при этом файл должен располагаться в сетевой папке), указать количество возвращаемых параметров и нажать кнопку «Загрузить файл на плату».

Были введены ограничения, с целью предотвратить изменение отладочных целей в нейропроцессоре и недопустить его программного зависания. Эти ограничения связаны с используемым адресным пространством платы. Для возможности съема данных с нейропроцессора надо предусмотреть в самом файле *.asm. (выгружая необходимые результаты в shared memory платы начинающейся с адреса $C0000100). Внешний вид интерфейса взаимодействия программы с платой NM представлен на рисунке 4.2.

Рис.4.2. Внешний вид интерфейса взаимодействия программы с платой NM.

На машине с установленной платой (Server) в программном интерфейсе становятся доступны все кнопки на экране оперирующие функциями с платой и в данном случае процесс обработки следует выполнять вручную строго по шагам.