Kriptografi Algoritma Playfair Cipher

Dimana: fx,y = fungsi besar intensitas citra M = indeks kolom dari matriks N = indeks baris dari matriks Berdasarkan rumus tersebut, secara matematis citra digital dapat dituliskan sebagai fungsi intensitas f x,y, dimana harga x baris dan y kolom merupakan koordinat posisi dan fx,y adalah nilai fungsi pada setiap titik x,y yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel di titik tersebut. Pada proses digitalisasi sampling dan kuantitas diperoleh besar baris M dan kolom N hingga citra membentuk matriks M x N dan jumlah tingkat keabuan piksel [10].

2.2. Kriptografi

Kriptografi Crypthography berasal dari bahasa Yunani yaitu dari dua suku kata Crypto dan Graphia . Crypto artinya menyembunyikan, sedangkan graphia artinya ilmu. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data, yang dilakukan oleh seorang Kriptografer [1]. Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu : 1. Kerahasiaan Confidentiality Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membukamengupas informasi yang telah disandi. 2. Integritas Data Data Integrity Integritas adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya. Universitas Sumatera Utara 3. Otentikasi Autentication Otentikasi adalah berhubungan dengan identifikasipengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. 4. Ketiadaan Penyangkalan Non-repudiation . Ketiadaan penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengirimanterciptanya suatu informasi oleh yang mengirimkanmembuat. [2]

2.3. Algoritma Playfair Cipher

