BAB 2 LANDASAN TEORI
2.1. Kriptografi Ditinjau dari segi terminologinya, kata kriptografi berasal dari bahasa Yunani yaitu crypto yang berarti secret (rahasia) dan graphia yang berarti writing (tulisan). Jadi kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Maka secara termonologi kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut (Ariyus, 2008). 2.1.1. Jenis-jenis algoritma kriptografi Algoritma Kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsi hash (Ariyus, 2008). 2.1.1.1. Algoritma simetris Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Wandani, 2012). Algoritma simetris sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci (Lilda, 2008). Bila mengirim pesan dengan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.
Universitas Sumatera Utara
6 Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah hill cipher, vigenere cipher, caesar cipher, OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya. Teks Asli
Algoritma Enkripsi
Ciphertext
Algoritma Dekripsi
Teks Asli
Kunci Rahasia
Gambar 2.1 Skema Kriptografi Simetris 2.1.1.2. Algoritma asimetris Kunci yang digunakan dalam algoritma asimetri (asymmetric cryptosystems) untuk melakukan enkripsi dan dekripsi berbeda (Smart, 2004). Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key. Public key dan private key harus saling berpasangan secara matematis. Dengan memberikan public key, pembuat kunci berhak memberikan dan mendapatkan public key agar pesan aman dan hanya bisa dibaca oleh si pembuat kunci. Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia.
Gambar 2.2
Kriptografi Asimetris
2.1.2. Algoritma One Time Pad Algoritma ini ditemukan pada tahun 1917 oleh Mayor Joseph Mauborgne dan Gilbert Vernam. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri
Universitas Sumatera Utara
7 (Prameswara, 2013).
One Time Pad berisi deretan karakter kunci yang dibangkitkan
secara acak dan setiap kunci hanya bisa dipakai sekali pakai. Pemilihan kunci harus secara acak dan kunci hanya bisa digunkan satu kali saja agar algoritma One Time Pad tidak mudah dipecahkan (Mollin, 2007). Panjang stream karakter kunci sama dengan panjang pesan. One Time Pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan. Panjang kunci One Time Pad = panjang teks asli sehingga tidak ada kebutuhan untuk mengulang penggunaan kunci selama proses enkripsi. Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere. Enkripsi: ci = (pi + ki) mod 26.........................................(2.1) Dekripsi: pi = (ci–ki) mod 26....................................... (2.2) Dimana: ci= cipherteks pi= plainteks ki= kunci Bila diketahui teks asli: “ONETIMEPAD” Dengan kunci: “TBFRGFARM” Diasumsikan A= 0, B = 1, . . . , Z=25. Maka akan didapat teks-kode : “ IPKLPSFHGQ ” yang mana diperoleh sebagai berikut: (O + T ) mod 26 = I (N + B ) mod 26 = P (E + F ) mod 26 = K ( T + R ) mod 26 = L ( I + G ) mod 26 = P ( M + F ) mod 26 = S ( E + A ) mod 26 = F ( P + R ) mod 26 = H ( A + F ) mod 26 = G ( D + M ) mod 26 = Q
Universitas Sumatera Utara
8 Sistem One Time Pad tidak dapat dipecahkan karena beberapa alasan yaitu barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak. Mendekripsi teks kode dengan beberapa kunci berbeda dapat menghasilkan teks asli yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan teks asli mana yang benar. Algoritma ini memiliki beberapa kelemahan, yaitu : Kunci yang dipakai haruslah benar-benar acak. Menggunakan pseudorandom generator tidak dihitung, karena algoritma ini memiliki bagian yang tidak acak. Panjang kunci juga harus sama dengan panjang pesan, sehingga hanya cocok untuk pesan berukuran kecil. Selain itu, karena kunci dibangkitkan secara acak, maka tidak mungkin pengirim dan penerima membangkitkan kunci yang sama secara simultan, dan karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama pengiriman kunci. Oleh karena itu, algoritma ini hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci (Prameswara, 2013). 2.1.3. Blum Blum Shub generator Blum Blum Shub generator merupakan algoritma pembangkit bilangan yang cukup sederhana. BBS diperkenalkan pada tahun 1986 pada Lenore Blum, Manuel Blum, dan Michael Shub (Schneier, 1996) . Berikut ini algoritma dari BBS : 1. Pilih dua bilangan prima p dan q, di mana p dan q keduanya kongruen 3 modulo 4. p ≡ 3 (mod 4) dan q ≡ 3 (mod 4) 2. Hasilkan bilangan bulat blum n dengan menghitung n= p x q. 3. Pilih lagi sebuah bilangan acak s sebagai seed, bilangan yang dipilih harus memenuhi kriteria: a. 2 ≤ s < n. b. s dan n relatif prima. 4. Hitung nilai x0 = s2 mod n. 5. Hasilkan bilangan bit acak dengan cara : a. Hitung xi = xi-12 mod n. b. Hasilkan zi= bit - bit yang diambil dari xi. Bit yang diambil bisa merupakan LSB (Least Significant Bit) / hanya satu bit atau sebanyak j bit (j tidak melebihi log2 (log2 n)).
Universitas Sumatera Utara
9 6. Bilangan bit acak dapat digunakan langsung atau diformat dengan aturan tertentu, sedemikian hingga menjadi bilangan bulat. 2.2. Mikrokontroler ATMega32 Mikrokontroler adalah chip yang berisi berbagai unit penting untuk melakukan pemrosesan data (I/O, timer, memory, Arithmatic Logic Unit (ALU) dan lainnya) sehingga dapat berlaku sebagai pengendali dan komputer sederhana (Susilo, 2010). Mikrokontroler AVR (Alf and Vegard’s Risc processor) standar memiliki 8 bit, dimana semua instruksi dikemas dalam kode 18-bit dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set Computing), dengan menggunakan jumlah instruksi yang lebih sedikit, memungkinkan lahan pada chip (silicon real-estate) digunakan untuk meningkatkan kemampuan chip. Keuntungan dari RISC adalah kesederhanaan desain, chip yang lebih kecil, jumlah pin sedikit dan mengonsumsi sedikit daya (Budiharto, 2010). Mikrokontroler Keluarga AVR secara umum dikelompokkan menjadi 6 (enam) kelompok, yaitu : a.
Keluarga ATtini : biasanya bentuk dimensinya kecil, ukuran memori kecil, jumlah pin masukan dan keluaran juga sedikit.
b.
Keluarga AT90Sxx : Merupakan mikrokontroler yang pertama kali dibuat oleh Atmel Corp.
c.
Keluarga ATMega : Merupakan pengembangan mikrokontroler AT90Sxx dengan fitur yang lebih banyak.
d.
Keluarga AT86RFxx
e.
Keluarga
: Merupakan mikrokontroler berorientasi desain minimal.
AT90USBxx
:
Merupakan
mikrokontroler
yang
berorientasi
pemrograman USB f.
Keluarga AVR 32 Bit contohnya AP7000, UC3Axxxx, UC3Bxxx, UC3Lxx, dsb : Merupakan mikrokontroler dengan register dan instruksi dengan panjang 32 bit. Mikrokontroler ATMega32 adalah keluarga dari ATMega yang memiliki
Arsitektur sebagai berikut :
Universitas Sumatera Utara
10
Gambar 2.3 Arsitektur ATMega32 Fitur-fitur yang dimiliki oleh ATMega32 adalah sebagai berikut : a.
Performa tinggi, mikrokontroler berdaya rendah.
b.
Mikrokontroler dengan arsitektur RISC 8 bit. 1. 131 kode instruksi dalam bahasa assembly, hampir semua membutuhkan satu clock untuk eksekusi. 2. Mempunyai 32 x 8 bit register kerja kegunaan umum. 3. Pengoperasian full static, artinya clock dapat diperlambat, bahkan dihentikan sehingga chip berada dalam kondisi sleep. CMOS juga lebih tahan terhadap noise. 4. Kecepatan mengeksekusi sampai dengan 16 mega instruksi per detik pada saat diberikan osilator sebesar 16 MHZ.
Universitas Sumatera Utara
11 5. Terdapat rangkaian pengali 2 (dua) kali untuk siklus kerjanya di dalam chip. c.
Flash EEPROM (Electrically Eraseable Programmable Read Only Memory) sebesar 32 kilobyte yang dapat diprogram ulang dan dengan kemampuan Read While Write.
d.
Ketahanan hapus-tulis Flash ROM adalah 10.000 kali dengan pengaturan pilihan kode boot dan Lock Bit yang independen.
e.
Memori SRAM sebesar 2 kilobyte yang dapat dihapus-tulis 100.000 kali.
f.
penguncian kode program untuk keamanan perangkat lunak agar tidak dapat dibaca.
g.
Memori yang non-volatile EEPROM sebesar 1024 byte.
h.
Memiliki 2 buah timer/counter 8 bit sebanyak 2 buah dan sebuah timer/counter 16 bit dengan opsi PWM sebanyak 4 kanal.
i.
Memiliki 8 kanal Analog to Digital Converter 10 bit dengan jenis single ended.
j.
Kemasan TQFP ADC dapat diatur 7 buah kanal jenis diferensial dan khusus 2 kanal dengan penguatan yang dapat diatur melalui registernya sebesar 1x, 10x atau 20x.
k.
Antarmuka komunikasi serial USART yang dapat diprogram dengan kecepatan maksimal 2,5 Mbps.
l.
Antarmuka SPI master / slave.
m. Watchdog timer dengan osilator di dalam chip yang dapat diprogram. n.
Komparator Analog di dalam chip.
o.
Pendeteksian tegangan gagal yang dapat diprogram.
p.
Osilator RC internal yang terkalibrasi.
q.
Sumber interupsi internal dan eksternal.
r.
Pilihan Mode sleep : idle, pereduksi noise ADC, penghematan daya konsumsi, penurunan daya, kondisi standby.
s.
32 Pin masukan dan keluaran terprogram.
t.
Terdapat pilihan kemasan PDIP 40 pin,TQFP 44 kaki, QFN/MLF 44 titik.
u.
Tegangan pengoprasian 1. 2,7 – 5,5 Volt untuk ATMega32L 2. 4,5 – 5,5 Volt untuk ATMega32
v.
Kecepatan 1. 0 – 8 MHz untuk ATMega32L
Universitas Sumatera Utara
12 2. 0 – 16 MHz untuk ATMega32 w. Konsumsi daya pada 1 MHz, 3 Volt, suhu 25o C untuk ATMega32L. 1. Aktif : 1,1 Miliampere 2. Mode idle : 0,35 Miliampere 3. Mode power down : kurang dari 1 Mikroampere ATMega32 dapat dilihat pada Gambar 2.4 :
Gambar 2.4
Tabel 2.1
Konfigurasi Pin ATMega32
Konfigurasi Pin ATMega32
Nomor Pin
Nama
Fungsi
10
VCC
Catu daya positif
11, 31
GND
Catu daya negative/ground
30
AVCC
Catu daya positif untuk ADC internal
32
AREF
Pin untuk tegangan referensi AADC
1–8
PB7…PB0
Pin masukan dan keluaran Port B
33 – 40
PA7…PA0
Pin masukan dan keluaran Port A
14 – 21
PD7…PD0
Pin masukan dan keluaran Port D
22 – 29
PC7…PC0
Pin masukan dan keluaran Port C
9
RESET
Pin masukan untuk reset (active low)
12, 13
XTAL1 dan 2
Pin untuk masukan osilator eksternal
Universitas Sumatera Utara
13
(a) Gambar 2.5
(b) (a) Flash Program Memory, (b) Data Memory
Untuk dapat menggunakan atau mengoperasikan mikrokontroler ATMega32, harus dibuat sistem minimum yang meliputi komponen antara lain : sumber tegangan (Vcc) sebesar 5V DC, Ground (Gnd) dan sistem reset. Mikrokontroler ATMega32 memiliki clock generator internal sebesar 1 MHz, sehingga mikrokontroler ini dapat bekerja langsung tanpa harus menggunakan clock external. Untuk membuat program mikrokontroler ATMega32 digunakan editor dan compiler untuk bahasa C. Dalam pembahasan ini editor dan compiler yang digunakan adalah WinAVR. Setelah proses pembuatan dan kompilasi program selesai dilakukan akan diperoleh file intel hex (*.hex). File ini adalah file yang nantinya akan diprogramkan ke mikrokontroler ATMega32 melalui interface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer melalui antarmuka port paralel komputer. Koneksi antara ATMega32 dan port paralel untuk bsd programmer diberikan oleh tabel 2.2 :
Universitas Sumatera Utara
14 Tabel 2.2 Koneksi Pin Port Paralel dan ATMega32 Port Paralel
ATMega32
No pin Nama pin No pin Nama pin 7
D5
9
Reset
8
D6
8
SCK
9
D7
6
MOSI
10
S6
7
MISO
25
Ground
11
Ground
2.3. LCD Karakter 16 x 2 LCD (liquid crystal display) adalah piranti output untuk sistem komputer atau mikrokontroler yang dapat menampilkan karakter standar yang telah tersimpan dalam ROM pada LCD tersebut. Karakter yang dapat ditampilkan sebanyak 32 karakter yang tersusun dalam 16 kolom dan dua baris, sehingga sering disebut LCD 16x2. LCD memiliki 16 pin dan memerlukan tegangan 5V DC. Gambar 2.6 menunjukkan bentuk dan susunan pin LCD dan keterangan dari setiap pin diberikan pada tabel 3 (Suyadhi, 2010).
Gambar 2.6
Susunan Pin LCD Karakter 16x2
Sebelum menggunakan modul LCD ini, power supply 5V DC harus diberikan sebagai sumber arusnya seperti yang ditunjukkan Gambar 2.7.
Gambar 2.7
Hubungan Power Supply ke LCD
Universitas Sumatera Utara
15
Tabel 2.3
Keterangan Pin LCD Karakter 16x2 (Iswanto, 2009)
No pin
Nama pin
Level
Fungsi
1
Vss
-
Ground
2
Vdd
-
Power supply untuk chip LCD
3
Vo
0V – 5V
Power supply untuk LCD
4
RS
H/L
Register Selection
5
R/W
H/L
Read atau Write
6
E
H→L
Enable
7
DB0
H/L
Data Bit 0
8
DB1
H/L
Data Bit 1
9
DB2
H/L
Data Bit 2
10
DB3
H/L
Data Bit 3
11
DB4
H/L
Data Bit 4
12
DB5
H/L
Data Bit 5
13
DB6
H/L
Data Bit 6
14
DB7
H/L
Data Bit 7
15
LEDA
-
Power supply untuk LED (+)
16
LEDK
-
Power supply untuk LED (-)
Untuk menampilkan karakter pada LCD ada beberapa algoritma yang harus dijalankan. Algoritma ini dilakukan dengan memberikan nilai logika 0 atau 1 pada pin yang bersangkutan. Algoritma untuk penampilan karakter ini antara lain: 1. Mengatur display LCD, cursor dan blink. Tabel 2.4 Pengaturan Display LCD E 1→0
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0
0
0
0
0
0
1
D
C
B
Keterangan: D: D=0 display mati dan D=1 display hidup C: C=0 cursor mati dan C=1 cursor hidup B: B=0 blink mati dan B=1 blink hidup
Universitas Sumatera Utara
16 2. Mengatur karakter yang akan ditampilkan Tabel 2.5 Pengaturan Karakter LCD (Usman, 2008) E 1→0
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0
0
Nilai berdasarkan CGROM
Keterangan: Nilai dari DB0 sampai DB7 yang dimasukkan nantinya akan mengatur tampilan karakter yang berkorespondensi dengan kode karakter CGROM pada chip LCD. Kode karakter CGROM diberikan pada gambar 8.10 yang terdiri dari kolom yang menunjukkan DB6 – DB7 dan baris yang menunjukkan DB0 – DB3.
Gambar 2.8
Kode Karakter CGROM pada LCD
Universitas Sumatera Utara
17
2.4. Bluetooth Bluetooth
didefinisikan
sebagai
sebuah
arsitektur
protokol
ber-layer
yang
mengandung protokol inti, pengganti kabel dan protokol telepon serta protokol adaptasi. Pada bagian selanjutnya akan dibahas lebih lanjut mengenai masing-masing blok dari arsitektur protokol sebagaimana yang terlihat pada gambar.
Gambar 2.9 Bagian – bagian bluetooth Layer paling dasar dari arsitektur bluetooth adalah bluetooth radio. Bluetooth beroperasi pada industrial Scientific and Medical (ISM) band antara 2,40 sampai dengan 2,48 GHz. Terdapat tiga kelas dari transmitter yang dibedakan dari output power dan jangkauan transmisi yang dimiliki. Bluetooth radio menggunakan modulasi Gaussian Frequenscy Shift Keying (GFSK) dalam melakukan transmisinya. Baseband layer adalah lapisan fisik dan berada diatas bluetooth radio. Baseband layer menangani masalah channel. Untuk menghindari terjadinya interferensi dari sinyal lain yang berada pada band 2,4 GHz seperti WLAN, bluetooth menggunakan prinsip frekuensi hopping. Setiap perangkat bluetooth mempunyai alamat hardware yang khusus dan sebuah bluetooth clock. Sebuah algoritma tertentu digunakan untuk menghitung frekuensi hopping yang digunakan berdasarkan pada hardware address dari perangkat yang menjadi masters dan clock. Untuk komunikasi duplex, skema time duplex (TTD) digunakan sebagai sarana
Universitas Sumatera Utara
18 pengiriman dan penerimaan data. Di mana pada skema ini perangkat master melakukan transmisi pada slot watu genap dan perangkat slave melakukan transmisi pada slot waktu ganjil. Link Manager berfungsi untuk menjalankan link setup , authentication, link configuration dan aspek lainnya dari hubungan radio antara master dan slave. Selain itu juga berfungsi untuk menemukan lonk manager lainnya dan melakukan komunikasi dengan menggunakan link manager protokol. Untuk memastikan hardware yang berbeda dapat saling mendukung, maka perangkat bluetooth menggunakan Host Controller Interface (HCI) sebagai tatap muka antara host bluetooth (contohnya komputer) dan baseband dan link manager. Logical Link Control and Adaption Protocol (L2CAP) adalah lapisan yang berbeda di atas baseband protokol dan melayani protokol yang di atasnya dengan kemampuan protokol
multiplexing dan packet augmentation serta reassembly (SAR).
Fungsi SAR diperlukan untuk mendukung protokol yang menggunakan paket data yang lebih besar daripada yang dapat didukung oleh baseband. Paket L2CAP yang besar dibagi kedalam beberapa paket baseband yang lebih kecil sebelum dipancarkan dan paket-paket tersebut akan disusun kembali setelah diterima menjadi paket L2CAP. Service Discovery Protocol pada dasarnya berfungsi untuk menyediakan perangkat (tools) yang dibutuhkan oleh sebuah aplikasi untuk memperoleh informasi dari sebuah perangkat bluetooth, layanan bluetooth apa saja yang tersedia dan untuk menentukan karakteristik dari layanan yang tersedia. Port serial merupakan salah satu dari layanan komunikasi yang sering digunakan. RFCOMM adalah pengganti protokol kabel yang termasuk didalam spesifikasi Bluetooth. RFCOMM melakukan emulasi port serial RS-232 ke dalam protokol L2CAP dan menggantikan fungsi kabel serial. RFCOMM dapat menyediakan sampai dengan 60 port diantara dua perangkat bluetooth. Bluetooth profile digunakan untuk memberikan gambaran untuk implementasi dari sebuah fungsi yang dapat dilakukan. Bluetooth profile ditunjukan untuk mengurangi masalah yang mungkin timbul dari perbedaan produk yang diproduksi oleh perusahaan yang berbeda. Profile yang dimilki bluetooth sampai saat ini antara lain: basic imaging, basic printing, cordless telephony, dial-up networking, file transfer, handsfree, headset, serial port, dan scynchronization (Ardiansyah, 2011).
Universitas Sumatera Utara