Implementasi Algoritma Vernam Cipher dalam Skema Three-Pass Protocol untuk Pengamanan Citra Bitmap Berbasis Android
BAB 2
LANDASAN TEORI
2.1. Kriptografi
2.1.1. Definisi Kriptografi
Kriptografi berasal dari bahasa yunani, menurut bahasa dibagi menjadi dua yaitu
kripto dan graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan).
Menurut teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan
pesan (message) ketika pesan di kirim dari suatu tempat ketempat yang lain.
Kriptografi adalah ilmu atau metode yang memungkinkan informasi yang akan
dikirim dalam bentuk aman sehingga dengan cara ini orang yang dapat memperoleh
informasi ini adalah penerima pesan yang ditujukan (Purnama & Rohayani, 2015).
Menurut Singh (2015), kriptografi adalah transformasi pesan biasa untuk
membuat pesan tersebut aman dan kebal dari penyusup. Kriptografi dilakukan dengan
cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya
sehingga pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari
penyadap (attacker).
Pesan asli dikenal sebagai plaintext sementara pesan berkode disebut
ciphertext. Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan
proses dekripsi. Enkripsi adalah proses encoding pesan atau informasi dalam
sedemikian rupa sehingga penyadap atau hacker tidak bisa membacanya, tapi bisa
dibaca oleh pihak yang berwenang. Enkripsi adalah cara yang paling efektif untuk
mencapai keamanan data. Dekripsi adalah proses mengubah data yang telah dienkripsi
kembali ke bentuk terenkripsinya (Devipriya & Sasikala, 2015). Secara umum, proses
enkripsi dan dekripsi dapat digambarkan sebagai berikut :
Plaintext
Enkripsi
Ciphertext
Dekripsi
Plaintext
Gambar 2.1 Skema proses enkripsi dan dekripsi
Universitas Sumatera Utara
7
Pada Gambar 2.1 ditunjukkan skema proses enkripsi dan dekripsi. Pada proses
enkripsi, dapat dilihat bahwa masukan berupa plaintext akan masuk ke dalam blok
enkripsi dan keluarannya akan berupa ciphertext, kemudian ciphertext akan masuk ke
dalam blok dekripsi dan keluarannya akan kembali menjadi plaintext semula.
2.1.2. Tujuan Kriptografi
Kriptografi tidak hanya bertujuan memberikan kerahasiaan dalam telekomunikasi,
namun juga bertujuan untuk memberikan layanan keamanan sebagai berikut:
1. Confidentiality
: Menjamin bahwa data tersebut hanya bisa diakses oleh pihakpihak tertentu saja.
2. Authentication
: Baik pada saat mengirim atau menerima informasi, kedua
belah pihak perlu mengetahui bahwa pengirim dari pesan
tersebut adalah orang yang sebenarnya seperti yang diklaim.
Dengan kata lain, penerima pesan dapat memastikan keaslian
pengirimnya.
3. Integrity
: Tuntutan ini berhubungan dengan jaminan setiap pesan yang
dikirim pasti sampai pada penerimanya tanpa ada bagian dari
pesan tersebut yang diganti, diduplikasi, dirusak, diubah
urutannya, dan ditambahkan.
4. Nonrepudiation : Mencegah pengirim maupun penerima mengingkari bahwa
mereka
telah
mengirimkan
atau
menerima
suatu
pesan/informasi. Jika sebuah pesan dikirim, penerima dapat
membuktikan bahwa pesan tersebut memang dikirim oleh
pengirim yang tertera.
2.1.3. Elemen Kriptografi
Berikut merupakan elemen-elemen kriptografi, antara lain :
1.
Pesan, Plaintext dan Ciphertext.
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya.
Pesan disebut juga dengan plaintext. Agar pesan tidak bisa dimengerti maknanya
oleh pihak lain, maka pesan tersebut perlu disandikan ke bentuk lain yang tidak
dapat dimengerti maknanya. Bentuk pesan yang tersandi itulah yang disebut
ciphertext.
Universitas Sumatera Utara
8
2.
Pengirim dan Penerima
Pengirim adalah entitas yang akan mengirim pesan kepada entitas lainnya.
Penerima adalah entitas yang menerima pesan tersebut. Entitas di sini dapat
berupa orang, mesin (komputer), kartu kredit dan sebagainya.
3.
Enkripsi dan dekripsi
Proses menyandikan plaintext menjadi ciphertext disebut enkripsi. Sedangkan
proses mengembalikan ciphertext menjadi plaintext disebut dekripsi.
4.
Cipher
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan
deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua
buah himpunan yaitu himpunan yang berisi elemen-elemen plaintext dan
himpunan yang berisi ciphertext. Enkripsi dan dekripsi adalah fungsi yang
memetakan elemen-elemen antara kedua himpunan tersebut.
5.
Sistem kriptografi
Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma kriptografi,
semua plaintext dan ciphertext yang mungkin dan kunci.
6.
Penyadap
Penyadap adalah orang yang berusaha mencoba menangkap pesan selama
ditransmisikan dengan tujuan mendapatkan informasi sebanyak-banyaknya
mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan
maksud untuk memecahkan ciphertext.
7.
Kriptanalisis dan kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan ciphertext
menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelakunya disebut
kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalisis.
2.1.4. Jenis-jenis Algoritma Kriptografi
Secara umum ada dua jenis kriptografi berdasarkan kuncinya, yaitu Algoritma
Simetris dan Algoritma Asimetris.
2.1.4.1. Algoritma Simetris
Algoritma simetris (symmetric algorithm) yang disebut juga sebagai algoritma
konvensional adalah suatu algoritma yang menggunakan kunci enkripsi yang sama
Universitas Sumatera Utara
9
dengan kunci dekripsinya. Disebut algoritma konvensional karena algoritma ini adalah
jenis algoritma yang biasa digunakan orang sejak berabad-abad yang lalu. Algoritma
simetrik sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal,
atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui
suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan
algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain
dapat mengenkrip dan mendekrip pesan (Kurniawan, 2004). Skema algoritma simetris
ini ditunjukkan pada gambar berikut :
Kunci
Plainteks
Cipherteks
Enkripsi
Plainteks
Dekripsi
Sender
Receiver
Gambar 2.2 Skema Algoritma Simetris
Pada Gambar 2.2 ditunjukkan skema algoritma simetris, yang mana dalam
gambar tersebut dilakukan proses enkripsi dan dekripsi dengan menggunakan kunci
yang sama. Sebelum melakukan pengiriman pesan, pengirim dan penerima harus
memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah
rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga
algoritma kunci rahasia (secret-key algorithm).
a. Kelebihan Algoritma Simetris :
1. Kecepatan operasi enkripsi dan dekripsi lebih tinggi bila dibandingkan dengan
algoritma asimetris.
2. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem
real-time.
3. Ukuran kunci simetri relatif lebih pendek.
b. Kekurangan Algoritma Simetris :
1. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci
yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci
tersebut.
Universitas Sumatera Utara
10
2. Kunci harus sering diubah, setiap kali melakasanakan komunikasi demi
keamanan pesan.
2.1.4.2. Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci
enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini
menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private
key).
Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara
rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat
sukar mengetahui kunci privat yang digunakan. Sebarang orang dapat menggunakna
kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya orang tertentu (calon
penerima pesan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci
publik) yang dapat melakukan dekripsi terhadap pesan tersebut. Dalam sistem ini,
kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut
kunci privat. Skema algoritma asimetris ini ditunjukkan pada gambar berikut :
Plainteks
Enkripsi
Cipherteks
Dekripsi
Sender
Plainteks
Receiver
Kunci Publik
Kunci Rahasia
Gambar 2.3 Skema Algoritma Asimetris
Pada Gambar 2.3 ditunjukkan skema algoritma asimetris, yang mana dalam
gambar tersebut dilakukan proses enkripsi dengan menggunakan kunci publik dan
proses dekripsi dengan menggunakan kunci rahasia. Kriptografi asimetri ini dapat
dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukan
surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi
hanya pemilik surat yang memiliki kunci dan yang dapat membuka kotak surat
tersebut. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan
saluran yang digunakan untuk mengirim pesan, tidak perlu takut, karena pihak yang
Universitas Sumatera Utara
11
tidak berkepentingan tidak akan dapat mendekripsi pesan tersebut, karena tidak
memiliki kunci privat.
a. Kelebihan algoritma asimetris :
1. Masalah keamanan pada distribusi kunci dapat lebih baik.
2. Manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.
3. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang
berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana pada
kunci simetri.
4. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka waktu
yang sangat lama.
b. Kekurangan algoritma asimetris :
1. Kecepatan proses enkripsi dan dekripsi lebih rendah bila dibandingkan dengan
algoritma simetris.
2. Ukuran kunci yang digunakan lebih panjang dibandingkan dengan algoritma
simetris.
3. Berapa pun panjangnya kunci publik telah diketahui kriptanalis sehingga untuk
men-derive kunci privat hanya tinggal menunggu waktu saja.
2.2. Algoritma Vernam Cipher
Vernam Cipher merupakan algoritma kriptografi yang ditemukan oleh Mayor J.
Maugborne dan G. Vernam pada tahun 1917. Algoritma Vernam Cipher diadopsi dari
One Time Pad Cipher, dimana dalam hal ini karakter diganti dengan bit (0 atau 1).
Dengan kata lain, Vernam Cipher merupakan versi lain dari One Time Pad Cipher.
Algoritma kriptografi vernam cipher merupakan algoritma kriptografi berjenis
symmetric key. Kunci yang digunakan untuk melakukan enkripsi dan dekripsi
menggunakan kunci yang sama. Untuk pesan biner, enkripsi OTP menggunakan
operasi XOR antara setiap bit dari pesan dengan bit yang sesuai dengan kunci pribadi
(Nagaraj, 2012). Pada metode ini plainteks diubah kedalam kode ASCII dan kemudian
dikenakan operasi XOR terhadap kunci yang sudah diubah ke dalam kode ASCII
(Sholeh & Hamokwarong, 2011).
Pada One Time Pad, tiap huruf kunci digunakan satu kali untuk satu pesan dan
tidak digunakan kembali. Panjang stream karakter kunci sama dengan panjang pesan.
One time pad berisi barisan karakter-karakter kunci yang dibangkitkan secara acak.
Universitas Sumatera Utara
12
Satu pad hanya digunakan sekali saja untuk mengenkripsi pesan, setelah itu pad yang
telah digunakan dihancurkan (makanya disebut satu kali pakai atau one time). Satu
kali enkripsi hanya mungkin dilakukan jika kedua pengirim dan penerima berada
dalam kepemilikan kunci yang sama. Oleh karena itu, kedua belah pihak harus saling
bertukar kunci mereka sebelumnya. Ini berarti bahwa komunikasi yang aman
diharapkan dan direncanakan dalam jangka waktu tertentu (Sharma & Gupta, 2013).
OTP akan aman sempurna bila aliran kunci K tidak dapat ditebak lawan dan
tidak pernah digunakan lebih dari satu kali untuk mengenkrip data (Kurniawan, 2004).
Proses enkripsi dan dekripsi algoritma vernam cipher dapat dilihat pada Gambar 2.4.
Plainteks
XOR
Cipherteks
XOR
Plainteks
Kunci
Gambar 2.4 Proses Enkripsi dan Dekripsi Algoritma Vernam Cipher
Pada Gambar 2.4 ditunjukkan proses enkripsi dan dekripsi algoritma Vernam
Cipher, yang mana plainteks di-XOR-kan dengan kunci menghasilkan cipherteks, lalu
cipherteks tersebut di-XOR-kan kembali dengan kunci yang sama sehingga
menghasilkan plainteks semula.
Secara umum, skenario algoritma Vernam Cipher adalah sebagai berikut :
1. Alice dan Bob bersepakat menggunakan sebuah kunci untuk mengenkripsi dan
mendekripsi pesan yang akan dikirim.
2. Kunci yang dihasilkan kemudian digunakan untuk mengenkripsi pesan dari Alice
kepada Bob.
3. Bob mendekripsi pesan dari Alice dengan menggunakan kunci yang telah mereka
sepakati sehingga pesan asli bisa terbaca.
Shannon membuktikan apabila sandi One Time Pad diterapkan secara benar
maka sandi One Time Pad mencapai kerahasiaan sempurna (perfect secrecy).
Kelemahan utama sandi One Time Pad adalah ketidakpraktisan. Kunci pada sandi One
Time Pad memiliki panjang sama dengan panjang teks asli. Selain itu, kunci harus
dapat diberikan ke pendekripsi secara aman. Jika kunci bocor, maka keamanan sandi
One Time Pad runtuh (Sadikin, 2012).
Universitas Sumatera Utara
13
Berikut ini rumus enkripsi dan dekripsi Vernam Cipher :
� ≡ � � ………………………….… (1)
Dimana :
� ≡ � � ……………………………. (2)
C = Cipherteks
P = Plainteks
K = Kunci
Contoh :
Jika kita ingin mengenkripsi kata “AULYA” dan diketahui kuncinya yaitu “CINTA”.
Maka proses enkripsi dan dekripsi yang dilakukan adalah sebagai berikut :
1. Pertama, ubah kata AULYA menjadi kode ASCII, kemudian kode ASCII tersebut
diubah menjadi bilangan biner, maka diperoleh :
Karakter
ASCII
Notasi Biner
A
65
01000001
U
85
01010101
L
76
01001100
Y
89
01011001
A
65
01000001
Hal yang sama juga harus dilakukan pada kunci yang digunakan.
Karakter
ASCII
Notasi Biner
C
67
01000011
I
73
01001001
N
78
01001110
T
84
01010100
A
65
01000001
2. Setelah itu, enkripsi pesan dengan meng-XOR-kan plainteks dengan kunci, yaitu :
P
: 01000001 01010101 01001100 01011001 01000001
K
: 01000011 01001001 01001110 01010100 01000001
C
: 00000010 00011100 00000010 00001101 00000000
Universitas Sumatera Utara
14
3. Setelah didapat cipherteksnya, maka selanjutnya pesan akan didekripsi dengan
meng-XOR-kan cipherteks dengan kunci, yaitu :
C
: 00000010 00011100 00000010 00001101 00000000
K
: 01000011 01001001 01001110 01010100 01000001
P
: 01000001 01010101 01001100 01011001 01000001
4. Dari hasil dekripsi di atas, maka diperoleh pesan sebenarnya, yaitu :
Plainteks
: 01000001 01010101 01001100 01011001 01000001
ASCII
:
65
85
76
89
65
Karakter
:
A
U
L
Y
A
2.3. Three-Pass Protocol
Three-Pass Protocol merupakan suatu kerangka kerja yang memungkinkan pengirim
bisa mengirim pesan terenkripsi ke penerima tanpa perlu mendistribusikan kunci ke
penerima (Rahim & Ikhwan, 2015). Jadi, pengirim dan penerima mempunyai kunci
masing-masing. Disebut Three-Pass Protocol karena pengirim dan penerima
melakukan tiga tahap pertukaran untuk mengenkripsi pesan tersebut.
Protokol ini dikembangkan oleh Adi Shamir sekitar tahun 1980. Konsep dasar
dari Three-Pass Protocol adalah bahwa masing-masing pihak memiliki kunci enkripsi
pribadi dan kunci dekripsi pribadi. Kedua belah pihak secara independen
menggunakan kunci untuk mengenkripsi pesan, dan kemudian untuk mendekripsi
pesan (Oktaviana & Siahaan, 2016). Skema dari Three-Pass Protocol dapat dilihat
pada Gambar 2.5.
Gambar 2.5 Skema Three-Pass Protocol
Universitas Sumatera Utara
15
Keterangan :
: kunci enkripsi pengirim
: kunci enkripsi penerima
: kunci dekripsi pengirim
: kunci dekripsi penerima
Pada Gambar 2.5 ditunjukkan bahwa Three-Pass Protocol memiliki beberapa
tahapan untuk dapat menyampaikan pesan itu dari pengirim kepada penerima. Berikut
tahapannya :
a. Alice (pengirim pesan) memiliki kunci KA. Alice mengenkripsi pesan dengan
kuncinya sendiri dan mengirimkan pesan terenkripsi (C1) kepada Bob (penerima
pesan).
b. Bob (penerima pesan) memiliki kunci KB. Bob mengenkripsi pesan C1 dengan
kunci pribadi miliknya dan mengirim pesan yang telah dienkripsi lagi (C2) kepada
Alice.
c. Alice yang telah menerima C2 mendekripsi pesan tersebut dengan menggunakan
kunci pribadi yang dimilikinya dan mengirim kembali pesan yang telah didekripsi
(C3) kepada Bob.
d. Bob yang telah menerima C3 juga mendekripsi pesan tersebut dengan kunci pribadi
yang dimilikinya sehingga didapatlah pesan asli (P) yang dikirim oleh Alice.
Sebagai contoh jika ingin mengenkripsi kata “AULYA”. Diketahui kunci
pengirim yaitu KA = “citra”. Maka enkripsi tahap pertama dapat dilihat pada Tabel 2.1
berikut ini :
Tabel 2.1 Perhitungan Enkripsi Tahap Pertama
Plainteks ASCII
Biner
Kunci (KA)
ASCII
Biner
C1 = (P KA)
A
65
01000001
C
99
01100011
00100010
U
85
01010101
I
105
01100110
00110011
L
76
01001100
T
116
01110100
00111000
Y
89
01011001
R
114
01110010
00101011
A
65
01000001
A
97
01100001
00100000
Universitas Sumatera Utara
16
Pada Tabel 2.1 ditunjukkan bahwa pada enkripsi tahap pertama dihasilkan
cipherteks pertama (C1) yang nantinya akan digunakan untuk enkripsi tahap kedua.
Selanjutnya akan dihitung enkripsi tahap kedua. Kunci pihak penerima yaitu diketahui
KB = “ilkom”. Perhitungan enkripsi tahap kedua ditunjukkan pada Tabel 2.2.
Tabel 2.2 Perhitungan Enkripsi Tahap Kedua
Cipherteks (C1)
Kunci (KB)
ASCII
Biner
C2 = (C1 KB)
00100010
i
105
01101001
01001011
00110011
l
108
01101100
01011111
00111000
k
107
01101011
01010011
00101011
o
111
01101111
01000100
00100000
m
109
01101101
01001101
Pada Tabel 2.2 ditunjukkan bahwa pada enkripsi tahap kedua dihasilkan
cipherteks kedua (C2) yang nantinya akan digunakan untuk enkripsi tahap ketiga.
Selanjutnya dihitung enkripsi tahap ketiga. Hasil perhitungan enkripsi tahap ketiga
dapat dilihat pada Tabel 2.3.
Tabel 2.3 Perhitungan Enkripsi Tahap Ketiga
Cipherteks (C2)
Kunci (KA)
ASCII
Biner
C3 = (C2 KA)
01001011
c
99
01100011
00101000
01011111
i
105
01100110
00111001
01010011
t
116
01110100
00100111
01000100
r
114
01110010
00110110
01001101
a
97
01100001
00101100
Pada Tabel 2.3 ditunjukkan bahwa pada enkripsi tahap ketiga dihasilkan
cipherteks ketiga (C3) yang nantinya akan digunakan untuk tahap selanjutnya.
Selanjutnya pesan tersebut dapat didekripsi kembali menjadi pesan asli. Hasil
perhitungan proses dekripsi dapat dilihat pada Tabel 2.4.
Universitas Sumatera Utara
17
Tabel 2.4. Perhitungan Dekripsi Pesan Asli
Cipherteks (C3)
Kunci (KB)
Biner
P = (C3 KB)
Plainteks
00101000
I
01101001
01000001
A
00111001
L
01101100
01010101
U
00100111
K
01101011
01001100
L
00110110
O
01101111
01011001
Y
00101100
M
01101101
01000001
A
Pada Tabel 2.4 ditunjukkan bahwa hasil dekripsi sesuai dengan plainteks
sebelum dienkripsi yaitu “AULYA”. Itu berarti penggunaan algoritma Vernam Cipher
dalam Three-Pass Protocol memenuhi parameter keutuhan data.
2.4. Citra
Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem
perekaman data dapat bersifat analog, berupa sinyal-sinyal video, seperti gambar pada
monitor televisi atau yang bersifat digital yang dapat langsung disimpan pada suatu
pita magnetic. Citra merupakan salah satu bentuk multimedia yang berbentuk
informasi visual. Citra memiliki beberapa jenis format, diantaranya yaitu JPG, PNG,
Bitmap, GIF dan lain-lain. Diantara multimedia lainnya, citra sangat rentan untuk
disalahgunakan seperti diduplikasi, dimodifikasi bahkan dipalsukan. Maka dari itu
keamanan suatu citra sangat dibutuhkan agar tidak ada pihak yang dirugikan.
Citra digital adalah representasi dari sebuah citra dua dimensi sebagai sebuah
kumpulan nilai digital yang disebut elemen gambar atau piksel. Berikut contoh citra
250 Piksel
200 x 284 piksel.
350 Piksel
Gambar 2.6 Citra 350 x 250 piksel
Universitas Sumatera Utara
18
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N
kolom, dengan x dan y adalah koordinat spasial dan amplitudo f di titik koordinat (x,y)
dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Indeks baris
dan kolom (x,y) dari sebuah pixel dinyatakan dalam bilangan bulat (Masya, 2016).
2.4.1. Piksel
Piksel adalah kata yang berasal dari singkatan Picture Elements. Sensor citra secara
fisik (dua dimensi) dibuat dari rangkaian ribuan sel yang peka terhadap cahaya, tiap
sel disebut piksel. Piksel adalah elemen terkecil yang menyusun citra dan
mengandung nilai yang mewakili kecerahan dari sebuah warna pada sebuah titik
tertentu, semakin banyak jumlah piksel semakin tajam pula gambar yang diperoleh.
Setiap piksel memiliki koordinat sesuai posisinya dalam citra. Koordinat ini
biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1
tergantung pada sistem yang digunakan. Setiap piksel juga memiliki nilai berupa
angka digital yang merepresentasikan informasi yang diwakili oleh piksel tersebut.
Masing-masing piksel membawa informasi yang menentukan warna (hue), kekuatan
warna tersebut (saturation) dan seberapa terang warna tersebut ditampilkan
(brightness). Berikut adalah contoh citra dengan resolusi yang berbeda, semakin
rendah tingkat resolusi piksel, semakin bisa kita melihat bagaimana piksel menyusun
foto.
(a) 500 x 375 piksel
(b) 100 x 75 piksel
(c) 60 x 45 piksel
Gambar 2.7 Perbandingan ukuran piksel yang berbeda-beda
Pada Gambar 2.7, ketiga foto tersebut memiliki ukuran piksel yang berbedabeda. Pada gambar 2.7. (a), kita masih belum bisa melihat sebuah piksel, semua
tampak halus dan mulus. Namun dengan mengubah resolusi menjadi lebih kecil,
seperti gambar 2.7 (b), kita mulai bisa melihat bagaimana piksel menyusun foto.
Dalam foto tersebut mulai terlihat kumpulan titik-titik yang berdekatan sehingga
terlihat seperti membentuk sebuah gambar. Begitu juga dengan gambar 2.7 (c), pada
Universitas Sumatera Utara
19
gambar ini susunan piksel lebih terlihat dari gambar sebelumnya, masing-masing
kotak piksel mulai terlihat seperti susunan puzzle. Jadi, dapat disimpulkan bahwa
semakin tinggi ukuran piksel, maka semakin tajam pula kualitas gambar yang
diperoleh.
2.4.2. Jenis-jenis Warna pada Citra
Pada citra, ada beberapa jenis warna yang sering dijumpai saat melakukan proses
pengolahan pada citra. Warna-warna yang umum digunakan antara lain citra biner
(White & Black), citra grayscale, dan citra RGB (Red, Green, Blue).
2.4.2.1. Citra Biner (White & Black)
Citra biner (binary image) adalah citra dengan setiap piksel hanya dinyatakan dengan
sebuah nilai dari dua kemungkinan (yaitu 0 dan 1). Nilai 0 menyatakan warna hitam
dan nilai 1 menyatakan warna putih. Sehingga citra biner hanya memiliki 2
kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga dengan citra
W&B (White & Black) atau citra monokrom.
Pembentukan citra biner memerlukan nilai batas keabuan yang akan digunakan
sebagai nilai patokan. Piksel dengan derajat keabuan lebih besar dari nilai batas akan
diberi nilai 1 dan sebaliknya piksel dengan derajat keabuan lebih kecil dari nilai batas
akan diberi nilai 0. Fungsi dari binerisasi sendiri adalah untuk mempermudah proses
pengenalan pola, karena pola akan lebih mudah terdeteksi pada citra yang
mengandung lebih sedikit warna. Contoh citra biner ditunjukkan pada gambar 2.8.
Gradasi warna :
0
1
bit 0 = warna hitam
bit 1 = warna putih
Gambar 2.8 Contoh citra biner
2.4.2.2. Citra Grayscale
Citra grayscale merupakan citra digital yang menangani gradasi warna hitam dan
putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis gambar ini, warna
Universitas Sumatera Utara
20
dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai
dengan 255. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih.
Citra grayscale berbeda dengan citra “hitam-putih”, dimana pada konteks
komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu hitam dan putih saja.
Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna
diantaranya sangat banyak. Banyaknya warna tergantung pada jumlah bit yang
disediakan di memori untuk menampung kebutuhan warna ini (Sutoyo, 2007).
Citra 2 bit mewakili 4 warna dengan gradasi warna berikut :
0
1
2
3
Citra 3 bit mewakili 8 warna dengan gradasi warna berikut :
0
1
2
3
4
5
6
7
Semakin besar jumlah bit warna yang disediakan di memori, semakin halus
gradiasi warna yang terbentuk (Sutoyo, 2007). Contoh citra grayscale ditunjukkan
pada gambar 2.9.
Gambar 2.9 Contoh citra grayscale
2.4.2.3. Citra Berwarna (RGB)
Citra berwarna atau biasa dinamakan citra RGB (Red, Green, Blue) merupakan citra
digital yang menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B
(biru). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti
setiap warna mempunyai gradasi sebanyak 255 warna. berarti setiap piksel
mempunyai kombinasi warna sebanyak 28. 28. 28 = 224 = 16 juta warna lebih (Sutoyo,
2007).
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi
dari ketiga warna dasar RGB. Setiap titik pada citra warna membutuhkan data sebesar
Universitas Sumatera Utara
21
3 byte. Setiap warna dasar memiliki intensitas tersendiri dengan nilai minimum nol (0)
dan nilai maksimum 255 (8 bit). Gambar warna berbasis RGB adalah representasi
yang baik untuk menunjukkan karakteristik frekuensi, dimana warna yang berbeda
mewakili frekuensi akustik yang berbeda. (Guo et al, 2013). Contoh citra RGB
ditunjukkan pada gambar 2.10.
Gambar 2.10 Contoh citra RGB
2.4.3. Citra Bitmap
Citra bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik (pixel)
yang tersimpan sebagai suatu matriks, dimana elemen dari matriks tersebut
merupakan informasi warna dari setiap piksel. (Masya, 2016). Nilai setiap piksel
diawali oleh satu bit data (untuk gambar hitam putih) atau lebih (untuk gambar
berwarna). Kerapatan titik-titik tersebut dinamakan resolusi, yang menunjukkan
seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah baris dan kolom.
Jumlah warna yang dapat disimpan ditentukan dengan satuan bit per piksel. Semakin
besar ukuran bit-per-pixel dari suatu bitmap, semakin banyak pula jumlah warna yang
dapat disimpan.
Format file bitmap terdiri atas susunan titik atau pixel yang berada pada
memori komputer. Hal tersebut tentu membuat file ekstensi ini masih merupakan file
asli untuk gambar dengan jenis gambar bitmap. Karakteristik lain dari bitmap yang
juga penting adalah jumlah warna yang dapat disimpan dalam bitmap tersebut. Ini
ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik
dari bitmap yang menggunakan satuan bpp (bit per pixel). Dalam Windows
dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per pixel. Jumlah warna maksimum yang
dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya
bit yang digunakan untuk menyimpan satu titik dari bitmap.
Universitas Sumatera Utara
22
Berikut contoh enkripsi dan dekripsi citra menggunakan algoritma Vernam
Cipher dalam skema Three-Pass Protocol.
- Diketahui nilai RGB pixel (3,3) yaitu (26,8,95) dengan kunci pengirim (KA) :
00010101, maka proses perhitungan enkripsi dan dekripsi dapat dilihat dibawah ini
:
(R G B)
26 8 95
Gambar 2.11 Piksel 3 x 3
1. Pertama ubah RGB Desimal ke Biner :
R
G
B
Desimal
26
8
95
Biner
00011010 00001000 01011111
Maka akan di dapat “00011010 00001000 01011111” sebagai plainteks (P).
2. Lalu plainteks (P) dienkripsi dengan kunci yang telah diketahui diatas sebagai
berikut :
Tabel 2.5 Proses Perhitungan Enkripsi Piksel Tahap Pertama
Plainteks (P)
Kunci (KA)
C1 = (P KA)
00011010
00010101
00001111
15
00001000
00010101
00011101
29
01011111
00010101
01001010
74
Desimal
Pada Tabel 2.5 ditunjukkan bahwa pada enkripsi piksel tahap pertama
dihasilkan cipherteks yang nantinya akan digunakan untuk enkripsi piksel tahap
kedua. Selanjutnya akan dihitung enkripsi piksel tahap kedua. Kunci pihak penerima
yaitu diketahui KB = “00011101”. Perhitungan enkripsi tahap kedua ditunjukkan pada
Tabel 2.6.
Universitas Sumatera Utara
23
Tabel 2.6 Perhitungan Enkripsi Piksel Tahap Kedua
Cipherteks (C1)
Kunci (KB)
C2 = (C1 KB)
Desimal
00001111
00011101
00010010
18
00011101
00011101
00000000
0
01001010
00011101
01010111
87
Pada Tabel 2.6 ditunjukkan bahwa pada enkripsi piksel tahap kedua dihasilkan
cipherteks kedua (C2) yang nantinya akan digunakan untuk enkripsi piksel tahap
ketiga. Selanjutnya dihitung enkripsi piksel tahap ketiga. Hasil perhitungan enkripsi
piksel tahap ketiga dapat dilihat pada Tabel 2.7.
Tabel 2.7 Perhitungan Enkripsi Piksel Tahap Ketiga
Cipherteks (C2)
Kunci (KA)
C3 = (C2 KA)
Desimal
00010010
00010101
00000111
7
00000000
00010101
00010101
21
01010111
00010101
01000010
66
Pada Tabel 2.7 ditunjukkan bahwa pada enkripsi piksel tahap ketiga dihasilkan
cipherteks ketiga (C3) yang nantinya akan digunakan untuk tahap selanjutnya.
Selanjutnya pesan tersebut dapat didekripsi kembali menjadi pesan asli. Hasil
perhitungan proses dekripsi dapat dilihat pada Tabel 2.4.
Tabel 2.8 Perhitungan Dekripsi Piksel Asli
Cipherteks (C3)
Kunci (KB)
P = (C3 KB)
Desimal
00000111
00011101
00011010
26
00010101
00011101
00001000
8
01000010
00011101
01011111
95
Pada Tabel 2.8 ditunjukkan bahwa hasil dekripsi piksel sesuai dengan piksel
sebelum dienkripsi yaitu “26,8,95”. Itu berarti penggunaan algoritma Vernam Cipher
dalam Three-Pass Protocol memenuhi parameter keutuhan data.
Universitas Sumatera Utara
24
2.4.4. Perhitungan Kualitas Hasil Rekonstruksi Citra
Dalam suatu pengembangan dan pelaksanaan rekonstruksi citra diperlukan
perbandingan antara citra hasil rekonstruksi dengan citra asli untuk mengukur kinerja
prosedur perbaikan citra. Perhitungan yang dapat dilakukan adalah dengan
menentukan Mean Squared Error (MSE) dan Peak Signal to Noise Ratio (PSNR).
2.4.4.1 Mean Squared Error (MSE)
Mean squared error (MSE) adalah nilai error kuadrat rata-rata antara citra cover (citra
asli) dengan citra tersteganografi (citra yang dihasilkan) (Male et al, 2012). MSE
dihitung dengan rata-rata intensitas kuadrat gambar asli (input) dan piksel gambar
resultan (output) seperti berikut :
Keterangan :
M
: panjang citra (dalam pixel)
N
: lebar citra (dalam pixel)
�( , ) : intensitas citra di titik (i,j) citra asli
�’( , ) : intensitas citra di titik (i,j) citra hasil
Berikut diberikan contoh dari perhitungan untuk Mean Square Error (MSE),
yaitu :
Dengan contoh potongan matriks 2x2 dari citra asli dan citra rekonstruksi:
Citra asli :
Citra rekonstruksi:
2
6
2
5
2
3
2
1
Maka nilai dari MSE = 1 ((2-2)2+ (6-5)2 + (2-2)2 + (3-1)2)
4
= 1.25
Universitas Sumatera Utara
25
Semakin rendah nilai Mean Square Error, maka kualitas citra yang dihasilkan akan
semakin baik (Male et al, 2012).
2.4.4.2. Peak Signal to Noise Ratio (PSNR)
Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum dari
sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut
(Male et al, 2012). Ukuran PSNR adalah perkiraan kualitas gambar yang
direkonstruksi dibandingkan dengan gambar asli. Nilai PSNR yang lebih tinggi
menyiratkan kemiripan yang lebih erat antara hasil rekonstruksi dan gambar asli.
PSNR didefinisikan dengan persamaan berikut :
Dimana s adalah nilai maksimum dari pixel citra yang digunakan.
Berdasarkan contoh pada perhitungan Mean Squared Error sebelumnya, yaitu 1.25.
Maka nilai PSNR dapat diselesaikan dengan perhitungan berikut.
= 47.161
2.5. Android
Android adalah sistem operasi yang didasarkan pada kernel Linux dan digunakan di
banyak gadget yang berbeda, yaitu : ponsel, tablet, komputer, laptop, televisi, jam
tangan dan perangkat lainnya (Saparkhojayev et al, 2013). Awalnya, sistem operasi ini
dikembangkan oleh perusahaan yang sama Android Inc, yang kemudian dibeli oleh
Google, dan kemudian menciptakan aliansi dalam perusahaan Open Handset Alliance
(OHA), yang bertanggung jawab untuk mendukung dan pengembangan lebih lanjut
dari platform. Sistem operasi ini bersifat open source sehingga para programmer
dapat membuat aplikasi secara mudah (Nihe, 2015). Android merupakan sekumpulan
software untuk perangkat berbasis mobile yang berisi Sistem Operasi, Middleware,
Universitas Sumatera Utara
26
dan aplikasi berdaya guna. Google Inc sepenuhnya membangun Android dan
menjadikannya bersifat terbuka (open source) agar para pengembang dapat
menggunakan Android tanpa mengeluarkan biaya untuk lisensi dari Google dan dapat
membangun Android tanpa adanya batasan-batasan.
Sejak diakuisisi oleh Google dan diterapkan ke dalam sebuah perangkat
mobile, OS Android dikembangkan dengan kode yang dinamai berdasarkan nama
dessert (pencuci mulut) dan diurut berdasarkan alfabet, seperti Cupcake (OS Android
1.5), Donut (OS Android 1.6), Eclair (OS Android 2.0 – 2.1), Froyo (OS Android 2.2
– 2.2.3), Gingerbread (OS Android 2.3–2.3.7), Honeycomb (OS Android 3.0 –3.2.6),
Ice Cream Sandwich (OS Android 4.0–4.0.4), Jelly Bean (OS Android 4.1– 4.3),
KitKat (OS Android 4.4+), Lollipop (OS Android 5.0) dan Marshmallow (OS Android
6.0). Android terkenal dengan logonya yang berbentuk robot berwarna hijau. Logo
Android dapat dilihat pada Gambar 2.12.
Gambar 2.12 Logo Android
2.5.1. Kelebihan Android
Beberapa kelebihan Android sehingga sistem operasi ini sangat populer adalah
sebagai berikut :
1. Bersifat open source karena berbasis linux, sehingga banyak developer yang ingin
mengembangkan Android.
2. Android tergolong sistem yang fleksibel. Pengguna bisa mengombinasikan Apps,
Folder, dan Widgets satu sama lain dan men-download interface lainnya di
Android market.
3. Info bar-nya berguna bagi pengguna, misalnya untuk mengetahui aplikasi (app)
yang aktif.
4. Browser-nya tergolong cepat, termasuk saat membuka website dengan flash.
Universitas Sumatera Utara
27
2.6. Penelitian yang Relevan
Berikut ini beberapa penelitian yang terkait dengan algoritma Vernam Cipher atau
yang dikenal dengan Algoritma One-Time Pad :
1. Tasliyah Haramaini (2014) dalam tesis yang berjudul Algoritma One Time Pad
pada Skema Three-Pass Protocol. Dalam tesis ini, beliau menyimpulkan bahwa,
pada algoritma One Time Pad, lama waktu pemrosesan pesan teks dipengaruhi oleh
panjang pesan teks dan panjang kunci. Semakin panjang pesan teks yang di proses
maka waktu yang dibutuhkan akan semakin lama. Peneliti meningkatkan keamanan
data dengan menambah panjang range bilangan prima yang akan diacak, semakin
panjang range prime maka data akan semakin aman dan semakin sulit menebak
perulangan kuncinya.
2. Sagar Chandrakar, Bhagya Shree Jain, dan Shrikant Tiwari (2014) dalam jurnal
yang berjudul Implementation of One-Time Pad over Web. Dalam jurnal ini
disimpulkan bahwa metode One Time Pad mencapai kerahasiaan sempurna untuk
proses enkripsi, berdasarkan pengamatan karakteristik dan pendekatan pro dan
kontra yang dianalisis. Perbandingan dengan pendekatan yang ada menunjukkan
bahwa One Time Pad mampu melindungi privasi dan mengurangi situs pengguna
Web dalam cara yang jauh lebih kuat.
3. Gustaf Prameswara (2012) dalam skripsi yang berjudul Implementasi Algoritma
One Time Pad dan Knapsack Pada Kunci. Dalam skripsi ini, beliau menyimpulkan
bahwa enkripsi plainteks dengan menggunakan Algoritma One Time Pad dapat
melindungi informasi yang terdapat dalam file teks tersebut dan enkripsi kunci
dengan menggunakan Algoritma Knapsack dapat melindungi kunci yang telah
digunakan untuk mengamankan file teks tersebut. Beliau juga meneliti ukuran file
teks hasil enkripsi dan dekripsi. Ukuran file teks hasil enkripsi akan bertambah
besar, karena setiap karakter dari plainteks diganti menjadi beberapa digit angka.
Namun ketika didekripsi kembali, file teks ini akan kembali ke ukurannya semula.
4. Muhammad Khoiruddin Harahap (2016) dalam jurnal yang berjudul Analisis
Perbandingan Algoritma Kriptografi Klasik Vigenere Cipher dan One Time Pad.
Dalam jurnal ini disimpulkan bahwa algoritma Vigenere Cipher dan algoritma One
Time Pad memiliki rumus yang sama dalam enkripsi dan dekripsi. Perbedaan
kedua algoritma ini terletak pada deretan kunci yang digunakan. Algoritma
Vigenere Cipher menggunakan kunci yang selalu berulang sepanjang pesan yang
Universitas Sumatera Utara
28
akan dienkripsi, sedangkan algoritma One Time Pad menggunakan kunci yang
benar-benar acak dan tidak memiliki pola tertentu, dimana ukuran panjang
kuncinya juga sepanjang pesan yang akan dienkripsi. Dari segi keamanan,
algoritma One Time Pad lebih sulit untuk ditembus oleh para kriptanalis. Kunci
acak yang digunakan oleh algoritma One Time Pad membuat algoritma ini
memiliki tingkat keamanan yang sempurna.
5. Zaeniah & Bambang Eka Purnama (2015) dalam jurnal yang berjudul An Analysis
of Encryption and Decryption Application by Using One Time Pad Algorithm.
Dalam jurnal ini disimpulkan bahwa aplikasi yang menerapkan algoritma One
Time Pad ini dapat melindungi data dengan benar. Aplikasi ini dapat membantu
pengguna untuk menyimpan data dan informasi dari orang-orang yang tidak
memiliki kewenangan. Aplikasi ini juga dapat mengenkripsi dan mendekripsi data
dalam berbagai format file dan ukuran file tidak berubah saat melakukan proses
enkripsi dan dekripsi dokumen.
Universitas Sumatera Utara
LANDASAN TEORI
2.1. Kriptografi
2.1.1. Definisi Kriptografi
Kriptografi berasal dari bahasa yunani, menurut bahasa dibagi menjadi dua yaitu
kripto dan graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan).
Menurut teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan
pesan (message) ketika pesan di kirim dari suatu tempat ketempat yang lain.
Kriptografi adalah ilmu atau metode yang memungkinkan informasi yang akan
dikirim dalam bentuk aman sehingga dengan cara ini orang yang dapat memperoleh
informasi ini adalah penerima pesan yang ditujukan (Purnama & Rohayani, 2015).
Menurut Singh (2015), kriptografi adalah transformasi pesan biasa untuk
membuat pesan tersebut aman dan kebal dari penyusup. Kriptografi dilakukan dengan
cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya
sehingga pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari
penyadap (attacker).
Pesan asli dikenal sebagai plaintext sementara pesan berkode disebut
ciphertext. Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan
proses dekripsi. Enkripsi adalah proses encoding pesan atau informasi dalam
sedemikian rupa sehingga penyadap atau hacker tidak bisa membacanya, tapi bisa
dibaca oleh pihak yang berwenang. Enkripsi adalah cara yang paling efektif untuk
mencapai keamanan data. Dekripsi adalah proses mengubah data yang telah dienkripsi
kembali ke bentuk terenkripsinya (Devipriya & Sasikala, 2015). Secara umum, proses
enkripsi dan dekripsi dapat digambarkan sebagai berikut :
Plaintext
Enkripsi
Ciphertext
Dekripsi
Plaintext
Gambar 2.1 Skema proses enkripsi dan dekripsi
Universitas Sumatera Utara
7
Pada Gambar 2.1 ditunjukkan skema proses enkripsi dan dekripsi. Pada proses
enkripsi, dapat dilihat bahwa masukan berupa plaintext akan masuk ke dalam blok
enkripsi dan keluarannya akan berupa ciphertext, kemudian ciphertext akan masuk ke
dalam blok dekripsi dan keluarannya akan kembali menjadi plaintext semula.
2.1.2. Tujuan Kriptografi
Kriptografi tidak hanya bertujuan memberikan kerahasiaan dalam telekomunikasi,
namun juga bertujuan untuk memberikan layanan keamanan sebagai berikut:
1. Confidentiality
: Menjamin bahwa data tersebut hanya bisa diakses oleh pihakpihak tertentu saja.
2. Authentication
: Baik pada saat mengirim atau menerima informasi, kedua
belah pihak perlu mengetahui bahwa pengirim dari pesan
tersebut adalah orang yang sebenarnya seperti yang diklaim.
Dengan kata lain, penerima pesan dapat memastikan keaslian
pengirimnya.
3. Integrity
: Tuntutan ini berhubungan dengan jaminan setiap pesan yang
dikirim pasti sampai pada penerimanya tanpa ada bagian dari
pesan tersebut yang diganti, diduplikasi, dirusak, diubah
urutannya, dan ditambahkan.
4. Nonrepudiation : Mencegah pengirim maupun penerima mengingkari bahwa
mereka
telah
mengirimkan
atau
menerima
suatu
pesan/informasi. Jika sebuah pesan dikirim, penerima dapat
membuktikan bahwa pesan tersebut memang dikirim oleh
pengirim yang tertera.
2.1.3. Elemen Kriptografi
Berikut merupakan elemen-elemen kriptografi, antara lain :
1.
Pesan, Plaintext dan Ciphertext.
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya.
Pesan disebut juga dengan plaintext. Agar pesan tidak bisa dimengerti maknanya
oleh pihak lain, maka pesan tersebut perlu disandikan ke bentuk lain yang tidak
dapat dimengerti maknanya. Bentuk pesan yang tersandi itulah yang disebut
ciphertext.
Universitas Sumatera Utara
8
2.
Pengirim dan Penerima
Pengirim adalah entitas yang akan mengirim pesan kepada entitas lainnya.
Penerima adalah entitas yang menerima pesan tersebut. Entitas di sini dapat
berupa orang, mesin (komputer), kartu kredit dan sebagainya.
3.
Enkripsi dan dekripsi
Proses menyandikan plaintext menjadi ciphertext disebut enkripsi. Sedangkan
proses mengembalikan ciphertext menjadi plaintext disebut dekripsi.
4.
Cipher
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan
deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua
buah himpunan yaitu himpunan yang berisi elemen-elemen plaintext dan
himpunan yang berisi ciphertext. Enkripsi dan dekripsi adalah fungsi yang
memetakan elemen-elemen antara kedua himpunan tersebut.
5.
Sistem kriptografi
Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma kriptografi,
semua plaintext dan ciphertext yang mungkin dan kunci.
6.
Penyadap
Penyadap adalah orang yang berusaha mencoba menangkap pesan selama
ditransmisikan dengan tujuan mendapatkan informasi sebanyak-banyaknya
mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan
maksud untuk memecahkan ciphertext.
7.
Kriptanalisis dan kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan ciphertext
menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelakunya disebut
kriptanalis. Kriptologi adalah studi mengenai kriptografi dan kriptanalisis.
2.1.4. Jenis-jenis Algoritma Kriptografi
Secara umum ada dua jenis kriptografi berdasarkan kuncinya, yaitu Algoritma
Simetris dan Algoritma Asimetris.
2.1.4.1. Algoritma Simetris
Algoritma simetris (symmetric algorithm) yang disebut juga sebagai algoritma
konvensional adalah suatu algoritma yang menggunakan kunci enkripsi yang sama
Universitas Sumatera Utara
9
dengan kunci dekripsinya. Disebut algoritma konvensional karena algoritma ini adalah
jenis algoritma yang biasa digunakan orang sejak berabad-abad yang lalu. Algoritma
simetrik sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal,
atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui
suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan
algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain
dapat mengenkrip dan mendekrip pesan (Kurniawan, 2004). Skema algoritma simetris
ini ditunjukkan pada gambar berikut :
Kunci
Plainteks
Cipherteks
Enkripsi
Plainteks
Dekripsi
Sender
Receiver
Gambar 2.2 Skema Algoritma Simetris
Pada Gambar 2.2 ditunjukkan skema algoritma simetris, yang mana dalam
gambar tersebut dilakukan proses enkripsi dan dekripsi dengan menggunakan kunci
yang sama. Sebelum melakukan pengiriman pesan, pengirim dan penerima harus
memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah
rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga
algoritma kunci rahasia (secret-key algorithm).
a. Kelebihan Algoritma Simetris :
1. Kecepatan operasi enkripsi dan dekripsi lebih tinggi bila dibandingkan dengan
algoritma asimetris.
2. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem
real-time.
3. Ukuran kunci simetri relatif lebih pendek.
b. Kekurangan Algoritma Simetris :
1. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci
yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci
tersebut.
Universitas Sumatera Utara
10
2. Kunci harus sering diubah, setiap kali melakasanakan komunikasi demi
keamanan pesan.
2.1.4.2. Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci
enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini
menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private
key).
Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara
rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat
sukar mengetahui kunci privat yang digunakan. Sebarang orang dapat menggunakna
kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya orang tertentu (calon
penerima pesan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci
publik) yang dapat melakukan dekripsi terhadap pesan tersebut. Dalam sistem ini,
kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut
kunci privat. Skema algoritma asimetris ini ditunjukkan pada gambar berikut :
Plainteks
Enkripsi
Cipherteks
Dekripsi
Sender
Plainteks
Receiver
Kunci Publik
Kunci Rahasia
Gambar 2.3 Skema Algoritma Asimetris
Pada Gambar 2.3 ditunjukkan skema algoritma asimetris, yang mana dalam
gambar tersebut dilakukan proses enkripsi dengan menggunakan kunci publik dan
proses dekripsi dengan menggunakan kunci rahasia. Kriptografi asimetri ini dapat
dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukan
surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi
hanya pemilik surat yang memiliki kunci dan yang dapat membuka kotak surat
tersebut. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan
saluran yang digunakan untuk mengirim pesan, tidak perlu takut, karena pihak yang
Universitas Sumatera Utara
11
tidak berkepentingan tidak akan dapat mendekripsi pesan tersebut, karena tidak
memiliki kunci privat.
a. Kelebihan algoritma asimetris :
1. Masalah keamanan pada distribusi kunci dapat lebih baik.
2. Manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.
3. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang
berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana pada
kunci simetri.
4. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka waktu
yang sangat lama.
b. Kekurangan algoritma asimetris :
1. Kecepatan proses enkripsi dan dekripsi lebih rendah bila dibandingkan dengan
algoritma simetris.
2. Ukuran kunci yang digunakan lebih panjang dibandingkan dengan algoritma
simetris.
3. Berapa pun panjangnya kunci publik telah diketahui kriptanalis sehingga untuk
men-derive kunci privat hanya tinggal menunggu waktu saja.
2.2. Algoritma Vernam Cipher
Vernam Cipher merupakan algoritma kriptografi yang ditemukan oleh Mayor J.
Maugborne dan G. Vernam pada tahun 1917. Algoritma Vernam Cipher diadopsi dari
One Time Pad Cipher, dimana dalam hal ini karakter diganti dengan bit (0 atau 1).
Dengan kata lain, Vernam Cipher merupakan versi lain dari One Time Pad Cipher.
Algoritma kriptografi vernam cipher merupakan algoritma kriptografi berjenis
symmetric key. Kunci yang digunakan untuk melakukan enkripsi dan dekripsi
menggunakan kunci yang sama. Untuk pesan biner, enkripsi OTP menggunakan
operasi XOR antara setiap bit dari pesan dengan bit yang sesuai dengan kunci pribadi
(Nagaraj, 2012). Pada metode ini plainteks diubah kedalam kode ASCII dan kemudian
dikenakan operasi XOR terhadap kunci yang sudah diubah ke dalam kode ASCII
(Sholeh & Hamokwarong, 2011).
Pada One Time Pad, tiap huruf kunci digunakan satu kali untuk satu pesan dan
tidak digunakan kembali. Panjang stream karakter kunci sama dengan panjang pesan.
One time pad berisi barisan karakter-karakter kunci yang dibangkitkan secara acak.
Universitas Sumatera Utara
12
Satu pad hanya digunakan sekali saja untuk mengenkripsi pesan, setelah itu pad yang
telah digunakan dihancurkan (makanya disebut satu kali pakai atau one time). Satu
kali enkripsi hanya mungkin dilakukan jika kedua pengirim dan penerima berada
dalam kepemilikan kunci yang sama. Oleh karena itu, kedua belah pihak harus saling
bertukar kunci mereka sebelumnya. Ini berarti bahwa komunikasi yang aman
diharapkan dan direncanakan dalam jangka waktu tertentu (Sharma & Gupta, 2013).
OTP akan aman sempurna bila aliran kunci K tidak dapat ditebak lawan dan
tidak pernah digunakan lebih dari satu kali untuk mengenkrip data (Kurniawan, 2004).
Proses enkripsi dan dekripsi algoritma vernam cipher dapat dilihat pada Gambar 2.4.
Plainteks
XOR
Cipherteks
XOR
Plainteks
Kunci
Gambar 2.4 Proses Enkripsi dan Dekripsi Algoritma Vernam Cipher
Pada Gambar 2.4 ditunjukkan proses enkripsi dan dekripsi algoritma Vernam
Cipher, yang mana plainteks di-XOR-kan dengan kunci menghasilkan cipherteks, lalu
cipherteks tersebut di-XOR-kan kembali dengan kunci yang sama sehingga
menghasilkan plainteks semula.
Secara umum, skenario algoritma Vernam Cipher adalah sebagai berikut :
1. Alice dan Bob bersepakat menggunakan sebuah kunci untuk mengenkripsi dan
mendekripsi pesan yang akan dikirim.
2. Kunci yang dihasilkan kemudian digunakan untuk mengenkripsi pesan dari Alice
kepada Bob.
3. Bob mendekripsi pesan dari Alice dengan menggunakan kunci yang telah mereka
sepakati sehingga pesan asli bisa terbaca.
Shannon membuktikan apabila sandi One Time Pad diterapkan secara benar
maka sandi One Time Pad mencapai kerahasiaan sempurna (perfect secrecy).
Kelemahan utama sandi One Time Pad adalah ketidakpraktisan. Kunci pada sandi One
Time Pad memiliki panjang sama dengan panjang teks asli. Selain itu, kunci harus
dapat diberikan ke pendekripsi secara aman. Jika kunci bocor, maka keamanan sandi
One Time Pad runtuh (Sadikin, 2012).
Universitas Sumatera Utara
13
Berikut ini rumus enkripsi dan dekripsi Vernam Cipher :
� ≡ � � ………………………….… (1)
Dimana :
� ≡ � � ……………………………. (2)
C = Cipherteks
P = Plainteks
K = Kunci
Contoh :
Jika kita ingin mengenkripsi kata “AULYA” dan diketahui kuncinya yaitu “CINTA”.
Maka proses enkripsi dan dekripsi yang dilakukan adalah sebagai berikut :
1. Pertama, ubah kata AULYA menjadi kode ASCII, kemudian kode ASCII tersebut
diubah menjadi bilangan biner, maka diperoleh :
Karakter
ASCII
Notasi Biner
A
65
01000001
U
85
01010101
L
76
01001100
Y
89
01011001
A
65
01000001
Hal yang sama juga harus dilakukan pada kunci yang digunakan.
Karakter
ASCII
Notasi Biner
C
67
01000011
I
73
01001001
N
78
01001110
T
84
01010100
A
65
01000001
2. Setelah itu, enkripsi pesan dengan meng-XOR-kan plainteks dengan kunci, yaitu :
P
: 01000001 01010101 01001100 01011001 01000001
K
: 01000011 01001001 01001110 01010100 01000001
C
: 00000010 00011100 00000010 00001101 00000000
Universitas Sumatera Utara
14
3. Setelah didapat cipherteksnya, maka selanjutnya pesan akan didekripsi dengan
meng-XOR-kan cipherteks dengan kunci, yaitu :
C
: 00000010 00011100 00000010 00001101 00000000
K
: 01000011 01001001 01001110 01010100 01000001
P
: 01000001 01010101 01001100 01011001 01000001
4. Dari hasil dekripsi di atas, maka diperoleh pesan sebenarnya, yaitu :
Plainteks
: 01000001 01010101 01001100 01011001 01000001
ASCII
:
65
85
76
89
65
Karakter
:
A
U
L
Y
A
2.3. Three-Pass Protocol
Three-Pass Protocol merupakan suatu kerangka kerja yang memungkinkan pengirim
bisa mengirim pesan terenkripsi ke penerima tanpa perlu mendistribusikan kunci ke
penerima (Rahim & Ikhwan, 2015). Jadi, pengirim dan penerima mempunyai kunci
masing-masing. Disebut Three-Pass Protocol karena pengirim dan penerima
melakukan tiga tahap pertukaran untuk mengenkripsi pesan tersebut.
Protokol ini dikembangkan oleh Adi Shamir sekitar tahun 1980. Konsep dasar
dari Three-Pass Protocol adalah bahwa masing-masing pihak memiliki kunci enkripsi
pribadi dan kunci dekripsi pribadi. Kedua belah pihak secara independen
menggunakan kunci untuk mengenkripsi pesan, dan kemudian untuk mendekripsi
pesan (Oktaviana & Siahaan, 2016). Skema dari Three-Pass Protocol dapat dilihat
pada Gambar 2.5.
Gambar 2.5 Skema Three-Pass Protocol
Universitas Sumatera Utara
15
Keterangan :
: kunci enkripsi pengirim
: kunci enkripsi penerima
: kunci dekripsi pengirim
: kunci dekripsi penerima
Pada Gambar 2.5 ditunjukkan bahwa Three-Pass Protocol memiliki beberapa
tahapan untuk dapat menyampaikan pesan itu dari pengirim kepada penerima. Berikut
tahapannya :
a. Alice (pengirim pesan) memiliki kunci KA. Alice mengenkripsi pesan dengan
kuncinya sendiri dan mengirimkan pesan terenkripsi (C1) kepada Bob (penerima
pesan).
b. Bob (penerima pesan) memiliki kunci KB. Bob mengenkripsi pesan C1 dengan
kunci pribadi miliknya dan mengirim pesan yang telah dienkripsi lagi (C2) kepada
Alice.
c. Alice yang telah menerima C2 mendekripsi pesan tersebut dengan menggunakan
kunci pribadi yang dimilikinya dan mengirim kembali pesan yang telah didekripsi
(C3) kepada Bob.
d. Bob yang telah menerima C3 juga mendekripsi pesan tersebut dengan kunci pribadi
yang dimilikinya sehingga didapatlah pesan asli (P) yang dikirim oleh Alice.
Sebagai contoh jika ingin mengenkripsi kata “AULYA”. Diketahui kunci
pengirim yaitu KA = “citra”. Maka enkripsi tahap pertama dapat dilihat pada Tabel 2.1
berikut ini :
Tabel 2.1 Perhitungan Enkripsi Tahap Pertama
Plainteks ASCII
Biner
Kunci (KA)
ASCII
Biner
C1 = (P KA)
A
65
01000001
C
99
01100011
00100010
U
85
01010101
I
105
01100110
00110011
L
76
01001100
T
116
01110100
00111000
Y
89
01011001
R
114
01110010
00101011
A
65
01000001
A
97
01100001
00100000
Universitas Sumatera Utara
16
Pada Tabel 2.1 ditunjukkan bahwa pada enkripsi tahap pertama dihasilkan
cipherteks pertama (C1) yang nantinya akan digunakan untuk enkripsi tahap kedua.
Selanjutnya akan dihitung enkripsi tahap kedua. Kunci pihak penerima yaitu diketahui
KB = “ilkom”. Perhitungan enkripsi tahap kedua ditunjukkan pada Tabel 2.2.
Tabel 2.2 Perhitungan Enkripsi Tahap Kedua
Cipherteks (C1)
Kunci (KB)
ASCII
Biner
C2 = (C1 KB)
00100010
i
105
01101001
01001011
00110011
l
108
01101100
01011111
00111000
k
107
01101011
01010011
00101011
o
111
01101111
01000100
00100000
m
109
01101101
01001101
Pada Tabel 2.2 ditunjukkan bahwa pada enkripsi tahap kedua dihasilkan
cipherteks kedua (C2) yang nantinya akan digunakan untuk enkripsi tahap ketiga.
Selanjutnya dihitung enkripsi tahap ketiga. Hasil perhitungan enkripsi tahap ketiga
dapat dilihat pada Tabel 2.3.
Tabel 2.3 Perhitungan Enkripsi Tahap Ketiga
Cipherteks (C2)
Kunci (KA)
ASCII
Biner
C3 = (C2 KA)
01001011
c
99
01100011
00101000
01011111
i
105
01100110
00111001
01010011
t
116
01110100
00100111
01000100
r
114
01110010
00110110
01001101
a
97
01100001
00101100
Pada Tabel 2.3 ditunjukkan bahwa pada enkripsi tahap ketiga dihasilkan
cipherteks ketiga (C3) yang nantinya akan digunakan untuk tahap selanjutnya.
Selanjutnya pesan tersebut dapat didekripsi kembali menjadi pesan asli. Hasil
perhitungan proses dekripsi dapat dilihat pada Tabel 2.4.
Universitas Sumatera Utara
17
Tabel 2.4. Perhitungan Dekripsi Pesan Asli
Cipherteks (C3)
Kunci (KB)
Biner
P = (C3 KB)
Plainteks
00101000
I
01101001
01000001
A
00111001
L
01101100
01010101
U
00100111
K
01101011
01001100
L
00110110
O
01101111
01011001
Y
00101100
M
01101101
01000001
A
Pada Tabel 2.4 ditunjukkan bahwa hasil dekripsi sesuai dengan plainteks
sebelum dienkripsi yaitu “AULYA”. Itu berarti penggunaan algoritma Vernam Cipher
dalam Three-Pass Protocol memenuhi parameter keutuhan data.
2.4. Citra
Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem
perekaman data dapat bersifat analog, berupa sinyal-sinyal video, seperti gambar pada
monitor televisi atau yang bersifat digital yang dapat langsung disimpan pada suatu
pita magnetic. Citra merupakan salah satu bentuk multimedia yang berbentuk
informasi visual. Citra memiliki beberapa jenis format, diantaranya yaitu JPG, PNG,
Bitmap, GIF dan lain-lain. Diantara multimedia lainnya, citra sangat rentan untuk
disalahgunakan seperti diduplikasi, dimodifikasi bahkan dipalsukan. Maka dari itu
keamanan suatu citra sangat dibutuhkan agar tidak ada pihak yang dirugikan.
Citra digital adalah representasi dari sebuah citra dua dimensi sebagai sebuah
kumpulan nilai digital yang disebut elemen gambar atau piksel. Berikut contoh citra
250 Piksel
200 x 284 piksel.
350 Piksel
Gambar 2.6 Citra 350 x 250 piksel
Universitas Sumatera Utara
18
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N
kolom, dengan x dan y adalah koordinat spasial dan amplitudo f di titik koordinat (x,y)
dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Indeks baris
dan kolom (x,y) dari sebuah pixel dinyatakan dalam bilangan bulat (Masya, 2016).
2.4.1. Piksel
Piksel adalah kata yang berasal dari singkatan Picture Elements. Sensor citra secara
fisik (dua dimensi) dibuat dari rangkaian ribuan sel yang peka terhadap cahaya, tiap
sel disebut piksel. Piksel adalah elemen terkecil yang menyusun citra dan
mengandung nilai yang mewakili kecerahan dari sebuah warna pada sebuah titik
tertentu, semakin banyak jumlah piksel semakin tajam pula gambar yang diperoleh.
Setiap piksel memiliki koordinat sesuai posisinya dalam citra. Koordinat ini
biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1
tergantung pada sistem yang digunakan. Setiap piksel juga memiliki nilai berupa
angka digital yang merepresentasikan informasi yang diwakili oleh piksel tersebut.
Masing-masing piksel membawa informasi yang menentukan warna (hue), kekuatan
warna tersebut (saturation) dan seberapa terang warna tersebut ditampilkan
(brightness). Berikut adalah contoh citra dengan resolusi yang berbeda, semakin
rendah tingkat resolusi piksel, semakin bisa kita melihat bagaimana piksel menyusun
foto.
(a) 500 x 375 piksel
(b) 100 x 75 piksel
(c) 60 x 45 piksel
Gambar 2.7 Perbandingan ukuran piksel yang berbeda-beda
Pada Gambar 2.7, ketiga foto tersebut memiliki ukuran piksel yang berbedabeda. Pada gambar 2.7. (a), kita masih belum bisa melihat sebuah piksel, semua
tampak halus dan mulus. Namun dengan mengubah resolusi menjadi lebih kecil,
seperti gambar 2.7 (b), kita mulai bisa melihat bagaimana piksel menyusun foto.
Dalam foto tersebut mulai terlihat kumpulan titik-titik yang berdekatan sehingga
terlihat seperti membentuk sebuah gambar. Begitu juga dengan gambar 2.7 (c), pada
Universitas Sumatera Utara
19
gambar ini susunan piksel lebih terlihat dari gambar sebelumnya, masing-masing
kotak piksel mulai terlihat seperti susunan puzzle. Jadi, dapat disimpulkan bahwa
semakin tinggi ukuran piksel, maka semakin tajam pula kualitas gambar yang
diperoleh.
2.4.2. Jenis-jenis Warna pada Citra
Pada citra, ada beberapa jenis warna yang sering dijumpai saat melakukan proses
pengolahan pada citra. Warna-warna yang umum digunakan antara lain citra biner
(White & Black), citra grayscale, dan citra RGB (Red, Green, Blue).
2.4.2.1. Citra Biner (White & Black)
Citra biner (binary image) adalah citra dengan setiap piksel hanya dinyatakan dengan
sebuah nilai dari dua kemungkinan (yaitu 0 dan 1). Nilai 0 menyatakan warna hitam
dan nilai 1 menyatakan warna putih. Sehingga citra biner hanya memiliki 2
kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga dengan citra
W&B (White & Black) atau citra monokrom.
Pembentukan citra biner memerlukan nilai batas keabuan yang akan digunakan
sebagai nilai patokan. Piksel dengan derajat keabuan lebih besar dari nilai batas akan
diberi nilai 1 dan sebaliknya piksel dengan derajat keabuan lebih kecil dari nilai batas
akan diberi nilai 0. Fungsi dari binerisasi sendiri adalah untuk mempermudah proses
pengenalan pola, karena pola akan lebih mudah terdeteksi pada citra yang
mengandung lebih sedikit warna. Contoh citra biner ditunjukkan pada gambar 2.8.
Gradasi warna :
0
1
bit 0 = warna hitam
bit 1 = warna putih
Gambar 2.8 Contoh citra biner
2.4.2.2. Citra Grayscale
Citra grayscale merupakan citra digital yang menangani gradasi warna hitam dan
putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis gambar ini, warna
Universitas Sumatera Utara
20
dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai
dengan 255. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih.
Citra grayscale berbeda dengan citra “hitam-putih”, dimana pada konteks
komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu hitam dan putih saja.
Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna
diantaranya sangat banyak. Banyaknya warna tergantung pada jumlah bit yang
disediakan di memori untuk menampung kebutuhan warna ini (Sutoyo, 2007).
Citra 2 bit mewakili 4 warna dengan gradasi warna berikut :
0
1
2
3
Citra 3 bit mewakili 8 warna dengan gradasi warna berikut :
0
1
2
3
4
5
6
7
Semakin besar jumlah bit warna yang disediakan di memori, semakin halus
gradiasi warna yang terbentuk (Sutoyo, 2007). Contoh citra grayscale ditunjukkan
pada gambar 2.9.
Gambar 2.9 Contoh citra grayscale
2.4.2.3. Citra Berwarna (RGB)
Citra berwarna atau biasa dinamakan citra RGB (Red, Green, Blue) merupakan citra
digital yang menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B
(biru). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti
setiap warna mempunyai gradasi sebanyak 255 warna. berarti setiap piksel
mempunyai kombinasi warna sebanyak 28. 28. 28 = 224 = 16 juta warna lebih (Sutoyo,
2007).
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi
dari ketiga warna dasar RGB. Setiap titik pada citra warna membutuhkan data sebesar
Universitas Sumatera Utara
21
3 byte. Setiap warna dasar memiliki intensitas tersendiri dengan nilai minimum nol (0)
dan nilai maksimum 255 (8 bit). Gambar warna berbasis RGB adalah representasi
yang baik untuk menunjukkan karakteristik frekuensi, dimana warna yang berbeda
mewakili frekuensi akustik yang berbeda. (Guo et al, 2013). Contoh citra RGB
ditunjukkan pada gambar 2.10.
Gambar 2.10 Contoh citra RGB
2.4.3. Citra Bitmap
Citra bitmap adalah representasi dari citra grafis yang terdiri dari susunan titik (pixel)
yang tersimpan sebagai suatu matriks, dimana elemen dari matriks tersebut
merupakan informasi warna dari setiap piksel. (Masya, 2016). Nilai setiap piksel
diawali oleh satu bit data (untuk gambar hitam putih) atau lebih (untuk gambar
berwarna). Kerapatan titik-titik tersebut dinamakan resolusi, yang menunjukkan
seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah baris dan kolom.
Jumlah warna yang dapat disimpan ditentukan dengan satuan bit per piksel. Semakin
besar ukuran bit-per-pixel dari suatu bitmap, semakin banyak pula jumlah warna yang
dapat disimpan.
Format file bitmap terdiri atas susunan titik atau pixel yang berada pada
memori komputer. Hal tersebut tentu membuat file ekstensi ini masih merupakan file
asli untuk gambar dengan jenis gambar bitmap. Karakteristik lain dari bitmap yang
juga penting adalah jumlah warna yang dapat disimpan dalam bitmap tersebut. Ini
ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik
dari bitmap yang menggunakan satuan bpp (bit per pixel). Dalam Windows
dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per pixel. Jumlah warna maksimum yang
dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya
bit yang digunakan untuk menyimpan satu titik dari bitmap.
Universitas Sumatera Utara
22
Berikut contoh enkripsi dan dekripsi citra menggunakan algoritma Vernam
Cipher dalam skema Three-Pass Protocol.
- Diketahui nilai RGB pixel (3,3) yaitu (26,8,95) dengan kunci pengirim (KA) :
00010101, maka proses perhitungan enkripsi dan dekripsi dapat dilihat dibawah ini
:
(R G B)
26 8 95
Gambar 2.11 Piksel 3 x 3
1. Pertama ubah RGB Desimal ke Biner :
R
G
B
Desimal
26
8
95
Biner
00011010 00001000 01011111
Maka akan di dapat “00011010 00001000 01011111” sebagai plainteks (P).
2. Lalu plainteks (P) dienkripsi dengan kunci yang telah diketahui diatas sebagai
berikut :
Tabel 2.5 Proses Perhitungan Enkripsi Piksel Tahap Pertama
Plainteks (P)
Kunci (KA)
C1 = (P KA)
00011010
00010101
00001111
15
00001000
00010101
00011101
29
01011111
00010101
01001010
74
Desimal
Pada Tabel 2.5 ditunjukkan bahwa pada enkripsi piksel tahap pertama
dihasilkan cipherteks yang nantinya akan digunakan untuk enkripsi piksel tahap
kedua. Selanjutnya akan dihitung enkripsi piksel tahap kedua. Kunci pihak penerima
yaitu diketahui KB = “00011101”. Perhitungan enkripsi tahap kedua ditunjukkan pada
Tabel 2.6.
Universitas Sumatera Utara
23
Tabel 2.6 Perhitungan Enkripsi Piksel Tahap Kedua
Cipherteks (C1)
Kunci (KB)
C2 = (C1 KB)
Desimal
00001111
00011101
00010010
18
00011101
00011101
00000000
0
01001010
00011101
01010111
87
Pada Tabel 2.6 ditunjukkan bahwa pada enkripsi piksel tahap kedua dihasilkan
cipherteks kedua (C2) yang nantinya akan digunakan untuk enkripsi piksel tahap
ketiga. Selanjutnya dihitung enkripsi piksel tahap ketiga. Hasil perhitungan enkripsi
piksel tahap ketiga dapat dilihat pada Tabel 2.7.
Tabel 2.7 Perhitungan Enkripsi Piksel Tahap Ketiga
Cipherteks (C2)
Kunci (KA)
C3 = (C2 KA)
Desimal
00010010
00010101
00000111
7
00000000
00010101
00010101
21
01010111
00010101
01000010
66
Pada Tabel 2.7 ditunjukkan bahwa pada enkripsi piksel tahap ketiga dihasilkan
cipherteks ketiga (C3) yang nantinya akan digunakan untuk tahap selanjutnya.
Selanjutnya pesan tersebut dapat didekripsi kembali menjadi pesan asli. Hasil
perhitungan proses dekripsi dapat dilihat pada Tabel 2.4.
Tabel 2.8 Perhitungan Dekripsi Piksel Asli
Cipherteks (C3)
Kunci (KB)
P = (C3 KB)
Desimal
00000111
00011101
00011010
26
00010101
00011101
00001000
8
01000010
00011101
01011111
95
Pada Tabel 2.8 ditunjukkan bahwa hasil dekripsi piksel sesuai dengan piksel
sebelum dienkripsi yaitu “26,8,95”. Itu berarti penggunaan algoritma Vernam Cipher
dalam Three-Pass Protocol memenuhi parameter keutuhan data.
Universitas Sumatera Utara
24
2.4.4. Perhitungan Kualitas Hasil Rekonstruksi Citra
Dalam suatu pengembangan dan pelaksanaan rekonstruksi citra diperlukan
perbandingan antara citra hasil rekonstruksi dengan citra asli untuk mengukur kinerja
prosedur perbaikan citra. Perhitungan yang dapat dilakukan adalah dengan
menentukan Mean Squared Error (MSE) dan Peak Signal to Noise Ratio (PSNR).
2.4.4.1 Mean Squared Error (MSE)
Mean squared error (MSE) adalah nilai error kuadrat rata-rata antara citra cover (citra
asli) dengan citra tersteganografi (citra yang dihasilkan) (Male et al, 2012). MSE
dihitung dengan rata-rata intensitas kuadrat gambar asli (input) dan piksel gambar
resultan (output) seperti berikut :
Keterangan :
M
: panjang citra (dalam pixel)
N
: lebar citra (dalam pixel)
�( , ) : intensitas citra di titik (i,j) citra asli
�’( , ) : intensitas citra di titik (i,j) citra hasil
Berikut diberikan contoh dari perhitungan untuk Mean Square Error (MSE),
yaitu :
Dengan contoh potongan matriks 2x2 dari citra asli dan citra rekonstruksi:
Citra asli :
Citra rekonstruksi:
2
6
2
5
2
3
2
1
Maka nilai dari MSE = 1 ((2-2)2+ (6-5)2 + (2-2)2 + (3-1)2)
4
= 1.25
Universitas Sumatera Utara
25
Semakin rendah nilai Mean Square Error, maka kualitas citra yang dihasilkan akan
semakin baik (Male et al, 2012).
2.4.4.2. Peak Signal to Noise Ratio (PSNR)
Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum dari
sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut
(Male et al, 2012). Ukuran PSNR adalah perkiraan kualitas gambar yang
direkonstruksi dibandingkan dengan gambar asli. Nilai PSNR yang lebih tinggi
menyiratkan kemiripan yang lebih erat antara hasil rekonstruksi dan gambar asli.
PSNR didefinisikan dengan persamaan berikut :
Dimana s adalah nilai maksimum dari pixel citra yang digunakan.
Berdasarkan contoh pada perhitungan Mean Squared Error sebelumnya, yaitu 1.25.
Maka nilai PSNR dapat diselesaikan dengan perhitungan berikut.
= 47.161
2.5. Android
Android adalah sistem operasi yang didasarkan pada kernel Linux dan digunakan di
banyak gadget yang berbeda, yaitu : ponsel, tablet, komputer, laptop, televisi, jam
tangan dan perangkat lainnya (Saparkhojayev et al, 2013). Awalnya, sistem operasi ini
dikembangkan oleh perusahaan yang sama Android Inc, yang kemudian dibeli oleh
Google, dan kemudian menciptakan aliansi dalam perusahaan Open Handset Alliance
(OHA), yang bertanggung jawab untuk mendukung dan pengembangan lebih lanjut
dari platform. Sistem operasi ini bersifat open source sehingga para programmer
dapat membuat aplikasi secara mudah (Nihe, 2015). Android merupakan sekumpulan
software untuk perangkat berbasis mobile yang berisi Sistem Operasi, Middleware,
Universitas Sumatera Utara
26
dan aplikasi berdaya guna. Google Inc sepenuhnya membangun Android dan
menjadikannya bersifat terbuka (open source) agar para pengembang dapat
menggunakan Android tanpa mengeluarkan biaya untuk lisensi dari Google dan dapat
membangun Android tanpa adanya batasan-batasan.
Sejak diakuisisi oleh Google dan diterapkan ke dalam sebuah perangkat
mobile, OS Android dikembangkan dengan kode yang dinamai berdasarkan nama
dessert (pencuci mulut) dan diurut berdasarkan alfabet, seperti Cupcake (OS Android
1.5), Donut (OS Android 1.6), Eclair (OS Android 2.0 – 2.1), Froyo (OS Android 2.2
– 2.2.3), Gingerbread (OS Android 2.3–2.3.7), Honeycomb (OS Android 3.0 –3.2.6),
Ice Cream Sandwich (OS Android 4.0–4.0.4), Jelly Bean (OS Android 4.1– 4.3),
KitKat (OS Android 4.4+), Lollipop (OS Android 5.0) dan Marshmallow (OS Android
6.0). Android terkenal dengan logonya yang berbentuk robot berwarna hijau. Logo
Android dapat dilihat pada Gambar 2.12.
Gambar 2.12 Logo Android
2.5.1. Kelebihan Android
Beberapa kelebihan Android sehingga sistem operasi ini sangat populer adalah
sebagai berikut :
1. Bersifat open source karena berbasis linux, sehingga banyak developer yang ingin
mengembangkan Android.
2. Android tergolong sistem yang fleksibel. Pengguna bisa mengombinasikan Apps,
Folder, dan Widgets satu sama lain dan men-download interface lainnya di
Android market.
3. Info bar-nya berguna bagi pengguna, misalnya untuk mengetahui aplikasi (app)
yang aktif.
4. Browser-nya tergolong cepat, termasuk saat membuka website dengan flash.
Universitas Sumatera Utara
27
2.6. Penelitian yang Relevan
Berikut ini beberapa penelitian yang terkait dengan algoritma Vernam Cipher atau
yang dikenal dengan Algoritma One-Time Pad :
1. Tasliyah Haramaini (2014) dalam tesis yang berjudul Algoritma One Time Pad
pada Skema Three-Pass Protocol. Dalam tesis ini, beliau menyimpulkan bahwa,
pada algoritma One Time Pad, lama waktu pemrosesan pesan teks dipengaruhi oleh
panjang pesan teks dan panjang kunci. Semakin panjang pesan teks yang di proses
maka waktu yang dibutuhkan akan semakin lama. Peneliti meningkatkan keamanan
data dengan menambah panjang range bilangan prima yang akan diacak, semakin
panjang range prime maka data akan semakin aman dan semakin sulit menebak
perulangan kuncinya.
2. Sagar Chandrakar, Bhagya Shree Jain, dan Shrikant Tiwari (2014) dalam jurnal
yang berjudul Implementation of One-Time Pad over Web. Dalam jurnal ini
disimpulkan bahwa metode One Time Pad mencapai kerahasiaan sempurna untuk
proses enkripsi, berdasarkan pengamatan karakteristik dan pendekatan pro dan
kontra yang dianalisis. Perbandingan dengan pendekatan yang ada menunjukkan
bahwa One Time Pad mampu melindungi privasi dan mengurangi situs pengguna
Web dalam cara yang jauh lebih kuat.
3. Gustaf Prameswara (2012) dalam skripsi yang berjudul Implementasi Algoritma
One Time Pad dan Knapsack Pada Kunci. Dalam skripsi ini, beliau menyimpulkan
bahwa enkripsi plainteks dengan menggunakan Algoritma One Time Pad dapat
melindungi informasi yang terdapat dalam file teks tersebut dan enkripsi kunci
dengan menggunakan Algoritma Knapsack dapat melindungi kunci yang telah
digunakan untuk mengamankan file teks tersebut. Beliau juga meneliti ukuran file
teks hasil enkripsi dan dekripsi. Ukuran file teks hasil enkripsi akan bertambah
besar, karena setiap karakter dari plainteks diganti menjadi beberapa digit angka.
Namun ketika didekripsi kembali, file teks ini akan kembali ke ukurannya semula.
4. Muhammad Khoiruddin Harahap (2016) dalam jurnal yang berjudul Analisis
Perbandingan Algoritma Kriptografi Klasik Vigenere Cipher dan One Time Pad.
Dalam jurnal ini disimpulkan bahwa algoritma Vigenere Cipher dan algoritma One
Time Pad memiliki rumus yang sama dalam enkripsi dan dekripsi. Perbedaan
kedua algoritma ini terletak pada deretan kunci yang digunakan. Algoritma
Vigenere Cipher menggunakan kunci yang selalu berulang sepanjang pesan yang
Universitas Sumatera Utara
28
akan dienkripsi, sedangkan algoritma One Time Pad menggunakan kunci yang
benar-benar acak dan tidak memiliki pola tertentu, dimana ukuran panjang
kuncinya juga sepanjang pesan yang akan dienkripsi. Dari segi keamanan,
algoritma One Time Pad lebih sulit untuk ditembus oleh para kriptanalis. Kunci
acak yang digunakan oleh algoritma One Time Pad membuat algoritma ini
memiliki tingkat keamanan yang sempurna.
5. Zaeniah & Bambang Eka Purnama (2015) dalam jurnal yang berjudul An Analysis
of Encryption and Decryption Application by Using One Time Pad Algorithm.
Dalam jurnal ini disimpulkan bahwa aplikasi yang menerapkan algoritma One
Time Pad ini dapat melindungi data dengan benar. Aplikasi ini dapat membantu
pengguna untuk menyimpan data dan informasi dari orang-orang yang tidak
memiliki kewenangan. Aplikasi ini juga dapat mengenkripsi dan mendekripsi data
dalam berbagai format file dan ukuran file tidak berubah saat melakukan proses
enkripsi dan dekripsi dokumen.
Universitas Sumatera Utara