BAB II DASAR TEORI - Institutional Repository | Satya Wacana Christian University: Rancang Bangun Monitoring Suhu Aquascape Berbasis Arduino dan Smartphone Menggunakan Enkripsi Simon Secara Nirkabel

BAB II
DASAR TEORI
Pada bagian ini akan dibahas dasar teori yang digunakan dalam pembuatan
sistem yang akan dirancang dalam tugas akhir ini.

2.1. Aquascape
Aquascape adalah seni mengatur tanaman air, batu, karang dan kayu agar terlihat
alami dan indah dipandang dalam akuarium sehingga memberikan efek/sensasi seperti
berkebun di bawah air.

Gambar 2.1 Salah satu contoh Aquascape
2.2

Sensor Suhu (DS18B20)
Sensor Suhu atau Temperature Sensors adalah suatu komponen yang dapat

mengubah besaran panas menjadi besaran listrik sehingga dapat mendeteksi gejala
perubahan suhu pada obyek tertentu. Sensor suhu melakukan pengukuran terhadap
jumlah energi panas/dingin yang dihasilkan oleh suatu obyek sehingga memungkinkan
kita untuk mengetahui atau mendeteksi gejala perubahan-perubahan suhu tersebut
dalam bentuk output Analog maupun Digital.


4

Gambar 2.2 Sensor Suhu (DS18B20)
2.3

Arduino Uno R3
Arduino Uno adalah papan mikrokontoler dengan menggunakan ATmega328P.

Memiliki 14 digital pin input / output ( dimana 6 pin dapat digunakan sebagai output
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, jack listrik, header ICSP
dan tombol reset. Berisi semua yang diperlukan untuk mendukung mikrokontoler;
hanya menghubungkannya ke komputer dengan kabel USB atau dihubungkan dengan
adapter AC – DC atau dengan menggunakan baterai.

Gambar 2.3 Arduino Uno R3
Spesifikasi dari Arduino Uno ini dapat dilihat pada Tabel 2.1

5


Tabel 2.1 Spesifikasi Arduino Uno R3
Mikrokontroler
Tegangan Operasi

ATmega328P
5V

Tegangan Input (
Rekomendasi )

7 - 12V

Tegangan Input ( Batas )

6 - 20V

Digital I / O pin

14 ( 6 diantaranya dapat menjadi PWM)


PWM Digital I / O pin

6

Input Analog pin

6

Arus DC per I / O pin

20 mA

Arus DC untuk 3.3V pin

50 mA

Flash Memory

32 KB ( ATmega328P)
dimana 0.5 KB digunakan sebagai

bootloader

2.4

SRAM

2 KB ( ATmega328P)

EEPROM

1 KB ( ATmega328P)

Kecepatan clock

16 MHz

Panjang

68.6 mm


Tinggi

53.4 mm

Berat

25g

Real Time Clock (RTC)
Real time clock (RTC) adalah jam elektronik berupa chip yang dapat

menghitung waktu (mulai detik hingga tahun) dengan akurat dan menjaga/menyimpan
data waktu tersebut secara waktu riil. Karena jam tersebut bekerja secara riil, maka
setelah proses hitung waktu dilakukan output datanya langsung disimpan atau dikirim
ke perangkat lain melalui sistem antarmuka.

6

Gambar 2.4 Real Time Clock (RTC)
2.5


Modul Bluetooth (HC-05)
Modul Bluetooth HC-05 merupakan modul komunikasi nirkabel pada frekuensi

2,4GHz dengan pilihan koneksi bisa sebagai slave, ataupun sebagai master. Sangat
mudah digunakan dengan mikrokontroler untuk membuat aplikasi nirkabel.
Antarmuka yang digunakan adalah serial RXD, TXD, VCC dan GND. Modul HC-05
mempunyai

LED

sebagai

indikator.

Tegangan input antara 3,6 sampai dengan 6V, jangan menghubungkan dengan
sumber daya lebih dari 7V. Arus saat unpaired(tidak terhubung) sekitar 30mA, dan
saat paired (terhubung) sebesar 10mA. 4 pin interface 3,3V dapat langsung
dihubungkan ke berbagai macam mikrokontroler (khusus Arduino, 8051, 8535, AVR,
PIC, ARM, MSP430, etc.). Jarak efektif jangkauan sebesar 10 meter, meskipun dapat

mencapai lebih dari 10 meter, namun kualitas koneksi makin berkurang.

Gambar 2.5 Modul Bluetooth HC-05

7

2.6

Enkripsi dan Dekripsi
Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption)

atau

