• Tidak ada hasil yang ditemukan

Implementasi Algoritme Lizard untuk Pengamanan Protokol MQTT pada Perangkat NodeMCU

N/A
N/A
Protected

Academic year: 2018

Membagikan "Implementasi Algoritme Lizard untuk Pengamanan Protokol MQTT pada Perangkat NodeMCU"

Copied!
10
0
0

Teks penuh

(1)

Fakultas Ilmu Komputer

6447

Implementasi Algoritme Lizard untuk Pengamanan Protokol MQTT pada

Perangkat NodeMCU

Rizal Dismantoro1, Ari Kusyanti2, Mahendra Data3

Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2

[email protected],

3

[email protected]

Abstrak

Protokol MQTT (Message Queuing Telemetry Transport) adalah salah satu protokol dari Internet of Things (IoT) yang memiliki dasar mekanisme sistem topic-based publish-subscribed yang memiliki sifat yang cocok untuk diimplementasikan pada perangkat yang memiliki keterbatasan resource, dikarenakan memiliki sifat light-weight. Meskipun MQTT menjadi salah satu protokol yang sering digunakan pada

IoT terdapat beberapa kelemahan pada bagian keamanan. Untuk memastikan data tidak dapat diketahui makna yang sebenarnya maka diperlukan algoritme keamanan untuk mengenkripsi data. Salah satu algoritma keamanan untuk mengenkripsi data adalah algoritme Lightweight Stream Cipher for Power-constrained Devices (Lizard). Pada bagian publisher sebelum pesan dikirim akan dienkripsi terlebih dahulu sehinga pada saat proses pengiriman data yang dikirimkan berupa ciphertext yang tidak dapat dibaca dengan mudah. Pada bagian subscriber akan dilakukan proses dekprisi pesan yang diterima dari

broker sehingga pesan yang diterima dapat dibaca sebagaimana pesan asli yang dikirimkan. Berdasarkan hasil pengujian, algoritme Lizard yang diimplementasikan pada protokol MQTT berhasil mengamankan sistem berbasis protokol MQTT menggunakan perangkat NodeMCU dengan waktu 1014419

microsecond. Proses enkripsi dilakukan pada saat data akan dikirimkan dan melakukan proses dekripsi pada saat data diterima dari broker.

Kata kunci: Kriptografi, MQTT, Algoritme Lizard, Confidentiality,IoT , NodeMCU

Abstract

The Message Queuing Telemetry Protocol (MQTT) protocol is one of the IoT protocol which has a mechanism based on topic-based publish-subscribed systems that have properties that are suitable to be implemented on devices that have limited resources. This is due to it has light-weight properties. MQTT is one of the protocols that is often used on IoT, but there are several weaknesses in the security issues. To ensure the data security an algorithm is needed to encrypt data. One of security algorithm for encrypting data is the Lightweight Stream Cipher for Power-constrained Devices (Lizard) algorithm. In the publisher section before the message is sent it will be encrypted (ciphertext). In broker the ciphertext will forward to the subscriber. In the subscriber, the message will be decrypted. Based on the test results, the Lizard algorithm implemented in the MQTT protocol successfully secure a system on NodeMCU device that take 1014419 microsecond.

Keywords: Cryptography, MQTT, Lizard Algorithm, Confidentiality, IoT, NodeMCU

1. PENDAHULUAN

Internet of Things atau dikenal juga dengan singkatan IoT, merupakan sebuah konsep yang bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus-menerus. Adapun kemampuan seperti berbagi data, remote control, dan sebagainya, termasuk juga pada benda di dunia nyata. Contoh pada kehidupan nyata berupa bahan pangan,

elektronik, koleksi, peralatan apa saja, termasuk benda hidup yang semuanya tersambung ke jaringan lokal dan global melalui sensor yang tertanam dan selalu aktif (Yudhanto, 2007). Dengan banyaknya penerapan IoT pada berbagai bidang menyebabkan pengembangan IoT

(2)

menggunakan publisher/subscriber. Pengirim data pada protokol ini disebut dengan publisher. Sedangkan penerima data disebut dengan subscriber. Protokol MQTT ini sering digunakan karena sangat cocok untuk diimplementasikan dalam IoT

dikarenakan bersifat lightweight, open, simple, dan bisa diimplementasikan di situasi yang terbatas dalam sumber daya (Rochman, Primananda and Nurwasito, 2017). Terlepas dari kelebihan dari MQTT

namun ada beberapa kekurangan, seperti proses pengamanan data masih sangat minim.

