• Tidak ada hasil yang ditemukan

Implementasi Algoritma Blowfish Pada Aplikasi Enkripsi Dan Dekripsi Citra Berbasis Windows

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Blowfish Pada Aplikasi Enkripsi Dan Dekripsi Citra Berbasis Windows"

Copied!
12
0
0

Teks penuh

(1)

Enkripi Dekripsi BAB II

LANDASAN TEORI

2.1Kriptografi

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data ( Schneier, 1997).

2.1.1 Terminologi

Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut kriptografer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode yang digunakan, dan dikatakan sebagai seni karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendesainnya. (Munir, 2006)

Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan

decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.1.

Dalam kriptografi, proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter menjadi equivalen

dengan kunci).

Gambar 2.1 : Proses Enkripsi dan Dekripsi (Kromodimeoljo,2010) Naskah Asli Naskah Acak

Naskah Asli

(2)

2.1.2 Komponen Kriptografi

Pada dasarnya, kriptografi terdiri dari beberapa komponen (Ariyus, 2007) sebagai berikut : 1. Algoritma, merupakan himpunan aturan matematis yang digunakan dalam enkripsi dan

dekripsi.

2. Enkripsi, adalah transformasi data ke dalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu.

3. Dekripsi, merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

4. Kunci, digunakan pada saat melakukan enkripsi dan dekripsi. Pada kriptografi modern, keamanan enkripsi tergantung pada kunci, dan tidak tergantung kepada algoritmanya apakah dilihat orang lain atau tidak.

5. Pesan asli (Plaintext), disebut juga dengan clear-text, merupakan teks asli yang akan diproses menggunakan algoritma kriptografi tertentu untuk menjadi Ciphertext.

6. Ciphertext, merupakan pesan yang telah melalui proses enkripsi yang merupakan himpunan karakter acak

7. Kriptologi, merupakan studi tentang kriptografi dan kriptanalisis.

8. Kriptanalisis (Cryptanalysist), merupakan aksi memecahkan mekanisme kriptografi dengan cara menganalisisnya untuk menemukan kelemahan dari suatu algoritma kriptografi sehingga akhirnya dapat ditemukan kunci atau teks asli.

9. Kriptosistem, adalah perangkat keras atau implementasi perangkat lunak kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi Ciphertext dan juga sebaliknya.

2.1.3 Tujuan Kriptografi

Terdapat 4 tujuan dasar kriptografi ( Sharma, 2012) sebagai berikut:

Confidentiality (kerahasiaan) yaitu isi pesan yang dikirim tidak diketahui oleh pihak yang tidak berhak.

(3)

Authentication (keotentikan) yaitu berhubungan dengan identifikasi, baik secara kesatuan sistem atau informasi itu sendiri.

Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).

2.2 Jenis-Jenis Algoritma Kriptografi

Terdapat dua jenis kriptografi jika dibagi berdasarkan kunci yang digunakan untuk proses enkripsi dan dekripsi, yaitu algoritma simetris dan algoritma asimetris.

2.2.1 Algoritma Simetris

Jika kunci yang digunakan untuk proses enkripsi dan proses dekripsi sama, maka

algoritma tersebut disebut algoritma simetris (Ayushi, 2010). Keamanan dari pesan yang dikirim tergantung pada kunci tersebut, apabila kunci tersebut diperoleh kepada orang yang tidak berhak, maka dia dapat memperoleh isi pesan tersebut (Sadikin, 2012). Algoritma simetris memiliki dua kategori yaitu stream algorithms dan block algorithms. Stream algorithms beroperasi dalam satu bit tunggal selama satu selang waktu pada

plainteks. Block algorithms beroperasi dalam group bit-bit dalam satu selang waktu pada

plainteks.

Yang termasuk algoritma kunci simetris adalah Blowfish, OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, CAST, Rijndael (AES), GOST, A5, Kasumi dan lain-lainnya.

Gambar 2.2 :Skema Kunci Simetris ( Heriyanto, 1999).

Kelebihan kunci simetris:

a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris.

b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real time

Kelemahan kunci simetris:

(4)

b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem” .

2.2.2 Algoritma Asimetris