enciphering

(standard

nama

menurut


ISO

7498-2)

sedangkan

proses

mengembalikan ciphertext mejadi plaintext disebut dekripsi (decryption) atau
deciphering (standard ISO 7498-2).[2]
Plaintext merupakan pesan atau data dalam bentuk aslinya yang dapat terbaca.
Sedangkan ciphertext merupakan pesan dalam bentuk tersembunyi. [1]
Secara sederhana proses enkripsi - dekripsi dapat digambarkan sebagai berikut :

Gambar 2.6 Proses Enkripsi - Dekripsi
Sebelumnya akan dibahas mengenai beberapa istilah-istilah yang akan sering
dipakai dalam pembuatan skripsi ini, di antaranya yaitu :
1. Plaintext (P) merupakan pesan asli.
2. Ciphertext (C) merupakan pesan terenkripsi yang merupakan hasil enkripsi.

3. Enkripsi (E) merupakan proses pengubahan plaintext menjadi ciphertext.
4. Dekripsi (D) adalah kebalikan dari enkripsi yakni mengubah ciphertext
menjadi plaintext, sehingga berupa data awal/asli.
5. Kunci (K) adalah suatu bilangan yang dirahasiakan yang digunakan dalam
proses enkripsi dan dekripsi.
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis
sebagai berikut :
EK (P) = C (Proses Enkripsi)
DK (C) = P (Proses Dekripsi)
8

Pada saat proses enkripsi kita menyandikan pesan P dengan suatu kunci K lalu
dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan
dengan menggunakan kunci K sehingga dihasilkan pesan P yang sama seperti pesan
sebelumnya.
2.7

Simon Block Cipher
Simon block cipher adalah cipher Feistel yang seimbang dengan word n-bit,


dan oleh karena itu memiliki panjang blok 2n. Panjang kunci enkripsi Simon bernilai
m, dimana m memiliki nilai 2,3 atau 4. Oleh karena itu, implementasi cipher Simon
dilambangkan dengan Simon2n/nm. Misalnya Simon 64 / 128 mengacu pada cipher
yang beroperasi pada blok plaintext 64-bit (n = 32) dengan menggunakan kunci 128bit.
Tabel 2.2 Parameter dari Enkripsi Simon
Besar
blok 2n
32
48
64
96
128

Besar kunci
mn
64
72
96
96
128

96
144
128
192
256

Besar
word n
16
24

Besar
kunci m
4
3
4
3
4
2
3
2
3
4

32
48
64

konstanta
Z0
Z0
Z1
Z2
Z3
Z2
Z3
Z2
Z3
Z4

Ronde T
32
36
36
42
44
52
54
68
69
72

2.7.1 Fungsi Perulangan pada Enkripsi Simon
Enkripsi Simon 2n dan dekripsi nya menggunakan operasi n-bit word:


Operasi biner XOR, ⊕



Operasi biner AND, &



Operasi circular shift left Sj, dengan j bits

Untuk k

GF (2) n, kunci Simon2n dari fungsi perulangan terdiri dari dua tahap peta

Feistel

9

Rk: GF (2) n x GF (2) n → GF (2) n x GF (2) n yang didefinisikan sebagai
Rk (x, y) = (y ⊕ f(x) ⊕ k, x),

Dimana f(x) = (Sx & S8x) ⊕ S2x dan k adalah kunci round. Kebalikan dari fungsi

perulangan, yang digunakan sebagai dekripsi adalah

Rk-1 (x, y) = (y, x⊕ f(y) ⊕ k). ........................................................... (1)

Enkripsi Simon membutuhkan sebuah kunci dan dari kunci tersebut dihasilkan

kunci – kunci lain sebanyak T sehingga menjadi k0 . . . kT-1, dimana T adalah
banyaknya perulangan. Gambar 2.7 menunjukkan fungsi perulangan yang telah
dijabarkan pada persamaan 1.

Gambar 2.7 Bentuk Perulangan Operasi dalam Sebuah Ronde pada Enkripsi
Simon [3]

2.7.2 Kunci pada Simon
Simon membutuhkan kunci yang unik untuk setiap perulangan dan kunci
tambahan yang dihasilkan dalam tiap perulangan. Tidak seperti fungsi perulangan,
terdapat tiga konfigurasi kunci sebagai jumlah word pada kunci bisa 2, 3 dan 4

10

