Anda di halaman 1dari 14

BAB II

TINJAUAN PUSTAKA

2.1 Kriptografi
Kriptografi adalah ilmu untuk mempelajari penulisan secara rahasia dengan
tujuan bahwa komunikasi dan data dapat dikodekan (encode/encrypt) dan
dikodekan (decode/decrypt) kembali untuk mencegah pihak-pihak lain yang ingin
mengetahui isinya. Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu
dari kata kryptos yang artinya tersembunyi. Kriptografi dapat diartikan sebagai
tulisan yang dirahasiakan atau suatu ilmu yang mempelajari bagaimana sebuah
data, informasi dan dokumen dikonversi kebentuk tertentu yang sulit untuk
dimengerti (Sadikin, 2012).
Proses yang dilakukan untuk mengubah plaintext menjadi ciphertext disebut
enkripsi (encryption) atau encipherment sedangkan proses untuk mengubah
ciphertext kembali ke plaintext disebut dekripsi (decryption) atau decipherment.
Kriptografi memerlukan parameter untuk proses konversi yang dikendalikan oleh
beberapa kunci. Kriptografi saat ini telah menjadi salah satu syarat penting dalam
keamanan teknologi informasi terutama dalam pengiriman pesan rahasia.
Beberapa istilah yang harus diketahui yaitu:
1. Pesan, Plainteks, dan Cipherteks
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Pesan dapat berupa data atau informasi yang dikirim (melalui
saluran telekomunikasi atau sejenisnya). Pesan yang tersimpan tidak hanya
berupa teks, tetapi juga berbentu citra (mage), suara/bunyi (audio), atau
berkas biner lainnya. Agar pesan tidak dapat dimengerti maknanya oleh
pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat
dipahami.
2. Enkripsi dan Dekripsi

6
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi
(encryption). Sedangkan proses mengembalikan cipherteks menjadi
plainteks semula dinamakan dekripsi (decryption).
3. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering
dan deciphering. Konsep matematis yang mendasari algoritma kriptografi
adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemn-
elemn plainteks dan himpunan yang berisi cipherteks. Dalam kriptografi
modern, enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-
elemen antara kedua himpunan tersebut dalam hal ini algoritma tidak lagi
dirahasiakan, tetapi kunci harus dijaga kerahasiannya. Kunci adalah
parameter yang digunakan untuk transformasi enciphering dan deciphering.
Keamanan algoritma kriptografi diukur dari banyaknya kerja yang
dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa
mengetahui kunci yang digunakan (Munir, 2006).

Gambar 2.1 Skema Enkripsi dan Dekripsi


4. Sistem Kriptografi
Sistem kriptografi (Cryptosystem) adalah kumpulan yang terdiri dari
algoritma kriptografi, semua plainteks dan cipherteks juga kunci. Di dalam
sistem kriptografi, cipher hanyalah salah satu komponen saja.
5. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditansmisikan. Tujuan penyadap adalah untuk mendapatkan
informasi sebanyak-bnayknya mengenai sistem kriptografi yang digunakan

7
untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama
lain peyadap: enemi, adversary, intruder, interceptor, bad guy.
6. Kriptanalisis dan Kriptologi
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang
berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan
seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui
kunci yang digunakan. Pelakunya disebut kriptanalisis. Jika seorang
kriptografer (cryptographer) mentransformasikan plainteks menjadi
cipherteks dengan suaatu algoritma dan kunci maka sebaliknya seorang
kripatanalisis berusaha untuk memecahkan cipherteks tersebut untuk
menemukan plainteks atau kunci. Kriptologi (cryptologi) adalah studi
mengenai kriptografi dan kriptanalisis. Baik kriptografi dan kriptanalisis
keduanya saling berkaitan (Munir, 2006).

2.1.1 Jenis – Jenis Kriptografi


Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang
dipakainya:

1. Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan


dekripsinya). Ini adalah jenis kriptografi yang paling umum dipergunakan.
Kunci untuk membuatpesan yang disandikan sama dengan kunci untuk
membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya
harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci
tersebut, termasuk pihak-pihak yang tidak diinginkan, dapat membuat dan
membongkar rahasia ciphertext. Problem yang paling jelas disini terkadang
bukanlah masalah pengiriman ciphertext-nya, melainkan masalah
bagaimana menyampaikan kunci simetris tersebut kepada pihak yang
diinginkan.
2. Algoritma Asimetri (menggunakan kunci yang berbeda untuk enkripsi dan
dekripsi).
Algoritma asimetri sering juga disebut dengan algoritma kunci publik,
dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan
dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian,
yaitu:

8
1. Kunci umum (public key): kunci yang boleh diketahui semua
orang(dipublikasikan).
2. Kunci rahasia (private key): kunci yang dirahasiakan (hanya boleh
diketahui olehsatu orang saja). Kunci –kunci tersebut berhubungan
satu sama lain. Dengan kunci public orang dapat mengenkripsi pesan
tetapi tidak bisa mendekripsinya. Hanya orang yang memiliki kunci
rahasia yang dapat mendekripsi pesan tersebut.
3. Hash Function
Fungsi HASH adalah fungsi yang menerima masukan string yang
panjangnya sembarang dan mengonversinya menjadi string keluaran
yang panjangnya tetap (fixed), yang umumnya berukuran jauh lebih
kecil dari pada ukuran semula.
Pada tugas akhir ini penulis menerapkan algoritma simetri pada aplikasi
yang dibuat ini, untuk enkripsi plaintext dan dekripsi ciphertext menggunakan
algoritma Vernam cipher dan RC4 sehingga kunci yang digunakan harus sama
untuk enkripsi dan dekripsi.

2.1.2 Tujuan Kriptografi


Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk
memberi layanan keamanan merahasiakan data untuk menjaga agar pesan tidak
dapat dibaca oleh pihak – pihak yang tidak berhak. Penulis menggunakan
algoritma simetri yang artinya menggunakan kunci yang sama sedangkan
algoritmanya menggunakan algoritma Vernam cipher yang dikombinasikan
dengan algoritma RC4 oleh penulis.

2.2 Algoritma Vernam Cipher


Vernam cipher ditemukan oleh Gilbert Sandford Vernam (1890-1960) yang
juga seorang penemu stream cipher pada tahun 1917. Vernam berkerja di suatu
perusahaan bernama Bell Labs, dia memiliki hak paten yang menjelaskan tentang
sebuah cipher dengan kunci yang telah disiapkan pada sebuah pita kertas,
kemudian dikombinasikan dengan sebuah plaintext untuk menghasilkan sebuah
pesan ciphertext yang dapat ditransmisikan. Pita yang sama kemudian digunakan
pula untuk mendekripsikan ciphertext.

9
Vernam cipher merupakan stream cipher yang didefenisikan pada sebuah
alfabet. Sebuah pesan binary M1, M2, M3, ..., Mt dioperasikan dengan kunci
string binary K1, K2, K3, ..., Kt yang memiliki panjang yang sama untuk
menghasilkan sebuah string ciphertext C1, C2, C3, ..., Ct.
Rumus dasar untuk menghitung vernam cipher dalam mode binary dapat di
tuliskan sebagai berkut (Pratika Sari Eka, 2018):
𝐶𝑖 = 𝑃𝑖 + 𝐾𝑖 (𝑚𝑜𝑑 𝑛) … … … … … … … … … … … … … … … … … … … … … . . . .
(2.1)

Keterangan :

Ci = Cipherrtext

Pi = Plaintext Ki = Kunci n = Banyaknya

jumlah karakter yang digunakan

Dimana Ci adalah digit binary dari ciphertext, Pi adalah digit binary dari
plaintext, sedangkan Ki adalah bit binary dari kunci, dan + adalah operasi
penjumlahan.

Secara matematis proses enkripsi plaintext (M) menjadi ciphertext (C)


menggunakan kunci rahasia (k) dapat dinyatakan sebagai berikut:

𝐶 = 𝑀 + 𝑘 (𝑚𝑜𝑑 𝑛) … … … … … … … … … … … … … … … … … … … . . … … … .
(2.2)

Keterangan :

C = Ciphertext M = Plaintext k = Kunci n =

Banyaknya jumlah karakter yang digunakan

Proses dekripsi ciphertext (C) menjadi plaintext (P) menggunakan kunci


rahasia (k) dapat dinyatakan sebagai berikut:
𝑀 = 𝐶 + 𝑘 (𝑚𝑜𝑑 𝑛) … … … … … … … … … … … … … … … … … … … … … … . . .
(2.3)

Keterangan :

M = Plaintext C = Ciphertext k = Kunci n =

Banyaknya jumlah karakter yang digunakan

10
Oleh karena operasi penjumlahan modulo berdasarkan nanjang “n” maka
persamaan rumus enkripsi diatas menggunakan operator XOR dapat ditulis sebagai
berikut:

𝐶𝑖 = 𝑃𝑖 ⊕ 𝐾𝑖 … … … … . . … … … … … … … … … … … … … … … … … … … … … …
(2.4)

