Enkripsi data untuk komunikasi antara perangkat IoT (diwakili melalui LORA).
Peringatan
Harap dicatat bahwa kode dan materi yang disediakan dalam repositori ini dimaksudkan untuk tujuan pendidikan saja dan tidak aman untuk digunakan dalam produksi.
Catatan
Kit dev yang akan kami gunakan dalam proyek ini adalah Arduino Uno, dengan Ebyte E32-433t20D dalam proyek ini.
Latar belakang
Menggunakan algoritma dalam proyek ini
Kontributor
Di ranah Internet of Things (IoT), komunikasi yang aman antar perangkat adalah yang terpenting. Teknologi Lora (jarak jauh) menawarkan solusi yang kuat untuk komunikasi jarak jauh dan berkekuatan rendah, menjadikannya ideal untuk aplikasi IoT. Namun, keterbatasan LORA yang melekat, seperti tingkat data yang rendah dan ukuran muatan terbatas, mengharuskan penggunaan algoritma enkripsi ringan untuk memastikan keamanan data tanpa mengurangi kinerja.
Proyek ini bertujuan untuk mengimplementasikan dan menunjukkan teknik enkripsi data yang cocok untuk komunikasi LORA. Kami telah memilih dua algoritma enkripsi klasik, cipher Caesar dan cipher Vigenère, karena kesederhanaan dan efisiensinya. Algoritma ini memberikan tingkat keamanan dasar, membuatnya cocok untuk tujuan pendidikan dan aplikasi ringan di mana kendala sumber daya menjadi perhatian.
Caesar Cipher adalah cipher substitusi di mana setiap huruf dalam plaintext digeser sejumlah tempat ke bawah atau naik alfabet. Cipher Vigenère, di sisi lain, adalah cipher substitusi polialis yang lebih kompleks yang menggunakan kata kunci untuk menentukan pergeseran untuk setiap huruf dalam plaintext. Kedua algoritma diimplementasikan dalam proyek ini untuk memamerkan proses enkripsi dan dekripsi mereka.
Karena keterbatasan transmisi LORA, keterbatasan waktu, dan kebutuhan akan algoritma enkripsi ringan, kami memilih untuk menggunakan cipher Caesar dan algoritma cipher vigenère.
git clone https://github.com/l1ttled1no/LoRaEncryptionCatatan
Pergeseran Caesar Cipher dapat dimodifikasi dalam file Main.cpp. Kunci di Vigenère Cipher dapat dimodifikasi dalam file Main.cpp.
Pertama, bangun yang dapat dieksekusi utama:
g++ -Ilib -o main main.cpp src/ * .cppKemudian, jalankan yang dapat dieksekusi dengan parameter:
./main [input_string]Misalnya:
> ./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
>
Catatan
String dapat memiliki spasi dan karakter khusus, dalam kisaran ASCII 32 hingga 126.
@l1ttled1no (kontributor utama).