• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Implementasi Keamanan Teks Pada Citra Bitmap Dengan Kombinasi Algoritma Knapsack Dan Algoritma Least Significant Bit (LSB) Terhadap Modifikasi Nilai Brightness

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Kriptografi - Implementasi Keamanan Teks Pada Citra Bitmap Dengan Kombinasi Algoritma Knapsack Dan Algoritma Least Significant Bit (LSB) Terhadap Modifikasi Nilai Brightness"

Copied!
14
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi merupakan metode untuk mengirimkan pesan rahasia sehingga hanya penerima pesan yang dimaksud dapat menghapus, menyamarkan atau membaca pesan tersebut. Kriptografi berasal dari bahasa Yunani yaitu kryptos yang berarti tersembunyi dan grapein yang berarti menulis. Pesan asli disebut plaintext dan pesan yang telah disandikan disebut ciphertext. Pesan yang telah dienkapsulasi dan dikirim disebut kriptogram. Proses mengubah plaintext menjadi ciphertext disebut enkripsi. Membalikkan proses ciphertext menjadi plaintext disebut dekripsi. Siapapun yang terlibat dalam kriptografi disebut kriptografer. Pada sisi lain, studi tentang teknik matematika karena berusaha untuk mengalahkan metode kriptografi disebut pembacaan sandi. Cryptanalysts adalah orang-orang berlatih pembacaan sandi [5]. Proses enkripsi dan dekripsi seperti pada gambar 2.1:

Gambar 2.1 Proses Enchiphering dan Deciphering [4]

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:

1. Confidentiality (kerahasiaan) merupakan usaha untuk menjaga kerahasiaan pesan agar tidak dapat di akses oleh orang-orang yang tidak berhak.

Enciphering Plaintext

Ciphertext

Key Key Deciphering

(2)

Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.

2. Data integrity (keutuhan data) yaitu layanan untuk menjaga keutuhan data, dalam artian data tersebut tidak mengalami perubahan selama proses pengiriman atau tidak mengalami modifikasi oleh pihak-pihak yang tidak berhak.

3. Authentication (keontetikan) yaitu layanan yang berhubungan dengan identifikasi apakah pesan tersebut berasal dari sumber yang diharapkan. Dengan kata lain informasi itu datang dari orang yang di hendaki.

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

Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik. Pada kriptografi modern terdapat berbagai macam algoritma yang dimaksudkan untuk mengamankan informasi yang dikirim melalui jaringan komputer. Algoritma kriptografi modern terdiri dari dua bagian:

2.1.1 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 [5]. Proses enkripsi dan dekripsi algoritma simetris dapat dilihat pada gambar 2.2:

Plainteks Cipherteks Plainteks

dekripsi enkripsi

(3)

Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris

2.1.2 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. Proses enkripsi dan dekripsi algoritma asimetris dapat dilihat pada gambar 2.3:

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris.

Salah satu contoh algoritma kriptografi simetris adalah algoritma

knapsack. Algoritma knapsack adalah algoritma kriptografi kunci-publik yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack (knapsack problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja.

2.2 Algoritma Knapsack

Permasalahan Knapsack adalah permasalahan optimisasi kombinatorial. Diberikan kumpulan benda, masing-masing memiliki berat dan nilai, tentukan benda mana saja yang akan diambil sehingga total beratnya sama dengan suatu batas nilai (biasanya kapasitas tas) dan nilai yang sebesar-besarnya. Nama dari problem ini

Cipherteks

enkripsi dekripsi

Plainteks Plainteks

(4)

diperoleh dari masalah yang dihadapi seseorang saat berhadapan dengan tas yang ukurannya terbatas namun harus diisi dengan benda yang paling berharga atau berguna. Algoritma knapsack diciptakan untuk menyelesaikan problem knapsack. Dimana harus mencari solusi terbaik dari banyak kemungkinan yang dihasilkan.

2.2.1 Knapsack Problem

Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2, … wn.Tentukan nilai bi sedemikian sehingga

M = b1w1 + b2w2 + … + bnwn …...………...(8.1)

yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan.

Di dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial [6].

Ada dua macam bentuk atau tipe Knapsack yaitu:

1) Algoritma knapsack sederhana (General Knapsack) 2) Superincreasing knapsack