Dimana:

𝐶𝑖 : ciphertext

𝑃𝑖 : plaintext 𝐾𝑖

: key

Dan proses untuk melakukan dekripsi menggunakan persamaan sebagai berikut:

𝑃𝑖 = 𝐶𝑖 ⊕ 𝐾𝑖 … … … … . . … … … … … … … … … … … … … … … … … … … … … …
(2.5)

Dimana:

𝑃𝑖 : plaintext

𝐶𝑖 : ciphertext

𝐾𝑖 : key

2.3 Algoritma Rivest Cipher 4 (RC4)


Rivest Cipher 4 (RC4) merupakan algoritma enkripsi stream cipher yang
dirancang oleh Ron Rivest pada tahun 1983. Proses pembuatan keystream dari
RC4 terbagi atas dua proses yaitu key-scheduling dan pseudo-random generation
(Alvarez dan Zamora, 2015).
RC4 Stream Cipher terdiri atas tahapan, antara lain:
1. Random Number Generator akan diambil sebuah nilai yang akan
dijadikan “seed”. Kemudiandibangkitkan nilai random berdasarkan
nilai ”seed”ni.
2. Inisialisasi S-Box Pada tahapan ini, S-Box akan diisi dengan nilai
sesuai indeksnya untuk mendapatkan S-Box awal.