tergantung dari konfigurasi. Gambar 2.8 menunjukkan kunci tambahan dalam tiga
panjang kunci yang berbeda, sesuai dengan dua, tiga atau empat dari jaringan Feistell
(m = 2, 3 atau 4). Blok Ki memegang kunci untuk perulangan ke-i. Untuk m = 2 dan m
= 3, logika operasi dari tambahan kunci adalah sama.
Untuk m = 4, ada tambahan langkah dimana word yang penting ( Ki+3 ) dilakukan
circular shift right sebanyak 3, kemudian dilakukan XOR dengan Ki+1, kemudian
dilakukan circular shift right sebanyak 1 dan kemudian dilakukan XOR dengan hasil
dari sebelumnya. Hasil dari tiap kunci tambahan, disimpan dalam word yang paling
signifikan dan semua word bergeser satu word. Dengan Ki sebagai kunci yang
sekarang, tidak lagi dibutuhkan lagi dan ditimpa.

11

Gambar 2.8 Perluasan kunci Simon dua, tiga, dan empat word [3]
2.7.3 Contoh Enkripsi Simon 64 / 128
Pada bagian ini akan dijelaskan salah satu contoh bagaimana enkripsi Simon
dikerjakan. Pada contoh ini menggunakan plaintext sebesar 64 bit dan kunci sebesar 128
bit. Nilai m yang digunakan adalah 4 dan nilai konstanta z yang digunakan adalah z3.
Kedua nilai ini didapat dari Tabel 2.2. Perulangan yang digunakan pada enkripsi ini
sebesar 44 kali.
2.7.4 Perluasan Kunci pada Enkripsi Simon 64 / 128
Pada enkripsi Simon, kunci awal yang dimiliki adalah kunci 0,1,2 dan
3.Perluasan kunci Simon dimulai dari kunci ke 4 sampai dengan kunci ke 43.
1. Kunci 0 = 0x03020100
2. Kunci 1 = 0x0b0a0908
3. Kunci 2 = 0x13121110
4. Kunci 3 = 0x1b1a1918

5. Contoh perluasan kunci ke 4


Karena mencari perluasan kunci ke 4 maka kunci 3 (didapat dari 4 – 1) operasi
circular shift right sebanyak 3 bit kemudian nilainya disimpan pada variabel
sementara.

12

Gambar 2.9 Circular Shift Right 3 bit kunci 3


Karena pada perluasan kunci pada Simon 64 / 128 mempunyai m = 4, maka
nilai pada variabel sementara dilakukan operasi XOR dengan kunci 1(didapat
dari 4 - 3) dan nilainya disimpan pada variabel sementara.
0000 0011 0110 0011 0100 0011 0010 0011 (0x03634323)
0000 1011 0000 1010 0000 1001 0000 1000 (0x0b0a0908) ⊕
0000 1000 0110 1001 0100 1010 0010 1011 (0x08694a2b)



Nilai pada variabel sementara dilakukan operasi XOR dengan nilai pada
variabel sementara yang telah dilakukan operasi circular shift right 1 bit
kemudian nilainya disimpan pada variabel sementara.

Gambar 2.10 Circular Shift Right 1 bit pada Nilai Sementara


Setelah dilakukan operasi circular shift right 1 bit, maka nilai tersebut
dilakukan operasi XOR dengan nilai sementara yang belum melakukan operasi
circular shift right.
0000 1000 0110 1001 0100 1010 0010 1011 (0x08694a2b)
1000 0100 0011 0100 1010 0101 0001 0101 (0x8434a515) ⊕

1000 1100 0101 1101 1110 1111 0011 1110 (0x8c5def3e) ………. (1)

13



Dilakukan operasi NOT pada kunci 0.
0000 0011 0000 0010 0000 0001 0000 0000 (0x03020100) NOT
1111 1100 1111 1101 1111 1110 1111 1111 (0xfcfdfeff) ………. (2)



Simon 64 / 128 menggunakan konstanta z3. Nilai pada index z3, dalam hal ini
karena mencari perluasan kunci 4 maka pada konstanta z3 index 4 dilakukan
operasi XOR dengan bilangan 3.
0001 (0x01)
0011 (0x03) ⊕

0010 (0x02) ………. (3)



Kunci 4 didapat dari hasil perhitungan (1) dilakukan operasi XOR dengan
hasil perhitungan (2) kemudian dilakukan operasi XOR dengan hasil
perhitungan (3)
1000 1100 0101 1101 1110 1111 0011 1110 (0x8c5def3e)

………. (1)

1111 1100 1111 1101 1111 1110 1111 1111 (0xfcfdfeff) ⊕

………. (2)

0000 0000 0000 0000 0000 0000 0000 0010 (0x02) ⊕

………. (3)

