Skip to content

Прототип криптографической системы на микроконтроллере ATmega32

Notifications You must be signed in to change notification settings

poly-kate/prototype-RSA-ATmega32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Прототип криптографической системы (микроконтроллер ATmega32)

Криптосистема RSA

Принцип действия криптосистемы RSA заключается в следующем. Пусть p и q – два больших простых числа и пусть n = pq. Выбирается число e, 1 < e < φ(n) - 1, взаимно простое со значением функции Эйлера φ(n) = (p - 1)(q - 1), и вычисляется d – мультипликативно обратное к e: d = e^-1 (mod φ(n)), то есть ed = 1 (mod φ(n)). Числа e и d называются открытым и секретным показателями соответственно. Открытым ключом является пара (n, e), секретным ключом – число d. Множители p и q должны храниться в секрете. Для зашифрования сообщения m нужно вычислить шифртекст c = m^e (mod n), для расшифрования – возвести шифртекст в степень d: m = c^d (mod n). Аналогично реализуется цифровая подпись: подписью сообщения m является число s = m^d (mod n), где d – секретный ключ формирования подписи.

Программный комплекс состоит из двух частей: программа для микроконтроллера и приложение для ПК.

Программа для МК осуществляет хранение параметров криптосистемы (ключей), управление ключами в соответствии с поступающими от ПК командами, шифрование и расшифрование двоичных данных, поступающих с ПК, а также подписание и проверку подписи хэша, поступающего с ПК. Обработка двоичных данных, поступающих с ПК, выполняется побайтно (пословно). Приложение для ПК предоставляет пользователю интерфейс для управления параметрами криптосистемы (считывание параметров из памяти МК, генерация и запись ключей в память МК, удаление отдельных ключей), возможность ввода (выбора) имён файлов для считывания и записи двоичных данных, указания выполняемого действия (шифрование, расшифрование, вычисление хэша и электронной подписи, вычисление хэша и проверка электронной подписи). Взаимодействие между устройствами осуществляться по интерфейсу UART-виртуальный COM-порт.

Описания криптосистемы и параметры:

  • Криптосистема RSA. Приложение для микроконтроллера позволяет одновременно хранить в памяти EEPROM несколько троек параметров (n, e, d). При шифровании, расшифровании, подписании и проверки подписи открытый ключ (n, e) передается вместе с телом файла и при расшифровании и подписании микроконтроллер выполняет поиск секретного ключа по записям открытых ключей в EEPROM. В качестве параметров для проверки работоспособности можно использовать следующие величины: n = 39913, e = 453 и d = 1221.

  • Дополнительные параметры: МК должен ведет подсчёт статистики по количеству команд шифрования, расшифрования, подписания и проверки подписи по всем существующим в EEPROM ключам, а также единый набор по отсутствующим ключам. По команде с ПК статистика сохраняться в EEPROM. В приложении для ПК есть возможность получить всю текущую статистику и записать в отдельный файл/вывести в собственное окно, а также возможность обнуления всей статистики.

Внешний вид интерфейса:

image

About

Прототип криптографической системы на микроконтроллере ATmega32

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published