Un chiffrement des données pour la communication entre les appareils IoT (représentés via LORA).
Prudence
Veuillez noter que le code et le matériel fourni dans ce référentiel sont destinés à des fins éducatives uniquement et ne sont pas sûrs à être utilisés en production.
Note
Le kit de développement que nous utiliserons dans ce projet est Arduino Uno, avec un EBYTE E32-433T20D dans ce projet.
Arrière-plan
Algorithme utilisant dans ce projet
Contributeurs
Dans le domaine de l'Internet des objets (IoT), la communication sécurisée entre les appareils est primordiale. La technologie LORA (à longue portée) offre une solution robuste pour la communication longue distance et basse puissance, ce qui le rend idéal pour les applications IoT. Cependant, les limitations inhérentes de la LORA, telles que les faibles taux de données et les tailles de charge utile limitées, nécessitent l'utilisation d'algorithmes de chiffrement légers pour garantir la sécurité des données sans compromettre les performances.
Ce projet vise à mettre en œuvre et à démontrer des techniques de chiffrement des données adaptées à la communication LORA. Nous avons choisi deux algorithmes de chiffrement classiques, le chiffre de César et le chiffre de Vigenère, en raison de leur simplicité et de leur efficacité. Ces algorithmes offrent un niveau de sécurité de base, ce qui les rend adaptés à des fins éducatives et aux applications légères où les contraintes de ressources sont une préoccupation.
Le chiffre de César est un chiffre de substitution où chaque lettre dans le texte en clair est décalée d'un certain nombre d'endroits vers le bas ou sur l'alphabet. Le chiffre de Vigenère, en revanche, est un chiffre de substitution polyalphabétique plus complexe qui utilise un mot-clé pour déterminer le changement pour chaque lettre dans le texte en clair. Les deux algorithmes sont mis en œuvre dans ce projet pour présenter leurs processus de chiffrement et de décryptage.
En raison de la limitation de la transmission LORA, de la limitation du temps et de la nécessité d'un algorithme de cryptage léger, nous choisissons d'utiliser le chiffre de César et l'algorithme de chiffre Vigène.
git clone https://github.com/l1ttled1no/LoRaEncryptionNote
Le changement de chiffre Caesar peut être modifié dans le fichier main.cpp. La clé du chiffre de Vigenère peut être modifiée dans le fichier main.cpp.
Tout d'abord, construisez l'exécutable principal:
g++ -Ilib -o main main.cpp src/ * .cppEnsuite, exécutez l'exécutable avec des paramètres:
./main [input_string]Par exemple:
> ./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
>
Note
La chaîne peut avoir des espaces et des caractères spéciaux, dans la gamme ASCII de 32 à 126.
@ l1ttled1no (contributeur principal).