0111 0000 1010 0000 0001 0001 1100 0001 (0x70a011c1)

0111 0000 1010 0000 0001 0001 1100 0011 (0x70a011c3)


Didapat hasil kunci 4 adalah 0x70a011c3.



Hasil dari kunci 5 sampai dengan kunci 43 dapat dilihat pada Tabel 2.3

14

Tabel 2.3 Hasil Perluasan Kunci Simon 64 / 128
kunci
ke
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
31
32
33
34
35
36
37
38
39
40
41
42
43

Hasil dalam
hexadecimal
0xb770ec49
0x57e3e835
0xd397bc42
0x94dcf81f
0xbf4b5f18
0x8e5dabb9
0xdbf4a863
0xcd0c28fc
0x5cb69911
0x79f112a5
0x77205863
0x99880c12
0x1ce97c58
0xc8ed2145
0xb800dbb8
0xe86a2756
0x7c06d4dd
0xab52df0a
0x247f66a8
0x53587ca6
0xd25c13f1
0x4583b64b
0x7d9c960d
0xefbfc2f3
0x89ed8513
0x308dfc4e
0xbf1a2a36
0xe1499d70
0x4ce4d2ff
0x32b7ebef
0xc47505c1
0xd0e929e8
0x8fe484b9
0x42054bee
0xaf77bae2
0x18199c02
0x719e3f1c
0x0c1cf793
0x15df4696
15

2.7.5. Enkripsi Simon 64 / 128
Proses enkripsi ini dengan menggunakan plaintext sebesar 64 bit. 32 bit
pertama disebut dengan variabel x dan 32 bit berikutnya disebut dengan variabel y.


Nilai x dan y yang digunakan pada enkripsi ini adalah
x = 0x656b696c
y = 0x20646e75



Simpan nilai x pada variabel sementara.



Dilakukan circular shift left 1 bit pada variabel x

Gambar 2.11 Circular Shift Left 1 bit pada variabel x


Dilakukan circular shift left 8 bit pada variabel x

Gambar 2.12 Circular Shift Left 8 bit pada variabel x

16



Dilakukan operasi AND pada variabel x yang telah di rotate left 1 bit dan
dilakukan operasi circular shift left 8 bit
1100 1010 1101 0110 1101 0010 1101 1000 (0xcad6d2d8)
0110 1011 0110 1001 0110 1100 0110 0101 (0x6b696c65) AND
0100 1010 0100 0000 0100 0000 0100 0000 (0x4a404040) ………… (1)



Dilakukan circular shift left 2 bit pada variabel x

Gambar 2.13 Circular Shift Left 2 bit pada variabel x


Variabel y dilakukan operasi XOR dengan hasil perhitungan (1)
0010 0000 0110 0100 0110 1110 0111 0101 (0x20646e75)
0100 1010 0100 0000 0100 0000 0100 0000 (0x4a404040) ⊕

0110 1010 0010 0100 0010 1110 0011 0101 (0x6a242e35) ……….. (2)


Hasil perhitungan (2) dilakukan operasi XOR dengan variabel x yang dilakukan
operasi circular shift left 2 bit
0110 1010 0010 0100 0010 1110 0011 0101 (0x6a242e35)
1001 0101 1010 1101 1010 0101 1011 0001 (0x95ada5b1) ⊕

1111 1111 1000 1001 1000 1011 1000 0100 (0xff898b84) ………... (3)



Hasil perhitungan (3) dilakukan operasi XOR dengan kunci 0. Pemakaian kunci
0 ini karena merupakan perulangan pertama. Nilai tersebut merupakan nilai x
yang baru.
1111 1111 1000 1001 1000 1011 1000 0100 (0xff898b84)
0000 0011 0000 0010 0000 0001 0000 0000 (0x03020100) ⊕

1111 1100 1000 1011 1000 1010 1000 0100 (0xfc8b8a84)

17



Ganti nilai y dengan nilai pada variabel sementara.



Pada perulangan pertama didapat nilai x = 0xfc8b8a84 dan nilai y = 0x656b696c



Hasil perhitungan nilai x dan nilai y yang dilakukan proses perulangan dapat
dilihat pada Tabel 2.3
Tabel 2.3 Perulangan pada Enkripsi Simon
Perulangan
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
31
32
33
34
35

