Kedalaman Bit Analisis Sistem

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

Kedalaman bit menyatakan jumlah bit yang diprelukan untuk mrepresentasikan tiap Universitas Sumatera Utara piksel citra pada sebuah frame. Kedalaman bit biasanya dinyatakan dalam satuan bitpiksel. Semakin banyak jumlah bit yang digunakan untuk merepresentasikan sebuah citra, maka semakin baik kualitas citra tersebut. Tabel 2.2 Hubungan Antara Kedalaman Warna Dan Resolusi Warna Kedalaman Warna Resolusi Warna 1 bit 2 warna 2 bit 4 warna 4 bit 16 warna 8 bit 256 warna 16 bit 65.536 warna 24 bit 16.777.216 warna 32 bit 4.294.967.296 warna Universitas Sumatera Utara 23 BAB 3 ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Sebelum dilakukan tahap perancangan sebuah sistem, analisis sistem yang akan dibangun perlu dilakukan. Fase-fase awal pengembangan system dijabarkan secara kolektif melalui analisis sistem. Analisis sistem pada dasarnya merupakan tahapan yang ditujukan untuk menciptakan pemahaman yang menyeluruh terhadap sistem sehingga diperoleh gambaran tentang kebutuhan, cara kerja, dan alur data yang akan dikerjakan sistem. Tahapan ini merupakan tahapan yang sangat penting karena kesalahan di dalam tahapan ini akan menyebabkan kesalahan pada tahapan selanjutnya. Sistem yang dirancang akan lebih baik dan memudahkan pengembang sistem dalam perbaikan apabila pada kemudian hari ditemukan kesalahan atau kekurangan. Hal ini diharapkan akan mempermudah tahapan proses implementasi sistem.

3.1.1 Analisis Masalah

Pada penelitian ini dilakukan proses kriptografi dengan menggunakan Kombinasi Rivest Shamir Adleman RSA dan ElGamal dalam Penyandian Citra Bitmap untuk menjamin bahwa pesan yang telah dikirim berstatus aman dan terhindar dari campur tangan pihak ketiga sebelum sampai ke tujuan. Masalah dalam sistem ini adalah bagaimana agar sistem yang dibangun dapat membantu pengguna sistem dalam mengamanan data khususnya pada citra digital. Universitas Sumatera Utara Dalam sistem ini teradapat dua pengguna yaitu pengirim peng-enkripsi dan penerima pen-dekripsi dimana keduanya memiliki peran sesuai kebutuhan. Yang menjadi masalah utama penelitian ini adalah bagaimana mengirim pesan yang berstatus aman dan terhindar dari campur tangan pihak ketiga sebelum sampai ke tujuan, terlebih lagi jika pesan yang ingin disampaikan tersebut bersifat penting dan rahasia. IMPLEMENTASI KRIPTOGRAFI PADA CITRA MENGGUNAKAN ALGORITMA RSA DAN ELGAMAL MACHINES PROSES USER MATERIAL DAPAT DIGUNAKAN SEMUA ORANG TIDAK MEMBERI PENGAMANAN MUDAH DIPALSUKAN MUDAH DICURI BERSIFAT PUBLIK BERSIFAT TIDAK RAHASIA MERASA KHAWATIR MENGINGINKAN JAMINAN TAKUT DATA DICURI DIGUNAKAN SEMUA ORANG USER FRIENDLY KURANG PENGAMANAN TIDAK DIAMANKAN Gambar 3.1 Diagram Ishikawa untuk analisis permasalahan sistem

3.1.2 Pemodelan perangkat lunak

Perangkat lunak yang dirancang dalam sistem ini menggunakan bahasa pemrograman Visual Basic. Perancangan aplikasi ini dibuat berdasarkan metode algoritma RSA dan ElGamal yang disajikan oleh penulis. Program yang dirancang berdasarkan langkah demi langkah untuk menyelesaikan tehnik kriptografi. Terdapat dua proses dominan yang berlaku dalam sistem ini yaitu enkripsi dan dekripsi. Pada proses enkripsi, data berupa file citra inputan akan disamarkan menggunakan metode kriptografi algoritma RSA dan ElGamal yang menghasilkan citra baru tersamar dan sulit diidentifikasi. Setelah itu akan dilakukan proses dekripsi yaitu mengembalikan data file citra tersebut menjadi citra awal sebelum disamarkan. Universitas Sumatera Utara

3.1.2.1 Use case diagram

