
- •Министерство цифрового развития, связи и массовых коммуникаций российской федерации
- •Московский технический университет связи и информатики
- •Введение
- •1. Формирование технического задания на составную часть эскизного проекта
- •2. Краткие теоретические основы
- •2.1 Математический аппарат
- •2.2 Распространение ключей в симметричных криптосистемах по алгоритму Диффи-Хелмана
- •3. Разработка и описание функциональной схемы микропроцессорного устройства
- •4. Разработка программного обеспечения микропроцессорного устройства
- •4.1 Генерация ключей
- •4.2 Программный код генерации ключей
- •4.3 Вывод программы генерации ключей
- •4.4 Разработка подпрограммы передачи ключей для абонента c
- •4.5 Программный код для Диффи-Хелмана 3 абонента
- •Программный код 2 – Программный код передачи ключей по потоку e1
- •4.6 Вывод программы Генерации ключей:
- •5. Анализ результатов работы программного обеспечения микропроцессорного устройства
- •Список использованной литературы
- •Приложение 1
- •2 Цель разработки, наименование и обозначение изделия
- •2.1 Цель разработки
- •3 Технические требования к изделию
- •4 Технико-экономические требования
- •5 Требования к видам обеспечения
- •11 Этапы выполнения эскизного проекта
- •12 Порядок выполнения и приемки этапов эскизного проекта
- •Приложение 2
Приложение 2
.SECTION/DM vars;
//-Переменные для обработки сигнала-// .var t; .var g = 1234; //Входной ключ .var k; .var z = 62023; .var n = 40977; .var sd; .var otvet; .var/circ bank[16]; //----------------------------------//
.SECTION/PM varsp;
.SECTION/PM program; jump def; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti; rti;
//----------------Подпрограмма обработки информации-----------//
//Генерация ключей по алгоритму Диффи-Хелмана в расширенных полях Галуа
//-----------------------------------------------------------//
def:
ena m_mode; dis ar_sat;
//Возведение сообщения в степень z ax0 = dm(g); dm(t) = ax0; ax0 = dm(z); dm(k) = ax0; call stepen; dm(otvet) = ar; rts; //----------------------------------------------------------------// // Банк степеней //----------------------------------------------------------------// stepen: I0 = bank; L0 = length(bank); m1 = 1; ar = dm(t); mr0 = dm(t); dm(I0,m1) = ar; cntr = 15; do ms until ce; call umn; dm(I0,m1) = ar; ms: mr0 = ar;
ax0 = dm(k); sr0 = 1; dm(sd) = sr0; se = 1; mr0 = 1; dm(otvet) = mr0; ar = 1; cntr = 16; do p1 until ce; ar = dm(I0,m1); mr0 = dm(otvet); ay0 = dm(sd); none = ax0 and ay0; if ne call umn; sr0 = dm(sd); sr = lshift sr0(lo); dm(sd) = sr0; p1: nop; rts; //----------------------------------------------------------------// // Умножение в расширенных полях Галуа //----------------------------------------------------------------// umn: ay0 = 0; se = 1; af = pass ay0; ay1 = dm(n); sr0 = 1; se = 1; ay0 = sr0; none = mr0 and ay0; if NE af = pass ar;
CNTR = 15; do cicle until CE; sr = lshift sr0 (lo), ay0 = ar; ar = ar + ay0; ay0 = sr0; if ac ar = ar xor ay1; none = mr0 and ay0; cicle: if ne af = ar xor af; ar = pass af; dm(otvet) = ar; RTS; |