nilai x
0xfc8b8a84
0x154d4e7f
0xb2a6be7c
0xe0c1d225
0x8083c368
0x54bd334e
0x2ca6a070
0x35b04eec
0x4efbefcf
0x28f361c7
0x320b0062
0x3b2bc82c
0x31e80836
0xc03d61c5
0x488c5c04
0x153449bf
0xa59de5fe
0x968b68b8
0x3e5df649
0x8b4e2236
0xfd0f5dcc
0x09690941
0x73f9a7c2
0x0353b2e0
0x2f4d70e4
0x202a8289
0xea64cd8b
0xb0eca9a9
0xa6e0a8ce
0xe203cf04
0x1e656c93
0x00c4c678
0xfcbfe003
0x07bf948c
0xdfe251dc
18

nilai y
0x656b696c
0xfc8b8a84
0x154d4e7f
0xb2a6be7c
0xe0c1d225
0x8083c368
0x54bd334e
0x2ca6a070
0x35b04eec
0x4efbefcf
0x28f361c7
0x320b0062
0x3b2bc82c
0x31e80836
0xc03d61c5
0x488c5c04
0x153449bf
0xa59de5fe
0x968b68b8
0x3e5df649
0x8b4e2236
0xfd0f5dcc
0x09690941
0x73f9a7c2
0x0353b2e0
0x2f4d70e4
0x202a8289
0xea64cd8b
0xb0eca9a9
0xa6e0a8ce
0xe203cf04
0x1e656c93
0x00c4c678
0xfcbfe003
0x07bf948c

36
37
38
39
40
41
42
43
44

0x1e0356a7
0x770087a6
0x4de4cac3
0x825e6641
0xefcea9a5
0xebf45d9f
0xe5c97bed
0xb9dfa07a
0x44c8fc20

19

0xdfe251dc
0x1e0356a7
0x770087a6
0x4de4cac3
0x825e6641
0xefcea9a5
0xebf45d9f
0xe5c97bed
0xb9dfa07a

Dokumen yang terkait

BAB I PENDAHULUAN - Institutional Repository | Satya Wacana Christian University: Perbedaan Keefektifan Model Inquiry Learning dengan Discovery Learning dalam Pembelajaran IPA Materi Perubahan Lingkungan Kelas IV Gugus Kartika Bawen Kabupaten Semarang Sem

0 0 7

Institutional Repository | Satya Wacana Christian University: Perbedaan Keefektifan Model Inquiry Learning dengan Discovery Learning dalam Pembelajaran IPA Materi Perubahan Lingkungan Kelas IV Gugus Kartika Bawen Kabupaten Semarang Semester II Tahun 2014/

0 0 36

3.1.2. Desain penelitian - Institutional Repository | Satya Wacana Christian University: Perbedaan Keefektifan Model Inquiry Learning dengan Discovery Learning dalam Pembelajaran IPA Materi Perubahan Lingkungan Kelas IV Gugus Kartika Bawen Kabupaten Semar

0 0 16

Institutional Repository | Satya Wacana Christian University: Perbedaan Keefektifan Model Inquiry Learning dengan Discovery Learning dalam Pembelajaran IPA Materi Perubahan Lingkungan Kelas IV Gugus Kartika Bawen Kabupaten Semarang Semester II Tahun 2014/

0 0 49

PERBEDAAN KEEFEKTIFAN MODEL INQUIRY LEARNING DENGAN DISCOVERY LEARNING DALAM PEMBELAJARAN IPA MATERI PERUBAHAN LINGKUNGAN KELAS IV GUGUS KARTIKA BAWEN KABUPATEN SEMARANG SEMESTER II TAHUN 20142015 SKRIPSI

0 0 18

Institutional Repository | Satya Wacana Christian University: Perbedaan Keefektifan Model Inquiry Learning dengan Discovery Learning dalam Pembelajaran IPA Materi Perubahan Lingkungan Kelas IV Gugus Kartika Bawen Kabupaten Semarang Semester II Tahun 2014/

0 0 136

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah - Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Hasil Belajar IPA Melalui Model Pembelajaran STAD Siswa Kelas V SD Negeri Tegalrejo 02 Kecamatan Tengaran Semester II Tahun 20

0 0 7

2.1.2. Tujuan Pembelajaran IPA di Sekolah Dasar - Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Hasil Belajar IPA Melalui Model Pembelajaran STAD Siswa Kelas V SD Negeri Tegalrejo 02 Kecamatan Tengaran Semester II Tahun

0 0 17

Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Hasil Belajar IPA Melalui Model Pembelajaran STAD Siswa Kelas V SD Negeri Tegalrejo 02 Kecamatan Tengaran Semester II Tahun 2014/2015

0 0 10

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Kontrol Lampu Menggunakan Arduino Melalui Website dan Notifikasi Pesan

0 1 14