Upload
lyhuong
View
220
Download
0
Embed Size (px)
Citation preview
4
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.
5
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
6
Tabel 2.1 Spesifikasi Arduino Uno R3
Mikrokontroler ATmega328P
Tegangan Operasi 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
SRAM 2 KB ( ATmega328P)
EEPROM 1 KB ( ATmega328P)
Kecepatan clock 16 MHz
Panjang 68.6 mm
Tinggi 53.4 mm
Berat 25g
2.4 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.
7
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
8
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)
9
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 128-
bit.
Tabel 2.2 Parameter dari Enkripsi Simon
Besar
blok 2n
Besar kunci
mn
Besar
word n
Besar
kunci m konstanta Ronde T
32 64 16 4 Z0 32
48
72 24
3 Z0 36
96 4 Z1 36
64
96 32
3 Z2 42
128 4 Z3 44
96
96 48
2 Z2 52
144 3 Z3 54
128
128 64
2 Z2 68
192 3 Z3 69
256 4 Z4 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
10
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
11
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.
12
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.
13
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)
14
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)
0111 0000 1010 0000 0001 0001 1100 0001 (0x70a011c1)
0000 0000 0000 0000 0000 0000 0000 0010 (0x02) ⊕ ………. (3)
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
15
Tabel 2.3 Hasil Perluasan Kunci Simon 64 / 128
kunci
ke
Hasil dalam
hexadecimal
5 0xb770ec49
6 0x57e3e835
7 0xd397bc42
8 0x94dcf81f
9 0xbf4b5f18
10 0x8e5dabb9
11 0xdbf4a863
12 0xcd0c28fc
13 0x5cb69911
14 0x79f112a5
15 0x77205863
16 0x99880c12
17 0x1ce97c58
18 0xc8ed2145
19 0xb800dbb8
20 0xe86a2756
21 0x7c06d4dd
22 0xab52df0a
23 0x247f66a8
24 0x53587ca6
25 0xd25c13f1
26 0x4583b64b
27 0x7d9c960d
28 0xefbfc2f3
29 0x89ed8513
30 0x308dfc4e
31 0xbf1a2a36
32 0xe1499d70
33 0x4ce4d2ff
34 0x32b7ebef
35 0xc47505c1
36 0xd0e929e8
37 0x8fe484b9
38 0x42054bee
39 0xaf77bae2
40 0x18199c02
41 0x719e3f1c
42 0x0c1cf793
43 0x15df4696
16
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
17
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)
18
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 nilai x nilai y
1 0xfc8b8a84 0x656b696c
2 0x154d4e7f 0xfc8b8a84
3 0xb2a6be7c 0x154d4e7f
4 0xe0c1d225 0xb2a6be7c
5 0x8083c368 0xe0c1d225
6 0x54bd334e 0x8083c368
7 0x2ca6a070 0x54bd334e
8 0x35b04eec 0x2ca6a070
9 0x4efbefcf 0x35b04eec
10 0x28f361c7 0x4efbefcf
11 0x320b0062 0x28f361c7
12 0x3b2bc82c 0x320b0062
13 0x31e80836 0x3b2bc82c
14 0xc03d61c5 0x31e80836
15 0x488c5c04 0xc03d61c5
16 0x153449bf 0x488c5c04
17 0xa59de5fe 0x153449bf
18 0x968b68b8 0xa59de5fe
19 0x3e5df649 0x968b68b8
20 0x8b4e2236 0x3e5df649
21 0xfd0f5dcc 0x8b4e2236
22 0x09690941 0xfd0f5dcc
23 0x73f9a7c2 0x09690941
24 0x0353b2e0 0x73f9a7c2
25 0x2f4d70e4 0x0353b2e0
26 0x202a8289 0x2f4d70e4
27 0xea64cd8b 0x202a8289
28 0xb0eca9a9 0xea64cd8b
29 0xa6e0a8ce 0xb0eca9a9
30 0xe203cf04 0xa6e0a8ce
31 0x1e656c93 0xe203cf04
32 0x00c4c678 0x1e656c93
33 0xfcbfe003 0x00c4c678
34 0x07bf948c 0xfcbfe003
35 0xdfe251dc 0x07bf948c