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

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

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

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

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

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

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

2.1. Реализация алгоритма гост 28147-89 на нейропроцессоре nm6403/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.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. Имеющиеся средства компиляции позволяют быстро исправить код и повторно запустить на выполнение, без дополнительных средств разработки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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