IoT 장치 간의 통신을위한 데이터 암호화 (LORA를 통해 표시).
주의
이 저장소에 제공된 코드 및 자료는 교육 목적으로 만 사용되며 생산에 사용하기에 안전하지 않습니다.
메모
이 프로젝트에서 우리가 사용할 데트 키트는 Arduino Uno 이며이 프로젝트의 Ebyte E32-433T20D가 있습니다.
배경
이 프로젝트에서 사용 알고리즘
기고자
사물 인터넷 (IoT) 영역에서 장치 간의 보안 커뮤니케이션이 가장 중요합니다. LORA (Long Range) 기술은 장거리, 저전력 통신을위한 강력한 솔루션을 제공하므로 IoT 애플리케이션에 이상적입니다. 그러나 낮은 데이터 속도 및 제한된 페이로드 크기와 같은 LORA의 고유 한 제한은 성능을 손상시키지 않고 데이터 보안을 보장하기 위해 경량 암호화 알고리즘을 사용해야합니다.
이 프로젝트는 LORA 커뮤니케이션에 적합한 데이터 암호화 기술을 구현하고 시연하는 것을 목표로합니다. 우리는 단순성과 효율성으로 인해 두 가지 고전 암호화 알고리즘 인 Caesar Cipher와 Vigenère 암호를 선택했습니다. 이 알고리즘은 기본적인 수준의 보안을 제공하므로 교육 목적과 자원 제약이 우려되는 가벼운 응용 프로그램에 적합합니다.
시저 암호는 일반 텍스트의 각 문자가 특정 수의 장소로 또는 알파벳 위로 이동하는 대체 암호입니다. 반면에 Vigenère 암호는 키워드를 사용하여 일반 텍스트의 각 문자의 전환을 결정하는 더 복잡한 폴리 알파벳 치환 암호입니다. 이 프로젝트에서는 모두 암호화 및 암호 해독 프로세스를 보여주기 위해 두 알고리즘이 구현됩니다.
LORA 전송 제한, 시간 제한 및 경량 암호화 알고리즘의 필요성으로 인해 Caesar Cipher 및 Vigenère Cipher 알고리즘을 사용하도록 선택합니다.
git clone https://github.com/l1ttled1no/LoRaEncryption메모
시저 암호의 전환은 main.cpp 파일로 수정 될 수 있습니다. Vigenère 암호의 키는 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
>
메모
문자열에는 32 ~ 126의 ASCII 범위 내에서 공백과 특수 문자가있을 수 있습니다.
@l1ttled1no (주요 기여자).