Dalam proses pengiriman data pada IoT

masih sangat rentan terhadap serangan. Dalam penelitian sebelumnya yang berjudul

“Sistem Kendali Berbasis Mikrokontroler

Menggunakan Protokol MQTT pada

Smarthome” (Rochman, Primananda and

Nurwasito, 2017) melakukan sebuah penerapan IoT untuk controlling dan monitoring pada suatu tempat. Metode yang digunakan menggunakan protokol MQTT yang memiliki sifat publish/subscribe. Namun terdapat sebuah kelemahan dalam protokol MQTT dimana tidak terdapat pengamanan dalam protokol tersebut. Salah satu kelemahan dari protokol MQTT ini adalah pada saat terjadi proses pengiriman data, akan sangat rentan terhadap penyadapan atau pencurian data pada saat proses pengiriman data. Untuk lebih memperkuat kerahasiaan (confidentiality)

data pada proses komunikasi maka harus ditambahkan algoritme kriptografi untuk mengenkripsi data yang akan dikirim. Algoritme kriptografi ini bekerja pada layer aplikasi sehingga sebelum data dikirim akan terlebih dahulu dienkripsi. Sehingga meskipun ada penyerang yang dapat mencuri pesan pada saat terjadi komunikasi, penyerang tidak dapat mengetahui isi dari pesan yang dikirimkan dikarenakan sudah dienkripsi sebelumnya (Rochman, Primananda and Nurwasito, 2017).

Teknik kriptografi adalah salah satu cara atau seni untuk mengamankan (enkripsi) pesan. Salah satu algoritme kriptografi adalah algortime Lizard. Algoritme LIZARD pertama kali dikembangkan pada tahun 2017. LIZARD merupakan algoritme

stream chiper yang di desain untuk sumber daya yang terbatas. LIZARD menggunakan panjang key 120-bit dan iv 64-bit dalam state

initialization. LIZARD dapat membuat keystream hingga 218 bits per key/IV (Hamann, Krause and Meier, 2017).

Penelitian ini berfokus pada bagaimana implementasi algoritme Lizard pada sisi keamanan data berbasis protokol MQTT yang diimplementasikan pada perangkat mikrokontroller NodeMCU.

2. LANDASAN KEPUSTAKAAN

2.1. Kajian Pustaka

Pada penelitian sebelumnya yang memiliki

judul “LIZARD – A Lightweight Stream Cipher for Power-constrained Devices” di buat oleh Matthias Hamann, Matthias Krause dan Willi Meier akan menjadi referensi utama untuk proses implementasi dan penelitian dalam algoritme Lizard. Jurnal tersebut memuat bagaimana proses dari pembentukan keystream

dan latar belakang kenapa algoritme Lizard ini dibuat. Penelitian sebelumnya algoritme Lizard ini berhasil diimplementasikan pada perangkat

RFID. Pada pengujiannya, ternyata algoritme Lizard ini tercatat menggunakan resource dari perangkat keras lebih kecil 16% jika dibandingkan dengan algoritme Grain v1 .

2.2 Kriptografi

Kriptografi merupakan sebuah cara atau seni untuk mengamankan (enkripsi) pesan (Ariyus, 2008). Dalam metode kriptografi terdapat dua proses utama, yaitu enkripsi dan dekripsi. Proses

enkripsi adalah sebuah proses untuk membuat

plaintext yaitu data asli yang akan dirubah menjadi ciphertext yang tidak dapat dimengerti lagi artinya. Sebaliknya, dekripsi adalah sebuah proses yang merubah ciphertext menjadi

plaintext yang dapat memberi arti asli dari pesan. Berdasarkan jenis kunci terdapat dua jenis yakni simetri dan asimetri.

Gambar 1. Alur Kriptografi Sumber : (Ariyus, 2008)

Tipe kunci simetri menggunakan kunci yang sama pada proses enkripsi dan dekripsi.

Dikarenakan menggunakan kunci yang sama maka sifat dari kunci ini adalah sangat rahasia tidak boleh ada yang tahu. Dalam kunci simetri memiliki terdapat dua jenis, yaitu stream cipher

(3)

karakteristik untuk proses enkripsi dan dekripsi

yakni menggunakan proses operasi per bit setiap transformasi (Nurrohmah, Kusyanti and Primananda, 2018). Salah satu algoritme yang menggunakan metode stream cipher adalah Lizard. Block cipher sendiri memiliki sebuah ciri dimana untuk proses enkripsi dan dekripsi yang akan membagi plaintext menjadi beberapa bagian blok lalu akan dilakukan proses enkripsi