11
Proses inisialisasi S-Box (Array S):
For i = 0 to 255
S[i]= i
Keterangan: i:
Indeks S[i]:
nilai indeks
3. Menyimpan key dalam key byte array. Pada tahapan ini, key (key)
yang akan kita gunakan untuk mengenkripsi atau dekripsi akan
dimasukkan ke dalam array berukuran 256 byte hanya sekali saja,
kemudian sisa array lainnya akan diisikan dengan nilai random yang
dibangkitkan oleh mesin seluruh array terisi.
Proses inisialisasi S-Box (Array K):
Array Key // Array dengan panjang key “length”.
For i= 0 to 255 K[i]=
Key [i mod length]
Keterangan:
Key: array kunci
K[i]: nilai kunci
4. Permutasi pada S-Box. Pada tahapan ini, akan dibangkitkan nilai
pseudorandom yang akan dijadikan aturan untuk permutasi pada
SBox.
Langkah pengacakan S-Box:
i= 0 ; j= 0 for i= 0 to 255
{
j = ( j + S[i] + K[i] ) mod n.... ..........................................................(2.6)
swap S[i] dan S[j]............................................................................ (2.7)
Keterangan : i dan j:
memberi nilai inisial n:
array panjang teks
5. Pada tahapan ini akan dihasilkan nilai pseudorandom yang akan
dikenakan operasi XOR untuk menghasilkan ciphertext ataupun
sebaliknya yaitu untuk menghasilkan plaintext.
Membuat pseudorandom byte:

12
i = (i+1) mod n..................................................................................
(2.8) j = (j+S[i]) mod
n..............................................................................(2.9) swap S[i]dan
S[j] ...........................................................................(2.10) t = (S[i]
+S[j]) mod n.......................................................................(2.11)
K = S[t]
Keterangan :
t: kunci yang dihasilkan
n: array panjang teks
6. Byte K di-XOR-kan dengan plaintext untuk menghasilkan ciphertext
atau di-XOR-kan dengan ciphertext untuk menghasilkan plaintext.

2.4 Android
Android merupakan sebuah sistem operasi pada handphone yang bersifat
terbuka dan berbasis pada sistem operasi Linux. Android bisa digunakan oleh
setiap orang yang ingin menggunakannya pada perangkat mereka. Android
menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi
mereka sendiri yang akan digunakan untuk bermacam peranti bergerak. Awalnya,
Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak
untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open
Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile,
dan Nvidia (Nasruddin Safaat h, 2012).
Dengan demikian penulis dapat mengartikan android adalah sistem operasi
untuk telepon seluler berbasis Linux. Android juga menyediakan platform terbuka
bagi para pengembang untuk membangun aplikasi yang dapat dijalankan di
berbagai macam telepon seluler.

2.4.1 Arsitektur Sistem Operasi Android


Arsitektur sistem terdiri atas 5 layer, tetapi penulis menggunakan 3 layer.
Layer – layer tersebut adalah Layer Kernel, Layer Runtime, dan Layer Aplikasi
atau Widget.

13
Gambar 2.2 Arsitektur Sistem Operasi Android (Burnette, 2010)

1. Layer Kernel
Sistem operasi Android dikembangkan dari GNU / kernel Linux, diciptakan
oleh Linus Torvald ketika ia masih menjadi mahasiswa di Universitas
Helsinki pada tahun 1991. Android dapat dimasukkan ke berbagai
perangkat, hal ini karena GNU / Linux mendukung kernel yang memiliki
lapisan abstraksi perangkat keras. Selain itu, dengan GNU / kernel Linux
juga mendukung manajemen memori, manajemen proses, jaringan dan jenis
servis lainnya.
2. Layer Runtime
Lapisan di atas kernel adalah Android runtime, termasuk mesin virtual
Dalvik (Dalvik VM) dan library inti Java. Dalvik VM adalah implementasi
Java dari Google, dioptimalkan untuk perangkat mobile. Semua kode yang
ditulis untuk Android akan ditulis di Java dan dijalankan dalam Virtual
Machine. Dalvik berbeda dari Java tradisional dalam dua hal penting:
1. Dalvik VM menjalankan .dex file, yang dijabarkan pada waktu
kompilasi dari standar file .class dan .jar. File .dex adalah lebih
kompak dan efisien daripada file .class, suatu pertimbangan penting
untuk memori terbatas dan perangkat bertenaga baterai yang berbasis
Android.
2. Library Java core yang datang dengan Android berbeda dari pustaka
Java Standard Edition (Java SE) dan Java Mobile Edition (Java ME).
3. Layer Aplikasi dan Widgets

14
Lapisan teratas dalam diagram arsitektur Android adalah Applications and
Widgets. Applications adalah program yang dapat mengambil alih seluruh
layar dan berinteraksi dengan pengguna. Di sisi lain, Widget (kadang-
kadang disebut gadget), hanya beroperasi di sebuah persegi panjang kecil
dari aplikasi layar Home. (Burnette, 2010).

2.4.2 Application Programming Interface (API) Android


Berikut adalah beberapa API utama yang disediakan oleh Android,
yaitu API untuk manipulasi Graphical User Interface (GUI) dan manipulasi
grafik (Fifin, 2012).
1. Graphical User Interface (GUI)
Package android.view menyediakan berbagai kelas-kelas yang akan
digunakan untuk menangani screen, layout, dan interaksinya dengan
pengguna.
2. Manipulasi Grafik
Package android.graphics menyediakan manipulasi grafik low-level
seperti kanvas, point, pewarnaan, dan manipulasi bentuk pada screen.
Penulis dapat mengambil kesimpulan bahwa didalam android membutuhkan
Application Programming Interface (API) untuk menangani screen, layout,
interaksi dengan pengguna dan dapat mendesain aplikasi dengan mudah.

2.5 Pengujian Enkripsi dan Dekripsi


Pada penelitian yang dilakukan harni kusniyanti pada tahun 2018 bahwa
terdapat dua pengujian yaitu pengujian Black Box testing dan tabel.
2.5.1 Pengujian Black Box
Pengujian Black Box merupakan metode pengujian perangkat lunak yang tes
fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja.
Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni aplikasi apa yang
seharusnya dilakukan. Didalam pengujian ini terdapat beberapa skenario yaitu
skenario pengujian, test case, hasil pengujian, dan kesimpulan.
Pengujian ini dimaksudkan untuk mengetahui apakah fungsi-fungsi,
masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang
dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang

15
bersifat mencoba semua fungsi dengan memakai perangkat lunak apakah sesuai
dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan
pengujian Black Box testing harus dibuat dengan kasus benar dankasus salah.
Beberapa kata kunci dalam pengujian perangkat lunak yang dapat
diperhatikan, yaitu (Simarmata, 2009):
1. Dinamis
Pengujian perangkat lunak dilakukan pada masukan yang bervariasi.
Masukan ini ditentukan sebelum pengujian dilakukan dengan batasan yang
disesuaikan dengan kemampuan perangkat lunak. Masukan tidak harus
sesuatu yang dimungkinkan terjadi pada penggunaan program lebih lanjut,
melainkan meliputi keseluruhan batasan yang dapat dijangkau perangkat
lunak dan dilakukan pemercontohan (sampling) secara acak untuk proses
pengujian.
2. Terbatas
Meskipun pengujian dilakukan pada perangkat lunak sederhana sehingga
rumit sekalipun, pengujian dilakukan dengan memenuhi batasan-batasan
tertentu sesuai dengan kemampuan program. Batasan ini juga diberlakukan
pada masukan-masukan yang dipilih untuk pengujian. Tidak semua
kemungkinan masukan diujika pada perangkat lunak karena akan memakan
waktu yang cukup panjang mengingat begitu banyaknya kemungkinan yang
bisa terjadi. Untuk mengatasi hal ini, pemilihan masukan-masukan pada
proses pengujian secara acak yang diperkirakan mampu memenuhi
kebutuhan pengujian perangkat lunak akan dilakukan.
3. Tertentu
Pengujian dilakukan dengan batasan tertentu disesuaikan dengan harapan
pada fungsi, respon, dan karakteristik perangkat lunak tersebut. Batasan
tersebut akan disesuaikan dengan teknik-teknik pengujian yang ada.
Pemilihan kriteria pengujian yang paling tepat merupakan hal yang
kompleks. Dalam praktiknya, analisis risiko pengujian dan pengalaman
terhadaop pengujian-pengujian sejenis akan diperlukan.
4. Harapan
Kata kunci ini memiliki keadaan-keadaan yang diharapkan, baik berupa
respon sistem terhadap masukan maupun karakteristik responnya. Dalam hal

16
ini, batasan-batasan hasil pengujian yang diharapkan harus ditentukan.
Dengan demikian, dapat diketahui apakah perangkat lunak tersebut telah
memenuhi hasil pengujian yang diharapkan atau memerlukan pembenahan
kembali, baik berupa perbaikan maupun pengembangan perangkat lunak.

Dapat dilihat pada gambar 2.2 dibawah ini merupakan contoh sederhana
gambar tabel Black Box testing:

Gambar 2.3 Contoh Gambar Tabel Black Box Testing

2.5.2 Pengujian Enkripsi dan Dekripsi


Di dalam pengujian ini terdapat beberapa poin yang diuji yaitu lama proses
enkripsi dan dekripsi, kerusakan data, dan ukuran file enkripsi maupun dekripsi.
Pengujian ini dilakukan untuk mengetahui Kinerja sistem secara keseluruhan yang
berfungsi untuk mengetahui proses enkripsi dan deskripsi pada aplikasi dengan
hasil yang diharapkan. Tes kinerja sistem yang dilakukan yaitu dengan cara
pengujian secara langsung pada aplikasi.
Berikut ini merupakan contoh tabel uji enkripsi, dapat dilihat pada gambar
2.3 dibawah ini:

Gambar 2.4 Contoh Tabel Pengujian Enkripsi (Muhammad Eka Putra, 2017)

17
Berikut ini merupakan contoh tabel uji dekripsi, dapat dilihat pada gambar
2.4 dibawah ini:

Gambar 2.5 Contoh Gambar Uji Dekripsi (Muhammad Eka Putra, 2017)

2.6 Metode Waterfall


Waterfall adalah model klasik yang bersifat sistematis, berurutan dalam
membangun software. Nama model ini sebenarnya adalah “Linear Sequential
Model”. Model ini sering disebut juga dengan “classic life cycle” atau metode
waterfall. Model ini termasuk ke dalam model generic pada rekayasa perangkat
lunak dan pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970
sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak
dipakai dalam Software Engineering (SE). Model ini melakukan pendekatan
secara sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap
yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.

Gambar 2.6 Waterfall (Pressman, 2015)

Waterfall dianggap pendekatan yang lebih cocok digunakan untuk proyek


pembuatan sistem baru dan juga pengembangan software dengan tingkat resiko
yang kecil serta waktu pengembangan yang cukup lama. Tetapi salah satu
kelemahan paling mendasar adalah menyamakan pengembangan hardware dan
software dengan meniadakan perubahan saat pengembangan. Padahal, error
diketahui saat software dijalankan, dan perubahan-perubahan akan sering terjadi.

18
Keuntungan menggunakan metode waterfall adalah prosesnya lebih
terstruktur, hal ini membuat kualitas software baik dan tetap terjaga. Dari sisi user
juga lebih menguntungkan, karena dapat merencanakan dan menyiapkan
kebutuhan data dan proses yang diperlukan sejak awal. Penjadwalan juga menjadi
lebih menentu, karena jadwal setiap proses dapat ditentukan secara pasti.
Sehingga dapat dilihat jelas target penyelesaian pengembangan program. Dengan
adanya urutan yang pasti, dapat dilihat pula perkembangan untuk setiap tahap
secara pasti. Dari sisi lain, model ini merupakan jenis model yang bersifat
dokumen lengkap sehingga proses pemeliharaan dapat dilakukan dengan mudah.

19

Anda mungkin juga menyukai