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(主要贡献者)。