Upload
vankhue
View
222
Download
1
Embed Size (px)
Citation preview
7
BAB II.
TINJAUAN PUSTAKA
2.1 Penelitian Terdahulu
Berdasarkan penelitian penulis, kriptografi yang sudah
ada adalah aplikasi kriptografi yang menggunakan bahasa java.
Dengan demikian penulis ingin mengembangkan aplikasi
kriptografi ini menggunakan bahasa pemrograman VB.NET.
Konsep kriptografi sendiri telah lama digunakan oleh
manusia walau masih sangat sederhana. Prinsip-prinsip yang
mendasari kriptografi yakni:
Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang
dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain
(kecuali pihak pengirim, pihak penerima / pihak-pihak
memiliki ijin). Umumnya hal ini dilakukan dengan cara
membuat suatu algoritma matematis yang mampu mengubah
data hingga menjadi sulit untuk dibaca dan dipahami.
Data integrity (keutuhan data) yaitu layanan yang mampu
mengenali/mendeteksi adanya manipulasi (penghapusan,
pengubahan atau penambahan) data yang tidak sah (oleh
pihak lain).
Authentication (keotentikan) yaitu layanan yang
berhubungan dengan identifikasi. Baik otentikasi pihak-pihak
8
yang terlibat dalam pengiriman data maupun otentikasi
keaslian data/informasi.
Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat
mencegah suatu pihak untuk menyangkal aksi yang dilakukan
sebelumnya (menyangkal bahwa pesan tersebut berasal
dirinya).
Berbeda dengan kriptografi klasik yang menitikberatkan
kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya
apabila algoritma yang digunakan telah diketahui maka pesan sudah
jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang
mengetahui algoritma tersebut), kriptografi modern lebih
menitikberatkan pada kerahasiaan kunci yang digunakan pada
algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut
dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan
kerahasiaan bagi para pemakainya. Dengan demikian maka penulis
ingin menggabungkan beberapa algoritma guna untuk meningkatkan
keamanan data maupun aplikasi. Dalam teknik kriptografi ada
beberapa istilah- istilah yang digugnakan, seperti berikut :
Plaintext (M) adalah pesan yang hendak dikirimkan (berisi
data asli).
Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang
merupakan hasil enkripsi.
Enkripsi (fungsi E) adalah proses pengubahan plaintext
menjadi ciphertext.
9
Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni
mengubah ciphertext menjadi plaintext, sehingga berupa data
awal/asli.
Kunci adalah suatu bilangan yang dirahasiakan yang
digunakan dalam proses enkripsi dan dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama yakni
proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di
atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan
menggunakan kunci tertentu) sehingga isi informasi pada pesan
tersebut sukar dimengerti.
plaintext ciphertext plaintext
Ganbar 2.1 Diagram proses enkripsi dan dekripsi
Peranan kunci sangatlah penting dalam proses enkripsi
dan dekripsi (di samping pula algoritma yang digunakan)
sehingga kerahasiaannya sangatlah penting, apabila
kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.
enkripsi dekripsi
Kunci enkripsi Kunci dekripsi
10
Secara matematis, proses enkripsi merupakan
pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi)
pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya :
Ee(M) – C
Sedangkan untuk proses dekripsi, merupakan
pengoperasian fungsi D (dekripsi) menggunakan d (kunci
dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext),
notasinya :
Dd(C) = M
Sehingga dari dua hubungan diatas
berlaku :
Dd(Ee(M)) = M
11
2.2 Landasan Teori
2.2.1 Pengertian Kriptografi
Cryptography adalah “crypto” yaitu rahasia dan graphy
adalah tulisan, berarti Kriptografi adalah suatu tulisan yang
bersifat rahasia agar rahasia tersebut tetap aman dan tidak
mudah dibaca. Sedangkan cryptanalysis adalah seni dan ilmu
untuk memecahkan ciphertext tanpa bantuan kunci.
Cryptology adalah ilmu yang mempelajari Kriptografi dan
cryptanalysis.(Munir,2005)[1]
Kriptografi [2] adalah ilmu dan seni untuk menjaga
pesan agar tetap aman. (Cryptograpgy is the art and science
of keeping messages secure). Sedang orang yang melakukan
kriptografi sering dinamakan cryptographers. Suatu proses
yang dilakukan untuk mengamankan sebuah pesan biasa
menjadi pesan tersmbunyi adalah enkripsi. Algoritma untuk
menjadikan (cryptographic algorithm) pesan tersebut disebut
dengan cipher. Sedang proses yang dilakukan untuk
mengubah pesan tersembunyi menjadi pesan biasa adalah
disebut dekripsi.
12
2.2.2 Kosep Dasar Embidding
Dasar dari embidding pesan rahasia dalam gambar
digital adalah dengan menyatukan pesan tersebut dalam
suatu bit rendah (least significant bit) pada data pixel yang
menyusun suatu file gambar 24 bit BMP. Pesan rahasisa
yang disisipkan dalam gambar di sini dilakukan dengan
teknik 4-Least Significant Bit Encoding yaitu dengan cara
menyisipkannya pada bit rendah atau bit yang paling kanan
(LSB) pada data pixel yang menyusun file tersebut. Pada
berkas bitmap 24 bit, setiap pixel (titik) pada gambar tersebut
terdiri dari susunan tiga warna merah, hijau dan biru (RGB)
yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0
sampai 255 atau dengan format biner 00000000 sampai
11111111.(Irianto,2004) [3]
Dengan demikian, pada setiap pixel berkas bitmap 24
bit kita dapat menyisipkan 3 bit data. Sehingga tidak
menimbulkan kecurigaan pada pihak lawan, steganografi
telah ada sejak sebelum masehi dan kini seiring dengan
kemajuan teknologi jaringan serta perkembangan dari
teknologi digital, steganografi banyak dimanfaatkan untuk
mengirim pesan melalui jaringan Internet tanpa diketahui
orang lain dengan menggunakan media digital berupa file
gambar. Proses embedding pesan rahasia dalam sistem
steganografi pada dasarnya dilakukan dengan
13
mengidentifikasi media covernya yaitu redundant bit yang
mana dapat dimodifikasi tanpa merusak integritas dari
medium itu sendiri.
Proses embedding akan menghasilkan suatu medium
stego dengan penggantian bit-bit redundant dengan data dari
pesan rahasia tersebut. Teknik steganografi dapat digunakan
untuk menyembunyikan data dalam digital dengan sedikit
atau tanpa terasa adanya perubahan yang tampak pada
gambar tersebut dan dapat dieksploitasi untuk mengeksport
pesan rahasia. Berkaitan dengan bahasan tersebut penulis
tertarik untuk membuat aplikasi steganografi, yang bertujuan
untuk dapat menyembunyikan pesan sehingga terjaga
kerahasiaannya.
Dalam penulisan laporan ini sistem yang akan dibuat
yaitu mengintegrasikan antara metode 4 Least Significant Bit
Encoding dengan Visual Cryotography. Yang membedakan
adalah dalam sistem ini akan ditambahkan metode Visual
Cryptography yang merupakan salah satu perluasan dari
secret sharing yang diimplementasikan untuk suatu citra.
Seperti halnya teknik kriptografi yang lain, visual kriptografi
memiliki persyaratan confidentiality, data integrity,
authentication dan non-repudiation. Di mana sebuah data
gambar atau citra dienkripsi dengan suatu cara menjadi
14
sejumlah gambar sehingga data hanya dapat didekripsi
dengan penggabungan sejumlah gambar tersebut dengan
tujuan menambah tingkat keamanan pada suatu pesan.
2.2.3 Metode 4-Least Significant Bit Encoding
Metode 4-Least Significant Bit hampir sama dengan
metode Least Significant Bit, yang membedakan adalah bit
yang diganti pada suatu byte media adalah sebanyak empat
bit. Pembagian bit pada metode 4-LSB seperti terlihat pada
Gambar 1 di bawah ini, empat buah bit sebelah kanan
merupakan empat buah bit yang nantinya akan digantikan
dengan empat buah bit dari pesan [1].
Gambar 2.2 Pembagian Bit pada Metode 4-LSB
Proses penyembunyian gambar dalam gambar
menggunakan metode 4-LSB adalah sebagai berikut :
1. Konversikan secret image menjadi binary bit.
2. Geser secret image sebanyak 4-bit ke kanan.
3. Konversikan cover image menjadi binary bit.
4. Ubah 4-bit terakhir dengan nilai 0.
15
5. Kemudian gunakan operasi OR untuk menggabungkan
antara cover image dengan secret image.
Sedangkan proses untuk merekonstruksi secret image
adalah sebagai berikut:
1. Ambil 4-bit terakhir dari stego image.
2. Geser ke kiri sebayak 4-bit.
Untuk lebih jelas dapat dilihat pada Gambar 2.3 di bawah
ini
Gambar 2.3 Metode 4-LSB secara grafikal
16
Gambar 2.4 Diagram Blok Penyembunyian Gambar
2.2.4 Pembangkit Bilangan Acak Semu
Pseudorandom Number Generator (PNRG) atau
pembangkit bilangan acak semu adalah sebuah algoritma
yang membangkitkan sebuah deret bilangan yang tidak
benar-benar acak. Keluaran dari pembangkit bilangan acak
semu hanya mendekati beberapa dari sifat-sifat yang dimiliki
bilangan acak. Walaupun bilangan yang benar-benar acak
hanya dapat dibangkitkan oleh perangkat keras pembangkit
bilangan acak, bukannya oleh perangkat lunak komputer,
akan tetapi bilangan acak semu banyak digunakan dalam
beberapa bidang seperti untuk simulasi dalam ilmu fisika,
matematik, biologi dan sebagainya, dan juga merupakan hal
yang sangat penting dalam dunia kriptografi. Beberapa
algoritma enkripsi baik yang simetris maupun nirsimetris
17
memerlukan bilangan acak sebagai parameter masukannya
seperti parameter kunci pada algoritma kunci publik dan
pembangkitan initialization vector (IV) pada algoritma
kunci-simetri. Walaupun terlihat sederhana untuk
mendapatkan bilangan acak, tetapi diperlukan analisis
matematika yang teliti untuk membangkitkan bilangan
seacak mungkin.
2.2.5 Algoritma CR4
RC4 merupakan salah satu jenis cipher aliran (stream
cipher), didesain oleh Ron Rivest di Laboratorium RSA
(RSA Data Security Inc.) pada tahun 1987. Cipher RC4
merupakan teknik enkripsi yang dapat dijalankan dengan
panjang kunci yang variabel dan memproses data dalam
ukuran byte. Algoritma RC4 adalah sebagai berikut :
1. Inisialisasi larik S sehingga S0 = 0, S1 = 1, …, S255 =
255. Dalam notasi algoritmik, langkah 1 ditulis sebagai
berikut:
for i ← 0 to 255 do
S[i] ← i
end for
2. Jika panjang kunci U < 256, lakukan padding yaitu
penambahan byte semu sehingga panjang kunci menjadi
18
256 byte. Misalnya U = �”abcde” yang hanya terdiri dari
5 byte (5huruf), maka lakukan padding dengan
penambahan byte (huruf) semu, misalnya U =
“abcdeabcdeabcdea..” sampai panjang U mencapai 256
byte.
3. Lakukan permutasi terhadap nilai-nilai didalam larik S
dengan cara:
j � ← 0
for i ← 0 to 255 do
j ← (j + S[i] + U[i]) mod 256
swap (S[i], S[j])
end for
4. Bangkitkan keystream dan lakukan enkripsi dengan cara:
i ← 0
j ← 0
for idx ← 0 to PanjangPlainteks . 1 do
i ← (i + 1) mod 256
j ← (j + S[i]) mod 256
swap (S[i], S[j])
t ← (S[i] + S[j]) mod 256
K ← S[t]
C ← K XOR P[idx]
end for
19
P adalah array (larik) yang menyimpan karakter-
karakter plainteks.
Keystream K dipilih dengan mengambil nilai S[i] dan
S[j] dan menjumlahkannya dalam modul 256. Hasil
penjumlahan adalah indeks t sedemikian sehingga S[t]
menjadi keystream K yang kemudian digunakan untuk
mengenkripsi plainteks ke-idx. Karena karakter-karakter
kunci di-copy berulang-ulang (untuk mengisi kekurangan
256 byte) maka ada kemungkinan nilai-nilai di dalam larik S
ada yang sama. (Ron Rivest,2005)[4]
2.2.6 Algoritma F5
Algoritma steganografi F5 diperkenalkan oleh peneliti
dari Plitzman dan Westfeld untuk mengembangkan konsep
embedding pesan untuk gambar format JPEG
(Fridrich,dkk,2002)[5]. Algoritma steganografi F5 dapat pul
koefisien DCT dengan data pesan. F5 mengurangi nilai ab
yang disebut matriks encoding. Menurut deskripsi dari
algoritma F5 versi 11, program aplikasi menerima 5 inputan
yaitu:
Faktor kualitas dari stego image
Input file (BMP,JPEG);
20
Output file name;
Password atau stego
Pesan yang akan disembunyikan
Matrix encoding dengan menghitung ukuran blok
pesan k dari panjang pesan dan koefisien non DC yang tidak
nol. Kode Hamming (1, 2ᵏ-1, k) mengkode pesan rahasia k-
bit dari m kata pesan kedalam n-bit kata kode a dengan n=2ᵏ-
1. Dan dapat merecover dari single bit yang error dalam kata
kode.
F5 menggunakan fungsi decoding f(a) = ⊕ni=1 ai. i
dan jarak Hamming d. Dengan matrix encoding, embedding
pesan k-bit kedalam n-bit kata kode akan mengubahnya
maksimum dengan satu bit. Dengan kata lain, kita dapat
menemukan kata kode yang sesuai a’ untuk setiap kata kode
a dan setiap kata pesan m sehingga m= f(a’ ) and d(a, a’ ) ≤
1.
Pertama, koefisien-koefisien DCT dipermutasi dengan
kunci pseudo random number generator (PRNG), lalu diatur
ke dalam kelompok-kelompok n , angka nol dan koefisien
DC dilompati. Pesan tersebut kemudian dipecah menjadi
blok-blok k-bit. Untuk setiap blok pesan m, diperoleh kata
kode n-bit dengan penggabungan LSB koefisien nilai
absolut. Jika blok pesan m dan pengkodean f(a) adalah sama,
maka blok pesan dapat diembed tanpa adanya perubahan,
21
sebaliknya bila digunakan s = m⊕f(a) untuk menentukan
koefisien mana yang perlu dirubah (nilai absolutnya
dikurangi dengan satu). Jika koefisien menjadi nol, akan
terjadi pengurutan, dan dibuang dari kelompok koefisien.
Kelompok tersebut diisi dengan koefisien yang bukan nol
berikutnya dan proses berulang sampai pesan dapat
diembed.(Irianto,2004) [3]
Untuk pesan-pesan yang lebih kecil, matrik encoding
membuat F5 mengurangi jumlah perubahan pada gambar,
untuk contohnya, pada k = 3, tiap perubahan meng-embed
3,43 bit pesan sedangkan total ukuran kode lebih dari dua
kalinya. Karena F5 mengurangi koefisien DCT, jumlah
koefisien yang berdekatan tidak lagi invariant, dan test x²
tidak dapat mendeteksi pesan yang ter-embed secara F5.
(Irianto,2004)[3]
2.2.7 Format File
2.2.7.1 BMP (Bitmap Image)
Format file ini merupakan format grafis yang
fleksibel untuk platform Windows sehingga dapat
dibaca oleh program grafis manapun. Format ini
mampu menyimpan informasi dengan kualitas
tingkat 1 bit sampai 24 bit. Kelemahan format file
ini adalah tidak mampu menyimpan alpha channel
22
serta ada kendala dalam pertukaran platform.
Format file ini dapat dikompres dengan kompresi
RLE. Format file ini mampu menyimpan gambar
dalam mode warna RGB, Grayscale, Indexed
Color, dan Bitmap. Meskipun file BMP relatif
memiliki ukuran yang besar, namun file BMP
dapat dikompresi dengan teknik kompresi lossless
yaitu teknik kompresi yang tidak menghilang
informasi sedikitpun, hanya mewakilkan beberapa
informasi yang sama (Riyanto, 2007)[6].
Bitmap adalah representasi atau gambaran
yang terdiri dari baris dan kolom pada titik image
graphics di komputer. Nilai dari titik disimpan
dalam satu atau lebih data bit. Tampilan dari
bitmap atau raster, menggunakan titik-titik
berwarna yang dikenal dengan sebutan pixel.
Pixel-pixel tersebut ditempatkan pada lokasi-lokasi
tertentu dengan nilai-nilai warna tersendiri, yang
secara keseluruhan akan membentuk sebuah
tampilan gambar. Tampilan bitmap mampu
menunjukkan kehalusan gradasi bayangan dan
warna dari sebuah gambar, karena itu bitmap
merupakan media elektronik yang paling tepat
untuk gambar-gambar dengan perpaduan gradasi
warna yang rumit seperti foto dan lukisan digital.
23
Color table adalah table yang berisi warna-
warna yang ada pada gambar bitmap. Ukurannya
adalah 4 dikalikan dengan ukuran banyaknya
warna. Color table berisi RGB-red green blue.
Strukturnya terdiri dari 1 bytes untuk bagian RGB-
blue yang berisi intensitas warna biru 0...255, 1
bytes untuk bagian RGB-Green yang berisi
intensitas warna hijau 0...255, 1 bytes untuk bagian
RGB-Red yang berisi intensitas warna merah
0...255, 1 bytes untuk bagian RGB-Reserved yang
selalu diset sama dengan 0. Gambar menunjukkan
contoh pembagian 24 bit pada format file BMP.
Tabel warna RGB
RED GREEN BLUE
Binary 11111111 1111111 1111111
Decimal 255 255 255
Tabel 1 Bit dalam BMP
2.2.7.2 PNG (Portable Network Graphics )
Format file ini berfungsi sebagai alternatif
lain dari format file GIF. Format file ini digunakan
untuk menampilkan objek dalam halaman web.
Kelebihan dari format file ini dibandingkan dengan
GIF adalah kemampuannya menyimpan file dalam
24
bit depth hingga 24 bit serta mampu menghasilkan
latar belakang (background) yang transparan
dengan pinggiran yang halus. Format file ini
mampu menyimpan alpha channel. PNG
dirancang untuk algoritma lossless untuk
menyimpan sebuah bitmap image. PNG mampu
mencapai 16 bit (gray scale) atau 48 bit untuk true
color per pixel, dan mencapai 16 bits dari alpha
data. PNG mendukung dua buah metode dari
transparency, satu buah color penutup seperti pada
GIF89a’s dan alpa channel. PNG’s dengan Full
alpha chanell mampu mencapai 64K level dari
transparency untuk masing-masing pixel (216
=65.536). ini memungkinkan PNG dapat membuat
gambar lebih bercahaya dan membuat bayang-
bayang background dari pewarnaan yang berbeda .
2.2.7.3 JPG / JPEG (Joint Photographic Expert Group)
Format file ini mampu mengkompres objek
dengan tingkat kualitas sesuai dengan pilihan yang
disediakan. Format file sering dimanfaatkan untuk
menyimpan gambar yang akan digunakan untuk
keperluan halaman web, multimedia, dan publikasi
elektronik lainnya. Format file ini mampu
menyimpan gambar dengan mode warna RGB,
25
CMYK, dan Grayscale. Format file ini juga
mampu menyimpan alpha channel, namun karena
orientasinya ke publikasi elektronik maka format
ini berukuran relatif lebih kecil dibandingkan
dengan format file lainnya. Joint Photograpic
Experts dirancang untuk kompresi beberapa full-
color atau gray-scale dari suatu gambar yang asli,
seperti pemandangan asli di dunia ini. JPEG sudah
mendukung untuk 24-bit color depth atau sama
dengan 16,7 juta warna (224 bytes= 16.777.216
warna).