Algoritma asimetris adalah sebuah teknik enkripsi yang menggunakan dua kunci yang berbeda, yaitu kunci publik untuk proses enkripsi dan kunci privat untuk proses dekripsi (Ayushi, 2010).

1.Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan) 2.Kunci rahasia (private key), kunci yang dirahasiakan ( hanya boleh satu orang yang

tahu ).

Dengan kunci publik, orang dapat mengenkripsi tetapi tidak dapat mendekripsikanya, hanya orang yang memilikki kunci privat yang dapat mendekripsikannya.Beberapa algoritma yang menggunakan asimetri adalah DSA, RSA, DH, ECC, Kriptografi Quantum, dan lain sebagainya.

Gambar 2.3 : Skema Kunci Asimetris (Heriyanto, 1999).

Kelebihan kunci asimetris:

a. Masalah keamanan pada distribusi kunci dapat lebih baik

b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit, maksudnya untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci (disebut public-key) bagi para koresponden untuk mengenkripsi pesan, dan private-key untuk mendekripsi pesan.

Kelemahan kunci asimetris:

(5)

b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.

2.3. Teori Bilangan

2.3.1. Operator Logika XOR

Operator logika Xor akan menghasilkan niilai True jika ekspresi di sebelah kiri Xor berbeda dengan ekspresi di sebelah kanannya. Jadi, operator logika Xor dapat diartikan “jika beda” akan bernilai True. Tabel hasil ekspresi logika Xor adalah sebagai berikut ini

Tabel 2.1. Tabel Operasi Logika Xor (Alam, 2005).

2.3.2. Faktor Persekutuan Terbesar

Faktor persekutuan Terbesar atau Greatest Common Divisor (GCD) merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan

adan b adalah dua bilangan bulat yang tidak nol. Greatest Common Divisor (GCD) dari a

dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest Common Divisor (GCD) dari a dan b dapat dinotasikan dengan GCD(�, b) (Munir, 2003).

2.3.3. Euclid

Salah satu cara untuk mendapatkan GCD(�, b) adalah membuat daftar semua faktor dari �, membuat daftar semua dari b, dan kemudian mencari faktor yang terbesar yang ada dalam kedua daftar. Akan tetapi, untuk bilangan yang sangat besar, membuat daftar faktor bukanlah sesuatu yang mudah. Ada cara yang jauh lebih efisien untuk mendapatkan GCD(�, b) yaitu dengan menggunakan algoritma Euclid (Eulidean algorithm), yang seperti halnya dengan Chinese Remainder Theorem merupakan algoritma penting yang berusia lebih dari 2000 tahun (Kromodimoeljo, 2010).

(6)

Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(50, 20) = 10.

2.3.4. Algoritma Euclid dan Extended Euclid

Teorema yang digunakan sebagai dasar dari algortima Euclid adalah sebagai berikut:

Jika = qb + r maka GCD(�, b) = GCD(b, r)………….……(1)

Algoritma Euclid menggunakan rumus di atas secara berulang untuk mendapatkan GCD, yaitu dengan memperkecil kedua bilangan yang dijadikan patokan untuk GCD setiap kali mengulang, tanpa merubah nilai GCD itu sendiri.Hasil dari komputasi GCD di dapat saat kedua patokan untuk GCD tidak dapat diperkecil lagi.

Untuk melakukan komputasi d = GCD(�, b), pertama dilakukan preprocessing

Blowfish adalah algoritma kunci simetri, yang berarti menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi file. Blowfish juga merupakan cipher block, yang berarti selama proses enkripsi dan dekripsi, Blowfish akan membagi pesan menjadi blok-blok dengan ukuran yang sama panjang. Panjang blok untuk algoritma Blowfish adalah 64-bit. Pesan yang bukan merupakan kelipatan delapan byte akan ditambahkan bit-bit tambahan (padding) sehingga ukuran untuk tiap blok sama.

Algoritma dalam Blowfish terbagi menjadi dua bagiian, yaitu key expansion dan data encryption.

(7)