dan dekripsi. Salah satu contoh algoritme yang menggunakan metode block cipher adalah AES. Tipe kunci asimetri adalah menggunakan kunci yang berbeda pada proses enkripsi dan dekripsi. Metode menggunakan tipe asimetri juga seeing disebut dengan public key cryptography dimana proses enkrispi dan

dekripsi menggunakan kunci yang berbeda.

2.3 Algoritme Lizard

Algoritme Lizard merupakan sebuah algoritma kriptografi ayng memiliki sifat stream cipher yang dirancang dengan konsep yang memiliki kecepatan tinggi, menggunakan konsumsi memori dan daya yang rendah (Hamann, Krause and Meier, 2017).

Gambar 2 Diagram LIZARD

Algoritme ini menggunakan 120-bit untuk

keydan 64-bit untuk IV. Lizard dibentuk menggunakan 2 NSFR (Non-linear Feedback Shift Register) dan diberi nama NSFR1 dan NSFR2 yang memiliki ukuran masing-masing

31 node dan 90 node. Untuk proses pembuatan

keystream terdapat beberapa tahapan yakni dimulai dari initialization state. Tahap pertama adalah Output function memiliki symbol α pada Gambar 3. Persamaan 1 merupakan rumus

Output function yang akan membentuk 1 bit

keystream.

𝑍t= 𝐿t⊕ Qt⊕ Tt⊕ Ťt

(1)

di mana:

𝐿t= 𝐵7𝑡⊕ 𝐵11𝑡 ⊕ 𝐵30𝑡 ⊕ 𝐵40𝑡 ⊕ 𝐵45𝑡 ⊕ 𝐵54𝑡 ⊕

𝐵71𝑡 (2) Qt= B4tB21t ⊕ B9tB52t ⊕ B18t B37t ⊕ B44t B76t (3)

Tt= B5t ⊕ B8tB82t ⊕ B34t B67t B73t ⊕

B2tB28t B41t B65t ⊕ B13t B29t B50t B64t B75t ⊕

B6tB14t B26t B32t B47t B61t ⊕

B1tB19t B27t B43t B57t B66t B78t (4) Ťt= S23t ⊕ S3tS16t ⊕ S9tS13t S48t ⊕

S1tS24t S38t S63t (5)

Gambar 3. Pembentukan Keystream Sumber : (Hamann, Krause and Meier, 2017)

Proses initialization state pada algoritme Lizard ini terbagi menjadi empat tahapan, yaitu tahap key and IV loading, grain-like mixing,

second key addition, dan final diffusion. Tahap

key and IV loading merupakan tahapan pertama, yaitu mengisikan 120 bit kunci dan 64 bit IV ke dalam NFSR1 seperti Persamaan 6 dan NFSR2 seperti Persamaan 7.

