TUGAS AKHIR
Disusun oleh:
1101180383
UNIVERSITAS TELKOM
BANDUNG
i
2022
ii
UNIVERSITAS TELKOM No. Dokumen
Jl. Telekomunikasi No. 1, Terusan Buah Batu, Bandung 40257 No. Revisi
LEMBAR PENGESAHAN
TUGAS AKHIR
Disusun oleh:
1101180383
iii
Pembimbing I
iv
UNIVERSITAS TELKOM No. Dokumen
Jl. Telekomunikasi No. 1, Terusan Buah Batu, Bandung 40257 No. Revisi
v
ABSTRAK
Aldi Dwi Febriyanto
NIM.1101180383
Seiringnya perkembangan zaman, bidang teknologi Internet of Things
(IoT) semakin maju terutama di bidang pengiriman dan penyimpanan data. Tetapi
siapa yang menduga jika ternyata dibalik kemajuan teknologi yang pesat
menyimpan ketakutan terhadap pencurian data. Adapun solusi untuk mengatasi
pencurian data tersebut sistem seharusnya memakai Kriptografi. Kriptografi dapat
meminimalisir pencurian data agar tidak disalahgunakan. Pada penelitian tugas
akhir ini akan dirancang suatu sistem yang dapat menjaga keamanan pada proses
pengiriman data IoT melalui protokol MQTT penyimpanan data pada PHP
MyAdmin dengan Metode RSA.
vi
ABSTRACT
Along with the times, the field of Internet of Things (IoT) technology is
increasingly advanced, especially in the field of data transmission and storage.
But who would have guessed that it turned out that behind the rapid technological
advances harbored a fear of data theft. As for the solution to overcome data theft,
the system should use Cryptography. Cryptography can minimize data theft so
that it is not misused. In this final project research, a system will be designed that
can maintain security in the process of sending data IoT through the MQTT
protocol of data storage on PHP MyAdmin with the RSA Method.
The sensor data used uses the ultrasonic sensor HC-SR04 which is applied
in the Raspberry Pi 4 microcomputer. Sensor data entering the system is
automatically converted into chipertext using the RSA method with two scenarios,
namely 1024 bit and 2048 bit RSA. After that, the data will be sent via MQTT to
the PHP Myadmin database. In the data database in the form of chipertext, it will
automatically be decrypted.
Based on the test results of the system, it is known that the system can
encrypt sensor data and can transmit data in the form of chipertext through
MQTT to the database. The average response times value for a 1024 bit RSA
scenario was 879.4 ms for the encryption process and 2189.83 ms for the
decryption process. For the 2048 bit RSA scenario, the average Response Times
test results for 10, 20, and 30 data were 2,859.27 ms for the encryption process
and 228,060.91 ms for the decryption process. The process of sending data from
the sensor to the database shows that the QoS on the system that has been created
is included in the excellent category with values for the RSA scenario of 1024 bit
and RSA 2048 bit, namely throughput of 6932.04 Kb/s and 6167.03 Kb/s, packet
loss of 0% and delay of 243.3 ms and 589.5 ms.
vii
KATA PENGANTAR
Penulis menyadari masih banyak kekurangan dalam penyusunan tugas akhir ini
yang disebabkan oleh keterbatasan penulis. Oleh karena itu, dengan kerendahan hati
penulis mohon maaf sebesar-besarnya dan besar harapan penulis mendapatkan kritik dan
saran yang membangun.
Akhir kalam besar harapan penulis agar tugas akhir ini bisa menjadi manfaat
untuk semua pihak, serta dapat dikembangkan menjadi sebuah penelitian yang lebih
terbarukan.
viii
UCAPAN TERIMAKASIH
Perjalanan Panjang telah penulis lalui dalam menempuh Pendidikan sarjana pada
Program Studi S1 Teknik Telekomunikasi yang diakhiri dengan penulisan tugas akhir ini.
Banyak halangan dan rintangan yang dihadapi dalam penyusunannya. Namun, berkat
dukungan dari berbagai pihak penulis mampu merampungkan penyusunan tugas akhir ini.
Oleh karena itu, izinkan penulis mengucapkan terimakasih kepada:
1. Allah SWT, segenap rasa syukur atas nikmat berupa kekuatan, kesabaran, dan
kelancaran selama penulis berjuang menyelesaikan studi. Semoga tugas akhir ini
kelak akan menjadi ilmu yang bermanfaat bagi penulis,
2. M. Hartoyo dan Surachmi, selaku orang tua penulis yang selalu berjuang
mendukung dan mendoakan baik dari segi moril maupun materi sehingga penulis
mampu menyelesaikan tugas akhir ini dengan baik. Terimakasih atas cinta dan
inspirasi yang tak terhingga.
3. Agus Eko Radityanto, selaku teman sekaligus kakak tersayang penulis yang
sudah memberikan support mental maupun materi.
4. Dr. Sofia Naning Hertiana , ST, MT., selaku pembimbing I yang telah
membimbing dan mengarahkan penulis. Terimakasih atas segala ilmu dan solusi
dari setiap permasalahan yang terjadi dalam proses penyusunan tugas akhir ini.
5. Dr. Yudha Purwanto S.T., M.T, selaku pembimbing II yang tidak henti-henti
menyemangati penulis untuk bisa yakin dan tetap bertahan dalam proses
penyusunan tugas akhir ini. Terimakasih atas solusi dan ilmu yang bermanfaat.
6. Nur Ibrahim, S.T., M.T., selaku dosen wali TT-42-12 yang senantiasa
membantu penulis dari awal sampai akhir masa perkuliahan. Terimakasih atas
ilmu dan arahannya.
ix
atas mimpi yang sudah kita rangkai setiap malam!
10. Kreatif Hooligans 2020, terima kasih sudah menjadi keluarga untuk
menyumbang ide-ide kreatif bareng-bareng, BMTH PODCAST dan Power Pride
Satria FU menjadi saksi kita hehe.
11. Asterisk 2020, sebagai tempat berproses mendewasakan diri dan pola pikir.
Terimakasih sudah menjadi keluarga saling bahu membahu mewujudkan apa
yang kita inginkan. Terima kasih!
13. INTI Hooligans 2020, terimakasih sudah menjadi teman hebat dalam
mengembangkan ide-ide kreatif. Jaga satu sama lain! Jangan cepat puas, gass
teruss!!
x
DAFTAR ISI
LEMBAR PENGESAHAN.............................................................................................ii
TUGAS AKHIR...............................................................................................................ii
ABSTRAK.......................................................................................................................iv
ABSTRACT.......................................................................................................................v
KATA PENGANTAR.....................................................................................................vi
UCAPAN TERIMAKASIH...........................................................................................vii
DAFTAR ISI...................................................................................................................ix
DAFTAR GAMBAR......................................................................................................xii
DAFTAR TABEL.........................................................................................................xiii
DAFTAR SINGKATAN...............................................................................................xiv
BAB I PENDAHULUAN.................................................................................................1
2.5 MQTT........................................................................................................12
2.6 Database....................................................................................................14
2.6.1 MySQL..............................................................................................14
4.1 Pendahuluan..............................................................................................25
xii
A. Tampilan Halaman Broker.................................................................37
5.1 Kesimpulan................................................................................................49
5.2 Saran..........................................................................................................51
DAFTAR PUSTAKA.....................................................................................................52
LAMPIRAN....................................................................................................................54
xiii
DAFTAR GAMBAR
xiv
DAFTAR TABEL
xv
DAFTAR SINGKATAN
PENDAHULUAN
2
1.2 Rumusan Masalah
3
Adapun manfaat dari penelitian ini adalah :
4
1.4 Batasan Masalah
1. Studi Literatur
2. Analisis Masalah
5
3. Perancangan
1. Bab 1 PENDAHULUAN
Bab ini berisi latar belakang, permasalahan, tujuan, metode
penelitian, dan sistematika penulisan.
3. Bab 3 PERANCANGAN
6
Bab ini berisi alur kerja dan alur perancangan sistem.
7
BAB II
DASAR TEORI
1. Enkripsi
2. Dekripsi
8
3. Kunci
Adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci
terbagi menjadi dua bagian, yaitu private key dan public key.
4. Chipertext.
Merupakan suatu pesan yang telah melalui proses enkripsi. Pesan yang ada
pada teks kode ini tidak bisa dibaca karena berupa karakter-karakter yang
tidak mempunyai makna.
5. Plaintext.
Sering disebut dengan teks asli atau teks biasa ini merupakan pesan yang
diketik yang memiliki makna. Teks asli inilah yang diproses menggunakan
algoritma kriptografi untuk menjadi chipertext (teks-kode).
6. Cyptanalysis.
Ini dapat dipahami sebagai analisis kode atau sains, dan teks asli dapat
diperoleh tanpa mengetahui kunci yang valid. Jika teks kode berhasil
diubah ke teks asli tanpa menggunakan kunci yang valid, prosesnya disebut
cracking kode. Ini dilakukan oleh seorang cryptanalyst. Analisis kode juga
dapat menemukan kelemahan dari algoritma kriptografi, dan akhirnya
dapat menemukan kunci teks asli dari teks yang dikodekan yang dienkripsi
dengan algoritma tertentu.
9
Seperti dapat dilihat dari Gambar 2.1, enkripsi adalah proses
perubahan plaintext menjadi ciphertext, dan dekripsi adalah proses
mengubah ciphertext menjadi plaintext. Plaintext diwakili oleh M atau P.
Ciphertext diwakili oleh C. Fungsi enkripsi dilambangkan dengan E,
sehingga M diubah menjadi C [7]. Dalam notasi matematika dapat
dituliskan sebagai berikut:
E(M)=C
D(C)=M
EK(M)=C
DK(C)=M
10
2.2 Algoritma RSA
11
2.3 Pembuatan Kunci
12
2.4 Kekuatan Algoritma RSA
2.5 MQTT
13
memiliki beberapa kelebihan salah satunya yaitu loose coupling atau
decouple dimana berarti antara publisher dan subscriber tidak saling
mengetahui keberadaannya, terdapat 3 buah decoupling yaitu time
decoupling, space decoupling dan synchronization decoupling, time
decoupling adalah sebuah kondisi dimana publisher dan subscriber tidak
harus saling aktif pada waktu yang sama, space decoupling adalah dimana
publisher dan subscriber aktif di waktu yang sama akan tetapi antara
publisher dan subscriber tidak saling mengetahui keberadaan dan identitas
satu sama lain, dan yang terakhir adalah synchronization decoupling
kondisi dimana pengaturan event baik itu penerimaan atau pengiriman
pesan di sebuah node hingga tidak saling mengganggu satu sama lain [10].
Pengiriman data pada MQTT didasari oleh topik, topik ini nantinya
yang akan menentukan pesan dari publisher harus dikirim pada subscriber
yang mana, topik ini dapat bersifat hirarki, MQTT topik memiliki tipe data
string dan untuk perbedaan hirarki atau level dari topik digunakan tanda
baca “/” [11].
14
2. Subscribe adalah peran yang menerima suatu pesan dengan topik yang
sama.
2.6 Database
2.6.1 MySQL
15
2.6.2 PHP MyAdmin
16
2.7 Raspberry Pi
17
2.8 Sensor Ultrasonik HC-SR04
18
2.8.1 Prinsip Kerja Sensor Ultrasonik HC-SR04
19
BAB III
PERANCANGAN SISTEM
20
Gambar 3. 1 Diagram alir sistem umum.
Diagram alir algoritma enkripsi RSA dapat dilihat pada gambar 3.2.
22
Gambar 3. 3 Diagram alir dekripsi RSA.
23
3.3 Diagram Alir MQTT
24
3.4.1 Sarana Perangkat Keras
No Jenis Tipe
.
25
3.5 Perancangan Topologi Jaringan
data
26
Low priority Primarily o
Data transactions ne-way < 10 KB < 30 s N.A. Zero
Command/ Two-way
Data ~ 1 KB <250 ms N.A. Zero
control
0,1 s – 6 s Cukup
>6 s Buruk
27
BAB IV
4.1 Pendahuluan
Perangkat keras yang digunakan pada Tugas Akhir ini terdiri dari
sensor ultrasonik HC-SR04, V-Gen 8GB Micro SD, dan mikrokomputer
Raspberry Pi 4 model B. Sensor diarahkan ke sekitar untuk mendapatkan
hasil data dari sensor.
28
Gambar 4. 1 Perancangan alat.
Pengujian dan analisis pada sistem dapat dilihat pada hasil berikut:
29
Plaintext 60.201250140093491
Chipertext *;\xf6\xda\xfe,R\xd2#\xce\xe5\x89\x05\xafG\xc3\xbb\
x06\x88\t\xdf\x00\xd8X\x8d\x07\xc0>3*\xb2ri\xd7\
xbb}\xb6\xd6\xaa\xa3\xf8Tt\xd9\\xf0(f\xac\xed/\x0bO\
xd3\x9e7i^\xd7\xfe\x02\x80\x02|\xeb\xf5\x1c\x07\xe2\
x06%\xa9];\xcfF\x9epR^\x9e\x04Mt\xab\xfb@\xd0\
x8b\x07%\x16\x8fE\xe4\x02*\xc4m\x822\xeb\\\xeb\
xf5\x15\xe0&;\x00\x96\x88\xbdpSLouV\x82\xbf\x0b\
x1a\xc1(z\x0f\x8ca
Plaintext 65.201250140093491
Chipertext F\\x8e\\x9c<\\x12\\xc7\\x07\\xe6\\x87\\x1fA\\xe8\\xde\\
xf3\\x1ab\\x16Bb\\xff\\x03\\x95E\\xa0\\xb9\\x06\\xd4\\
xc0\\xe2\\xc7\\x81\\xf2c\\xb5\\xe0\\x8a\\x80\\xb5\\xb6\\
x895\\xe7\\x1cF\\xa9^p\\x94\\x18\\x90\\xb1\\xcf;M\\
x982\\xa334\\x82\\x9a\\x99F\\x11O\\xeer\\xd8\\xdeY\\
xd1\\xdd2\\xc1\\xc6D^PW\\xc22\\x9f\\xe5=\\xe6\\x9d\\
xba?\\x17\\x19\\x84\\xa1~p\\x98L\\x803i\\xbf\\x11\\
xb3\\xf9\\x86\\xc4\\n}\\x8b\\x1e\\x99\\xc5r\\xf8TcO\\
x995\\x00\\xb7\\x9c\\x00\\xa7G\\xd3;\\xbc
30
Tabel 4. 2 Hasil pengujian RSA 2048 Bit.
Plaintext 60.201250140093491
Chipertext [\n\xe1"\xf7u\x04\xee>\xf3;\x1cj\xb6~\xf0\x00cm\
xebP\xf5G\xd2\xdc/\x83\x8fw\x89u\x94\xad\xad5\
x17e\xc6\xf1\x96\x0f\xf9i$\xf7G\xe0o\xa3\xf3\xd2\
xe9?\xff\xd9\xbeO"\xb180\xd5\xaeWG^P\x91\x14\xeb\
x9cQ\x08\x0e\xf3Tff\xfb\x16\x93\x188\xbd=\tlQ\xad\
xd4\x85\x14\x80\x16\x07]\xaaH\xaf\xd6\xae\xaf\xf5|~\
x18\xc0\x12~j\xa9\xc1(\x13\xd2po\x83N"\x15\xc6f6\
xc5\x81\x1bo\x8d\x7f\xe2A,e>\x98)\xaa\xc6$o\x08\
xd6\xe6M8\xa5(\x18m\xac\xcft\xa9\xa7\xad\xbf\xdd\
x9a{\x90\xfa\xe3]\n\x89\x04/\x926\xd7\xa8\xce\x9a\
xe5\xfc\x95\xb7\xa0\xa7x\x87J\x1c\x1d\x10\x00,\x83!\
xef\xf4T\x11\xe2\x0c\x7f\x8ce!\xba$w\x13XYg"\
x00R{\xc4\xbc/\xfa>\xef\xee\x12\xe88\xe5\x8f+\xb7\
x9e<\xd0\xc0\x03\xaa\xad\xc8\xe2\xd3\x01S\x1a\x06\
xb1i\x9e\x83\xb3\x04\xe1&e\xb1\xbc\xa4\xe7Y J
Plaintext 65.201250140093491
Chipertext \x8b\xee\x14\xe7\xc8\xd7\xfc\xba\x1bI\x89\xfek\n^b\
xee\xd7F\x0cN}Y\xd5\xd6\xab\x02\xde\xd7P\x10\
31
xa8LO\x91\x8a}\xc4?\x8f\xb4/+s\xe5g\xd7)1;+\x92v4\
xa7\x18\x97;,*\xdb\xeeJ\x1bZ\xebs\xd0v\xffx\x02\xb2\
xf9\x15\x14\xc7\xd0\xc0\xdb\xb2\x88\xa1\x0e\xcd\x16\
xeb\xc1\xdc\xc7EC\xc3:FEH\\\x11v\x04\xd7FV`\xad\
xd24\xe0\x08R\x19\x8f\xd8C\x1f\xef\xe0F\x1dW\xbc\
xcb\x19\xc1\x83\x93\x8c\xcf\xbf\xe2\xe8\x8e83;V\
xa6N[T\x1d\x14%\xce\xb3>R\xa2\xb9\x04r\x1cE0/\
xe5\xb9\x1b\x03\xc8\xa3:\xdf_\xa6\xd8\xc1\x027mW\
xb1x*>\x1a\x12\xe6\xdam\xe9j(=X\x938jqz\x190\x18\
xe0\xdfd\xcf,\xc4\xdf\xc1G\x0b\x90\x962\xc15\xe8`\
x02\x15]Y\x90\xa9\x93?\xa5K\x85\xb4\xde\x9e\xc6c\
x18\xb8\xe5\xf6\xa8\xd7\xd5\xe8I\xa2\x9bU\xac\xa5H\
xc3\x7f\x1d\xcd\x0c\x9e}\x00\xf8B~\xfe
32
4.3.2 Pengujian Akurasi Data Sebelum di Enkripsi dan Sesudah Data di
Dekripsi
Data Sensor Enkripsi RSA 1024 Bit Dekripsi RSA 1024 Bit
33
xb12\xbe8L\x9d\x91,\x1ev\xb8v\
x0b#\x07\xa54*\x88\x1eL
Data Sensor Enkripsi RSA 2048 Bit Dekripsi RSA 2048 Bit
34
x8a\x1b\x9f\xc9r=\x15S\xc6X\
xd6\x1bVC\xe0\x13\x92pO\
x05\x7f,\x8e(\xfbBg\x14\'\xdc\
xf0\xef\xbd\xd5OROH\xefE\
xdblX\xd8\xdbG\x88_\xac\
x93-)\xabJ\xfb\xefzE\xa4\
xd7sd\x18\xd5Yi\xf3Djc\
x972]M\xf7,f\x12\x14\xca\xb9\
xa6\x1fH\x1e\x94\xcc\xeeF\
x86\x97\xcb\xf9\xb7\xc1\xb4\
xf0\xaf\x85\x00\xe3\xc6\x19M\
xc7~\xd1DZ=R&3\x9c\xcb\xfe\
xa6\xa2\xd5\xcc\xe3<\xce=\
x9dR\x97u\xd3\xd0\xb6\xa4<\
xf8_,\xf1+{\xc9K\xc4X\x07\
xa30V\xe2\xb0\xff\x97\x92\
xc3p\xb5\xe7\xcdA\t7\xf7\
xe6eW\xe2
35
xd7\\x86<\\x1brtH\\x19\\xb2\\
xd1\\x8c\\x0e\\xc49\\xb93\\xaf\\
x9d z\\xfc\\xfcS{\\xbeN\\xf0\\
xff\\x11\\x8d\\xa8\\xcc\\xf3\\
x7f\\xb1\\xfaD7`X#V\\xdb\\
xcdq<8(\\xa5\\x0e\\xe9yxg\\
x98\\xf6\\xb3\\\\\\x89|\\x83s\\
xb3\\t\\xecVA5\\x94\\x9c\\xea\\
xc1\\x93\\xf7\\x1fe\\x1a9A\\
xff\\xa3\\x9f\\x06#\\x8d\\
xc0T3\\xf4\\xd7\\xea\\xb6\
36
4.3.3 Pengujian Response Times Proses Enkripsi dan Dekripsi
A. Pengujian Response Times Proses Enkripsi dan Dekripsi RSA 1024 Bit.
Banyak
Ukuran Ukuran Waktu Waktu
Data
Plaintext (bit) Chipertext (bit) Enkripsi Dekripsi
Sensor
(milisecond) (milisecond)
37
response times enkripsi RSA 1024 bit cukup baik karena berada di bawah
0,1 s, sedangkan untuk response times dekripsi RSA 1024 bit cukup baik
karena berada di rentang nilai 1 s – 6 s .
B. Pengujian Response Times Proses Enkripsi dan Dekripsi RSA 2048 Bit.
Banyak
Ukuran Ukuran Waktu Waktu
Data
Plaintext (bit) Chipertext (bit) Enkripsi Dekripsi
Sensor
(milisecond) (milisecond)
38
4.3.4 Analisis Pengujian Response Times Proses Enkripsi dan Dekripsi
Dari pengujian sistem yang telah dibuat, didapatkan hasil sebagai berikut:
39
Gambar 4. 4 Tampilan halaman broker MQTT.
40
C. Tampilan Halaman Output Database
41
Gambar 4. 8 Tampilan pesan yang terkirim.
Pengujian Throughput
3460
3450
3440
Hasil (Kb/s)
3430
3420
3410
3400
3390
10 20 30
Banyak Data Sensor
42
4.3.7 Analisis Throughput Sebelum Enkripsi
43
4.3.9 Analisis Packet Loss Sebelum Enkripsi
Pengujian Delay
0.14
0.135
0.13
0.125
Hasil (s)
0.12
0.115
0.11
0.105
10 20 30
Banyak Data Sensor
44
4.3.11 Analisis Delay Sebelum Enkripsi
46
4.3.14 Pengujian Packet Loss Setelah Enkripsi
47
Pengujian packet loss dilakukan untuk pengujian skenario RSA
2048 bit dengan jumlah data 10, 20, dan 30 data menggunakan aplikasi
Wireshark dalam 30 kali percobaan. Pengujian packet loss menggunakan
jaringan Wi-Fi. Hasil yang diperoleh memiliki total 480 paket yang dikirim
dan total 480 paket yang diterima. Dari hasil pengujian packet loss untuk
skenario RSA 2048 bit yang dilakukan nilai yang didapatkan sesuai
menurut standar ITU-T G1010 karena tidak ada paket yang hilang.
48
Pengujian Delay 1024 Bit
0.35
0.3
0.25
0.2
Hasil (s)
0.15
0.1
0.05
0
10 20 30
Banyak Data Sensor
0.4000
0.3000
0.2000
0.1000
0.0000
10 20 30
Banyak Data Sensor
49
4.3.16 Analisis Delay Setelah Enkripsi
50
BAB V
5.1 Kesimpulan
5. Hasil rata-rata Response Times untuk skenario RSA 1024 bit sebesar
879,4 ms untuk proses enkripsi dan 2189,83 ms untuk proses dekripsi.
Untuk skenario RSA 2048 bit didapatkan hasil rata-rata pengujian
Response Times untuk 10, 20, dan 30 data sebesar 2.859,27 ms untuk
proses enkripsi dan 228.060,91 ms untuk proses dekripsi.
51
throughput bersifat tidak stabil, tergantung dari kualitas jaringan,
banyaknya pengguna jaringan, dan jenis jaringan yang dipakai.
52
5.2 Saran
53
DAFTAR PUSTAKA
[4] Hudan A.R., Rakhmadhany P., Heru N., 2017. Sistem Kendali Berbasis
Mikrokontroler Menggunakan Protokol MQTT pada Smarthome. Malang:
Universitas Brawijaya.
[7] Angga, Christian. 2011. Analisis Cara Kerja Beragam Fungsi Hash yang
Ada.Bandung: Institut Teknologi Bandung.
[8] Butler, T & Yank, K. PHP & MySQL: Novice to Ninja, 6th Edition.
SiitePoing. 2016.
54
[10] Nusantara, M. F., Akbar, S. R. & Rachmadi, A., 2016. Analisa Metode
Publish/Subcribe untuk Komunikasi Antar Perangkat Dalam Lingkungan
Smarthome.
[11] Lampin, V. et al., 2012. Building Smarter Planet Solutions with MQTT and
IBM.
: Jakarta. 2010.
55
LAMPIRAN
Lampiran Gambar
6000
4000
2000
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Pengujian Ke-
5000
4000
3000
2000
1000
0
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
56
Pengujian Throughput 1024 Bit
10000
9000
8000
Hasil (KB/s) 7000
6000
5000
4000
3000
2000
1000
0
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
6000
5000
4000
3000
2000
1000
0
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
5000
4000
3000
2000
1000
0
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
57
Pengujian Throughput 2048 Bit
8000
7000
6000
Hasil (KB/s)
5000
4000
3000
2000
1000
0
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
0.1500
0.1000
0.0500
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Pengujian ke-
0.2000
0.1500
0.1000
0.0500
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
58
Pengujian Delay 1024 Bit
0.4500
0.4000
0.3500
0.3000
0.2500
Hasil (s)
0.2000
0.1500
0.1000
0.0500
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
0.4000
0.3000
0.2000
0.1000
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
0.4000
0.2000
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
59
Pengujian Delay RSA 2048 Bit.
0.9000
0.8000
0.7000
Hasil (s) 0.6000
0.5000
0.4000
0.3000
0.2000
0.1000
0.0000
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930
Banyak Data
Lampiran Codingan
1. Encrypt code.
import json
import random
import time
import datetime
import Crypto
import secrets
60
broker = 'broker.hivemq.com'
port = 1883
topic = "data/enkripsi/RSA"
topic2 = "data/enkripsi/RSAKEY"
def connect_mqtt():
if rc == 0:
else:
client = mqtt_client.Client()
client.on_connect = on_connect
client.connect(broker, port)
return client
time.sleep(1)
objData = {
'dataEnkripsiRSA' : dataRSA,
}
61
dataJson = json.dumps(objData)
# result: [0, 1]
status = result[0]
if status == 0:
else:
def publish2(client):
time.sleep(1)
objData = {
'privateKeyRSA' : str(privateKey),
}
dataJson = json.dumps(objData)
# result: [0, 1]
status = result[0]
if status == 0:
62
else:
GPIO.setmode(GPIO.BCM)
GPIO_TRIGGER = 3
GPIO_ECHO = 2
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartTime = time.time()
StopTime = time.time()
while GPIO.input(GPIO_ECHO) == 0:
StartTime = time.time()
63
while GPIO.input(GPIO_ECHO) == 1:
StopTime = time.time()
distance = (TimeElapsed*34300) / 2
return distance
if __name__ =='__main__':
try:
while True:
dist = distance()
distInStr = str(dist)
timens = time.time_ns()
msg = str.encode(distInStr)
key = RSA.generate(1024)
64
privateKey = key.exportKey('PEM')
publicKey = key.publickey().exportKey('PEM')
#Enkripsi RSA
RSApublicKey = RSA.importKey(publicKey)
OAEP_cipher = PKCS1_OAEP.new(RSApublicKey)
encryptedMsg1 = OAEP_cipher.encrypt(msg)
privKey = secrets.randbelow(curve.field.n)
timens = time.time_ns()
f.write(str(encryptedMsg1))
f.close()
messageRSA = f.read()
65
client = connect_mqtt()
publish(client, messageRSA)
time.sleep(2)
except KeyboardInterrupt:
GPIO.cleanup()
2. Decrypt code.
import json
import random
import time
import mysql.connector
import Crypto
import binascii
import ast
import secrets
66
import hashlib, secrets, binascii
broker = 'broker.hivemq.com'
port = 1883
topic = "data/enkripsi/RSA"
topic2 = "data/enkripsi/RSAKEY"
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="12345",
database="datata"
def connect_mqtt():
if rc == 0:
else:
client = mqtt_client.Client()
client.on_connect = on_connect
client.connect(broker, port)
67
return client
dataRSA = []
data = json.loads(msg.payload.decode())
dataRSA.append(data)
if(len(dataRSA) == 2):
print(dataRSA)
dekripsiRSA(dataRSA[0]['dataEnkripsiRSA'], dataRSA[1]['privateKeyRS
A'])
dataRSA.clear()
client.subscribe([(topic,0),(topic2,0)])
client.on_message = on_message
RSAprivateKey = RSA.importKey(ast.literal_eval(key))
OAEP_cipher = PKCS1_OAEP.new(RSAprivateKey)
decryptedMsg1 = OAEP_cipher.decrypt(ast.literal_eval(dataEnkripsi))
68
print(type(dataEnkripsi))
print(type(decryptedMsg1.decode('utf-8')))
inserData(dataEnkripsi,decryptedMsg1.decode('utf-8'))
mycursor = mydb.cursor()
mycursor.execute(sql, val)
mydb.commit()
def run():
client = connect_mqtt()
subscribe(client)
client.loop_forever()
if __name__ == '__main__':
run()
69