Use case diagram adalah diagram pemodelan setiap aspek dan kegiatan di dalam sistem. Sebuah use case diagram dapat menggambarkan semua kegiatan di dalam satu sistem yang berjalan, selain itu use case juga menggambarkan semua actor yang melakukan aktivitas di dalam sistem. Berikut adalah gambar dari rancangan use case diagram. ENKRIPSI DEKRIPSI Generate Key Input Key User 1 sender User 2 receiver System Gambar 3.2 Use Case perancangan sistem Terlihat pada gambar use case diagram di atas bahwa terdapat dua actor atau pengguna yaitu user1 sebagai sender pengirim dan user2 sebagai receiver penerima. User1 memiliki peranan dalam melakukan proses enkripsi dan juga dekripsi yang akan melakukan pengiriman data atau informasi kepada user2. User2 hanya memiliki satu peranan yaitu melakukan proses dekripsi untuk memperoleh informasi asli dari data atau pesan yang diterima. Untuk lebih jelas kegiatan sistem dapat dilihat pada keterangan activity diagram berikut.

A. Activity diagram untuk use case enkripsi

Activity diagram untuk use case enkripsi dapat dilihat pada gambar 3.3 pada halaman berikut. Universitas Sumatera Utara User System menginput citra bitmap meng-generate RSA dan ElGamal key menampilkan citra inputan menampilkan pasangan kunci RSA dan ElGamal Memulai proses Mengambil nilai RGB per pixel Enkripsi nilai RGB algoritma RSA dan ElGamal System memulai proses enkripsi ElGamal System menampilkan hasil Gambar 3.3 Activity diagram enkripsi Berikut ini adalah tabel spesifikasi use case diagram pada proses enkripsi : Tabel 3.1 Spesifikasi Use Case Enkripsi Name Enkripsi Actors User1 Description Use case ini mendeskripsikan proses enkripsi Preconditions User menggunakan aplikasi kriptografi Post Conditions User dapat melihat hasil enkripsi Success Scenario Kegiatan User Respon System 1. User menginput citra bitmap 1. System menampilkan citra inputan 2. User meng-generate RSA key 2. System menampilkan pasangan kunci RSA 3. User meng-generate ElGamal key 3. System menampilkan pasangan kunci ElGamal 4. User meng-klik button proses 4. System memulai proses enkripsi RSA 5. User mengkonfirmasi proses ElGamal 5. System memulai proses enkripsi ElGamal 6. System menampilkan hasil Universitas Sumatera Utara

B. Activity diagram untuk use case dekripsi

Activity diagram untuk use case dekripsi dapat dilihat pada gambar 3.4 berikut. User System menginput citra ter-enkripsi memilih chekbox dekripsi menampilkan citra inputan mengubah tampilan input kunci menginput kunci dekripsi ElGamal dan RSA meng-klik button proses mengambil nilai RGB per pixel memulai proses dekripsi ElGalam dan RSA menampilkan hasil Gambar 3.4 Activity diagram dekripsi Universitas Sumatera Utara Spesifikasi use case dekripsi dapat dilihat pada tabel berikut. Tabel 3.2 Spesifikasi Use Case Dekripsi Name Dekripsi Actors User1 dan User2 Description Use case ini mendeskripsikan proses dekripsi Preconditions User menggunakan aplikasi kriptografi Post Conditions User dapat melihat hasil dekripsi Success Scenario Kegiatan User Respon System 1. User menginput citra ter-enkripsi 1. System menampilkan citra inputan 2. User memilih chekbox dekripsi 2. System mengubah tampilan input kunci 3. User menginput kunci dekripsi ElGamal dan RSA 4. User meng-klik button proses 3. System memulai proses dekripsi ElGamal 5. User mengkonfirmasi proses RSA 4. System memulai proses dekripsi ElGamal 5. System menampilkan hasil

3.1.2.2 Sequence diagram

Berikut adalah perancangan sequence diagram yang digunakan untuk memprediksi bagaimana rancangan sistem akan berjalan sesuai konten button yang ada pada sistem. Perancangan sequence diagram untuk proses enkripsi dan dekripsi kombinasi algoritma RSA dan ElGamal dapat dilihat pada halaman berikut. Universitas Sumatera Utara Enkripsi Citra Input File Citra Bangkitkan Kunci RSA Bangkitkan Kunci Elgamal Baca Nilai Pixel Enkripsi Nilai Citra Tampilkan Citra Hasil Simpan Citra Hasil Input File Citra .bmp File Citra Kunci Public dan Private RSA Kunci Public dan Private Elgamal Baca Nilai Pixel RGB Enkripsi Menggunakan Elgamal RSA dan Elgamal Hasil Gambar 3.5 Sequence Diagram enkripsi citra digital Enkripsi Citra Input File Citra Masukkan Kunci Private RSA Masukkan Kunci Private Elgamal Baca Nilai Pixel Dekripsi Tampilkan Citra Hasil Simpan Citra Hasil Input File Citra .bmp File Citra Private RSA Private Elgamal Baca Nilai Pixel RGB Dekripsi Menggunakan Elgamal RSA dan Elgamal Hasil Gambar 3.6 Sequence Diagram dekripsi citra digital