Algoritma superincreasing knapsack adalah algoritma yang lemah, karena cipherteks dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lanjar. Algoritma

non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma

knapsack yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya. Namun, superincreasing knapsack dapat dimodifikasi menjadi non-superincreasing knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci rahasia (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan

superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle.

(5)

1. Tentukan barisan superincreasing.

2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai faktor persekutuan dengan m.

3. Hasil perkalian akan menjadi kunci publik sedangkan barisan

superincreasing semula menjadi kunci rahasia.

Contoh 1:

Misalkan barisan superincreasing adalah {1,2,5,11,23,47,95), m = 230, dan n = 3. Barisan non-superincreasing (atau normal) knapsack dihitung sbb:

1 . 3 mod 230 = 3 2 . 3 mod 230 = 6 5 . 3 mod 230 = 15 11 . 3 mod 230 = 33 23 . 3 mod 230 = 69 47 . 3 mod 230 = 141 95 . 3 mod 230 = 55

Jadi, kunci publik adalah {3,6,15,33,69,141,55}, sedangkan kunci rahasia adalah {1,2,5,11,23,47,95}.

2.2.2 Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi chiperteks disebut enkripsi (encryption)

atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi

(6)

at-rest mengacu pada enkripsi dokumen yang disimpan didalam storage. Contoh

encryption of data in motion adalah pengiriman nomor PIN dari mesin ATM ke computer server dikantor bank pusat. Contoh encryption of data at-rest enkripsi file basis data didalam hard disk.

a. Enkripsi

Enkripsi dilakukan dengan cara yang sama seperti algoritma knapsack sebelumnya. Mula-mula plainteks dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.

Contoh 2:

Misalkan Plainteks: 1000010101010110010111010101 dan kunci publik yang digunakan seperti pada Contoh 1.

Plainteks dibagi menjadi blok yang panjangnya 7, kemudian setiap bit di dalam blok dikalikan dengan elemenyang berkorepsonden di dalam kunci publik:

Blok plainteks ke-1 : 1000010

Kunci publik : 3,6,15,33,69,141,55 Kriptogram : (1 × 3) + (1 × 141) = 144

Blok plainteks ke-2 : 1010101

Kunci publik : 3,6,15,33,69,141,55

Kriptogram : (1 × 3) + (1 × 15) + (1 × 69) + (1 × 55) = 142

Blok plainteks ke-3 : 1001011

Kunci publik : 3,6,15,33,69,141,55

Kriptogram : (1 × 3) + (1 × 33) + (1 × 141) + (1 × 55) = 232

(7)

Kunci publik : 3,6,15,33,69,141,55

Kriptogram : (1 × 3) + (1 × 15) + (1 × 69) + (1 × 55) = 142

Jadi, cipherteks yang dihasilkan : 144,142,232,142

b. Dekripsi

Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan menghitung n–1 , yaitu balikan n modulo m, sedemikian sehingga nn–1 ≡ 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut (disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat):

nn–1 ≡ 1 (mod m)

Kalikan setiap kriptogram dengan n–1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plainteks dengan menggunakan algoritma pencarian solusi superincreasing knapsack.

Contoh 3:

Kita akan mendekripsikan cipherteks dari Contoh 2. Dengan menggunakan kunci rahasia {1,2,5,11,23,47,95}. Di sini, n = 3 dan m = 230. Nilai n–1 diperoleh sebagai berikut:

3 . n–1 = 1 (mod 230)

n–1 3 n–1 mod 230

1 3

2 6

3 9

. .

. .

77 1

Dengan mencoba n–1= 0, 1, 2, …,77 hingga hasil dari 3n–1 mod 230 = 1, diperoleh

(8)

n–1 = 1 (mod 230)/3 77 = 1 (mod 230)/3

Cipherteks dari Contoh 2. Adalah 144 142 232 142. Plainteks yang berkoresponden diperoleh kembali sebagai berikut:

144 . 77 mod 230 = 48 = 1 + 47 berkoresponden dengan 1000010

142 . 77 mod 230 = 124 = 1 + 5 + 23 + 95 berkoresponden dengan 1010101 232 . 77 mod 230 = 154 = 1 + 11 + 47 + 95 berkoresponden dengan 1001011

142 . 77 mod 230 = 124 = 1 + 5 + 23 + 95 berkoresponden dengan 1010101 Jadi, plainteks yang dihasilkan kembali adalah:

1000010 1010101 1001011 1010101

2.3 Steganografi

Kata steganografi berasal dari bahasa yunani yang terdiri dari steganos

(tersembunyi) graphen (menulis), sehingga bisa diartikan sebagai tulisan yang tersembunyi. Steganografi adalah ilmu yang mempelajari teknik penyembunyian pesan rahasia dalam pesan yang lainnya, sehingga orang tidak akan tahu bahwa terdapat pesan yang rahasia didalam pesan yang mereka baca [3].

Steganografi biasanya sering disamakan dengan kriptografi karena keduanya sama-sama bertujuan untuk melindungi informasi yang berharga dan rahasia. Perbedaan yang mendasar antara keduanya terletak pada proses merahasiakan data dan hasil akhir dari proses tersebut. Kriptografi melakukan proses pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar acak dan berbeda dengan aslinya. Sementara itu, steganografi menyembunyikan data ke dalam data lain dengan cara menumpanginya tanpa mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat sama [1].

(9)

dirahasiakan. Banyak format carrier yang dapat dijadikan media untuk menyembunyikan pesan, diantaranya:

1. Format image (Format gambar): Bitmap (.bmp), Graphics Interchange Format

(.gif), Paintbrush Bitmap Graphic (.pcx), Joint Photographic Expert Group

(.jpeg).

2. Format audio (Format suara): Wideband Angular Vibration Experiment (.wav),

Motion Picture Expert Group Audio Stream Layer III (.mp3), Musical Instrument Digital Interface (.midi).

3. Format lain: teks file, Hyper Text Markup Language (.html), Portable Document Format (.pdf), video.

Pada dasarnya setiap media digital dapat digunakan sebagai media pembawa pada proses Steganografi. Penerapan Steganografi pada media digital menggunakan metode tertentu dan tergantung dari media yang dipilih sebagai carriernya [11].

2.4 Citra digital

Citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut pixel (picture elements). Pixel adalah elemen citra yang memiliki nilai yang menunjukkan intensitas warna.

Berdasarkan cara penyimpanan atau pembentukannya, citra digital dapat dibagi menjadi dua jenis. Jenis pertama adalah citra digital yang dibentuk oleh kumpulan pixel dalam array dua dimensi. Citra jenis ini disebut citra bitmap (bitmap

image)atau citra raster (raster image). Jenis citra yang kedua adalah citra yang dibentuk oleh fungsi-fungsi geometri dan matematika. Jenis citra ini disebut grafik vector (vector graphics). Dalam pembahasan skripsi ini, yang dimaksud citra digital adalah citra bitmap.

(10)

dengan nilai yang berupa bilangan bulat. Banyaknya nilai yang dapat digunakan dalam kuantisasi citra bergantung kepada kedalaman pixel, yaitu banyaknya bit yang digunakan untuk merepresentasikan intensitas warna pixel. Kedalaman pixel sering disebut juga kedalaman warna. Citra digital yang memiliki kedalaman pixel n bit disebut juga citra n-bit [3].

2.4.1 Format Citra Digital

Citra digital dapat disimpan dalam berbagai macam format. Beberapa format citra digital dapat memanfaatkan metode kompresi dalam penyimpanan data citra. Kompresi yang dilakukan dapat bersifat lossy maupun lossless, bergantung kepada jenis format yang digunakan. Kompresi yang bersifat lossy menyebabkan penurunan kualitas citra, meskipun dalam beberapa kasus penurunan kualitas tersebut tidak dapat dikenali oleh mata manusia. Beberapa format citra digital yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lain-lain [3].

2.4.2 Format Citra Bitmap

File format BMP bisa disebut juga bitmap atau format file DIB (untuk perangkat independen bitmap), adalah sebuah file gambar format yang digunakan untuk menyimpan gambar digital bitmap, terutama pada sistem operasi Microsoft Windows dan OS/2. Format ini mendukung mode warna dari Bitmap Mode hingga RGB Mode. File citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap. Pada citra 8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanya di palet RGB. Header adalah merupakan informasi dari struktur dari pada sebuah file citra. Header biasanya memberikan informasi tentang nama file, ukuran, dimensi, resolusi (horizontal atau vertikal), format yang digunakan, teknik kompresi yang digunakan, dan lain-lain [2]. Format citra 8-bit (256 warna) dapat dilihat pada gambar 2.4.

(11)

R G B

1 20 45 24

2 14 13 16

3 12 17 15

256 46 78 25 <data bitmap>

2 2 1 1 1 3 5 …

Gambar 2.4 Format citra 8-bit (256 warna) [2]

Pada citra 24-bit, tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B. format citra 24-bit (16 juta warna) dapat dilihat pada gambar 2.5.

<header> <data bitmap> 2 2 1 1 1 3 5 …

Gambar 2.5. Format citra 24-bit (16 juta warna) [2]

Pada contoh format citra 24-bit di atas, pixel pertama mempunyai R = 2, G = 2, B = 1.

BMP mudah dibuka dan disimpan, tetapi ada beberapa aturan khusus yang harus dicermati, diantaranya:

1. Format file ini menyimpan datanya secara terbalik, yaitu dari bawah ke atas

2. Citra dengan resolusi warna 8-bit, lebar citra harus merupakan kelipatan dari 4, bila tidak maka pada saat penyimpanan akan ditambahkan beberapa byte pada data hingga merupakan kelipatan dari 4.

3. Citra dengan resolusi warna 24-bit, urutan penyimpanan tiga warna dasar adalah

(12)

Struktur file .BMP seperti pada tabel 2.1:

Tabel 2.1 BMP File Header

Offset Size Name Description 0 2 bfType ASCII"BM"

2 4 bfSize Size of file(in Byte)

6 2 bfReserved I Zero

8 2 bfReserved I Zero

10 4 bgOffBits

Byte offset in file where image begins

14 4 biSize Size of this header (40 Bytes) 18 4 biWidth Image width in pixels

22 4 biHeight Image height in pixels

26 2 Biplanes Number of image planes, must be I 28 2 biBitCount Bits per pixel : 1,4,8 or 24

30 4 biCompression Compression type

Keterangan:

1. Offset : byte ke (yang dimulai dari angka 0). 2. Size : ukuran dari panjang byte.

a. byte ke-0 ukuran panjang 2 byte dispesifikasikan dengan nama tipe file yang diindikasikan berupa kode ASCII “BM”.

b. byte ke-2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file size yang berupa ukuran dari file dalam bentuk bytes.

c. byte ke – 6 dan 8 yang ukurannya 2 byte berupa field cadangan di set 0.

d. byte ke – 10 ukurannya 4 byte yang merupakan spesifikasi dari struktur bitmap file header ke bit bitmap, dimana file gambar dimulai pada tahap ini.

(13)

f. byte ke – 18 dengan panjang 4 bytes merupakan lebar gambar dalam satuan pixel.

g. byte ke 22 dengan panjang 4 bytes merupakan tinggi gambar dalam satuan pixel.

h. byte ke-26 dengan panjang 2 bytes merupakan bitmap planes dengan sejumlah planes (umumnya 1).

i. byte ke-28 dengan panjang 2 byte merupakan jumlah bit per pixel : 1, 4, 8, atau 24.

j. byte ke-30 dengan panjang 4 byte yang merupakan tipe kompresi.

2.5 Algoritma LSB

Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak terlalu berpengaruh di dalam segmen citra dengan bit-bit data rahasia. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB). Berikut contoh sebuah susunan bit pada sebuah byte:

