Шифрование данных для связи между устройствами IoT (представлено через Lora).
Осторожность
Обратите внимание, что код и материалы, представленные в этом хранилище, предназначены только для образовательных целей и небезопасны для использования в производстве.
Примечание
Комплект разработчика, который мы будем использовать в этом проекте,-это Arduino Uno, с Ebyte E32-433T20D в этом проекте.
Фон
Алгоритм используется в этом проекте
Участники
В сфере Интернета вещей (IoT) безопасная связь между устройствами имеет первостепенное значение. Технология Lora (Long Drange) предлагает надежное решение для дальнейших и низких мощных коммуникаций, что делает ее идеальным для приложений IoT. Тем не менее, неотъемлемые ограничения LORA, такие как низкие ставки передачи данных и ограниченные размеры полезной нагрузки, требуют использования легких алгоритмов шифрования для обеспечения безопасности данных без ущерба для производительности.
Этот проект направлен на реализацию и демонстрацию методов шифрования данных, подходящих для Lora Communication. Мы выбрали два классических алгоритма шифрования, шифр Цезарь и шифр Vigenère из -за их простоты и эффективности. Эти алгоритмы обеспечивают базовый уровень безопасности, что делает их подходящими для образовательных целей и легких приложений, где ограничения ресурсов вызывают беспокойство.
Цифр Цезаря - это заместительную шифру, где каждая буква в открытом тексте смещена определенное количество мест вниз или вверх по алфавиту. Загорание Vigenère, с другой стороны, представляет собой более сложную полиалфабетическую шифр подстановки, которая использует ключевое слово для определения сдвига для каждой буквы в открытом виде. Оба алгоритма реализованы в этом проекте, чтобы продемонстрировать свои процессы шифрования и дешифрования.
Из -за ограничения передачи Лоры, ограничения времени и необходимости легкого алгоритма шифрования мы решили использовать шифр Цезаря и алгоритм шифра Vigenère.
git clone https://github.com/l1ttled1no/LoRaEncryptionПримечание
Сдвиг в шифре Цезаря может быть изменен в файле main.cpp. Ключ в Vigenère Cipher может быть изменен в файле main.cpp.
Во -первых, создайте основной исполняемый файл:
g++ -Ilib -o main main.cpp src/ * .cppЗатем запустите исполняемый файл с параметрами:
./main [input_string]Например:
> ./main hello world
Input: hello world
--------------Caesar Algorithm--------------
Original text: hello world
Encrypted text: rovvy*"y|vn
Decrypted text: hello world
--------------Vigenere Algorithm--------------
Original text: hello world
Encrypted text: Uvaae!aQ
Decrypted text: hello world
>
Примечание
Строка может иметь пробелы и специальные символы, в пределах диапазона ASCII от 32 до 126.
@l1ttled1no (основной вклад).