BAB 2
TINJAUAN PUSTAKA
2.1Kriptografi
Kriptografi ( cryptography ) berasal dari Bahasa Yunani yaitu “cryptos” yang artinya “secret” (rahasia) dan “graphein” yang artinya “writing” (menulis). Jadi kriptografi berarti “secret writing” (tulisan rahasia). Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikan ke dalam bentuk yang tidak dapat dimengerti maknanya. Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan lebih dari 4000 tahun yang lalu, diperkenalkan oleh orang-orang mesir lewat hieroglyph. (Mollin, Richard A.2007)
Keamanan data merupakan suatu hal yang dibutuhkan semua orang, supaya
data yang dikirim aman dari gangguan orang yang tidak bertanggungjawab yang dapat membahayakan keamanan pesan pada saat proses pengiriman data. Untuk mengamankan data tersebut kita menggunakan teknik kriptografi seperti yang sudah dijelaskan diatas. Ada beberapa komponen kriptografi dasar, seperti: (Ariyus, D. 2008)
1. Enkripsi
2. Dekripsi
Merupakan kebalikan dari Enkripsi. Pesan yang telah di Enkripsi dikembalikan kebentuk aslinya dan algoritma yang digunakan untuk dekripsi tentu saja berbeda dengan proses Enkripsi.
3. Kunci
Ada dua penerapan kunci pada pengamanan kriptografi yaitu, kunci umum (public key) dan kunci pribadi (private key).
4. Ciphertext
Ciphertext adalah bentuk penyandian dari proses Enkripsi dan pesan pada teks-kode ini tidak dapat dibaca karena berupa karakter-karakter yang tidak mempunyai ejaan atau makna tertentu.
5. Plaintext
Plaintext sering disebut dengan cleartex, Adalah teks asli yang memiliki makna yang akan dikirim kepada penerima. Teks asli inilah yang akan diproses dengan algoritma kriptografi menjadi ciphertext (teks-kode).
6. Pesan
Pesan adalah sesuatu informasi yang akan disampaikan atau dikirim kepada penerima dan pesan merupakan sesuatu yang sering dirahasiakan. Pesan dapat berupa data atau informasi yang di kirim baik itu melalui kurir, saluran komunikasi data, dan sebagainya atau yang disimpan didalam media perekaman seperti kertas, storage dan sebagainya.
7. Cryptanalysis
Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis yaitu:
a. Algoritma Simetris
Algoritma simetri sering disebut dengan algoritma klasik, karena memakai kunci yang sama untuk proses enkripsi dan dekripsi. Algoritma ini sudah ada sejak 4000 tahun yang lalu.
Karena kunci yang digunakan untuk proses enkripsi dan dekripsi sama, sehingga sering disebut juga one key/ private key/ single key, seperti Twofish, One Time Pad. (Mollin, Richard A.2007)
Gambar 2.1 Diagram proses enkripsi dan dekripsi algoritma simetris
b. Algoritma Asimetris
Algoritma Asimetri sering juga disebut dengan kunci publik. Dimana kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi, seperti algoritma RSA, ElGamal, dll. Kunci-kunci tersebut berhubungan satu sama lain: (Mollin, Richard A.2007)
Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma asimetris
Plainteks Cipherteks Plainteks
enkripsi dekripsi
Kunci enkripsi (K) Kunci dekripsi (K)
Plainteks
Kunci Public (K1) Kunci Privat (K2) Cipherteks
2.2 Algoritma RSA
Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang baik, maka selama itu pula keamanan algoritma RSA tetap terjamin. (Munir, R. 2007)
Besaran-besaran yang digunakan pada algoritma RSA:
1. p dan q bilangan prima (rahasia)
p dapat diperoleh dengan menarik akar pangkat dua dari r. 3. Penghitungan n = (p– 1)(q– 1).
4. Pemiilihan kunci publik e, yang relatif prima terhadap n.
5. Pembangkitan kunci rahasia menggunakan persamaan d e = 1 + kn ,
sehingga d dapat dihitung dengan:
e kn
Keterangan : d : kunci dekripsi (rahasia)
e : kunci enkripsi (tidak rahasia) yang relatif prima terhadap n n : hasil perhitungan dari (p-1)(q-1)
k : dengan mencoba nilai 1,2,3,... sehingga nilai d bulat
Akan terdapat bilangan bulat k yang menyebabkan memberikan bilangan bulat d. Dengan catatan e dan d dapat dipertukarkan urutan pembangkitannya. Jika langkah 4 diganti dengan “Pemilihan kunci rahasia d, yang …”, maka pada langkah 5 kita menghitung kunci publik dengan rumus yang sama.
Contoh : Misalkan p = 47 dan q = 71 (keduanya prima). Selanjutnya, hitung nilai
r = pq = 3337 dan n = (p– 1)(q– 1) = 3220
Pemilihan kunci publik e = 79, karena 79 relatif prima dengan 3220. e dan r dapat dipublikasikan ke umum. Selanjutnya penghitungan kunci dekripsi d seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan (1),
79
e : kunci enkripsi (tidak rahasia) diperoleh 79 n : hasil perhitungan dari (p-1)(q-1) diperoleh 3220 k : dengan mencoba nilai 1,2,3,... sehingga nilai d bulat
Dengan mencoba nilai k = 25 diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.
b. Proses Enkripsi
yi = xi e mod r ………(2)
Keterangan: yi : blok cipherteks r : hasil perkalian p dan q xi : blok plainteks
e : kunci enkripsi (tidak rahasia) yang relatif prima terhadap n
c. Proses Dekripsi
Setiap blok cipherteks yididekripsi kembali menjadi blok xi dengan rumus xi = yid mod r ………(3)
Keterangan: yi : blok cipherteks xi : blok plainteks
d : kunci dekripsi (rahasia) r : hasil perkalian p dan q
Contoh : Misalkan plainteks yang akan dienkripsikan adalah x = HARI INI atau dalam sistem desimal (pengkodean ASCII) = 7265827332737873
Kemudian x dipecah menjadi enam blok yang berukuran 3 digit:
x1 = 726 x3 = 733 x5 = 787
x2 = 582 x4 = 273 x6 = 003
Nilai-nilai xi ini masih terletak di dalam rentang 0 sampai 3337 – 1 (agar transformasi menjadi satu-ke-satu).
Kemudian blok-blok plainteks dienkripsikan dengan rumus yi = xi e mod r , sebagai berikut:
72679 mod 3337 = 215 = y1 27379 mod 3337 = 933 = y4 58279 mod 3337 = 776 = y2 78779 mod 3337 = 1731 = y5 73379 mod 3337 = 1743 = y3 00379 mod 3337 = 158 = y6
Dekripsi dilakukan dengan menggunakan kunci rahasia d = 1019
Apabila blok-blok cipherteks didekripsikan akan bernilai sebagai berikut: 2151019 mod 3337 = 726 = x1
7761019 mod 3337 = 582 = x2 17431019 mod 3337 = 733 = x3 …
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula x = 7265827332737873
Kemudian diubah dalam karakter ASCII adalah x = HARI INI.
2.3 Algoritma ElGamal
Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma Elgamal juga adalah algoritma kriptografi kunci-publik. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. Kekuatan algoritma ini terletak pada sulitnya menghitung logaritma diskrit. (Munir, R. 2006)
Besaran-besaran yang digunakan dalam algoritma ElGamal yaitu:
1. p bilangan prima (tidak rahasia) 2. Bilangan acak, g ( g < p) (tidak rahasia) 3. Bilangan acak, x (x < p) (kunci privat) (rahasia) 4. y = gx mod p (kunci publik) (tidak rahasia) 5. m (plainteks) (rahasia) 6. a dan b (cipherteks) (tidak rahasia)
a. Prosedur Membuat Pasangan Kunci
1. Pemilihan sembarang bilangan prima p.
2. Pemilihan dua buah bilangan acak g dan x, dengan syarat g < p dan x < p. 3. Penghitungan y = gx mod p……… (4)
b. Proses Enkripsi
Plainteks disusun menjadi blok-blok m1, m2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai p – 1. Dilanjutkan dengan
pemilihan bilangan acak k, yang dalam hal ini 0 k p – 1, sedemikian sehingga k
relatif prima dengan p– 1. Setiap blok m dienkripsi dengan rumus:
a = gk mod p ………….. (5) dan b = ykm mod p…………..(6)
Keterangan: a : cipherteks pertama b : cipherteks kedua
p : bilangan prima yang telah ditentukan g : bilangan acak lebih kecil dari p
k : bilangan acak yang memenuhi 0 kp – 1
y : kunci publik hasil dari gx mod p m : blok-blok plainteks
Pasangan a dan b adalah cipherteks untuk blok pesan m. Dengan begitu ukuran cipherteks dua kali ukuran plainteksnya.
c. Proses Dekripsi
Untuk mendekripsi a dan b digunakan kunci rahasia, x, dan plainteks m diperoleh kembali dengan persamaan
(ax)-1 = ap-1-x mod p………….. (7) dan m = b/ax mod p………….. (8)
Keterangan: a : cipherteks pertama , x : kunci privat (x < p) b : cipherteks kedua , m : blok-blok plainteks p : bilangan prima yang telah ditentukan
2.4 Pengertian Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital. (Sutoyo. T. 2009)
Gambar koordinat citra digital dapat dilihat pada Gambar 2.3
Gambar 2.3 Koordinat Citra Digital
2.4.1 Pengertian Citra Analog
Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar X, foto yang tercetak di kertas foto, lukisan, pemandangan alam, hasil CT scan, gambar-gambar yang terekam pada pita kaset, dan lain sebagainya. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses di komputer secara langsung. Oleh sebab itu, agar citra ini dapat diproses di komputer, proses konversi analog ke digital harus dilakukan terlebih dahulu. Citra analog
sensor gelombang pendek pada sistem radar, sensor ultrasound pada sistem USG, dan lain sebagainya. (Sutoyo. T. 2009)
Hampir semua kejadian alam boleh diwakili sebagai perwakilan analog seperti bunyi, cahaya, air, elektrik, angin dan sebagainya. Jadi citra analog adalah citra yang terdiri dari sinyal–sinyal frekuensi elektromagnetis yang belum dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya. (Putra, D. 2010)
2.4.2 Pengertian Citra Digital
Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar dua dimensi menggunakan komputer. Citra digital merupakan sebuah larik yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu. (Putra, D. 2010)
Citra digital adalah citra yang dinyatakan secara diskrit (tidak kontinu), baik untuk posisi koordinatnya maupun warnanya. Dengan demikian, citra digital dapat digambarkan sebagai suatu matriks, dimana indeks baris dan indeks kolom dari matriks menyatakan posisi suatu titik di dalam citra dan harga dari elemen matriks menyatakan warna citra pada titik tersebut. Dalam citra digital yang dinyatakan sebagai susunan matriks seperti ini, elemen–elemen matriks tadi disebut juga dengan istilah piksel yang berasal dari kata picture element (pixel).(Basuki, A. 2005)
Citra digital adalah citra yang terdiri dari sinyal–sinyal frekuensi elektromagnetis yang sudah disampling sehingga dapat ditentukan ukuran titik gambar yang pada umumnya disebut piksel. Untuk menyatakan citra secara matematis, dapat didefinisikan fungsi f(x,y) di mana x dan y menyatakan suatu posisi dalam koordinat dua dimensi dan harga f pada titik (x,y) adalah harga yang menunjukkan warna citra pada titik tersebut. (Sutoyo. T. 2009)
2.5 Jenis Citra
Namun secara umum jangkauannya adalah 0-255. Citra dengan penggambaran seperti ini digolongkan ke dalam citra integer. (Putra, D. 2010)
2.5.1 Citra Biner
Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai piksel yaitu hitam dan putih, sering juga disebut citra black and white atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner (Putra, D. 2010). Citra biner sering kali muncul sebagai hasil dari proses pengolahan seperti segmentasi, pengembangan, ataupun morfologi.
Gambar 2.4 Citra Biner (Basuki, A. 2005)
2.5.2 Citra Grayscale
Gambar 2.5 Citra Grayscale 2.5.3 Citra Warna (16 Bit)
Citra warna 16 bit (biasanya disebut citra highcolor) dengan setiap pixelnya diwakili dengan 2 byte memory (16 bit).
Warna 16 bit memiliki 65.356 warna. Dalam formasi bitnya, nilai merah dan biru mengambil tempat di 5 bit di kanan dan kiri. Komponen hijau memiliki 5 bit ditambah 1 bit ekstra. Pemilihan komponen hijau dengan deret 6 bit dikarenakan penglihatan manusia lebih sensitive terhadap warna hijau. (Putra, D. 2010)
Gambar 2.6 Deret Warna 16 Bit (Putra, D. 2010)
Gambar 2.7 Kedalaman Warna 16 bit High Color (Prasetyo, E. 2012)
Setiap pixel dari citra warna 24 bit diwakili dengan 24 bit sehingga total 16.777.216 variasi warna. Variasi ini sudah lebih dari cukup untuk memvisualisasikan seluruh warna yang dapat dilihat penglihatan manusia. Penglihatan manusia dipercaya hanya dapat membedakan hingga 10 juta warna saja.
Setiap poin informasi pixel (RGB) disimpan ke dalam 1 byte data. 8 bit pertama menyimpan nilai biru, kemudian diikuti dengan nilai hijau pada 8 bit kedua dan pada 8 bit terakhir merupakan warna merah. (Putra, D. 2010)
Gambar 2.8 Citra Warna 24 Bit
2.6 Format File Citra Bitmap (.bmp)
Format file citra standar yang digunakan saat ini terdiri dari beberapa jenis.
Format-format ini digunakan dalam menyimpan citra dalam sebuah file. Setiap Format-format memiliki karakteristik masing-masing. (Putra, D. 2010)
Format .bmp adalah format penyimpanan standar tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna. Format ini terdiri dari beberapa jenis yang setiap jenisnya ditentukan dengan jumlah bit yang digunakan untuk menyimpan sebuah nilai piksel. (Putra, D. 2010)
Pada format bitmap, citra disimpan sebagai suatu matriks di mana masing – masing elemennya digunakan untuk menyimpan informasi warna untuk setiap pixel. Jumlah warna yang dapat disimpan ditentukan dengan satuan bit-per-pixel. Semakin besar ukuran bit-per-pixel dari suatu bitmap, semakin banyak pula jumlah warna yang dapat disimpan. Format bitmap ini cocok digunakan untuk menyimpan citra digital yang memiliki banyak variasi dalam bentuknya maupun warnanya, seperti foto dan lukisan. (Putra, D. 2010)
Karakteristik lain dari bitmap yang juga penting adalah jumlah warna yang dapat disimpan dalam bitmap tersebut. Ini ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap yang menggunakan satuan bpp (bit per pixel). Dalam Windows dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per piksel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya bit yang digunakan untuk menyimpan satu
titik dari bitmap. (Sutoyo. T. 2009)
Berikut ini tabel yang menunjukkan hubungan antara banyaknya bit per piksel dengan jumlah warna maksimum yang dapat disimpan dalam bitmap, dapat dilihat pada Tabel 1.
Tabel 2.1 Hubungan Antara Bit Per Pikseldengan Jumlah Warna Pada Bitmap
2.7 Mode Warna
Dua mode warna yang banyak digunakan dalam dunia komputer adalah mode warna RGB yang diterapkan pada tabung display seperti pada monitor dan televisi/video dan CMYK yang digunakan pada kebanyakan mesin pencetak dokumen (printer). Untuk menampilkan sebuah citra pada layar monitor diperlukan lebih dari sekedar informasi tentang letak dari piksel-piksel pembentuk citra. Untuk memperoleh gambar yang tepat dibutuhkan juga informasi tentang warna yang dipakai untuk menggambarkan sebuah citra digital.
2.7.1 Mode Warna RGB (Red, Green, Blue)
RGB adalah suatu model warna yang terdiri atas 3 buah warna: merah (Red), hijau (Green), dan biru (Blue), yang ditambahkan dengan berbagai cara untuk menghasilkan bermacam-macam warna. Kegunaan utama model warna RGB adalah untuk menampilkan citra / gambar dalam perangkat elektronik, seperti televisi dan komputer, walaupun juga telah digunakan dalam fotografi biasa. Sebelum era elektronik, model warna RGB telah memiliki landasan yang kuat berdasarkan
pemahaman manusia terhadap teori trikromatik.
Model warna ini merupakan model warna yang paling sering dipakai. Contoh alat yang memakai mode warna ini yaitu TV, kamera, komputer, dan kamera digital. Kelebihan model warna ini adalah gambar mudah disalin / dipindah ke alat lain tanpa harus di-convert ke mode warna lain, karena cukup banyak peralatan yang memakai mode warna ini. Kelemahannya adalah tidak bisa dicetak sempurna dengan printer, karena printer menggunakan mode warna CMYK, sehingga harus diubah terlebih dahulu. RGB merupakan model warna aditif, yaitu ketiga berkas cahaya yang ditambahkan bersama-sama, dengan menambahkan panjang gelombang, untuk membuat spektrum warna akhir.
biru terang untuk membuat putih. Kuning diproduksi dengan mencampurkan merah, hijau, warna cyan dengan mencampurkan hijau dan biru, warna magenta dari kombinasi merah dan biru. Monitor komputer dan televisi memakai RGB. (Sutoyo. T. 2009)
Gambar 2.9 Warna RGB (Sutoyo. T. 2009)
2.7.2 Mode Warna CMYK (Cyan, Magenta, Yellow, Black)
CMYK (Cyan Magenta Yellow Black) adalah model warna yang biasanya digunakan di percetakan (Printer, Sablon, dll). Tinta process cyan, process magenta, process yellow, process black dicampurkan dengan komposisi tertentu dan tepat serta akurat sehingga menghasilkan warna cetak yang tepat seperti yang diinginkan pada background putih dengan media kertas maupun lainnya. Bahkan bila suatu saat diperlukan, warna ini dengan mudah bisa dibentuk kembali.
Gambar 2.10 Warna CMYK (Sutoyo. T. 2009)
2.7.3 Mode Warna HSI (Hue, Saturation, Intensity)
Model warna HSI (Hue, Saturation, Intensity) merupakan model warna yang paling sesuai dengan manusia. Pada model ini warna dibagi menjadi 3 yaitu corak (hue) kejenuhan (saturasi) dan kecerahan (Intensitas). Corak (hue) dapat diaplikasikan untuk membedakan objek dengan latar belakang. Kecerahan (intensitas) merupakan nilai abu-abu dari piksel, yaitu rata-rata dari RGB.
Gambar 2.11 Warna Hue (Prasetyo, E. 2012)
2.8 Kedalaman Bit
piksel citra pada sebuah frame. Kedalaman bit biasanya dinyatakan dalam satuan bit/piksel. Semakin banyak jumlah bit yang digunakan untuk merepresentasikan sebuahcitra, maka semakin baik kualitas citra tersebut.
Tabel 2.2 Hubungan Antara Kedalaman Warna Dan Resolusi Warna Kedalaman Warna Resolusi Warna