𝐵𝑗= {𝐾𝐾j⊕ IVj, untuk j ∈ {0, … ,63}

j, untuk j ∈ {64, … ,89} (6)

𝑆𝑖= {

𝐾𝑖+ 90, 𝑢𝑛𝑡𝑢𝑘 𝑖 ∈ {0, … ,28}

𝐾119 ⊕ 1, 𝑢𝑛𝑡𝑢𝑘 𝑖 = 29

1, 𝑢𝑛𝑡𝑢𝑘 𝑖 = 30

(7)

Tahapan grain-like mixing, node akan dilakukan pergeseran sebanyak 128 kali tanpa ada proses pembentukan keystream yang sesungguhnya. Pada Gambar 3, Zt akan dimaskuna kembali ke dalam NFSR sesuai dengan Persamaan 8 dan 9. Persamaan 10 dan 11 adalah fungsi pergeseran dilambangkan

dengan ƒ1dan ƒ2 pada Gambar 4. t ∈ {0,....,127}.

𝐵89𝑡+1= 𝑍𝑡⊕ 𝑆0𝑡⊕ Bt0⊕ B24t ⊕ B49t ⊕ B79t ⊕

B84t ⊕ B3tB59t ⊕ B10t B12t ⊕ B15t B16t ⊕

(4)

B60t B74t ⊕ B20t B22t B23t ⊕ B62t B68t B72t ⊕

B77t B80t B81t B83t (8) 𝑆30𝑡+1= 𝑍𝑡⊕ S0t⊕ St2⊕ S5t ⊕ S6t⊕ S15t ⊕

S17t ⊕ S18t ⊕ S20t ⊕ S25t ⊕ S8tS18t ⊕

S8tS20t ⊕ S12t S21t ⊕ S14t S19t ⊕ S17t S21t ⊕

S20t S22t ⊕ S4tS12t S22t ⊕ S4tS19t S22t ⊕

S7tS20t S21t ⊕ S8tS18t S22t ⊕ S8tS20t S22t ⊕

S12t S19t S22t ⊕ S20t S21t S22t ⊕

S4tS7tS12t S21t ⊕ S4tS7tS19t S21t ⊕

S4tS12t S21t S22t ⊕ S4tS19t S21t S22t ⊕

S7tS8tS18t S21t ⊕ S7tS8tS20t S21t ⊕

S7tS12t S19t S21t ⊕ S8tS18t S21t S22t ⊕

S8tS20t S21t St22⊕ S12t S19t S21t (9) 𝐵𝑗𝑡+1= 𝐵𝑗+1𝑡 , untuk j ∈ {0, … ,88} (10) 𝑆𝑖𝑡+1= 𝑆𝑖+1𝑡 , untuk i ∈ {0, … ,29} (11)

Gambar 4. Initialization State

Sumber : (Hamann, Krause and Meier, 2017) Persamaan 12 dan 13 adalah tahap second key addition, dimana akan ditambahkan 120 bit

key ke dalam NFSR1 dan NFSR2. 120 bit kunci tersebut adalah key yang sama seperti pada fase

key and IV loading.

𝐵𝑗129= 𝐵𝑗128⊕ K𝑗, untuk j ∈ {0, … ,89} (12)

𝑆𝑖129= {Si128⊕ Ki+90, untuk i ∈ {0, … ,29}

1, untuk i = 30(13)

Tahapan final diffusion memiliki proses yang mirip dengan tahp grain-like mixing, yaitu

cipher akan digeser sebanyak 128 kali. Namun perbedaannya terletak dimana tidak ada pembentukan Zt pada tahap ini seperti pada Persamaan 14 dan 15. Persamaan 16 dan 17 adalah fugsi pergeseran diberi lambang ƒ1 dan

ƒ2 pada Gambar 5. t ∈ {129,....,256}.

𝐵89𝑡+1= 𝑆0𝑡⊕ B0t ⊕ B24t ⊕ B49t ⊕ B79t ⊕

B84t ⊕ B3tB59t ⊕ B10t B12t ⊕ B15t B16t ⊕

B25t B53t ⊕ B35t B42t ⊕ B55t B58t ⊕

B60t B74t ⊕ B20t B22t B23t ⊕ B62t B68t B72t ⊕

B77t B80t B81t B83t (14) 𝑆30𝑡+1= S0t ⊕ S2t⊕ S5t⊕ S6t⊕ S15t ⊕

S17t ⊕ S18t ⊕ S20t ⊕ S25t ⊕ S8tS18t ⊕

S8tS20t ⊕ S12t S21t ⊕ S14t S19t ⊕ S17t S21t ⊕

S20t S22t ⊕ S4tS12t S22t ⊕ S4tS19t S22t ⊕

S7tS20t S21t ⊕ S8tS18t S22t ⊕ S8tS20t S22t ⊕

S12t S19t S22t ⊕ S20t S21t S22t ⊕

S4tS7tS12t S21t ⊕ S4tS7tS19t S21t ⊕

S4tS12t S21t S22t ⊕ S4tS19t S21t S22t ⊕

S7tS8tS18t S21t ⊕ S7tS8tS20t S21t ⊕

S7tS12t S19t S21t ⊕ S8tS18t S21t S22t ⊕

S8tS20t S21t S22t ⊕ S12t S19t S21t (15) 𝐵𝑗𝑡+1= 𝐵𝑗+1𝑡 , untuk j ∈ {0, … ,88} (16) 𝑆𝑖𝑡+1= 𝑆𝑖+1𝑡 , untuk i ∈ {0, … ,29} (17)

Gambar 5. Final Diffusion

Sumber : (Hamann, Krause and Meier, 2017) Ketika initialization state telah selesai, diperoleh state NFSR1 (S²⁵⁷) dan NFSR2 (B²⁵⁷) dimana pada state ini akan dimulai untuk proses pembentukan keystream yang sebenarnya. Pembentukan keystream akan dijalankan dengan persamaan 14 dan 15. Z₂₅₇ adalah bit awal untuk kumpulan keystream

yang sesungguhnya.

2.4 MQTT

Message Queuing Telemetry Transport (MQTT) merupakan protokol pada layer transport yang memiliki sifat client-server publish/subscribe. Protokol ini bersifat

lightweight, open dan sederhana, dirancang agar memudahkan user untuk proses implementasi. Karakteristik ini membuat MQTT berhasil diimplementasikan di banyak situasi, termasuk penggunaannya dalam komunikasi antara mesin ke mesin dan Internet of Things (IoT). Protokol MQTT berjalan pada TCP/IP. Protokol MQTT tidak dapat berjalan sendiri untuk berkomunikasi, namun membutuhkan jembatan untuk berkoomunikasi. Hal ini membuat protokol MQTT menggunakan TCP/IP pada layer transport. TCP/IP akan dengan mudah untuk digunakan pada MQTT. Jaringan yang bersifat connectionless seperti User Datragram Protokol (UDP) tidak dapat digunakan karena dapat berakibat reorder data (Satria, Satrya and Herutomo, 2014).

2.5 NodeMCU

(5)

Gambar 6. NodeMCU

3. PERANCANGAN DAN

IMPLEMENTASI SISTEM

3.1 Perancangan Sistem

Perangkat keras yang diperlukan pada

pengimplementasian penelitian kali ini dapat

dilihat pada Tabel 1.

Tabel 1. Kebutuhan Perangkat Keras

Perangkat Keras Keterangan NodeMCU 1.0

(ESP-12E Module)

Merupakan perangkat

Mikrokontroller yang digunakan sebagai Publisher

ASUS X450JF Core i7

Perangkat laptop ini bertindak sebagai client yang berperan sebagai ubcriber

Wi-Fi Router Wi-Fi router diperlukan untuk memberikan akses jaringan internet pada Asus X450JF dan NodeMCU

Gambar 7. Gambaran Umum Sistem

Gambar 7 menjelaskan tentang gambaran

umum sistem yang akan dibangun.

Sistem ini pada akhirnya akan mengenkripsi data mengubah plaintext yang dimasukkan secara manual menjadi ciphertext dengan mengolah

keystream yang didapatkan dari algoritme LIZARD lalu dikirimkan melalui Arduino yang bertindak sebagai publisher menuju broker. Setelah itu broker akan meneruskan ciphertext

yang dikirim dari publisher ke subscriber sesuai dengan topik yang sama dari publisher dan

subscriber. Ketika ciphertext diterima oleh

subscriber, ciphertext akan didekripsi

menggunakan keystream yang sama yang digunakan untuk mendekripsi pada sisi publisher

sehingga ciphertext yang dikirimkan dapat dibaca kembali.

(6)

Gambar 8 menjelaskan bahwa pada sistem akan dimulai dengan mengoneksikan antara

publisher (client) dan subscriber (client) ke

broker (server). Kemudian setelah keduanya berhasil terhubung dengan broker maka

susbcriber akan melakukan request payload

kepada broker sesuai dengan topik yang sesuai. Lalu publisher diinput sebuah nilai yang akan dikirim sebelum dikirim nilai payload tersebut terlebih dahulu di enkripsi yang akan diproses dengan nilai dari keystream yang dibentuk oleh algoritme Lizard. Ketika proses enkripsi selesai maka publisher akan mengirimkan pesan yang berisi ciphertext ke broker. Pada paket mqtt-publish, memiliki bermacam-macam header, seperti dup, qos, retain, dan payload. Pada sistem kali ini, sistem hanya mengenkripsi

payload yang di dalamnya terdapat plaintext

yang akan dikirimkan oleh publisher ke

subscriber. Ketika pesan telah sampai di broker, maka broker akan mengirimkan payload atau pesan dengan topic yang sesuai dengan

subscriber. Ketika pesan telah sampai pada

subscriber, pesan yang diterima lalu akan didekripsi terlebih dahulu sebelum pada akhirnya akan ditamplikan oleh sistem.

3.2 Implementasi

Pada proses implementasi terdapat 2 bagian penting untuk membangun sistem ini, perangkat keras terebut antara lain mikrokontroller NodeMCU dan Laptop yang bertindak sebagai

client subscriber.

Gambar 9 Implementasi NodeMCU

Perangkat NodeMCU langsung terhubung dengan laptop seperti pada Gambar 9 agar mendapat source power dan mengupload source code yang telah dibuat sebelumnya menggunakan Arduino IDE.

ArduinoIDE adalah perangkat lunak yang digunakan untuk proses menuli kode program yang nantinya akan dijalankan oleh NodeMCU. Terdapat konfigurasi yang diperlukan pada

board agar ArduinoIDE dapat menguggah kode program yang telah dibuat ke NodeMCU. Konfigurasi tersebut dapat dilihat pada Tabel 2 berikut :

Tabel 2. Konfigurasi Board ArduinoIDE

Board NodeMCU 1.0 (ESP12-E Module)

Flash size 4M (3M SPIFFS)

Debug port Serial

Debug level None

IwIP variant v2 Prebuilt (MSS=536)

CPU frequency 80 MHz

Upload speed 115200

Kode program publisher ditulis menggunakan bahasa pemrograman C. Pada bagian publisher menggunakan library MQTT by Joel Gaehwiller. Sedangkan pada sisi

subscriber bahasa pemrograman yang digunakan adalah bahasa Python. Broker yang digunakan adalah broker online yang dapat diakses secara free yakni broker broker.hivemq.com dengan TCP port 1883.

Gambar 10. Tampilan Implementasi MQTT pada ArduinoIDE

Gambar 10 adalah tampilan sistem MQTT

(7)

Gambar 11. tampilan hasil implementasi MQTT pada subscriber

Gambar 10 merupakan tampilan dari sisi

subscriber yang telah berhasil

diimplementasikan protokol MQTT dan dapat menerima pesan dan menampilkan pesan.

4. PENGUJIAN

4.1 Pengujian Test Vector

Uji validasi test vector memiliki tujuan untuk menyamakan keystream yang telah dihasilkan oleh sistem dengan keystream yang sudah ditentukan sebelumnya pada jurnal Lizard.

Tabel 3. Pengujian Test Vector

Kombinasi

4.2 Pengujian Validasi Enkripsi dan Dekripsi

Pengujian validasi enkripsi dan dekripsi memiliki tujuan untuk memastikan valid atau tidaknya data yang sebelum dilakukan proses

enkripsi dan data yang telah dilakukan proses dekripsi

Tabel 4. Pengujian Enkripsi

Plaintext Keystream Ciphertext Status

0x68617920 proses enkripsi. Data yang dimasukkan diubah terlebih dahulu menjadi bilangan binary, kemudian data tersebut di-operasikan dengan

keystream. Pada Tabel 6.2 keystream yang telah dibentuk adalah keystream dari rujukan test vector yang telah ditentukan sebelumnya pada jurnal algoritme Lizard. Dapat dilihat bahwa seluruh operasi yang telah dilakukan pada tabel sesuai dengan tabel kebenaran xor. Sehingga dapat disimpulkan bahwa pengujian ini dinyatakan valid

Tabel 5. Pengujian Dekripsi

Ciphertext Keystream Plaintext Status

0xDE51358

Tabel 5 merupakan tabel validasi dari proses dekripsi yang menunjukan bahwa hasil dekripsi merupakan kebalikan dari uji enkripsi. Hal ini dapat dilihat dari proses xor yang sebelumnya diubah dari plaintext menjadi ciphertext

sekarang diubah kembali dari ciphertext menjadi

(8)

4.3 Pengujian Fungsional

Tujuan dari pengujian ini dilakukan agar dapat memastikan bahwa fungsionalitas sistem sudah terpenuhi atau belum yang nantinya untuk menjawab dari rumusan masalah sebelumnya.

Tabel 6. Pengujian Fungsional

No. Fungsi Hasil

Pengujian

1. Membuat keystream

algoritme Lizard

Berhasil

2. Menerima inputan plaintext

dengan Panjang maksimal 128 bit

Berhasil

3. Melakukan proses enkripsi

plain text menjadi cipher text

Berhasil

4. Melakukan proses dekripsi

ciphertext menjadi plaintext

Berhasil

5. Mengirimkan pesan sesuai dengan topik yang ditentukan

Berhasil

6. Menampilkan pesan yang sesuai dengan topik yan gditentukan

Berhasil

Berdasarkan hasil dari pengujian fungsional dari sistem yang dibangun dapat disimpulkan bahwa seluruh kebutuhan fungsional yang diperlukan berhasil diimplementasikan dan berhasil berjalan sebagaimana semestinya.

4.4 Pengujian Sniffing

Pengujian sniffing memiliki tujuan untuk mengetahui apakah data sudah berhasil dienkripsi atau belum sebelum data dikirim. Sehingga meskipun terdapat penyerang yang dapat meng-capture data pada proses pengiriman data, penyerang tidak dapat membaca pesan dengan mudah.

Gambar 12. Publish tanpa algoritme

Pada Gambar 12 terdapat isi dari berbagai informasi dari publish message, yakni topic,

topic length, message, dan msg len. Bagian

message berisi payload yang dikirimkan dari

publisher ke subscriber melewati broker.

Payload tersebut dapat dilihat dengan sangat jelas dan mudah, sehingga apabila tidak

diamankan akan dapat disalahgunakan oleh orang yang tidak bertanggung jawab untuk mencuri, memata-matai atau bahkan mengganti isi dari pesan yang dikirimkan.

Gambar 13. Publish message menggunakan

algoritme Lizard

Pada Gambar 13 adalah sebuah gambar yang memperlihatkan isi dari payload message protokol MQTT namun sudah dienkripsi. Dapat dilihat bahwa isi pesan yang sebelumnya dapat dengan mudah dibaca pada Gambar 13 pada kali ini berisikan bilangan binary yang meskipun dikonversi ke dalam bentuk ascii atau apa saja tidak dapat memberi arti yang sebenarnya. Hal ini dikarenakan proses enkripsi telah dilakukan dengan menggunakan algoritme Lizard. Sehingga meskipun penyerang dapat melihat isi dari payload namun tidak dapat mengetahui isi pesan aslinya,

4.5 Pengujian Kinerja Sistem

Pengujian dilakukan untuk mengetahui waktu pemrosesan keystream, enkripsi dan dekripsi sistem. Juga membandingkan antara waktu pemrosesan keystream, enkripsi dan dekripsi ketika sistem menggunakan melakukan pengiriman data tanpa menggunakan algoritme Lizard.

Gambar 14. Pembuatan Keystream

Pada Gambar 14. menjelaskan grafik waktu yang dibutuhkan untuk pembuatan keystream.

Keystream ini dihasilkan menggunakan key dan

iv yang berbeda. Tidak ada perubahan waktu yang signifikan ketika proses pembuatan

9450 9500 9550 9600 9650

1

75

149 223 297 371 445 519 593 667 741 815 889 963

Eksekusi Keystream

(9)

keystream namun tetap terjadi perubahan waktu yang fluktuatif. Rata-rata waktu yang dibutuhkan untuk pembuatan keystream adalah 9568.23846 microsecond.

Gambar 15. Proses Enkripsi

Pada Gambar 15 menjelaskan grafik waktu yang dibutuhkan untuk proses enkripsi. Proses enkripsi ini dihasilkan menggunakan key dan iv

yang berbeda. Tidak ada perubahan waktu yang signifikan ketika proses dekripsi namun tetap terjadi perubahan waktu yang fluktuatif. Rata-rata waktu yang dibutuhkan untuk proses dekripsi adalah 9753.93 microsecond.

Gambar 16. Proses Dekripsi

Pada Gambar 16 memperlihatkan hasil dari uji kinerja dari proses dekripsi yang telah dihasilkan dari 1024 keystream yang berbeda. Perubahan waktu terjadi secara fluktuatif dimana rata rata proses dekripsi membutuhkan waktu 9511 microsecond.

Gambar 17. Publisher dengan algoritme Lizard

Gambar 17 merupakan grafik waktu untuk pengiriman data dari publisher menggunakan algortime Lizard. Terlihat naik secara perlahan dari pengiriman data ke-1 sampai ke-120.

Gambar 18. Publisher Tanpa Enkripsi

Gambar 18 merupakan grafik waktu untuk pengiriman data dari publisher menggunakan algortime Lizard. Terlihat perubahan secara fluktuatif dari pengiriman data 1 sampai ke-120.

Berdasarkan grafik yang ditampilkan dari Gambar 6.8 dan Gambar 6.9 dapat diambil selisih rata-rata waktu yang dibutuhkan untuk mengirimkan pesan dari publisher dengan selisih waktu 4499.4994 microsecond yang menunjukkan bahwa perbedaan waktu hanya memiliki selisih yang sangat kecil.

5. KESIMPULAN

1. Pembuatan keystream dari algoritme Lizard telah berhasil dibuat dan telah sesuai dengan

testvector dari jurnal yang algoritme Lizard sebagai jurnal rujukan utama penelitian ini. 2. Proses enkripsi dan dekripsi telah dilakukan

dan diuji menggunakan keystream yang telah dibuat sebelumnya. Pengujian enkripsi dan dekripsi telah dinyatakan valid.

3. Proses enkripsi dan dekripsi telah dilakukan dan diuji menggunakan keystream yang telah dibuat sebelumnya. Pengujian enkripsi dan dekripsi telah dinyatakan valid.

4. Berdasarkan hasil pengujian keamanan sistem, diketahui bahwa data yang dikirimkan apabila tidak menggunakan algoritma enkripsi maka data akan sangat jelas terlihat, tetapi apabila menggunakan sistem yang sudah terenkripsi maka data yang dikirimkan tidak akan dengan mudah untuk dibaca atau diartikan. Sehingga pada end node atau selama dalam proses pengiriman terdapat attacker yang akan mencuri data, ketika attacker tersebut berhasil mendapatkan data yang dikirimkan tetap tidak akan mendapatkan data asli yang sebenarnya 9600

(10)

dikirimkan oleh pengirim.

5.

Berdasarkan hasil pengujian kinerja sistem waktu yang diperkukan untuk proses enkripsi adalah rata-rata sebesar 9753.93

microsecond. Sedangkan untuk proses dekripsi adalah rata-rata sebesar 9511

microsecond.

6. DAFTAR PUSTAKA

Ariyus, 2008. Pengantar Kriptografi. p.16. Hamann, M., Krause, M. and Meier, W., 2017.

LIZARD – A Lightweight Stream Cipher for Power-constrained Devices. IACR Transactions on Symmetric Cryptology, [online] 2017(1), pp.45–79. Available at: <https://tosc.iacr.org/index.php/ToSC/article

/view/584%0Ahttp://dblp.uni-trier.de/db/journals/iacr/iacr2016.html#Ham ann0M16%0Ahttps://tosc.iacr.org/index.php /ToSC/article/download/584/525/584-1570-1-SM.pdf>.

Hanson Technology, 2017. Handson Technology User Manual V1.2. Hanson Technology, [online] pp.1–22. Available at: <http://www.handsontec.com/pdf_learn/esp 8266-V10.pdf>.

Nurrohmah, A., Kusyanti, A. and Primananda, R., 2018. Implementasi Algoritme Grain V1 Dan 128 Bit Pada Arduino Mega 2560. 2(4), pp.1436–1445.

Rochman, H.A., Primananda, R. and Nurwasito, H., 2017. Sistem Kendali Berbasis Mikrokontroler Menggunakan Protokol MQTT pada Smarthome. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer, [online] 1(6), pp.445–455. Available at: <http://j-ptiik.ub.ac.id>. Satria, G.O., Satrya, G.B. and Herutomo, A.,

2014. Implementasi Protokol Mqtt Pada Smart Building Berbasis Openmtc. 2(2), pp.1–8.

Yudhanto, Y., 2007. Internet Of things.

Gambar

Gambar  1. Alur Kriptografi
Gambar  3. Pembentukan Keystream
Gambar  5. Final Diffusion
Tabel  1. Kebutuhan Perangkat Keras
+5

Referensi

Dokumen terkait

Pada penelitian ini, pesan atau file teks yang akan dikirim terlebih dahulu enkripsi dengan algoritma kriptografi LUC, selanjutnya hasil enkripsi akan disembunyikan

Pada Aplikasi Secret SMS ini digunakan untuk mengirim pesan yang telah dienkripsi terlebih dahulu menggunakan 2 algoritma yaitu algortima blowfish dan triple DES, kemudian

Algoritme Trivium pada protokol MQTT menggunakan Raspberry Pi dapat menghasilkan keystream yang sesuai dengan test vector yang berarti bahwa hasil keystream

Pengirim akan mengirimkan pesan kepada si penerima, tetapi sebelum pesan tersebut dikirimkan ke server, pesan tersebut akan di enkripsikan menjadi sandi terlebih dahulu,

Vigenere Cipher dan Affine Cipher sebagai keamanan data. Pesan yang dikirim akan dienkripsikan terlebih dahulu sebelum nantinya akan tersimpan di database. Aplikasi

Pada Aplikasi Secret SMS ini digunakan untuk mengirim pesan yang telah dienkripsi terlebih dahulu menggunakan 2 algoritma yaitu algortima blowfish dan triple DES ,

Pada layar menu write isi dari message tersebut akan dirubah terlebih dahulu dari plaintext ke ciphertext dengan menggunakan kunci yang didapat dari subject setelah

Untuk memastikan identitas dari klien pada protokol MQTT dibutuhkan sebuah mekanisme autentikasi yang digunakan untuk mengatur dan manajemen identitas klien, serta