(Я не являюсь носителем языка и, возможно, не совсем корректен в терминологии. Извините за это.)
Я передаю данные по радиоканалу между микроконтроллерами AVR для личного использования и хотел бы, чтобы клиенты продемонстрировалиподлинность передаваемых данных в том смысле, что они исходят от одного из авторизованных клиентов.Это означает, что я не требую отказа от авторства и могу заранее определить общий ключ.Я провел некоторые исследования различных подходов и обнаружил, что мне нужна помощь в выборе того, который наилучшим образом соответствует моим требованиям.
Пожалуйста, поймите, что мне не требуется максимальная безопасность.Я просто хотел бы предотвратить взлом потенциального соседа по сценарию в течение нескольких часов.Если бы для взлома со средним потребительским оборудованием потребовалось бы несколько недель, то сегодня все будет в порядке.
Передаваемые мною сообщения довольно малы по размеру (не более 30 байт с полезной нагрузкой всего в несколько байтов) ичастота будет не более 30 сообщений / мин.
Один из вариантов использования - детектор движения, отправляющий сообщение по радиоканалу на блок обработки, который затем отправляет другое сообщение по радиоканалу на выключатель света.Пожалуйста, не сосредотачивайтесь на транспорте.Этот вопрос касается только достоверности данных.
Я использую программное обеспечение клиент / сервер (на языке C) на микроконтроллерах AVR с тактовой частотой 20 МГц с очень ограниченным объемом флэш-памяти и оперативной памяти.Поэтому я ищу решение с небольшим размером кода и использованием оперативной памяти, в то же время обеспечивая высокую скорость передачи данных.
Я провел некоторое тестирование производительности с реализацией MD5 (C), создавая хэши из 20-байтовых данных, и обнаружил, что ономожет быть слишком медленнымЯ понимаю, что реализация MD5 сама по себе не решит требование.Я провел тестирование только для оценки производительности хеширования.
Спасибо за комментарии