- •Министерство цифрового развития, связи и массовых коммуникаций российской федерации
- •Московский технический университет связи и информатики
- •«Реализация на основе сигнального процессора криптосистемы по алгоритму rsa в расширенных полях Галуа для 48-разрядных данных. Цифровая подпись и аутентификация с хеш-функцией»
- •Введение
- •Глава 1 Формирование технического задания на составную часть эскизного проекта
- •Глава 2 Краткие теоретические основы
- •2.1 Математический аппарат
- •2.2 Особенности реализации rsa в расширенных полях Галуа
- •2.3 Цифровая подпись и аутентификация по алгоритму rsa
- •2.3.1 Генерация ключей для алгоритма rsa
- •2.3.2 Процесс подписи и проверки в алгоритме rsa
- •2.3.3 Преимущества схемы цифровой подписи rsa
- •2.3.4 Аутентификация в алгоритме rsa
- •Глава 3 Разработка и описание функциональной схемы микропроцессорного устройства
- •Глава 4 Разработка программного обеспечения микропроцессорного устройства
- •4.1 Генерация ключей
- •4.2 Разработка блок-схемы основной программы
- •4.3 Разработка блок-схем подпрограмм основной программы
- •Глава 5 Анализ результатов работы программного обеспечения микропроцессорного устройства
- •5.1 Исходные данные и параметры системы
- •Вычисление 16-битного хеш-образа сообщения
- •Формирование цифровой подписи
- •Процедура аутентификации (верификация подписи)
- •Заключение
- •Список использованных источников
- •Приложение а тз на составную часть эскизного проекта
- •2 Цель разработки, наименование и обозначение изделия
- •2.1 Цель разработки
- •3 Технические требования к изделию
- •4 Технико-экономические требования
- •5 Требования к видам обеспечения
- •Тапы выполнения эскизного проекта
- •Порядок выполнения и приемки этапов эскизного проекта
- •Приложение б Текст основной программы с необходимыми комментариями
- •Приложение в Текст демонстрационной программы с форсированием прерываний
- •Приложение г Инструкция по работе с мпкс
2.3 Цифровая подпись и аутентификация по алгоритму rsa
Алгоритм RSA — это криптографический метод с открытым ключом, который базируется на сложности факторизации больших целых чисел. Этот алгоритм используется как для шифрования данных, так и для создания цифровых подписей. Он широко применяется в различных криптографических приложениях благодаря своей надёжности.
2.3.1 Генерация ключей для алгоритма rsa
Генерируются два случайных простых числа р и q.
Вычисляется их произведение n = р × q.
Выбирается открытая экспонента е, такая что 1<е<φ(n), и она взаимно простая с φ(n). Здесь φ(n) = (p - 1) × (q - 1).
Вычисляется закрытая экспонента d, такая что (d × е) mod φ(n) = 1.
Публичным ключом является пара (n, е), а закрытым ключом (n, d).
2.3.2 Процесс подписи и проверки в алгоритме rsa
Подписание сообщения:
Вычисляется хеш-код сообщения с использованием криптографической хеш-функции H. Получается значение h=H(M).
С использованием закрытого ключа (n, d) вычисляется цифровая подпись S по формуле: S=hd mod n.
Значение S является цифровой подписью под сообщением M.
Проверка подписи:
Получатель (проверяющая сторона) вычисляет хеш-код полученного сообщения M′ той же функцией H: h′=H(M′).
С использованием открытого ключа (n,e) выполняется верификация подписи. Для этого из принятой подписи S вычисляется значение V:
V=Se mod n.
Подпись S признаётся подлинной, а сообщение M′ — целостным и исходящим от владельца закрытого ключа, если выполняется равенство: V=h′.
В противном случае подпись считается недействительной.
2.3.3 Преимущества схемы цифровой подписи rsa
Главным преимуществом схемы цифровой подписи RSA является гибкость использования одинаковой пары ключей как для шифрования, так и для подписи. Злоумышленнику, чтобы подделать подпись, необходимо решить сложную задачу факторизации больших чисел.
2.3.4 Аутентификация в алгоритме rsa
Сообщение М шифруется с помощью публичного ключа отправителя для подтверждения, что сообщение действительно принадлежит владельцу указанного открытого ключа: C = Me mod n.
Оригинальное сообщение восстанавливается с использованием закрытого ключа: M = Cd mod n.
Криптографическая стойкость и корректность алгоритма RSA основываются на сложности задачи факторизации больших целых чисел и свойствах возведения в степень в мультипликативной группе кольца вычетов. Эти свойства гарантируют, что операции шифрования и расшифрования, а также формирования и проверки цифровой подписи являются взаимно обратными при корректной генерации ключей. Благодаря этому RSA служит фундаментом для построения двух основных криптографических примитивов: схемы шифрования с открытым ключом и схемы электронной цифровой подписи, что обеспечивает его широкое применение для решения задач конфиденциальности, аутентификации и целостности данных.
Глава 3 Разработка и описание функциональной схемы микропроцессорного устройства
Микропроцессорная криптосистема (МПКС) является универсальным аппаратно-программным решением криптографической защиты информации с возможностью подключения «в разрыв» первичного цифрового потока E1. В состав МПКС входят микропроцессорные устройства. На рисунке 1 представлена функциональная схема микропроцессорного устройства абонента А на базе сигнального процессора ADSP-2181.
Рисунок 1 - Функциональная схема микропроцессорной криптосистемы двух направлений передачи, включенной в поток Е1
Схема микропроцессорной криптосистемы в соответствии с техническим заданием курсового проекта отличается от представленной на рисунке 1 и представлена на рисунке 2.
Рисунок 2 – Разработанная схема криптосистемы цифровой подписи и аутентификации
Схема части абонента А представлена на рисунке 3.
Рисунок 3 – Схема части криптосистемы абонента А
В микропроцессорной криптосистеме выполнение программ осуществляет сигнальный процессор, а непосредственно программное обеспечение записано в энергонезависимой памяти. Такое решение продиктовано тем, что при каждом выключении питания память программ процессора очищается, и в этом случае при каждом рестарте пришлось бы заново программировать процессор. По рестарту программа автоматически считывается из ячеек энергонезависимой памяти во внутреннее ОЗУ программ процессора, после чего активизируется процесс её выполнения. Взаимодействия с энергонезависимой памятью осуществляется через микроконтроллер.
Трансивер первичного цифрового потока представляет собой специализированный микропроцессор, ориентированный на работу с цифровым потоком E1, поступающим на его вход. Входное сопротивление каждого трансивера согласуется с сопротивлением линии посредством включения трансформаторов Тр. Параметры работы трансивера (код сигнала, структура цифрового потока и т.п.) управляются микроконтроллером. Обработка сигнала группы канальных интервалов (в данном случае КИ1...КИ31) потока E1 подразумевает использование функции автобуферирования для приема/передачи, что позволяет использовать циклическую обработку. Для связи с потоком можно использовать многоканальную функцию порта SPORT 0, при этом все операции приема/передачи отдельных канальных интервалов будут выполняться аппаратно и не потребуют реакции программы. Программа будет реагировать на прерывания «передатчик пуст» SPORT0 ПД (адрес 0х10) и «приемник полон» SPORT0 ПМ (адрес 0x14).
Прием и передача данных через порт осуществляются синхронно. Прерывание «передатчик пуст» будет генерироваться раньше, чем «приемник полон». Интервал времени между этими прерываниями примерно равен длительности одного канального интервала 3,9мкс.
Обновление информации в буферах портов происходит при приеме/передаче канальных интервалов. В случае обращения к информации программой в произвольный момент времени, не гарантируется получение обновленного значения или запись в буфер с потерей данных. Для избегания таких ситуаций рекомендуется использовать принцип двойного буферирования, как показано на рис. 4.
Рисунок 4 – Буферирования с помощью SPORT0
Функция автобуферирования использует буферы rx_buf и tx_buf для приема и передачи текущих отчетов потока через регистры ГАД I0 и I1 соответственно. Для двойного буферирования также используются буферы vhod и vihod в программе обработки.
По окончании цикла формируется запрос на прерывание "передатчик пуст". Подпрограмма обработки должна немедленно переписать результаты обработки из буфера vihod в буфер tx_buf.
Через 3,9 мкс формируется запрос на прерывание "приемник полон". Подпрограмма должна немедленно переписать содержимое буфера rx_buf (канальные интервалы КИ1...КИ31) в буфер vhod.
Процессор ADSP-2181 представляет собой один из наиболее мощных 16 - разрядных процессоров семейства ADSP -21XX, производимых фирмой AnalogDevices. Процессор построен по оригинальной пятишинной архитектуре, оптимизированной с ориентацией на обработку сигналов в формате с фиксированной точкой.
Упрощенная архитектура процессора ADSP-2181 представлена в виде функциональной схемы на рисунке 5.
Рисунок 5 – Архитектура ADSP-2181
Типовая функциональная схема, иллюстрирующая включение последовательного порта процессора ADSP-2181 в разрыв одного из направлений передачи потока E1 с использованием приемопередатчика (ПП) представлена на рис. 6.
Рисунок 6 – Функциональная схема включения микропроцессора в поток Е1
На этом рисунке обозначены следующие выводы приемопередатчика ПП:
RTIP, RRING - вход по потоку E1;
TTIP, TRING - выход по потоку Е1;
RSER - выход принимаемого сигнала в коде БBH(NRZ);
TSER - вход передаваемого сигнала в коде БВН(NRZ);
RCLK - выход тактового синхросигнала тракта приема,
TCLK - вход тактового синхросигнала тракта передачи;
SYSCLK - выход циклового синхросигнала.
Разработанное микропроцессорное устройство функционирует в режиме реального времени и реагирует на аппаратные прерывания, генерируемые последовательным портом SPORT0 сигнального процессора ADSP-2181. В соответствии с техническим заданием, данные поступают из канальных интервалов КИ7–КИ14 первичного цифрового потока E1.
При заполнении приёмного буфера SPORT0 генерируется прерывание «приёмник полон» (адрес вектора — 0x14). Обработчик этого прерывания выполняет следующие действия:
Считывает 48-битное сообщение из входного буфера rx_buf в рабочий буфер vhod;
Вызывает подпрограмму calc_simple_hash, формирующую 16-битный хеш-образ;
Инициирует процедуру формирования цифровой подписи путём вызова UMN_step, в результате которой вычисляется значение S = HD (mod N)
После завершения вычислений, при возникновении прерывания «передатчик пуст» (адрес вектора — 0x10), результат (цифровая подпись) копируется из выходного буфера vihod в передающий буфер tx_buf и отправляется в поток E1.
Таким образом, цифровая подпись формируется синхронно с тактовой структурой потока E1, а использование двойного буферирования (vhod/vihod) исключает потерю данных при обработке. Организация обработки прерываний в ADSP-2181 описана в [4].
Аутентификация на стороне получателя осуществляется аналогичным образом: принятая подпись возводится в степень открытого ключа e, и результат сравнивается с локально вычисленным хешем. Совпадение подтверждает подлинность и целостность сообщения.
