BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Pengertian Kriptografi
Perubahan besar yang mempengaruhi keamanan adalah pengenalan sistem terdistribusi dan penggunaan jaringan dan fasilitas komunikasi untuk membawa data antara pengguna terminal dan komputer dan antara komputer dan komputer. Tindakan keamanan jaringan diperlukan untuk melindungi data selama transmisi (Shrivastava, 2016). Tindakan tersebut dinamakan kriptografi.
Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengindentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital (fingerprint). (Ariyus, 2008).
Berikut ini adalah istilah-istilah yang digunakan dalam bidang kriptografi : a. Plaintext adalah pesan yang hendak dikirim (berisi data asli).
b. Ciphertext adalah pesan yang terenkripsi (tersandi) yang merupakan hasil dari enkripsi.
c. Enkripsi adalah proses pengubahan plaintext menjadi ciphertext.
d. Dekripsi adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal atau asli.
2.1.2 Algoritma Kriptografi
Algoritma dalam kriptografi merupakan sekumpulan aturan (fungsi matematis yang digunakan) untuk proses enkripsi dan proses dekripsi. Dalam beberapa metode kriptografi terdapat perbedaan antara fungsi enkripsi dan fungsi dekripsi.
Konsep matematis yang mendasari algoritma adalah relasi antara himpunan, yaitu relasi antara himpunan yang berisi elemen-elemen ciphertext. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. Misalkan himpunan plaintext dinotasikan P dan himpunan elemen ciphertext dinotasikan C, maka fungsi E memetakan himpunan P ke himpunan C.
E(P) = C
Dan fungsi dekripsi memetakan himpunan C ke himpunan P D(C) = P
Karena fungsi dekripsi D mengembalikan himpunan C menjadi himpunan P asal, maka algoritma kriptografi harus memenuhi persamaan
D(E(P)) = P
Tingkat keamanan suatu algoritma dalam kriptografi seringkali diukur dari kuantitas proses yang dilakukan dalam suatu fungsi, baik itu fungsi enkripsi maupun fungsi dekripsi. Proses tersebut juga dapat dihubungkan dengan sumber data yang dibutuhkan, Menunjukkan semakin kuat algoritma kriptografi tersebut.
2.1.3 Tujuan Kriptografi
Berikut adalah tujuan adanya kriptografi (Munir, 2006) : 1. Kerahasiaan Data (Confidentiality)
Dengan adanya kriptografi, kerahasiaan data dapat ditingkatkan. Data penting yang dimiliki hanya akan dapat dibuka atau dibaca oleh orang-orang tertentu yang memiliki akses untuk membukanya.
2. Integritas (Integrity)
Data yang benar atau asli tanpa ada rekayasa dari pihak ketiga atau pihak yang tidak memiliki akses terhadap data tersebut.
3. Autentikasi (Authentication)
Autentikasi dilakukan untuk membuktikan data yang dikirim adalah data asli atau data yang benar. Autentikasi mencegah adanya data palsu.
4. Nir-penyangkalan (Non-Repudation)
Nir-penyangkalan adalah salah satu tujuan kriptografi. Dengan ini si pengirim tidak dapat menolak bahwa pesan tersebut benar berasal dari si pengirim.
2.1.4 Jenis-jenis Algoritma Kriptografi
Algoritma kriptografi dibagi dua, yaitu algoritma simetri (menggunakan satu kunci), algoritma asimetri (menggunakan dua kunci berbeda untuk proses enkripsi dan dekripsi)
2.1.4.1 Algoritma Simetris
Dimana kunci yang digunakan pada proses enkripsi dan dekripsi adalah kunci yang sama. Dalam kriptografi kunci simetris dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu berbagi kunci sebelum pesan dikirimkan. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya.
Contoh algoritma simetris, yaitu : Trithemius, Double Transposition Cipher,DES (Data Encryption Standard), AES (Advanced Encryption Standard).(Kamil, 2016) Proses dari skema kriptografi simetris dapat dilihat pada gambar 2.1.
Gambar 2.1. Skema Algoritma Simetris (Kamil, 2016)
Kelebihan kriptografi simetris adalah (Kamil, 2016) :
a. Proses enkripsi atau dekripsi kriptografi simetris membutuhkan waktu yang singkat.
b. Ukuran kunci simetris relative lebih pendek.
c. Otentikasi pengiriman pesan langsung dari ciphertext yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja.
Kelemahan kriptografi simetris adalah (Kamil, 2016) :
a. Kunci simetris harus dikirim melalui saluran komunikasi yang aman, dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
b. Kunci harus sering diubah, setiap kali melaksanakan komunikasi. Apabila kunci tersebut hilang atau lupa, maka pesan tersebut tidak dapat dibuka.
2.1.4.2 Algoritma Asimetris
Berbeda dengan kriptografi kunci simetris, kriptografi kunci public memiliki dua buah kunci yang berbeda pada proses enkripsi dan dekripsinya. Dimana kunci yang digunakan untuk proses enkripsi atau sering disebut public key dan dekripsi atau sering disebut private key menggunakan kunci yang berbeda. Entitas pengirim akan mengenkripsi dengan menggunakan kunci public, sedangkan entitas penerima mendekripsi menggunakan kunci private (Kamil, 2016).
Gambar 2.2. Skema Algoritma Asimetris Kamil, 2016)
Kelebihan kriptografi asimetris adalah (Kamil,.2016) :
a. Hanya kunci private yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan mengirim kunci private sebagaimana kunci simetri.
b. Pasangan kunci private dan kunci public tidak perlu diubah dalam jangka waktu yang sangat lama.
c. Dapat digunakan dalam pengaman pengiriman kunci simetris.
Kelemahan kriptografi asimetris adalah (Kamil, 2016) :
a. Proses enkripsi dan dekripsi umumnya lebih lambat dari algortima simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar.
b. Ukuran ciphertext lebih besar dari plaintext.
c. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris.
2.2 Super Enkripsi
Algoritma kriptografi memberikan keamanan namun tidak menjamin keamanan 100 persen (Mathur, 2015), sehingga diajukan solusi yang dirancang untuk meningkatkan keamanan tersebut, melalui kombinasi penggunaan algoritma kriptografi yang berbeda untuk mengenkripsi pesan. (Araújo, 2015)
Multiple encryption,dimana salah satu contohnya adalah double enkripsi (super enkripsi) adalah proses enkripsi yang dilakukan sebanyak dua kali atau lebih. Pertama enkripsi plaintext menjadi ciphertext, kemudian enkripsi ciphertext itu, mungkin menggunakan cipher lain dan kunci.(Ritter, 2007).
Trithemius Cipher adalah salah satu polyalphabetic sandi yang didesain agar lebih mudah digunakan. Daripada menggunakan kombinasi acak dari huruf alfabet, Trithemius menggunakan sebuah tabel khusus Trithemius (Mollin, 2005).
Tabel 2.1. Tabel Trithemius (Mollin, 2005)
a b c d e f g h i k l m n o p q r s t u w x y z a a b c d e f g h i k l m n o p q r s t u w x y z b b c d e f g h i k l m n o p q r s t u w x y z a c c d e f g h i k l m n o p q r s t u w x y z a b d d e f g h i k l m n o p q r s t u w x y z a b c e e f g h i k l m n o p q r s t u w x y z a b c d f f g h i k l m n o p q r s t u w x y z a b c d e g g h i k l m n o p q r s t u w x y z a b c d e f h h i k l m n o p q r s t u w x y z a b c d e f g i i k l m n o p q r s t u w x y z a b c d e f g h k k l m n o p q r s t u w x y z a b c d e f g h i l l m n o p q r s t u w x y z a b c d e f g h i k m m n o p q r s t u w x y z a b c d e f g h i k l n n o p q r s t u w x y z a b c d e f g h i k l m o o p q r s t u w x y z a b c d e f g h i k l m n p p q r s t u w x y z a b c d e f g h i k l m n o q q r s t u w x y z a b c d e f g h i k l m n o p r r s t u w x y z a b c d e f g h i k l m n o p q s s t u w x y z a b c d e f g h i k l m n o p q r t t u w x y z a b c d e f g h i k l m n o p q r s u u w x y z a b c d e f g h i k l m n o p q r s t w w x y z a b c d e f g h i k l m n o p q r s t u x x y z a b c d e f g h i k l m n o p q r s t u w y y z a b c d e f g h i k l m n o p q r s t u w x z z a b c d e f g h i k l m n o p q r s t u w x y
itu akan bergeser ke kiri sebanyak 1 kali. Tabel memiliki 24 baris dan kolom 24 yang terdiri dari 24 huruf dalam alfabet Latin kecuali huruf j dan v (Mollin, 2005).
Pada proses enkripsi, huruf berikutnya pada plaintext akan digantikan oleh huruf yang relevan dari baris berikutnya pada tabel. Setelah menggunakan baris terakhir, salah satu harus pindah kembali ke baris pertama. Ini berarti bahwa semua huruf pada plaintext berubah sesuai dengan jumlah posisi yang ditentukan oleh baris aktual. Oleh karena itu huruf pertama dienkripsi tanpa pergeseran, huruf kedua dengan pergeseran ditentukan oleh baris kedua (jadi oleh satu posisi), huruf ketiga dengan pergeseran yang ditentukan oleh baris ketiga (jadi oleh dua posisi) dan seterusnya.
Atau, dapat dihitung menggunakan rumus :
Dimana, C : Ciphertext P : Plaintext K : Kunci
n : jumlah huruf yang digunakan
5. 6.
Sehingga, diperoleh Ciphertext : T B O D W F
Berikut adalah contoh proses enkripsi dengan menggunakan Algoritma Trithemius:
Sehingga, diperoleh kembali Plaintext : T A M A R A
2.4 Double Transposition Cipher
Double Transposition Cipher adalah salah satu cipher manual yang digunakan dalam Perang Dunia II oleh kedua belah pihak yang sedang berperang. Cipher ini bahkan lebih aman dibandingkan Double Playfair Cipher.
Cipher ini terdiri dari dua putaran kolom tranposisi, dengan menggunakan 2 buah kunci yang berbeda. Setelah kunci pada putaran pertama ditentukan, kemudian setiap huruf pada kunci diberi nomor sesuai urutan abjad, dan plaintext dibaca per kolom berdasarkan urutan nomornya. Dimana, arah urutan harus ditentukan terlebih dahulu apakah kiri-ke-kanan, atau kanan-ke-kiri, untuk mempermudah apabila terdapat huruf yang sama pada kunci.
Ciphertext yang dihasilkan dari putaran pertama, dienkripsi lagi di putaran kedua dengan cara yang sama, namun menggunakan kunci yang berbeda. Ciphertext yang dihasilkan dari putaran yang kedua, kemudian dibagi ke dalam blok. Dimana, masing-masing blok terdiri dari 5 huruf untuk mempermudah proses transmisi (Salomon, 2005) .
Salah satu syarat proses enkripsi dengan menggunakan cipher ini adalah, tabel yang kita gunakan harus terisi penuh.(Bauer, 2013). Agar tabel yang digunakan bisa terisi penuh, digunakan padding character.
Berikut adalah contoh proses enkripsi dengan menggunakan Double Transposition Cipher :
Plaintext : TUGAS AKHIR KUNCI 1 : JEJE
KUNCI 2 : TAMARA
Enkripsi pertama dengan menggunakan KUNCI 1 : JEJE 3 1 4 2
J E J E T U G A S A K H I R X Q Ciphertext 1 : UAR AHQ TSI GKX
6 1 4 2 5 3 T A M A R A
U A R A H Q T S I G K X
Ciphertext 2 : AS AG QX RI HK UT
Yang kemudian akan ditransmisikan, menjadi : ASAGQ XRIHK UT
Sedangkan untuk contoh proses dekripsi dengan menggunakan Double Transposition Cipher, dimulai dengan menggunakan KUNCI 2 terlebih dahulu, yaitu TAMARA. Dimana, jumlah baris pada tabel ditentukan dari hasil pembagian panjang ciphertext dengan kunci. (Salomon, 2005). Lalu, ciphertext dimasukkan ke dalam tabel berdasarkan jumlah penggalannya sesuai dengan urutan abjad pada kunci yang digunakan.
Ciphertext : ASAGQXRIHKUT 12 Kunci : TAMARA 6
Sehingga, 12 : 6 = 2
6 1 4 2 5 3
T A M A R A U A R A H Q T S I G K X
Hal yang sama dilakukan dengan menggunakan KUNCI 1 yaitu JEJE, sehingga diperoleh hasil sebagai berikut :
3 1 4 2
J E J E T U G A S A K H I R X Q
2.5. Kompleksits Algoritma
Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh: masalah pengurutan (sort), ada puluhan algoritma pengurutan. Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus (efficient). Kemangkusan algoritma diukur dari waktu (time) eksekusi algoritma dan kebutuhan ruang (space) memori.
Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus dari sejumlah algoritma penyelesaian masalah (Wibowo, 2013). Besaran yang digunakan untuk menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma (Azizah, 2013). Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan (n). Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan (n) (Wibowo, 2013).
Kompleksitas waktu asimptotik terdiri dari tiga macam, yaitu (Demaine, 2005): 1. Ω-notation atau Big- Ω (lower bounds)
Gambar 2.3. Grafik Notasi Asimptotik
Gambar 2.3. menunjukan notasi menjadi batas bawah dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) = (g(n)) jika terdapat konstanta positif dan c sedemikian sehingga pada dan di kanan , nilai f(n) selalu berada tepat pada cg(n) atau di atas cg(n) (Azizah, 2013).
Gambar 2.4. Grafik Notasi Asimptotik
sehingga pada dan di kanan , nilai f(n) selalu berada tepat pada g(n), tepat pada g(n), atau di antara g(n) dan g(n) (Azizah, 2013).
Gambar 2.5. Grafik Notasi Asimptotik O
Gambar 2.5. menunjukan notasi O menjadi batas atas dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) = O(g(n)) jika terdapat konstanta positif dan c sedemikian sehingga pada dan di kanan , nilai f(n) selalu berada tepat pada cg(n) atau di bawah cg(n). Komplesitas waktu algoritma biasanya dihitung dengan menggunakan notasi O(g(n)), dibaca “big-O dari g(n)” (Azizah, 2013).
2.6 Android
Android adalah sistem operasi untuk telepon selular yang berbasis linux dan juga berbasisopen source yang menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi baru (Wulandari, 2013). Android awalnya dikembangkanoleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya padatahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler. Android adalah sistem operasi dengan sumber terbuka, dan Google merilis kodenya di bawah Lisensi Apache.
dilakukan untuk menilai keamanan aplikasi mobile. Android, sebagai platform mobile yang dominan dan juga target utama ancaman malware mobile, telah banyak diminati (Sadeghi, 2017).
Kode dengan sumber terbuka dan lisensi perizinan padaAndroid memungkinkan perangkat lunak untuk dimodifikasi secara bebas dan didistribusikan oleh para pembuat perangkat, operator nirkabel, dan pengembang aplikasi. Selain itu,Android memiliki sejumlah besar komunitas pengembang aplikasi yang memperluas fungsionalitas perangkat, umumnya ditulis dalam versi kustomisasi bahasa pemrograman (Wulandari, 2013).
Sejak April 2009, versi Android dikembangkan dengan nama kode yang dinamai berdasarkan makanan pencuci mulut dan penganan manis. Masing-masing versi dirilis sesuai urutan alfabet.
Berikut adalah rangkaian perjalanan android 1. Kerjasama Android Inc. dengan Google Inc. 2. 2007 - 2008 Produk awal Android
3. Android Versi 1.1
4. Android Versi 1.5 (Cupcake) 5. Android Versi 1.6 (Donut) 6. Android Versi 2.0/2.1 (Eclair) 7. Android Versi 2.2 (Froyo) 8. Android Versi 2.3 (Gingerbread) 9. Android Versi 3.0 (Honeycomb) 10. Android Versi 4.0 (ICS)
Gambar 2.6 Gambar Logo Android
2.7 Penelitian yang Relevan
Berikut ini beberapa penelitian terdahulu tentang kriptografi yang berkaitan dengan penelitian yang akan dilakukan oleh penulis :
tersebut tidak menjamin keamanan 100 persen. Sehingga, tidak hanya enkripsi, tapi juga transmisi data melalui jaringan yang
Dengan penetrasi internet dan pesatnya perkembangan teknologi informasi, transmisi teks dan citra yang aman ini mendapat banyak perhatian. Metode enkripsi tradisional hanya bisa menjaga keamanan
informasi. Namun,