การเข้ารหัสข้อมูลสำหรับการสื่อสารระหว่างอุปกรณ์ IoT (แสดงผ่าน LORA)
คำเตือน
โปรดทราบว่ารหัสและวัสดุที่ให้ไว้ในที่เก็บนี้มีไว้เพื่อการศึกษาเท่านั้นและไม่ปลอดภัยที่จะใช้ในการผลิต
บันทึก
ชุด Dev ที่เราจะใช้ในโครงการนี้คือ Arduino UNO โดยมี EBYTE E32-433T20D ในโครงการนี้
พื้นหลัง
อัลกอริทึมที่ใช้ในโครงการนี้
ผู้มีส่วนร่วม
ในขอบเขตของ Internet of Things (IoT) การสื่อสารที่ปลอดภัยระหว่างอุปกรณ์เป็นสิ่งสำคัญยิ่ง เทคโนโลยี LORA (ระยะยาว) นำเสนอโซลูชันที่แข็งแกร่งสำหรับการสื่อสารทางไกลและพลังงานต่ำทำให้เหมาะสำหรับการใช้งาน IoT อย่างไรก็ตามข้อ จำกัด โดยธรรมชาติของ LORA เช่นอัตราข้อมูลต่ำและขนาดน้ำหนักบรรทุกที่ จำกัด จำเป็นต้องใช้อัลกอริทึมการเข้ารหัสน้ำหนักเบาเพื่อให้แน่ใจว่าข้อมูลความปลอดภัยของข้อมูลโดยไม่ลดประสิทธิภาพ
โครงการนี้มีวัตถุประสงค์เพื่อนำไปใช้และแสดงให้เห็นถึงเทคนิคการเข้ารหัสข้อมูลที่เหมาะสมสำหรับการสื่อสาร LORA เราได้เลือกอัลกอริทึมการเข้ารหัสแบบคลาสสิกสองตัวคือ Caesar Cipher และVigenère Cipher เนื่องจากความเรียบง่ายและประสิทธิภาพของพวกเขา อัลกอริทึมเหล่านี้ให้ระดับความปลอดภัยขั้นพื้นฐานทำให้เหมาะสำหรับวัตถุประสงค์ทางการศึกษาและแอพพลิเคชั่นที่มีน้ำหนักเบาซึ่งข้อ จำกัด ด้านทรัพยากรเป็นข้อกังวล
Caesar Cipher เป็นตัวเลขการทดแทนที่ตัวอักษรแต่ละตัวในข้อความธรรมดาจะเปลี่ยนสถานที่จำนวนหนึ่งลงหรือเพิ่มตัวอักษร ในทางกลับกันVigenère cipher เป็น cipher การทดแทน polyalphabetic ที่ซับซ้อนมากขึ้นซึ่งใช้คำหลักเพื่อกำหนดการเปลี่ยนแปลงสำหรับตัวอักษรแต่ละตัวในข้อความธรรมดา อัลกอริทึมทั้งสองถูกนำไปใช้ในโครงการนี้เพื่อแสดงกระบวนการเข้ารหัสและการถอดรหัส
เนื่องจากข้อ จำกัด ของการส่ง LORA ข้อ จำกัด ของเวลาและความต้องการอัลกอริทึมการเข้ารหัสที่มีน้ำหนักเบาเราจึงเลือกใช้อัลกอริทึม Caesar Cipher และVigenère Cipher
git clone https://github.com/l1ttled1no/LoRaEncryptionบันทึก
การเปลี่ยนแปลงใน Caesar Cipher สามารถแก้ไขได้ในไฟล์ main.cpp กุญแจสำคัญในVigenère Cipher สามารถแก้ไขได้ในไฟล์ 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
>
บันทึก
สตริงสามารถมีช่องว่างและอักขระพิเศษภายในช่วง ASCII ที่ 32 ถึง 126
@l1ttled1no (ผู้สนับสนุนหลัก)