jaringan feistel, mengandung fungsi pengulangan sederhana sebanyak enam belas kali. Setiap iterasi, terdiri dari sebuah perutasi yang tidak bergantung pada kunci dan sebuah subsitusi yang tidak bergantung pada data dan kunci. Semua operasi merupakan penambahan dan XOR pada word 32-bit. Operasi penambahan yang dilakukan hanya merupakan empat indeks array data lookup pada setiap iterasi.

2.4.1 Langkah kerja Blowfish

A. Proses Ekspansi Kunci

1. Inisialisasi P-array yang pertama dan juga empat S-box, berututan, dengan string yang telah pasti.String tersebut terdiri dari digit-digit heksadesimal dari phi, tidak termasuk angka tiga di awal.

Contoh : P1= 0x243f6a88 P2= 0x85a308d3 P3= 0x13198a2e P4= 0x03707344

dan seterusnya sampai dengan P18.

2. XOR-kan P1 dengan 32-bit awal kunci, XOR-kan P2 dengan 32-bit berikutnya dari kunci, dan seterusnya untuk semua bit kunci. Jika panjang kunci ternyata kurang dari jumlah Pbox, maka siklus perhitungan akan diulangi hingga semua P ter-XOR-kan. 3. Enkripsikan string yang seluruhnya nol (all-zero string) dengan algoritma Blowfish,

menggunakan subkunci yang telah didekripsikan pada langkah 1 dan 2. 4. Gantikan P1 dan P2 dengan keluaran dari langkah 3

5. Enkripsikan keluaran langkah 3 menggunakan algoritma Blowfish dengan subkunci yang telah dimodifikasi.

6. Gantikan P3 dan P4 dengan keluaran dari langkah 5.

(8)

B. Proses Enkripsi

1. Berdasarkan metode enkripsi Blowfish, untuk langkah awal yaitu file inputan atau file soal akan dirubah menjadi binary. Proses enkripsi dan dekripsi Blowfish dilakukan dengan pemecahan file menjadi per 64 bit. Dan kemudian 64 bit ini diinisialkan “x”. 2. Masukan data “x” 64 bit ini kemudian dipecah menjadi dua bagian yang disebut

dengan XR (X Right) dan XL (X Left) masing-masing 32 bit.

3. Menurut buku “Pengantar Ilmu Kriptografi” karangan Dony Ariyus [9], proses enkripsi maupun dekripsi dilakukan dengan iterasi fungsi sederhana sebanyak 16 kali.

Berikut rumus enkripsi : XL = XL XOR p[i]

XR = F(XL) XOR XR Tukar XL dan XR

Dimana rumus F adalah F(XL) = ((S[1,a] + S2[2,b] mod 232) XOR S[3,c]) + S[4,d] 4. Setelah iterasi ke-16, tukar XL dan XR lagi untuk melakukan pembatalan penukaran

terakhir.

5. Dari semua langkah di atas, langkah terakhir adalah kembali menggabungkan XR dan XL untuk mendapatkan cipherteks.

(9)

Gambar 2.4 : Alur Proses Enkripsi Blowfish

6. Untuk Proses Dekripsi, langkah sama persis dengan proses enkripsi, hanya saja urutan Pbox digunakan dengan urutan terbalik.

2.5. Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari 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 yang dapat langsung disimpan pada suatu media penyimpanan (Sutoyo et al. 2009).

Citra tidak sama dengan teks yang hanya memberikan informasi secara jelas dengan kata-kata yang dipaparkan. Citra memberikan informasi dengan memberikan gambaran visual dan terkadang informasi yang diberikan dapat memacu imajinasi dari orang yang melihat citra tersebut.

Citra merupakan keluaran dari suatu sistem perekaman data yang bersifat optik, analog ataupun digital. Perekaman data citra dapat dibagi menjadi dua yaitu:

(10)

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 sebaginya (Sutoyo et al. 2009).

2. Citra Digital

Citra digital adalah citra yang dapat diolah oleh komputer (Sutoyo et al. 2009).Citra digital terdiri dari sinyal-sinyal yang dapat dibedakan dan mempunyai fungsi yang tidak kontinu yakni berupa titik-titik warna pembentuk citra.Hasil perekaman citra digital dapat disimpan pada suatu media magnetik (Handriyati, 2013).

