Uma criptografia de dados para comunicação entre dispositivos IoT (representados via Lora).
Cuidado
Observe que o código e os materiais fornecidos neste repositório são destinados apenas a fins educacionais e não são seguros para serem usados na produção.
Observação
O kit de desenvolvimento que usaremos neste projeto é o Arduino Uno, com um Ebyte E32-433T20D neste projeto.
Fundo
Algoritmo usando neste projeto
Colaboradores
No campo da Internet das Coisas (IoT), a comunicação segura entre os dispositivos é fundamental. A tecnologia LORA (de longo alcance) oferece uma solução robusta para comunicação de longa distância e baixa potência, tornando-a ideal para aplicações de IoT. No entanto, as limitações inerentes à LORA, como baixas taxas de dados e tamanhos limitados de carga útil, exigem o uso de algoritmos de criptografia leves para garantir a segurança dos dados sem comprometer o desempenho.
Este projeto tem como objetivo implementar e demonstrar técnicas de criptografia de dados adequadas para a comunicação LORA. Escolhemos dois algoritmos de criptografia clássica, a cifra César e a Cifra Vigenère, devido à sua simplicidade e eficiência. Esses algoritmos fornecem um nível básico de segurança, tornando -os adequados para fins educacionais e aplicações leves, onde as restrições de recursos são uma preocupação.
A cifra de Caesar é uma cifra de substituição, onde cada letra no texto simples é deslocada um certo número de lugares para baixo ou no alfabeto. A cifra Vigenère, por outro lado, é uma cifra de substituição polialfabética mais complexa que usa uma palavra -chave para determinar a mudança para cada letra no texto simples. Ambos os algoritmos são implementados neste projeto para mostrar seus processos de criptografia e descriptografia.
Devido à limitação da transmissão de Lora, à limitação do tempo e à necessidade de um algoritmo de criptografia leve, optamos por usar a cifra César e o algoritmo de cifra de Vigenère.
git clone https://github.com/l1ttled1no/LoRaEncryptionObservação
A mudança na cifra Caesar pode ser modificada no arquivo main.cpp. A chave no Vigenère Cipher pode ser modificada no arquivo main.cpp.
Primeiro, construa o principal executável:
g++ -Ilib -o main main.cpp src/ * .cppEm seguida, execute o executável com parâmetros:
./main [input_string]Por exemplo:
> ./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
>
Observação
A corda pode ter espaços e caracteres especiais, dentro da faixa ASCII de 32 a 126.
@l1ttled1no (colaborador principal).