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)
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
6
Tabel 2.1 Spesifikasi Arduino Uno R3
Mikrokontroler ATmega328P
Tegangan Operasi 5V
Tegangan Input (
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
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.
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)
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
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 leftSj, dengan j bits
Untuk k GF (2) n, kunci Simon2n dari fungsi perulangan terdiri dari dua tahap peta
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,
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 Kimemegang kunci untuk perulangan ke-i. Untuk m = 2 dan m = 3, logika operasi dari tambahan kunci adalah sama.
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
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)
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.
15
Tabel 2.3 Hasil Perluasan Kunci Simon 64 / 128
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 Left1 bit pada variabel x
Dilakukan 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.
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
19