Pertemuan_1_Steganografi_

16
Aplikasi Steganografi dengan Metode LSB (Least Significant Bit) dan Enkripsi Pesan Rahasia dengan Pembangkitan Bilangan Acak. Agung Sulistyanto [email protected] www.agung-sulistyanto.info www.slideshare.net/agungsulistyan Latar Belakang dan Tujuan Latar belakang dibuatnya modul ini adalah sebagai panduan untuk melaksanakan pelatihan yang diadakan Laboratorium ICT Terpadu Universitas Budi Luhur. Pelatihan diadakan mengingat tidak sedikit mahasiswa khususnya jurusan Teknik Informatika yang masih kesulitan dalam menentukan judul topik Kuliah Kerja Praktek dan Tugas Akhir. Sehingga pelatihan ini di harapkan dapat mendukung dan menjadi referensi mahasiswa khususnya program studi Teknik Informatika dalam pengambilan topik bahasan Kuliah Kerja Praktek ataupun Tugas Akhir. Lisensi Dokumen: Copyright © 2012-2015 LAB ICT Terpadu Universitas Budi Luhur Seluruh isi dokumen dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan izin terlebih dahulu dari LAB ICT Terpadu Universitas Budi Luhur.

description

test

Transcript of Pertemuan_1_Steganografi_

  • Aplikasi Steganografi dengan Metode LSB (Least Significant Bit) dan Enkripsi Pesan Rahasia dengan Pembangkitan Bilangan Acak.

    Agung Sulistyanto

    [email protected]

    www.agung-sulistyanto.info

    www.slideshare.net/agungsulistyan

    Latar Belakang dan Tujuan Latar belakang dibuatnya modul ini adalah sebagai panduan untuk melaksanakan pelatihan yang diadakan Laboratorium ICT Terpadu Universitas Budi Luhur. Pelatihan diadakan mengingat tidak sedikit mahasiswa khususnya jurusan Teknik Informatika yang masih kesulitan dalam menentukan judul topik Kuliah Kerja Praktek dan Tugas Akhir. Sehingga pelatihan ini di harapkan dapat mendukung dan menjadi referensi mahasiswa khususnya program studi Teknik Informatika dalam pengambilan topik bahasan Kuliah Kerja Praktek ataupun Tugas Akhir.

    Lisensi Dokumen: Copyright 2012-2015 LAB ICT Terpadu Universitas Budi Luhur

    Seluruh isi dokumen dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan izin terlebih dahulu dari LAB ICT Terpadu Universitas Budi Luhur.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 1

    Pengenalan Dasar Citra

    1.1 Pengertian Pengolahan Citra Digital Secara umum pengolahan citra digital adalah pemrosesan gambar berdimensi-dua melalui komputer digital (Jain, 1998), menurut Efford (2000) pengolahan citra adalah istilah umum untuk berbagi teknik yang keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah contoh dari citra yang dapat diolah dengan mudah. Foto dapat dimodifikasi dan diolah menggunakan software tertentu, misalnya pada saat foto hasil bidikan kamera digital terlihat kurang cerah maka dapat dilakukan pencerahan pada gambar tersebut atau mungkin pada saat kita akan mengambil suatu bagian dari foto tersebut maka dapat dilakukan cropping. Tentunya masih banyak lagi yang dapat dilakukan dalam proses pengolahan citra.

    1.2 Representasi Citra Digital Citra digital dibentuk oleh kumpulan titik yang disebut piksel, setiap titik terkecil dalam gambar (piksel) memiliki koordinat posisi. Sistem koordinat ditunjukan pada contoh gambar berikut.

    Sebuah piksel memiliki koordinat berupa (x,y) dalam hal ini, x menyatakan posisi kolom dan y menyatakan posisi baris. Sebagai contoh, citra berukuran 12 x 12 pada gambar memiliki susunan data seperti terlihat pada gambar. Berdasarkan gambar tersebut maka :

    1. f(2,1) bernilai 89. 2. f(4,7) bernilai 6.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 2

    Megapixel (Megapiksel) adalah gabungan jutaan piksel yang terdapat dalam gambar, semakin tinggi jumlahnya maka semakin tinggi juga resolusi gambarnya. Jumlah megapiksel biasanya digunakan untuk menunjukan kerapatan gambar.

    1.3 Kuantitas Citra Citra digital dibentuk melalui pendekatan kuantitas. Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi dalam sejumlah nilai bulat. Gambar menunjukan contoh citra biner dua nilai intensitas berupa 0 (hitam) dan 1 (putih). Selanjutnya gambar tersebut ditumpangkan pada grid 8 x 8 seperti terlihat pada gambar.

    Pada bagian gambar yang jatuh pada kotak, jika mayoritas warna putih maka seluruh isi kotak dibuat putih. Sebaliknya, jika mayoritas berwarna hitam, isi kotak seluruhnya diberi warna hitam. Hasil pengubahan ke citra digital tampak pada gambar.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 3

    Gambar memperlihatkan bilangan yang mewakili warna hitam (0) dan putih (1).

    Untuk gambar yang mengandung unsur warna pada prinsipnya sama saja, namun sebagai pengecualian untuk warna hitam diberikan 3 (tiga) unsur warna dasar, yaitu merah (R = Red), hijau (G = Green) dan biru (B = Blue) atau sering dikenal dengan istilah warna RGB. Seperti halnya pada citra biner (monokrom), dengan variasi intensitas dari 0 255 pada citra berwarna terdapat 16.777.216 variasi warna apabila setiap komponen RGB mengandung 256 aras intensitas. Namun, kepekaan mata manusia untuk membedakan macam warna sangat terbatas tentunya jauh di bawah dari angka 16.777.216 tersebut.

    Berikut contoh penggunaan citra beraras keabuan dan citra berwarna (RGB) dalam beberapa keperluan tertentu.

    Komponen

    Warna Bit per Piksel Jangkauan Penggunaan

    1 1 0-1

    Citra biner : dokumen faksimili

    8 0-255 Umum : foto dan hasil pemindai

    12 0-4095 Kualitas tinggi : foto dan hasil pemindai

    14 0-16383 Kualitas professional : foto dan hasil pemindai

    16 0-65535 Kualitas tertinggi : citra

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 4

    kedokteran dan astronomi

    Komponen

    Warna Bit per Piksel Jangkauan Penggunaan

    3 24 0-255 RGB umum

    36 0-4095 RGB kualitas tinggi

    42 0-16383 RGB kualitas professional

    4 32 0-255 CMYK (cetakan digital)

    1.4 Kualitas Citra Selain intensitas kecerahan, jumlah piksel yang digunakan mempengaruhi kualitas citra. Istilah resolusi citra biasa dinyatakan dengan jumlah piksel pada arah lebar dan tinggi. Contoh pada gambar menunjukan perbedaan resolusi yang digunakan, tentunya semakin tinggi resolusinya akan menampilkan citra yang semakin mirip dengan aslinya dan semakin rendah resolusinya menjadikan citra semakin kabur.

    1.5 Jenis Citra Terdapat 3 (tiga) jenis citra yang umum digunakan dalam pengolahan citra, diantaranya adalah :

    a. Citra Biner (monokrom) Citra biner adalah citra dengan setiap pikselnya hanya dinyatakan dengan sebuah nilai 0 (nol) dan 1 (satu). Nilai 0 (nol) menyatakan warna hitam dan 1 (satu) menyatakan warna putih.

    b. Citra Berskala Keabuan (grayscale) Citra ini menangani gradasi warna hitam dan putih, yang menghasilkan efek warna abu-abu. Warna dinyatakan dengan intensitas, intensitas berkisar antara 0 255 atau 8 (delapan) bit. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih.

    c. Citra Berwarna (RGB) Citra berwarna merupakan jenis citra yang menyajikan warna dalam komponen R (Red), G (Green) dan B (Blue). Setiap komponen warna menggunakan 8 (delapan) bit nilainya berkisar antara 0 255. Dengan demikian, kemungkinan warna yang dapat disajikan mencapai 256 x 256 x 256 atau 16.777.216 warna.

    Warna R G B

    Merah 255 0 0

    Hitam 0 0 0

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 5

    Kuning 0 255 255

    Hijau 0 255 0

    RGB disebut juga ruang warna yang dapat divisualisasikan sebagai sebuah

    kubus seperti pada gambar, dengan tiga sumbunya yang mewakili komponen

    warna merah (Red), hijau (Green), dan biru (Blue).

    1.6 Format pada Citra

    a. Bitmap (BMP) Bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik yang tersimpan di memori komputer yang dikembangkan oleh Microsoft. Kerapatan titik-titik dinamakan resolusi, untuk menampilkan citra bitmap pada monitor atau printer, komputer menerjemahkan bitmap menjadi pixel (pada layar) atau titik tinta (pada printer). Bitmat menggunakan kompresi tipe lossless.

    b. Joint Photographic Experts Group (JPEG) JPG/JPEG merupakan skema kompresi file bitmap. Awalnya, file yang menyimpan hasil foto digital memiliki ukuran yang besar setelah berhasil dikompresi (dimampatkan) sehingga ukurannya kecil. JPEG menggunakan kompresi tipe lossy.

    c. Graphics Interchange Format (GIF) GIF merupakan format grafis yang paling sering digunakan untuk keperluan desain website. GIF memiliki kombinasi warna lebih sedikit dibanding JPEG, namun mampu menyimpan grafis dengan latar belakang transparan ataupun dalam bentuk animasi sederhana. GIF menggunkan kompresi tipe lossless.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 6

    Steganografi

    2.1 Steganografi Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia (hidding message) sehingga keberadaan pesan tidak terdeteksi oleh indra manusia. Kata steganografi berasal dari bahasi Yunani steganos yang berarti tersembunyi atau terselubung dan graphein yang berarti menulis.

    2.2 Properti Steganografi Dalam Steganografi digital menggunakan media digital sebagai wadah penampungnya, misalnya : teks, citra gambar, audio dan video. Dalam penerapannya steganografi terdiri dari beberapa properti penyusun, diantaranya :

    1. Embedded message (hiddenext) : pesan yang disembunyikan. 2. Cover-object (covertext) : pesan yang digunakan untuk menyembunyikan

    embedded message. 3. Stego-object (stegotext) : pesan yang sudah berisi pesan rahasia (Embedded

    message + Stego-object). 4. Stego-key : kunci yang digunakan untuk menyisipkan pesan dan

    mengekstraksi pesan dari stego-object.

    Contoh properti steganografi :

    1. Stegotext :

    Lupakan Asal Rumor Itu, Jaga Agar Matamu Sehat Atau Turunkan Ubanmu.

    2. Hiddentext :

    LARI JAM SATU

    3. Covertext :

    upakan sal umor tu, aga gar atamu ehat tau urunkan banmu.

    Encoding

    (embeddin)

    covertext

    hiddentext

    key

    Decoding

    (extraction)

    stegotext

    key

    hiddentext

    covertext

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 7

    Kriptografi

    Kriptografi secara umum dapat diartikan sebagai ilmu atau seni untuk menjaga

    kerahasiaan data. Kriptografi (cryptography) berasal dari bahasa yunani cryptos

    yang artinya rahasia dan graphein yang berarti menulis. Pesan-pesan yang

    belum di kodekan disebut plainteks dan pesan-pesan yang telah di kodekan disebut

    chipherteks. Dalam kriptografi dikenal dengan 2 (dua) proses, enkripsi mengubah

    pesan asli (plainteks) menjadi data sandi (chipherteks) dan dekripsi adalah proses

    mengembalikan cipherteks menjadi plainteks.

    3.1 Tujuan Kriptografi

    1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi

    pada pesan dari siapapun kecuali yang memiliki otoritas untuk membuka

    informasi yang telah disandi.

    2. Integritas data, 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 pensubtitusian data lain

    kedalam data yang sebenarnya.

    3. Autentikasi, adalah berhubungan dengan identifikasi / pengenalan, baik

    secara kebenaran pihak-pihak yang berkomunikasi maupun mengidentifikasi

    kebenaran sumber pesan.

    4. Non-repudiasi, atau nirpenyangkalan adalah usaha untuk mencegah

    terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi

    oleh yang mengirimkan/membuat.

    Sebagai contoh ada seorang agen rahasia bernama Alif yang akan melaporkan hasil

    kerjanya kepada pimpinannya bernama Tito. Isi pesan yang dikirimkan Alif kepada

    Tito tidak boleh di ketahui oleh orang lain (Kerahasiaan). Tito harus dapat

    memastikan bahwa pengirim pesan adalah Alif (Autentikasi). Pesan yang dikirimkan

    Alif harus sama isinya dengan pesan yang diterima Tito, pihak lain tidak dapat

    mengganti pesan Alif (Integritas Data). Alif juga tidak dapat menyagkal bahwa telah

    mengirimkan pesan kepada Tito (Non-repudiasi).

    3.2 Jenis Kunci Kriptografi

    Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokan

    menjadi 2 (dua), diantaranya :

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 8

    a. Algoritma Simetris

    Algortma ini disebut juga algoritma konvensional yang menggunakan kunci

    yang sama pada proses enkripsi dan dekripsinya.

    b. Algoritma Asimetris

    Sebutan Asimetris (tidak simetris) berarti menjelaskan perbedaan kunci yang

    digunakan dalam proses enkripsi dan dekripsi. Kunci publik (public key)

    digunakan untuk enkripsi dan kunci private (private key) digunakan untuk

    proses dekripsi.

    3.3 Bilangan Acak

    Bilangan acak adalah bilangan yang tidak dapat diprediksi, bilangan acak (random)

    banyak digunakan dalam kriptografi. Bilangan acak yang dihasilkan dengan rumus

    matematika adalah bilangan acak semu (pseudo), karena pembangkitan bilangannya

    dapat diulangi kembali. Pembangkitan bilangan acak semacam ini disebut pseudo

    random number generation (PRNG).

    a. Linear Congruential Generator (LGC)

    Pembangkitan bilangan acak kongruen-lanjar (linear congruential generator)

    adalah merupakan salah satu PRNG tertua dan paling terkenal.

    Xn = (aXn 1 + b) mod m

    Penjelasan :

    Xn = bilangan acak ke-n dari deretnya

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 9

    a = factor pengali

    Xn 1 = bilangan acak sebelumnya

    b = increment

    m = modulus

    3.4 Perbedaan Steganografi dan Kriptografi

    Perbedaan yang mendasar antara steganografi dan kriptografi adalah pada hasil

    keluarannya. Hasil dari kriptografi adalah data yang berbeda dari aslinya sehingga

    data tersebut seolah-olah menjadi berantakan. Sedangkan hasil dari steganografi

    memiliki bentuk persepsi yang sama dengan bentuk data awalnya. Pada teknik

    kriptografi orang lain dapat menyadari bahwa file tersebut adalah sebuah pesan

    yang terenkripsi sehingga dapat menimbulkan kecurigaan, berbeda dengan teknik

    steganografi karena hasil keluaran memiliki bentuk persepsi sama sehingga tidak

    akan menimbulkan kecurigaan.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 10

    Pengenalan Algoritma LSB

    4.1 Pengertian LSB (Least Significant Bit) Bit atau binary digit adalah unit dasar penyimpanan data di dalam komputer, nilai bit suatu data adalah 0 (nol) atau 1 (satu). Semua data di dalam komputer di simpan kedalam satuan bit, termasuk gambar, suara maupun video. Format pewarnaan di dalam citra gambar seperti monochrome, grayscale, RGB, CMYK juga menggunakan satuan bit dalam penyimpanannya. Sebagai contoh pewarnaan monochrome bitmap (menggunakan 1 bit untuk setiap pikselnya), RGB 24 bit (8 bit red, 8 bit green, 8 bit blue), grayscale menggunakan 8 bit untuk menentukan tingkat kehitaman suatu piksel.

    LSB (Least Significant Bit) adalah bagian dari barisan data biner yang mempunyai nilai paling tidak berarti / paling kecil. Bit LSB letaknya di paling kanan pada barisan bit. Sedangkan MSB (Most Significant Bit) adalah kebalikan dari LSB, yaitu bit yang mempunyai nilai sangat berarti / paling besar, letaknya di paling kiri pada barisan bit. Sebagai contoh barisan biner angka 27 :

    256 128 64 32 16 8 4 2 1

    1 1 0 1 1

    Berdasarkan barisan angka biner di atas, angka 1 di paling kanan bernilai 1 yang berarti nilai yang paling kecil (LSB). Sedangkan angka 1 di paling kiri bernilai 16 yang berarti nilai yang paling besar dari barisan bit tersebut (MSB). Pada algoritma LSB bit pesan akan disisipkan pada bit akhir setiap piksel gambar. Pada citra 24 bit, setiap pikselnya terdiri dari 3 byte yang merepresentasikan setiap byte untuk warna RGB. Sebagai contoh dalam gambar berukuran 600 x 500 piksel dapat disisipkan pesan sebanyak 600 x 500 x 3 = 900000 bit pesan, atau dengan kata lain dapat disisipkan 900000 / 8 = 112500 byte pesan yang dapat disisipkan.

    4.2 Contoh Algortima LSB (Least Significant Bit)

    Sebagai contoh gambar di bawah ini menggunakan format grayscale, artinya setiap

    piksel dari gambar ini direpresentasikan dengan nilai 8 bit.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 11

    Di misalkan data berupa text secret akan disisipkan ke dalam gambar tersebut. Jika direpresentasikan ke dalam binary kata secret menjadi :

    Karakter ASCII Hexadecimal Binary

    s 115 73 01110011

    e 101 65 01100101

    c 99 63 01100011

    r 114 72 01110010

    e 99 63 01100011

    t 116 74 01110100

    Sesuai dengan namanya, LSB artinya bit yang tidak signifikan / tidak mempunyai pengaruh yang besar, maka metode ini mengganti nilai bit ke-8 gambar Lena untuk menyisipkan data. Media lena.jpg 00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

    00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

    00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001

    00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

    00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

    00000001 00000001 00000010 00000010 00000010 00000011 00000011 00000011

    Data yang akan disisipkan :

    0 1 1 1 0 0 1 1

    0 1 1 0 0 1 0 1

    0 1 1 0 0 0 1 1

    0 1 1 1 0 0 1 0

    0 1 1 0 0 0 1 1

    0 1 1 1 0 1 0 0

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 12

    Hasil stego : 00000000 00000001 00000001 00000001 00000000 00000000 00000001 00000001

    00000000 00000001 00000001 00000000 00000000 00000001 00000000 00000001

    00000000 00000001 00000001 00000000 00000000 00000000 00000001 00000001

    00000000 00000001 00000011 00000011 00000010 00000010 00000011 00000010

    00000000 00000001 00000011 00000010 00000010 00000010 00000011 00000011

    00000000 00000001 00000011 00000011 00000010 00000011 00000010 00000010

    Setelah dikontruksi kembali berdasarkan representasi binernya, gambar lena akan menjadi gambar yang telah disisipkan pesan rahasia namun tidak akan memiliki perbedaan jauh dengan gambar aslinya, karena yang diubah hanya bit paling akhir dari representasi biner gambar aslinya sehingga perubahannya tidak disadari oleh mata manusia.

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 13

    Sistem Bilangan

    Sistem Bilangan adalah simbol yang digunakan untuk mewakili besaran dari suatu item fisik. Sistem Bilangan menggunakan suatu bilangan dasar tertentu. Dalam ilmu komputer terdapat 4 (empat) jenis Sistem Bilangan, diantaranya : Desimal (basis 10), Biner (basis 2), Oktal (basis 8) dan Hexadesimal (basis 16).

    5.1 Bilangan Desimal (basis 10) Desimal adalah sistem bilangan yang paling umum digunakan dalam kehidupan sehari-hari. Sistem bilangan Desimal menggunakan basis 10 dan menggunakan 10 macam simbol bilangan, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8 dan 9. Sistem bilangan Desimal dapat berupa integer desimal (decimal integer) dan pecahan desimal (decimal fraction). Sebagai contoh desimal 8299 dapat diartikan :

    Absolute value adalah nilai mutlak dari masing-masing digit bilangan. Sedangkan Position value adalah nilai penimbang atau bobot dari masing-masing digit bilangan tergantung pada basis dan urutan posisinya.

    5.2 Bilangan Biner (basis 2) Biner adalah bilangan yang terdiri dari 2 simbol 0 dan 1. Sistem bilangan biner merupakan dasar dari semua sistem bilangan berbasis digital. Bilangan biner dapat dikonversi ke dalam bilangan desimal, bilangan oktal dan bilangan hexadesimal, sebagai contoh bilangan biner dikonversi kedalam bentuk desimal :

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 14

    Position value dalam bilangan biner merupakan perpangkatan dari nilai 2, seperti pada table berikut :

    5.3 Bilangan Oktal (basis 8) Oktal adalah bilangan yang terdiri dari 8 simbol, yaitu 0, 1, 2, 3, 4, 5, 6, dan 7. Contoh oktal 1022 di konversikan kedalam bilangan desimal menjadi seperti berikut :

  • ikatlah ilmu dengan menuliskannya

    Bab 1 Pengenalan Teori 15

    Position value dalam bilangan oktal merupakan perpangkatan dari nilai 8, seperti pada table berikut :

    5.4 Bilangan Hexadesimal (basis 16) Hexa berarti 6 dan desimal berarti 10, Hexadesimal adalah bilangan yang terdiri dari 16 simbol, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15). Contoh hexadesimal F3D4 dikonversi kedalam bilangan desimal menjadi seperti berikut :

    Position value dalam bilangan oktal merupakan perpangkatan dari nilai 16, seperti pada table berikut :