16
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.

BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/16196/2/T1_612010026_BAB II... · Pada bagian ini akan dibahas dasar teori yang digunakan dalam pembuatan

  • 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

19

36 0x1e0356a7 0xdfe251dc

37 0x770087a6 0x1e0356a7

38 0x4de4cac3 0x770087a6

39 0x825e6641 0x4de4cac3

40 0xefcea9a5 0x825e6641

41 0xebf45d9f 0xefcea9a5

42 0xe5c97bed 0xebf45d9f

43 0xb9dfa07a 0xe5c97bed

44 0x44c8fc20 0xb9dfa07a