Playfair Cipher merupakan salah satu contoh algoritma klasik yang ditemukan oleh Charles Wheatstone, salah seorang Pioneer Telegraf. Kemudian algoritma ini dipopularkan oleh Lyon Playfair pada tahun 1854. Algoritma Playfair Cipher termasuk ke dalam polygram cipher [6]. Proses enkripsi dengan algoritma Playfair Cipher, dilakukan dengan mengenkripsi pasangan-pasangan huruf bukan huruf-huruf tunggal. Tujuan proses enkripsi yang dilakukan perpasangan huruf ini adalah membuat analisis yang menggunakan perhitungan frekuensi kemunculan huruf menjadi sulit. Perhitungan tersebut menjadi sulit karena frekuensi kemunculan huruf-huruf dari cipherteks yang dihasilkan oleh proses enkripsi menggunakan algoritma ini menjadi datar. Kunci yang digunakan dalam proses enkripsi, disusun di dalam sebuah bujur sangkar yang memiliki ukuran 5x5. Di dalam bujur sangkar ini akan terdapat semua alfabet namun tanpa huruf J. Untuk melakukan proses enkripsi dengan algoritma Playfair Cipher, dilakukan dengan terlebih dahulu mengisi bujur sangkar kunci. Proses pengisian bujur sangkar kunci ini dilakukan pertama-tama dengan kesepakatan pengirim pesan dan penerima pesan akan kata kunci yang akan digunakan. Kata kunci ini akan dituliskan pada bujur sangkar. Setelah itu sisa dari elemen-elemen bujur sangkar kunci yang belum diisi, akan diisi dengan alfabet A-Z tanpa huruf J yang belum ada pada bujur sangkar kunci. Sebagai contoh, misalkan kata kunci yang Universitas Sumatera Utara disetujui oleh pengirim dan penerima pesan adalah CHARLES, maka akan dibentuk bujur sangkar kunci seperti berikut: Gambar 2.2 Contoh Kunci Bujur Sangkar Matriks 5x5 Playfair Cipher Setelah bujur sangkar kunci diisi, proses enkripsi dilanjutkan dengan proses pengaturan pesan yang akan dienkripsi. Proses pengaturan pesan ini adalah sebagai berikut : 1. Huruf J yang terdapat pada pesan diubah dengan huruf I. 2. Kemudian, tulis pesan dalam pasangan-pasangan huruf atau bigram. 3. Bila ada pasangan huruf yang memiliki huruf yang sama, sisipkan huruf Z di tengahnya. 4. Bila jumlah huruf pada pesan ganjil, tambahkan pada akhir pesan huruf Z. Contoh proses pengaturan pesan enkripsi : Gambar 2.3 Proses Pengaturan Enkripsi Playfair Cipher Setelah proses pengaturan pesan dilakukan, akan dilakukan algoritma enkripsi pada pesan yaitu dengan ketentuan-ketentuan sebagai berikut : 1. Dua huruf yang terdapat pada baris yang sama di dalam bujur sangkar kunci, akan dienkripsi menjadi huruf yang berada di kanannya. 2. Dua huruf yang terdapat pada kolom yang sama di dalam bujur sangkar kunci, akan dienkripsi menjadi huruf yang berada di bawahnya. Universitas Sumatera Utara 3. Jika dua huruf tidak berada pada baris maupun kolom yang sama di dalam bujur sangkar kunci, maka huruf pertama akan dienkripsi menjadi huruf yang terletak pada perpotongan antara baris huruf pertama dengan kolom huruf kedua. Sedangkan huruf kedua akan dienkripsi menjadi huruf yang terletak pada titik sudut keempat dari persegi panjang yang dibentuk dari tiga huruf yang telah digunakan. Untuk dekripsi tinggal dilakukan kebalikan dari enkripsi, seperti diuraikan sebagai berikut: 1. Memisahkan pesan menjadi digraph. 2. Satu per satu dicocokkan ke dalam tabel. Gambar 2.4 Proses Pengaturan Enkripsi Playfair Cipher Kebalikan dari enkripsi, huruf pertama digraph dimasukkan ke tabel sebelah kanan dan huruf keduanya diposisikan di sebelah kiri atau memasukkan huruf pertama di persegi atas dan huruf kedua di persegi bawah bagi two-square versi vertikal. 3. Dicari perpotongan dari huruf tersebut. Jika kedua huruf terletak dalam baris yang sama, digeser ke kiri. Jika berada di baris berbeda, huruf pesan asli sejajar dengan pesan hasil enkripsi. 4. Mencari periode jika pesan dibagi ke dalam beberapa periode untuk menemukan plaintext yang memiliki makna. Universitas Sumatera Utara Pada penelitian ini metode sandi playfair akan diimplementasikan untuk menyandikan sebuah citra. Hal ini dimungkinkan mengingat sebuah citra dapat direpresentasikan dalam sebuah matriks yang berisi bilangan-bilangan bulat seperti yang digunakan pada matrik kunci pada metode playfair cipher . Proses enkripsi yang dikembangkan untuk data citra dilakukan dengan menggunakan pasangan bilangan yang mewakili intensitas warna dari citra. Citra yang digunakan dalam pengujian penelitian ini dibatasi pada citra dengan format bmp 24 bit dengan tingkat kontras dan kedetilan yang berbeda untuk membandingkan hasil enkripsi citra. Matriks kunci yang digunakan untuk metode playfair cipher adalah matrik berordo 16 x 16. Langkah-langkah enkripsi adalah sebagai berikut : 1. Bentuk matriks bujur sangkar yang akan menjadi kunci dengan jumlah disesuaikan dengan semesta pembicaraan yang digunakan sebagai dasar. Misalkan pada citra yang mempunyai derajad keabuan 256 maka kunci yang akan digunakan untuk menyandikan citra adalah matriks bujur sangkar dengan ukuran 16 x 16 dengan nilai elemennya adalah bilangan bulat acak antara 0 sampai dengan 255. 2. Ciphering menggunakan setiap pasangan intensitas citra dalam plainteks untuk masing-masing kanal warna. Plainteks dibagi dalam blok-blok dimana setiap blok berisi 2 piksel m1 dan m2 pada masing-masing baris untuk setiap kanal warna. 3. Proses ciphering pada masing-masing kanal warna dilakukan dengan cara : a. jika m1 dan m2 terdapat pada baris yang sama dalam matriks kunci maka c1 diambil dari 1 piksel sebelah kanan m1, c2 diambil dari 1 pixel sebelah kanan m2 pada matriks kunci. b. jika m1 dan m2 terdapat pada kolom yang sama dalam matriks maka c1 dan c2 masing-masing diambil dari 1 piksel dibawah m1 dan m2 pada matriks kunci. c. jika m1 dan m2 berbeda baris dan kolom dalam matriks kunci maka c1 diambil dari pertemuan baris piksel m1 dan kolom m2, dan c2 diambil dari pertemuan baris m2 dan kolom m1 pada matrik kunci. d. Jika m1 = m2 maka cipherteks adalah c1=m1 dan c2=m2. Universitas Sumatera Utara Sebagai contoh proses enkripsi citra dengan playfair cipher adalah sebagai berikut: a. Lakukan proses transformasi warna sehingga nilai RGB tiap piksel terpisah menjadi komponen Red , Green dan Blue untuk citra warna. Tetapi untuk citra grayscale tidak perlu dilakukan proses transformasi warna. b. Kemudian untuk citra warna, masing-masing komponen warna Red, Green, Blue dibagi menjadi blok plainteks yang terdiri dari 2 piksel untuk setiap baris pada setiap komponen warna. Sebagai contoh untuk komponen Red diperoleh matriks citra pada baris 1 s.d 256 dan kolom 1 s.d 256 seperti terlihat pada Gambar 2. Gambar 2.5 Contoh Potongan Matriks Untuk Komponen Warna Merah Hasil Digitalisasi Citra Maka blok plainteks ke-1 diambil dari komponen citra pada baris 1 kolom 1 dan 2 yaitu: Tabel 2.1 Blok Plainteks ke-1 139 175 Blok plainteks ke-2 diambil dari komponen citra pada baris 1 kolom 3 dan 4 yaitu: Tabel 2.2 Blok Plainteks ke-2 167 159 Dan seterusnya sampai dengan baris ke 256. c. Pilih matriks kunci berukuran 16 x 16 dengan elemen nilainya antara 0 sampai dengan 255 dengan posisi acak. Universitas Sumatera Utara Gambar 2.6 Potongan Matriks Untuk Komponen Warna Merah Hasil Digitalisasi Citra d. Gantikan tiap blok plainteks dengan nilai piksel pada matriks kunci dengan menggunakan aturan yang telah dijelaskan di atas. Misal kunci yang digunakan seperti terlihat pada tabel 2.1 dan blok plainteks yang digunakan adalah blok plainteks ke-1 yaitu 139 dan 175. Pada tabel 2.1 terlihat bahwa posisi nilai 139 dan 175 berbeda baris dan kolom seperti terlihat pada Gambar 2.4, sehingga cipherteks menggunakan aturan ke-3. Dari Gambar 2.4, maka didapat: untuk plainteks 139 digantikan dengan nilai 241, dan plainteks 175 digantikan dengan nilai 118. Langkah tersebut dilakukan pada semua blok plainteks untuk semua komponen warna. Untuk langkah dekripsi dilakukan dengan langkah yang sama dengan proses enkripsi. Sedangkan langkah-langkah untuk proses dekripsi caranya adalah sebagai berikut: 1. Sama dengan proses enkripsi yaitu menggunakan matriks kunci yang sama untuk proses enkripsi. 2. Proses ciphering dilakukan dengan cara: Jika c1 dan c2 terdapat pada baris yang sama dalam matriks kunci maka m1 diambil dari 1 piksel sebelah kiri c1, m2 diambil dari 1 pixel sebelah kiri c2 pada matriks kunci. a. Jika c1 dan c2 terdapat pada kolom yang sama dalam matriks maka m1 dan m2 masing-masing diambil dari 1 piksel diatas m1 dan m2 pada matriks kunci. b. Jika c1 dan c2 berbeda baris dan kolom dalam matriks kunci maka m1 diambil dari pertemuan baris c1 dan kolom c2, dan m2 diambil dari pertemuan baris c2 dan kolom c1 pada matriks kunci. c. Jika c1 = c2 maka plainteks adalah adalah m1=c1 dan m2=c2. Universitas Sumatera Utara 45 241 67 139 20 2 9 20 65 24 200 20 5 10 218 65 169 96 199 65 25 10 45 75 96 45 14 100 90 45 47 69 175 5 118 65 25 10 45 75 96 45 14 100 90 45 47 Gambar 2.7 Potongan Matriks Citra Cipherteks Misalkan pasangan kunci c1 dan c2 adalah 139 dan 175 dengan posisi berbeda baris dan kolom, maka plainteks diambil dari nilai piksel pertemuan baris c1 dan kolom c2 dan diperoleh plainteks 241 dan 118. Selanjutnya gantikan nilai 118 dengan 175 dan 139 dengan 241 sebagai plainteks. [9]

2.4. Algoritma ElGamal