3.1.3 Analisis proses sistem

Berikut akan diberikan penjelasan singkat mengenai analisis proses sistem yang digunakan. Dalam proses penyandian menggunakan algoritma Rivest Shamir Adleman RSA dan juga algoritma ElGamal, digunakan sepasang kunci yang berbeda, satu kunci enkripsi dan satu kunci dekripsi. Dalam proses pembangkitan pasangan kunci enkripsi dan dekripsi, digunakan bilangan prima. Untuk itu dalam hal ini dibutuhkan algoritma pembangkit bilangan prima. Pembangkit bilangan prima yang digunakan Universitas Sumatera Utara dalam sistem ini yaitu lucas lehmer primality test. Berikut adalah uraian dari masing- masing algoritma secara singkat.

3.1.3.1 Analisis Lucas Lehmer Primality Test

Di dalam kriptografi, bilangan prima memiliki peranan yang sangat penting. Beberapa algoritma kriptografi, seperti RSA, menggantungkan kekuatannya pada sulitnya faktorisasi bilangan besar. Oleh karena itu, penggunaan bilangan prima yang besar menjadi sangat penting. Sebenarnya ada banyak cara untuk mengetahui suatu bilangan itu prima atau bukan, dan salah satu yang bisa digunakan adalah Lucas-Lehmer primality test. Metode ini pertama kali ditemukan oleh dua orang ilmuan yaitu Francois Edouard Lucas Anatole berkebangsaan Perancis dan Derrick Henry Lehmer berkebangsaan Amerika Serikat. Lucas Lehmer Primality Test bekerja dengan memanfaatkan bilangan Mersenne. Rumus bilangan Mersenne yaitu Mp = 2 p – 1…………………… 9. Rumus ini ditemukan oleh Marin Mersenne seorang berkebangsaan Perancis yang hidup antara tahun 1588-1648. Untuk memperoleh bilangan Mersenne Mp adalah prima, maka p juga haruslah sebuah bilangan prima. Akan tetapi Mp belum tentu prima meskipun p adalah prima. Bilangan Mersenne biasanya digunakan untuk mencari bilangan prima yang sangat besar. Mollin, Richard A. 2005 Berikut ini merupakan langkah-langkah untuk mengetahui keprimaan suatu bilangan dengan Lucas-Lehmer primality test. 1. Masukkan bilangan Mersenne Mp = 2 p – 1 dimana p ≥ 3 2. Hitung S j = S 2 j-1 – 2 mod Mp ………..10, dengan S 1 = 4 untuk j = 2,3,…,n-1 3. Jika S p-1 = 0 mod Mp maka dapat disimpulkan bahwa Mp bilangan prima dan jika Mp ≠ 0 maka Mp adalah bilangan komposit. Universitas Sumatera Utara Lucas-Lehmer prime generator memiliki algoritma sebagai berikut: 1. Tentukan nilai awal s := 4; 2. Untuk i from 3 to p do s := s 2 – 2 mod Mp; 3. Jika s = 0, return prime; otherwise return composite[4]. Untuk pseducode Lucas-Lehmer prime generator adalah sebagai berikut: Determine if M p = 2 p − 1 is prime Lucas –Lehmerp var s = 4 var M = 2 p − 1 repeat p − 2 times: s = s × s − 2 mod M if s = 0 return PRIME else return COMPOSITE Berikut ini contoh pengujian bilangan prima dengan mengunakan metode Lucas- Lehmer: p = 5, Mp = 2 5 - 1 → M P = 31 s 1 = 4 2 - 2 mod 31 = 14 mod 31 = 14 s2 = 14 2 - 2 mod 31 = 194 mod 31 = 8 s3 = 8 2 - 2 mod 31 = 62 mod 31 = 0 Jadi, angka p = 5 merupakan bilangan prima dan M P = 1 2  p = 31 merupakan bilangan prima yang memenuhi syarat metode pembangkit bilangan prima Lucas- Lehmer. p = 13, M P = 2 13 -1 = 8191 dari 3 hingga 13, maka lakukan: s n = s 2 – 2 mod Mp s 1 = 4 2 - 2 mod 8191 = 14 mod 8191 = 14 Universitas Sumatera Utara s 2 = 14 2 - 2 mod 8191 = 194 mod 8191 = 194 s 3 = 194 2 - 2 mod 8191 = 37634 mod 8191 = 4870 s 4 = 4870 2 - 2 mod 8191 = 23716898 mod 8191 = 3953 s 5 = 3953 2 - 2 mod 8191 = 15626207 mod 8191 = 5970 s 6 = 5970 2 - 2 mod 8191 = 35640898 mod 8191 = 1857 s 7 = 1857 2 - 2 mod 8191 = 3448447 mod 8191 = 36 s 8 = 36 2 - 2 mod 8191 = 1294 mod 8191 = 1294 s 9 = 1294 2 - 2 mod 8191 = 1674434 mod 8191 = 3470 s 10 = 3470 2 - 2 mod 8191 = 12040898 mod 8191 = 128 s 11 = 128 2 - 2 mod 8191 = 16382 mod 8191 = 0 Jadi, angka p = 13 merupakan bilangan prima dan M P = 1 2  p = 8191 merupakan bilangan prima yang memenuhi syarat metode pembangkit bilangan prima Lucas- Lehmer. p = 17, M P = 2 17 -1 = 131071 dari 3 hingga 17, maka lakukan: s n = s 2 – 2 mod Mp s 1 = 4 2 - 2 mod 131071 = 14 mod 131071 = 14 s 2 = 14 2 - 2 mod 131071 = 194 mod 131071 = 194 s 3 = 194 2 - 2 mod 131071 = 37634 mod 131071 = 37634 s 4 = 37634 2 - 2 mod 131071 = 1416317954 mod 131071 = 95799 s 5 = 95799 2 - 2 mod 131071 = 9177448399 mod 131071 = 119121 s 6 = 119121 2 - 2 mod 131071 = 14189812639 mod 131071 = 66179 Universitas Sumatera Utara s 7 = 66179 2 - 2 mod 131071 = 4379660039 mod 131071 = 53645 s 8 = 53645 2 - 2 mod 131071 = 2877786023 mod 131071 = 122218 s 9 = 122218 2 - 2 mod 131071 = 14937239522 mod 131071 = 126220 s 10 = 126220 2 - 2 mod 131071 = 15931488398 mod 131071 = 70490 s 11 = 70490 2 - 2 mod 131071 = 4968840098 mod 131071 = 69559 s 12 = 69559 2 - 2 mod 131071 = 4838454479 mod 131071 = 99585 s 13 = 99585 2 - 2 mod 131071 = 9917172223 mod 131071 = 78221 s 14 = 78221 2 - 2 mod 131071 = 6118524839 mod 131071 = 130559 s 15 = 130559 2 - 2 mod 131071 = 17045652479 mod 131071 = 0 Jadi, angka p = 17 merupakan bilangan prima dan M P = 1 2  p = 131071 merupakan bilangan prima yang memenuhi syarat syarat metode pembangkit bilangan prima Lucas-Lehmer.