11010010

MSB = Most Siginificant Bit LSB = Least Significant Bit

Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menyatakan warna merah, maka perubahan satu bit LSB tidak mengubah warna merah tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil [3].

Misalkan segmen data citra sebelum perubahan:

(14)

10010110 11001001 11111001 10001000 10100011

Segmen data citra setelah pesan ‘1110010111‘ disembunyikan:

00110011 10100011 11100011 10101010 00100110

10010111 11001000 11111001 10001001 10100011

2.5.1 Algoritma LSB terhadap modifikasi nilai Brightness

Di dalam ruangan, seringkali kita perlu mengatur intensitas lampu agar ruangan menjadi lebih terang atau lebih gelap. Dalam dunia pengolahan citra, hal itu disebut pengaturan brightness, dimana dapat dilakukan dengan cara meningkatkan atau menurunkan nilai piksel dari seluruh bagian dalam citra tersebut.

Pengaturan kontras dengan menambahkan konstanta C ke masing-masing lokasi piksel untuk meningkatkan nilainya, yang artinya meningkatkan tingkat kecerahan. Mencampurkan gambar yang telah ditambahkan menghasilkan paduan gambar dari kedua gambar masukan. Teknik tersebut dapat digunakan untuk menghasilkan blending effect [10].

Untuk melakukan hal ini digunakan formula seperti terdapat di bawah ini.

