Un cifrado de datos para la comunicación entre los dispositivos IoT (representados a través de Lora).
Precaución
Tenga en cuenta que el código y los materiales proporcionados en este repositorio están destinados solo a fines educativos y no es seguro ser utilizado en la producción.
Nota
El kit de desarrollo que usaremos en este proyecto es Arduino Uno, con un EBYTE E32-433T20D en este proyecto.
Fondo
Algoritmo utilizando en este proyecto
Colaboradores
En el ámbito de Internet de las cosas (IoT), la comunicación segura entre dispositivos es primordial. La tecnología Lora (Long Range) ofrece una solución robusta para la comunicación de baja potencia de larga distancia, lo que lo hace ideal para aplicaciones IoT. Sin embargo, las limitaciones inherentes de LORA, como las bajas tasas de datos y los tamaños de carga útil limitados, requieren el uso de algoritmos de cifrado livianos para garantizar la seguridad de los datos sin comprometer el rendimiento.
Este proyecto tiene como objetivo implementar y demostrar técnicas de cifrado de datos adecuadas para la comunicación Lora. Hemos elegido dos algoritmos de cifrado clásico, el cifrado César y el cifrado Vigenère, debido a su simplicidad y eficiencia. Estos algoritmos proporcionan un nivel básico de seguridad, lo que los hace adecuados para fines educativos y aplicaciones livianas donde las limitaciones de recursos son una preocupación.
El cifrado César es un cifrado de sustitución donde cada letra en el texto sin formato se desplaza un cierto número de lugares hacia abajo o hacia arriba del alfabeto. El cifrado Vigenère, por otro lado, es un cifrado de sustitución polalfabética más compleja que utiliza una palabra clave para determinar el cambio para cada letra en el texto sin formato. Ambos algoritmos se implementan en este proyecto para mostrar sus procesos de cifrado y descifrado.
Debido a la limitación de la transmisión Lora, la limitación del tiempo y la necesidad de un algoritmo de cifrado liviano, elegimos usar el cifrado César y el algoritmo de cifrado Vigenère.
git clone https://github.com/l1ttled1no/LoRaEncryptionNota
El cambio en Caesar Cipher se puede modificar en el archivo Main.cpp. La clave en Vigenère Cipher se puede modificar en el archivo Main.cpp.
Primero, construya el ejecutable principal:
g++ -Ilib -o main main.cpp src/ * .cppLuego, ejecute el ejecutable con parámetros:
./main [input_string]Por ejemplo:
> ./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
>
Nota
La cadena puede tener espacios y caracteres especiales, dentro del rango ASCII de 32 a 126.
@l1ttled1no (contribuyente principal).