3.1.3.2 Analisis Algoritma RSA

Algoritma RSA merupakan algoritma yang cocok dalam proses Enkripsi dan Dekripsi untuk pencitraan gambar dan paling maju dalam bidang kriptografi yang menerapkan konsep public key. Algoritma ini pertama kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi Shamir, dan Leonard Adleman dari Massachusetts Institute of Technology MIT. Nama RSA sendiri adalah singkatan dari nama belakang mereka bertiga. Algoritma RSA dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat, dan paten tersebut berlaku hingga 21 September 2000. Pada algoritma RSA terdapat 3 proses utama yaitu key generation pembangkitan kunci, enkripsi, dan dekripsi. Proses key generation dilakukan untuk mendapatkan pasangan kunci, yaitu public key dan private key. Setelah didapatkan Universitas Sumatera Utara pasangan kunci tersebut digunakan dalam proses enkripsi dan dekripsi. Kunci public digunakan dalam untuk proses enkripsi, sedangkan kunci private digunakan untuk proses dekripsi. Adapun Langkah-langkah dalam memproses Algoritma RSA, yaitu

1. Proses pembangkit kunci dapat dilakukan dengan cara :

1. Pemilihan dua buah bilangan prima sembarang, p dan q. 2. Penghitungan n = p  q. Sebaiknya p  q, sebab jika p = q maka r = p 2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r. 3. Penghitungan φn = p – 1q – 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 d   1 1 Keterangan : d : kunci dekripsi rahasia e : kunci enkripsi tidak rahasia yang relatif prima terhadap n n : hasil perhitungan dari p-1q-1 k : dengan mencoba nilai 1,2,3,... sehingga nilai d bulat