Ko= Ki+ C ……….………..……….……….….(1)

Dimana:

Ko = nilai piksel output

Ki = nilai piksel input

C = konstanta yang bernilai positif

Pada penelitian ini, LSB yang akan digunakan tertuju pada nilai brightness

Gambar

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris.
Gambar 2.5. Format citra 24-bit (16 juta warna) [2]
Tabel 2.1 BMP File Header

Referensi

Dokumen terkait

Salah satunya teknologinya adalah metoda radar penembus tanah ( Ground Penetration Radar / GPR ) adalah suatu metode pendeteksian objek-objek di dalam tanah dengan menggunakan

Program kerja merupakan kegiatan dalam merealisasikan rencana-rencana perusahaan guna mencapai sasaran perencanaan dan tujuan perusahaan.. Rencana Kerja dan Anggaran

Pada bab ini berisi literatur yang terkai dengan penelitian membuat tool holder khusus pada teknologi Ultrasonic Vibration Assisted Turning yang dengan memperhatikan umur

Pengujian kemampuan interpolasi sirkular dilakukan dengan menginputkan program NC- Code untuk membentuk suatu pola yang terdiri dari busur-busur lingkaran.Kemudian, NC-Code

Dari grafik dapat terlihat bahwa berdasarkan Indeks Shannon, terdapat perbedaan yang cukup jelas diantara kedua komunitas tersebut dengan Buyan memiliki indeks keanekaragaman yang

Kelas VII SMPN 1 Udanawu Blitar Dialuvita Dwi Noviandani, Pengaruh Model Pembelajaran Tipe Think Pair Share (TPS) Berbasis Lembar Kerja Siswa (LKS) Pada Materi Logika

[r]

e) Tindak tutur deklaratif dengan fungsi memutuskan, mengizinkan, dan melarang. Aspek-aspek situasi ujar dapat mempengaruhi suatu tuturan digunakan dengan tujuan untuk