LoRaEncryption
1.0.0
用於物聯網設備之間通信的數據加密(通過LORA表示)。
警告
請注意,此存儲庫中提供的代碼和材料僅用於教育目的,並且不能安全地用於生產。
筆記
我們將在此項目中使用的開發套件是Arduino Uno,該項目中具有EBYTE E32-433T20D。
背景
在此項目中使用算法
貢獻者
在物聯網(IoT)的領域中,設備之間的安全通信至關重要。洛拉(遠程)技術為長距離,低功率通信提供了強大的解決方案,使其非常適合物聯網應用程序。但是,LORA的固有局限性(例如低數據速率和有限的有效載荷尺寸)需要使用輕巧的加密算法來確保數據安全性而不會損害性能。
該項目旨在實施和演示適合洛拉通信的數據加密技術。由於它們的簡單性和效率,我們選擇了兩種經典的加密算法,凱撒密碼和vigenère密碼。這些算法提供了基本的安全水平,使其適合於教育目的和輕量級應用程序,在這些應用程序上是一個問題。
凱撒密碼是一個替代密碼,在此中,明文中的每個字母都會在字母內轉移一定數量的位置。另一方面,vigenère密碼是一個更複雜的多替代密碼,它使用關鍵字來確定授權中每個字母的轉移。在此項目中實現了兩種算法,以展示其加密和解密過程。
由於洛拉傳輸,時間的限制以及對輕質加密算法的需求的限制,我們選擇使用Caesar Cipher和VigenèreCipher算法。
git clone https://github.com/l1ttled1no/LoRaEncryption筆記
可以在main.cpp文件中修改凱撒密碼的變化。可以在main.cpp文件中修改Vigenère密碼中的鍵。
首先,構建主要可執行文件:
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(主要貢獻者)。