2. Proses Enkripsi dapat dilakukan dengan :

Plainteks disusun menjadi blok-blok x 1 , x 2 , …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai r – 1. Setiap blok x i dienkripsi menjadi blok y i dengan rumus pada halaman berikut. y i = x i e mod n Universitas Sumatera Utara Keterangan: y i : blok cipherteks x i : blok plainteks e : kunci enkripsi tidak rahasia yang relatif prima terhadap n n : hasil perkalian p dan q

3. Proses Dekripsi dapat dilakukan dengan :

Setiap blok cipherteks y i didekripsi kembali menjadi blok x i dengan rumus x i = y i d mod n Keterangan: y i : blok cipherteks x i : blok plainteks d : kunci dekripsi rahasia n : hasil perkalian p dan q Pembangkit Kunci RSA Misalkan pilih bilangan prima p = 13 dan q = 17. Selanjutnya cari kunci public e dan n dan kunci private d dan n Hitung : n = p q = 17 19 = 323 Фn= p – 1q – 1 = 288. kunci publik e = 89, karena GCD89,323 = 1 maka 89 relatif prima dengan 323. Hitung kunci private : d = 1+ k 288 Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah 233. Ini adalah kunci privat untuk mendekripsi pesan. Universitas Sumatera Utara Enkripsi RSA Misalkan nilai pixelx,y adalah R = 212, G = 242 dan B = 3. Nilai-nilai tersebut selanjutnya kita enkripsi menggunakan algoritma RSA. C R = R e mod n = 212 89 mod 323 = 127 C G = 242 89 mod 323 = 72 C G = 3 89 mod 323 = 184 Dekripsi RSA Misalkan nilai pixelx,y dari proses dekripsi Elgamal adalah R = 127, G = 72 dan B = 184. Nilai-nilai tersebut selanjutnya kita enkripsi menggunakan algoritma RSA. R = C R e mod n = 127 233 mod 323 = 212 G = 72 233 mod 323 = 242 B = 184 233 mod 323 = 3

3.1.3.3 Analisis Algoritma ElGamal

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. 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 = g x mod p kunci publik tidak rahasia 5. m plainteks rahasia 6. a dan b cipherteks tidak rahasia Universitas Sumatera Utara Langkah-langkah yang dilakukan dalam algotritma ElGamal: 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 = g x mod p. 4. Dengan kunci publik y, kunci rahasia x. Nilai g dan p tidak dirahasiakan. Plainteks disusun menjadi blok-blok m 1 , m 2 , …, 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 = g k mod p , dan b = y k m mod p Keterangan: a : cipherteks pertama b : cipherteks kedua p : bilangan prima yang telah ditentukan m : blok-blok plainteks g : bilangan acak lebih kecil dari p y : kunci publik g x mod p k : bilangan acak yang memenuhi 0  k  p – 1 Pembangkit Kunci Elgamal Misalkan pilih bilangan prima p = 521. Selanjutnya hitung nilai g, x dan y. g = 429 bilangan random antara 1 sampai p-1 x = 25 bilangan random antara 1 sampai p- 1; x ≠ g y = g x mod p = 429 25 mod 521 = 278 Enkripsi Elgamal Misalkan nilai pixelx,y dari proses enkripsi RSA adalah R = 127, G = 72 dan B = 184. Nilai-nilai tersebut selanjutnya kita enkripsi menggunakan algoritma RSA. k = 34 bilangan random antara 1 sampai p-2 C1 R = g k mod p = 429 34 mod 521 = 275 Universitas Sumatera Utara C2 R = y k C R mod p = 278 34 127 mod 521 = 457 C1 G = 429 34 mod 521 = 275 C2 G = 278 34 72 mod 521 = 456 C1 B = 429 34 mod 521 = 275 C2 B = 278 34 184 mod 521 = 297 Dekripsi Elgamal Misalkan nilai pixelx,y dari proses enkripsi Elgamal adalah C1 R = C1 G = C1 B = 457, C2 R = 456, C2 G = 297 dan C2 B = 70. Nilai-nilai tersebut selanjutnya kita enkripsi menggunakan algoritma RSA. a R = C1 R p-1-x a G = C1 G p-1-x a B = C1 B p-1-x C R = C2 R a R mod p = 457 275 521-1-25 mod 521 = 127 C G = 456 275 521-1-25 mod 521 = 72 C B = 297 275 521-1-25 mod 521 = 184

3.2 Perancangan Sistem