bab ii tinjauan pustaka - sinta.unud.ac.id ii.pdfberarti secret atau rahasia dan graphia berarti...
Post on 10-Aug-2019
222 Views
Preview:
TRANSCRIPT
BAB II
TINJAUAN PUSTAKA
1. bb
2.1 Kriptografi
Kriptografi berasal dari bahasa yunani, yaitu crypto dan graphia. Crypto
berarti secret atau rahasia dan graphia berarti writing (tulisan). Kriptografi adalah
ilmu dan seni untuk menjaga keamanan dan kerahasiaan suatu pesan ketika pesan
dikirim dari suatu tempat ke tempat lain agar tidak mudah disapadap oleh pihak
yang tidak berwenang. Kriptografi juga merupakan cara-cara atau teknik
menyembunyikan sebuah tulisan, praktek penerapan proses penyandian untuk
menyamarkan tulisan/teks.
Algoritma-algoritma kriptogrfi dapat dibedakan menjadi dua macam yaitu
simetrik dan asimetrik. Algoritma simetrik (model enkripsi konvensional)
merupakan algoritma yang menggunakan satu kunci untuk proses enkripsi dan
deskripsi data. Sedangkan algoritma asimetrik (model enkripsi kunci publik)
menggunakan kunci yang berbeda dalam proses enkripsi dan deskripsi pesan.
2.1.1 Kunci Kriptografi
Ada banyak algortima untuk melakukan enkripsi dan deskripsi. Algortima
kunci simetri mengacu pada metode enkripsi yang dalam hal ini pengirim maupun
penerima memiliki kunci yang sama. Algortima kunci simetri modern beroperasi
dalam mode bit dan dapat dikelompokkan menjadi dua kategori :
1. Blok kode (Block Chiper)
Algortima blok kode merupakan algortima yang masukan dan keluaranya
berupa satu blok dan setiap blok terdiri dari banyak bit. Algortima kriptografi
beroperasi pada plainteks atau chiperteks dalam bentuk blok bit, yang dalam
hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah
ditentukan sebelumnya. Misalnya algortima enkripsi memerlukan 8 bit untuk
mendapatkan satu karakter dan blok kode mempunyai 64 bit untuk satu blok ( 1
karakter = 8 bit dalam pengkodean ASCII ). Block chiper mengenkripsi satu
blok bit setiap kali.
a. Pada block chiper, rangkaian bit-bit palinteks dibagi menjadi blok-blok bit
dengan panjang sama, biasanya 64 bit ( tapi ada kalanya lebih). Algortima
enkripsi menghasilkan blok chiperteks yang pada kebanyakan sistem
kriptografi simetri berukuran sama dengan blok palinteks.
b. Dengan block chiper , blok plainteks yang sama akan dienkripsi menjadi
block chiperteks yang sama bila digunakan kunci yang sama pula. Ini
berbeda dengan chiper aliran dimana bit-bit plainteks yang sama akan
dienkripsi menjadi bit-bit chiperteks yang berbeda setiap kali dienkripsi.
2. Aliran Kode (Stream Chiper)
Algortima kriptografi beroperasi pada plainteks atau chiperteks dalam
bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau
dideskripsikan bit per bit. Aliran kode mengenkrispi atu bit setiap kali
transformasi atau byte per byte ( 1 karakter = 1 byte ). Nama lain untuk stream
chiper adalah chiper status sebab enkripsi tiap bit bergantung pada status saat
ini.
2.2 Algoritma AES
Algoritma AES merupakan algoritma chiper yang aman untuk melindungi
data atau informasi yang bersifat rahasia. AES dipublikasikan oleh NIST
(National Institute of Standard and Technology) pada tahun 2001 yang digunakan
untuk menggantikan algoritma DES yang sudah dianggap kuno dan mudah
dibobol. AES diperoleh dari hasil kompetisi yang diadakan NIST pada tahun
1997. Pada Agustus 1999 dipilih lima kandidat untuk seleksi akhir, yaitu Mars
(IBM, Amerika Serikat), RSA (RSA corp., Amerika Serikat), Rijndael (Belgia),
Serpent (Israel, Norwegia, dan Inggris), dan Twofish (Counterpane, Amerika
Serikat). Akhirnya, pada tanggal 2 Oktober 2000 terpilihlah algoritma Rijndael
yang diciptakan oleh Dr. Vincent Rijment dan Dr. Joan Daemen sebagai
pemenang hingga kini yang diketahui sebagai algoritma AES.
Input dan output dari algoritma AES terdiri dari urutan data sebesar 128 bit.
Urutan data dalam satu kelompok 128 bit tersebut disebut juga sebagai blok data
atau plaintext yang nantinya akan dienkripsi menjadi chipertext. Panjang kunci
dari AES terdiri dari panjang kunci 128 bit, 192 bit, dan 256 bit. Perbedaan
panjang kunci ini yang nantinya mempengaruhi jumlah putaran pada algoritma
AES ini. Jumlah putaran yang digunakan algoritma ini ada tiga macam seperti
pada tabel di bawah.
Tabel 1.1 Panjang Kunci Algoritma AES
(Yuniat, Indriyanta, & Rachmat, 2009)
Tipe Panjang
Kunci
Panjang
Blok Input
Jumlah
Putaran
AES-128 128 bit 128 bit 10
AES-192 192 bit 128 bit 12
AES-256 256 bit 128 bit 14
Operasi AES dilakukan terhadap array of byte dua dimensi yang disebut
dengan state. State ini mempunyai ukuran NROWS X NCOLS. Pada awal
enkripsi, data masukan yang berupa in0, in2, in3, in4, in5, in6, in7, in8, in9, in10,
in11, in12, in13, in14, in15 disalin ke dalam array state. State inilah yang nanti
akan dilakukan operasi enkripsi dan dekripsi. Kemudian keluarannya akan
ditampung ke dalam array out. Gambar di bawah ini menyatakan proses
penyalinan input bytes, state array, dan output bytes.
Gambar 1.1 Proses input bytes, state array, output bytes
(Yuniat, Indriyanta, & Rachmat, 2009)
Pada saat permulaan, input bit pertama kali akan disusun menjadi suatu
array byte dimana panjang dari array byte yang digunakan pada AES adalah
sepanjang 8 bit data. Array byte inilah yang nantinya akan dimasukkan atau
disalin ke dalam state dengan urutan dimana r (row/ baris ) dan c (column/kolom):
s[r,c] = in[r+4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb sedangkan dari state akan
disalin ke output dengan urutan :
out[r+4c] = s[r,c] untuk 0 ≤ r <4 dan 0 ≤ c < Nb
2.3 Proses Enkripsi AES
Proses enkripsi algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu
SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses enkripsi,
input yang telah disalin ke dalam state akan mengalami transformasi byte
AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes,
ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr.
Proses ini dalam algoritma AES disebut sebagai round function. Round yang
terakhir agak berbeda dengan round-round sebelumnya dimana pada round
terakhir, state tidak mengalami transformasi MixColumns. Ilustrasi proses enkripsi
AES dapat digambarkan seperti di bawah ini.
Gambar 2.2 Proses Enkripsi Algoritma AES
(Yuniat, Indriyanta, & Rachmat, 2009)
2.3.1 SubBytes
Proses SubBytes adalah mengganti setiap byte state dengan byte pada sebuah
tabel yang dinamakan tabel S-Box. Sebuah tabel S-Box terdiri dari 16x16 baris
dan kolom dengan masing-masing berukuran 1 byte.
Gambar 2.3 S-Box
(Yuniat, Indriyanta, & Rachmat, 2009)
Untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini
xy adalah digit heksadesimal dari nilai S[r, c], maka nilai substitusinya,
dinyatakan dengan S’[r, c], adalah elemen di dalam tabel subtitusi yang
merupakan perpotongan baris x dengan kolom y.
Gambar 2.4 Pemetaan pada setiap byte pada state
(Yuniat, Indriyanta, & Rachmat, 2009)
2.3.2 ShiftRows
ShiftRows adalah proses pergeseran bit, bit paling kiri akan dipindahkan
menjadi bit paling kanan (rotasi bit).
Gambar 2.5 Proses ShiftRows
(Yuniat, Indriyanta, & Rachmat, 2009)
2.3.3 MixColumns
MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom
pada state. lebih jelasnya bisa dilihat pada perkalian matriks dibawah ini :
Hasil dari perkalian matriks diatas dapat dilihat dibawah ini :
2.4 Proses Dekripsi AES
Transformasi chiper dapat dibalikkan dan diimplementasikan dalam arah
yang berlawanan untuk menghasilkan inverse chiper yang mudah dipahami untuk
algoritma AES. Transformasi byte yang digunakan pada invers chiper adalah
InvShiftRows, InvSubBytes, InvMixColumns, dan AddRoundKey. Algoritma
dekripsi dapat dilihat pada skema berikut ini :
Gambar 2.6 Skema Dekripsi Algoritma AES
(Yuniat, Indriyanta, & Rachmat, 2009)
2.4.1 InvShiftRows
InvShiftRows adalah berkebalikan dengan transformasi shiftrows pada proses
enkripsi. Pada transformasi InvShiftRows, dilakukan pergeseran bit ke kanan.
Gambar 2.7 Transformasi InvShiftRows
(Yuniat, Indriyanta, & Rachmat, 2009)
2.4.2 InvSubBytes
InvSubBytes adalah berkebalikan dengan transformasi SubBytes pada proses
enkripsi. Pada InvSubBytes, tiap elemen pada state dipetakan dengan
menggunakan tabel Inverse S-Box.
Gambar 2.8 Inverse S-Box
(Yuniat, Indriyanta, & Rachmat, 2009)
2.4.3 InvMixColumns
Setiap kolom dalam state dikalikan dengan matrik perkalian dalam AES.
Perkalian dalam matrik dapat dilihat dibawah ini :
Hasil dari perkalian dalam matrik adalah
2.5 AddRound Key
Pada proses enkripsi dan dekripsi AES proses AddRoundKey sama, sebuah
round key ditambahkan pada state dengan operasi XOR. Setiap round key terdiri
dari Nb word dimana tiap word tersebut akan dijumlahkan dengan word atau
kolom yang bersesuaian dari state sehingga:
[s`0,c, s`1,c, s`2,c.s`3,c] [s0,c, s1,c, s2,c.s3,c] XOR[wround*Nb+c ] untuk 0 < c < Nb
[ wi ] adalah word dari key yang bersesuaian dimana i = round*Nb+c.
Transformasi AddRoundKey pada proses enkripsi pertama kali pada round = 0
untuk round selanjutnya round = round + 1, pada proses dekripsi pertama kali
pada round = 14 untuk round selanjutnya round = round - 1. (Yuniat, Indriyanta,
& Rachmat, 2009)
2.6 Key Schedule
Proses Key Schedule diperlukan untuk mendapatkan subkey-subkey dari kunci
utama agar dapat melakukan enkripsi dan dekripsi. Proses ini terdiri dari beberapa
operasi yaitu:
Operasi Rotate, yaitu operasi perputaran 8 bit pada 32 bit dari kunci.
Operasi SubBytes, pada operasi ini 8 bit dari subkey disubstitusikan
dengan nilai dari S-Box.
Operasi Rcon, operasi ini dapat diterjemahkan sebagai operasi pangkat
2 nilai tertentu dari user. Operasi ini menggunakan nilai-nilai dalam
Galois field. Nilai-nilai dari Rcon kemudian akan di-XOR dengan hasil
operasi SubBytes. Operasi XOR dengan w[i-Nk] yaitu word yang
berada pada Nk sebelumnya.
Tabel 2.2 Rcon
2.7 Steganografi
Steganografi (steganography) berasal dari bahasa Yunani yaitu steganos yang
berarti tersembunyi atau terselubung, dan graphein yang artinya menulis.
Steganografi dapat diartikan tulisan tersembunyi (covered writing). Steganografi
adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain
sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi
membutuhkan dua properti, yaitu media penampung dan pesan rahasia. Media
penampung yang umum digunakan adalah gambar, suara, video, atau teks. Pesan
yang disembunyikan dapat berupa sebuah artikel, gambar, kode program, atau
pesan lain. Proses penyisipan pesan ke dalam media covertext dinamakan
encoding, sedangkan ekstraksi pesan dari stegotext dinamakan decoding. Kedua
proses ini mungkin memerlukan kunci rahasia (yang dinamakan stegokey) agar
hanya pihak yang berhak saja yang dapat melakukan penyisipan pesan dan
ekstraksi. (Rakhmat & Fairuzabadi, 2010)
2.8 Metode LSB (Least Significant Bit)
Metode LSB merupakan metode steganografi yang paling sederhana dan
mudah diimplementasikan. Metode ini menggunakan citra digital sebagai
covertext. Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang
paling depan (most significant bit atau MSB) dan bit yang terakhir (least
significant bit atau LSB). Sebagai contoh byte 11010010, angka bit 1 (pertama,
digaris-bawahi) adalah bit MSB, dan angka bit 0 (terakhir, digaris-bawahi) adalah
bit LSB. 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. Mata manusia
tidak dapat membedakan perubahan kecil tersebut. Misalkan segmen pixel-pixel
citra/gambar sebelum penambahan bit-bit adalah:
00110011 10100010 11100010 10101011 00100110
10010110 11001001 11111001 10001000 10100011
Pesan rahasia (yang telah dikonversi ke sistem biner) misalkan
'1110010111', maka setiap bit dari pesan tersebut menggantikan posisi LSB dari
segmen pixel-pixel citra menjadi (digarisbawahi):
00110011 10100011 11100011 10101010 00100110
10010111 11001000 11111001 10001001 10100011
(Rakhmat & Fairuzabadi, 2010)
2.9 Algoritma SHA (Secure Hash Algorithm)
Fungsi hash SHA (Secure Hash Algorithm), antara lain SHA-1, SHA-224,
SHA-256, SHA-384 dan SHA-512 adalah lima fungsi hash kriptografis yang
dibuat oleh National Security Agency (NSA) dan dinyatakan sebagai standar
keamananan pemerintah USA. SHA-1 digunakan dalam proses sekuriti banyak
program, seperti TLS and SSL, PGP, SSH, S/MIME dan IPsec. Fungsi ini
dianggap sebagai pengganti fungsi hash MD5 yang lebih sering digunakan publik.
Tetapi pada kenyataannya kedua fungsi ini tetap digunakan sebagai proses
enkripsi. Sedangkan 4 varian lainnya (SHA-224, SHA-256, SHA-384 dan SHA-
512) biasanya disebut sebagai SHA-2. Hingga saat ini belum ada serangan
terhadap SHA-2, tetapi karena kemiripannya dengan SHA-1, para peneliti
khawatir dan mengembangkan kandidat baru penggantinya. Kelima algoritma
SHA ini memiliki ukuran pesan, blok, kata, dan pesan digit yang berbeda dimana
ukuran-ukuran dari masing-masing algoritma SHA tersebut dapat dilihat pada
gambar dibawah ini.
Gambar 2.9 Ukuran Message Digest Pada Algoritma SHA
(Huda W, 2003)
2.9.1 SHA-1
SHA-1 adalah pengembangan dari SHA-0 dimana SHA-1 memperbaiki
kelemahan yang ada di SHA-0. SHA-1 merupakan fungsi hash yang paling
populer dibandingkan dengan fungsi hash SHA lainnya. SHA-1 memproduksi 160
bit digest berdasarkan prinsip yang sama dengan algoritma MD4 dan MD5 namun
dengan design yang berbeda. SHA-1 mempunyai kapasitas input message 264
-1,
dengan hasil hash 160 bits dan evaluasi kekuatan hash 280
Misal SHA-1
digunakan untuk meng-hash sebuah pesan M, yang mempunyai panjang
maksimum 264
-1 bits. Algoritma ini menggunakan urutan dari 80 kali 32-bit kata,
dengan menggunakan 5 variabel yang menampung 32 bits per variabel, dan hasil
hashnya. (Huda W, 2003).
Langkah – langkah SHA-1:
1. Inisalisasi A, B, C, D, E :
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
E = C3D2E1F0
Dimana A, B, C, D, E adalah lima buah peubah penyangga 32-bit .
2. Melakukan padding terhadap pesan (M) sehingga panjangnya adalah 448
modulus 512. Sehingga menjadi M=448+N.512 . lalu membagi M
menjadi M(1)
, M(2)
, ..., M(N)
.
3. 64 bit sisanya adalah representasi biner dari panjang pesan.
4. Lalu masuk ke komputasi Hash, dengan menggunakan iterasi M(i)
dengan
i=1 sampai N dengan langkah :
a) Gunakan iterasi dari W, dengan simbol Wt :
................... (2.1)
b) Menginisialisasi A,B,C,D,E dengan hasil dari hash sebelumnya.
A = h0, B = h1, C = h2, D = h3, E= h4.
c) Membagi W menjadi 4 bagian :
W(t) Ft(BCD) K(t)
0 ≤ t ≤ 19 F1 = (B AND C) OR ((!B) AND D) 5A827999
20≤ t ≤ 39 F2 = (B XOR C) XOR D ED9EBA1
40 ≤ t ≤ 59 F3 = ((B AND C) OR (B AND D)) OR (C AND D) F1BBCDC
60 ≤ t ≤ 79 F4 = (B XOR C) XOR D CA62C1D6
d) Lalu melakukan proses terhadap A,B,C,D,E sesuai berikut :
e) Lalu menambahkan hasil A, B, C, D, E dengan hash sebelumnya
sesuai urutan, lalu memasukkannya ke hasil hash yang sekarang juga
sesuai urutan. (Huda W, 2009)
Gambar 2.10 Analogi fungsi hash pada SHA-1
(Sumber : Huda W, 2009)
Dalam proses SHA-1 ini, dimana :
putaran, 0 ≤ t ≤ 79
fungsi logika
pergeseran ke kiri
word 32-bit yang diturunkan dari blok 512 bit yang sedang
diproses
konstanta penambah
2.10 PSNR (Peak Signal To Noise Ratio)
Kualitas media penampung setelah ditambahkan pesan rahasia tidak jauh
berbeda dengan kualitas media penampung sebelum ditambahkan pesan. Setelah
penambahan pesan rahasia, kualitas citra penampung tidak jauh berubah, masih
terlihat dengan baik. Untuk mengukur kualitas citra steganografi diperlukan suatu
pengujian secara obyektif. Pengujian secara objektif adalah dilakukan dengan
menghitung nilai PSNR.
Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai
maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada
sinyal tersebut. PSNR diukur dalam satuan desibel. PSNR digunakan untuk
mengetahui perbandingan kualitas gambar penampung sebelum dan sesudah
disisipkan pesan. Untuk menentukan PSNR, terlebih dahulu harus ditentukan
MSE (Mean Square Error). MSE secara matematis dapat dirumuskan sebagai
berikut:
Dimana :
MSE = Nilai Mean Square Error citra steganografi
m = Panjang citra stego (dalam pixel)
I(i,j) = Nilai piksel dari citra cover
n = Lebar citra stego (dalam pixel)
K(i,j) = Nilai piksel pada citra stego
Setelah diperoleh nilai MSE maka nilai PSNR dapat dihitung dari
kuadrat nilai maksimum dibagi dengan MSE. Secara matematis, nilai PSNR
dirumuskan sebagai berikut :
Dimana:
MSE = nilai MSE, MAXi = nilai maksimum dari pixel citra yang digunakan. Semakin
rendah Nilai MSE maka akan semakin baik, dan semakin besar nilai PSNR maka
semakin baik kualitas citra steganografi. (Moenandar, Wirawan, & Setijadi, 2012)
2.11 Android
Android adalah sebuah sistem operasi untuk Smartphone dan Tablet.
Android dikembangkan oleh perusahaan-perusahaan yang tergabung dalam
sebuah konsorsium bernama Open Handset Alliance (OHA). OHA dipimpin oleh
Google dan didirikan bersama 34 perusahaan lainnya, dengan tujuan untuk
mengembangkan teknologi mobile device. Sekarang ini, anggota konsorsium
sudah berjumlah 84 perusahaan yang bergerak di berbagai bidang seperti
pembuat device, semikonduktor, pembuat aplikasi, komersialisasi, dan mobile
operator. (Syaputra, Aritonang, & Maulina, 2014)
Android merupakan sistem operasi yang bersifat open source (sumber
terbuka). Disebut open source karena source code (kode sumber) dari sistem
operasi Android dapat dilihat, diunduh, dan dimodifikasi secara bebas. Paradigma
open source ini memudahkan pengembang teknologi Android, karena semua
pihak yang tertarik dapat memberikan konstribusi, baik pada pengembangan
sistem operasi maupun aplikasi. (Syaputra, Aritonang, & Maulina, 2014)
top related