Citra digital adalah citra yang terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada umumnya disebut piksel (Santi, 2010).

Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar dua dimensi menggunakan komputer.Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data dua dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu (Handriyati, 2013).

Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital (Handriyati, 2013). Gambar 2.5 menunjukkan posisi koordinat citra digital.

Gambar 2.5. Posisi koordinat citra digital

2.5.1 Jenis-jenis Citra Digital

(11)

2.5.1.1Citra Biner

Citra biner merupakan citra yang telah melalui proses pemisahan pixel-pixelberdasarkan derajat keabuan yang dimiliki. Citra biner adalah citra yang hanya direpresentasikan nilai tiap pixel-nya dalam satu bit (satu nilai binary). Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai pixel yaitu hitam dan putih. Salah satu contoh dari gambar biner dapat dilihat pada Gambar 1. Dibutuhkan satu bit dimemori untuk menyimpan kedua warna ini. Setiap pixel pada citra bernilai 0 untuk warna hitam dan 1 untuk warna putih [] (Abdul kadir, 2013).

Gambar 2.6 Citra Biner 2.5.1.2. Citra Grayscale

Citra grayscale menggunakan warna tingkatan keabuan. Warna abu-abu merupakan satu-satunya warna pada ruang RGB dengan komponen merah, hijau, dan biru yang mempunyai nilai intensitas yang sama. Citra grayscale memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan). Salah satu contoh gambar dari citra grayscaledapat dilihat pada Gambar 2.7. Banyaknya warna yang ada tergantung pada jumlah bit yang disediakan di memori untuk menampung kebutuhan warna ini (Darma, 2010).

Gambar 2.7 Citra Grayscale 2.5.1.3. Citra Warna

(12)

Dengan demikian, kemungkinan warna yang bisa disajikan mencapai 255 x 255 x 255 atau 16.581.375 warna.Itu sebabnya format ini dinamakan true color karena memiliki jumlah warna yang cukup besar.Adapun salah satu contoh dari citra RGB seperti pada Gambar 2.8 (Darma, 2010).

Gambar

Gambar 2.1 : Proses Enkripsi dan Dekripsi (Kromodimeoljo,2010)
Gambar 2.2 :Skema Kunci Simetris ( Heriyanto, 1999).
Gambar 2.3 : Skema Kunci Asimetris (Heriyanto, 1999).
Tabel 2.1. Tabel Operasi Logika Xor (Alam, 2005).
+5

Referensi

Dokumen terkait

Ber dasar kan Ber ita Acar a Penetapan Daftar Pendek (Shor t List) Nomor :050/ 06/ PBJ-Kons/ SMP- WAS/ 08/ VII/ 2011 tanggal 25 Juli 2011 dengan ini diumumkan Hasil Evaluasi

PUSAT PENGADAAN SECARA ELEKTRONIK UNIT LAYANAN PENGADAAN DAERAH KELOMPOK KERJA PROVINSI KEPULAUAN RIAU2. KPKNL

middle part of the study area has an east to west groundwater flow pattern, rnaking it irnpossible for contaminated water from the southern region to enter the

Apabila unit menerima langsung Informasi, Aspirasi, dan Pengaduan dari masyarakat, baik melalui surat, telepon, email, SMS, fax, dan media-media lainnya, maka admin unit

Jenis bakteri yang sering menyerang ikan patin adalah Aeromonas sp. dan Pseudomonas sp. Penyakit ini menyerang bagian perut, dada, dan pangkal sirip. Serangan yang

Menyatakan dengan sesungguhnya bahwa penulisan hukum (skripsi) berjudul : ANALISIS KETERANGAN SAKSI VERBALISAN SEBAGAI AKIBAT PENCABUTAN BERITA ACARA PEMERIKSAAN

Preprocessing data telah dilakukan sesuai dengan proses yang ada pada KDD, dengan menghasilkan set data yang baru hasil dari penggabungan dua sumber data yang berbeda yaitu

bahwa untuk melaksanakan butir a tersebut maka perlu dikeluarkan Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Tahun Pelajaran 2017/2018 dalam Keputusan