- •2.Патентно-информационный анализ
- •2.1 Изделие е-61ра
- •2.1.1 Изделие е-61ра обеспечивает:
- •2.2 Аппаратура криптографической защиты документальной информации. Т-237е
- •2.2.1 Аппаратура обеспечивает:
- •2.2.2Назначение составных устройств аппаратуры:
- •2.3 Аппаратура автоматического засекречивания речевой информации е-58 с обеспечением режима "Абонент - секретарь"
- •2.3.2 Состав аппаратуры:
- •3.Анализ существующих программируемых логических интегральных схем
- •3.1 Архитектура программируемых логических интегральных схем (плис или fpga)
- •3.2 Классификация по типу хранения конфигурации плис.
- •3.3 Конфигурируемые логические блоки.
- •3.4 Программируемые связи логических блоков.
- •3.4 Компилятор для проектирования плис.
- •4. Элементная база и по.
- •4.1 Элементная база
- •4.1.2 Выбор отладочной платы
- •4.2 Программное обеспечение
- •4.3 Обоснование выбора элементной базы и по.
- •1.Разработка проекта гост 28147-89 для программирования плис
- •1.1 Режим простой замены
- •1.1.1 Зашифрование открытых данных
- •1.1.2 Расшифрование зашифрованных данных в режиме простой замены
- •2. Режим гаммирования
- •2.1.1. Зашифрование открытых данных в режиме гаммирования
- •4.4.2. Расшифрование зашифрованных данных в режиме гаммирования
4.3 Обоснование выбора элементной базы и по.
В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др., Фирмы изготовители ПЛИС для разработки проектов на своих микросхемах выпускают привязанное ним ПО. Поэтому выбирая микросхему мы выбираем и ПО в которой будем с ней работать . Выбор же самой ПЛИС обуславливался ТТХ , для реализации на ней проекта СКЗИ.
КОНСТРУКТОРСКАЯ ЧАСТЬ
1.Разработка проекта гост 28147-89 для программирования плис
1.1 Режим простой замены
1.1.1 Зашифрование открытых данных
Криптосхема, реализующая алгоритм зашифрования в режиме простой замены, должна иметь вид, приведенный на рисунке 1а.
Рисунок 1а.
Открытые данные, подлежащие зашифрованию, разбиваются на блоки по 64 бита в каждом. Ввод любого блока Т0=(a1(0), a2(0), …, a32(0), b1(0), b2(0), …, b32(0)) двоичной информации в накопители N1 (рис3 ) и N2 (рис5) производится так:
что значение a1(0) вводится в 1-й разряд N1,
значение a2(0) вводится во 2-й разряд N1, и т.д.,
значение a32(0) вводится в 32-й разряд N1;
значение b1(0) вводится в 1-й разряд N2,
значение b2(0) вводится во 2-й разряд N2 и т.д.,
значение b32(0) вводится в 32-й разряд N2.
Блоки данных вводятся через мультиплексоры (рис 2 и рис 4) чтобы корректно записывать в накопители зашифрованные данные и только поступившие - открытые данные.
В результате получают состояние (a32(0), a31(0), …, a2(0), a1(0)) накопителя N1 и состояние (b32(0), b31(0), …, b2(0), b1(0)) накопителя N2.
Рис.1 Поступающие данные для записи
Рис2. Мультиплексор обрабатывающий поступающую информацию для накопителя N1
- xx [31..0]- блок информации полученный после цикла зашифрования
-aa [31..0]- блок информации полученный для цикла зашифрования
Рис3. Накопитель N1 в который записывается блок двоичной информации Т0=(a1(0), a2(0), …, a32(0)
Рис4. Мультиплексор обрабатывающий поступающую информацию для накопителя N2
-bl [31..0]- блок информации переписываемый из носителя N1 при записывании в него xx[31..0]
Рис5. Накопитель N2 в который записывается блок двоичной информации
В КЗУ (рис 7.) вводятся 256 бит ключа (рис 8.) . Чтобы обеспечить ввод ключа в КЗУ необходимо установить счетчик (рис 6) на котором по команде wr[19] к изменению данных откроется доступ, т.е a[0] =1, после записи ключа a[0] становится в 0. Далее схема зашифрования готова к работе.
Рис.6 Счетчик записи ключа в КЗУ
Содержимое восьми 32-разрядных накопителей Х0, Х1, …, Х7 имеет вид:
Х0=(W32, W31, …, W2, W1)
Х1=(W64, W63, …, W34, W33)
. . . . . . . . . . . . .
Х7=(W256, W255, …, W226, W225)
Рис7. Носитель КЗУ в который вводятся 256 бит ключа.
Рис8. Ключ зашифрования.
Алгоритм зашифрования 64-разрядного блока открытых данных в режиме простой замены состоит из 32 циклов.
В первом цикле начальное заполнение накопителя N1 суммируется по модулю 232 в сумматоре СМ1 (Рис. 9) с заполнением накопителя Х0, при этом заполнение накопителя N1 сохраняется.
Рис9. Сумматор СМ1
ac[31..0] –данные полученные из носителя N1
Рис10. Блоки подстановки K0 ..K7
Рис. 11 Регистры заполнения данных перестановки для блоков K0 ..K7
Заполнение блоков подстановки K0 ..K7 (рис.10) происходит через регистры (рис 11) с помощью поступающих команд wr[2..17] .Результат суммирования преобразуется в блоке подстановки К и полученный вектор поступает на вход регистра R, где циклически сдвигается на одиннадцать шагов в сторону старших разрядов. Результат сдвига суммируется поразрядно по модулю 2 в сумматоре СМ2 (рис 12) с 32-разрядным заполнением накопителя N2.
Рис12. Сумматор СМ2
kk[20..0],kk[31..21]-сдвиг в 11 разрядов условно переставлены биты.
Полученный в СМ2 результат записывается в N1, при этом старое значение N1 переписывается в N2. Первый цикл заканчивается.
Последующие циклы осуществляются аналогично, при этом во 2-м цикле из КЗУ считывается заполнение Х1, в 3-м цикле из КЗУ считывается заполнение Х2 и т.д., в 8-м цикле из КЗУ считывается заполнение Х7. В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й заполнения из КЗУ считываются в том же порядке:
Х0, Х1, Х2, Х3, Х4, Х5, Х6, Х7.
В последних восьми циклах с 25-го по 32-й порядок считывания заполнений КЗУ обратный:
Х7, Х6, Х5, Х4, Х3, Х2, Х1, Х0.
Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выбора заполнений накопителей:
Х0, Х1, Х2, Х3, Х4, Х5, Х6, Х7, Х0, Х1, Х2, Х3, Х4, Х5, Х6, Х7,
Х0, Х1, Х2, Х3, Х4, Х5, Х6, Х7, Х7, Х6, Х5, Х4, Х3, Х2, Х1, Х0.
В 32-м цикле результат из сумматора СМ2 вводится в накопитель N2, а в накопителе N1 сохраняется старое заполнение.
Полученные после 32-го цикла зашифрования заполнения накопителей N1 и N2 являются блоком зашифрованных данных, соответствующих блоку открытых данных.
Рис.13 Счетчик на 32 цикла
При завершении 32 циклов зашифрования , записаная информация передается на выход и сбрасывается , алгоритм запускается по новой уже с новыми блоками информации. После того как проходит 32 цикл , процессор засекает переключение по rd[0] (рис 14) с 0 на 1 , после этого обращается к rd[1] , rd[2] и читает зашифрованую информацию.
Рис.14
Работа алгоритма на ПЛИС осуществляется в 5 тактов, которые формируются с помощью на D-триггеров , логическая схема формирования тактов указана на рисунке 15
Рис. 15 Формирование тактовых сигналов.
-Первый такт обеспечивает вывод ключа(1t)
-Второй такт Фиксирует выход СМ2 (2t)
-Третий переключает мультиплексор и записывает результат в N2 (3t)
-Четвертый такт работает аналогично с N1 (4t)
-Пятый такт срабатывает по завершению 32 циклов и сбрасывает информацию. (5t)
