BAB 2
LANDASAN TEORI
2.1. Kriptografi
2.1.1. Definisi Kriptografi
Kriptografi adalah ilmu atau metode yang memungkinkan informasi yang akan dikirim aman sehingga dengan cara ini orang yang dapat memperoleh informasi ini adalah penerima pesan yang ditujukan (Purnama & Rohayani, 2015). 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). Dalam kriptografi, nama lain untuk pesan adalah plainteks (plaintext). 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) (Singh. 2015). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext). Ciphertext harus dapat ditransformasikan kembali menjadi plaintext semula agar pesan yang dikirim bisa dibaca oleh penerima. 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 Chipertext Plaintext
Gambar 2.1 Skema proses enkripsi dan dekripsi
Pada proses enkripsi, masukan berupa pesan asli (plaintext) dan menghasilkan keluaran berupa pesan rahasia (ciphertext). Pada proses dekripsi, masukan berupa ciphertext dan menghasilkan keluaran berupa plaintext yang sama dengan
plaintext sebelum dienkripsi (Munir, 2006).
2.1.2. Komponen Kriptografi
Dalam kriptografi terdapat beberapa istilah penting (Akbar. 2015) antara lain :
1. Pesan, Plaintext, dan Ciphertext
Pesan merupakan data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plaintext. Pesan dapat berupa data atau informasi yang dikirim atau yang disimpan dalam media penyimpanan. Pesan yang tersimpan bisa berbentuk teks, citra (image), suara/bunyi (audio) dan video. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain maka, pesan dapat disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut ciphertext.
2. Pengirim dan Penerima
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitasnya yang lain. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit, dan sebagainya.
3. Enkripsi dan Dekripsi
Proses menyandikan pesan asli (plaintext) menjadi pesan tersandi (ciphertext) disebut enkripsi (encryption) sedangkan proses untuk mengembalikan pesan
tersandi (ciphertext) menjadi plaintext semula dinamakan dekripsi (decryption).
4. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan
5. Sistem kriptografi
Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) terdiri dari algoritma kriptografi, semua plaintext ,ciphertext dan kunci.
6. Penyadap (eavesdropper)
Penyadap merupakan orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptogafi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan ciphertext. Nama lain penyadap : enemy, adversary, intruder, interceptor, bad guy.
7. Kriptanalisis
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis.
2.1.3. Tujuan Kriptografi
Ada beberapa tujuan utama kriptografi yang terkait dengan isu keamanan data (Mollin, R. A. 2007) yaitu:
1. Confidentiality
Memberikan jaminan kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi.
2. Message Integrity
Memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mengalami perubahan dari saat ia dibuat sampai saat ia dibuka.
3. Nonrepudiation
4. 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.
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 adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Wandani, 2012). Bila pesan dikirim dengan algoritma ini, si penerima pesan harus tahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.
Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat
melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5,
Kasumi dan lain-lainnya. Skema kriptografi simetris dapat dilihat pada Gambar
2.2.
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
Algoritma Enkripsi
Algoritma Dekripsi
Kunci Rahasia
ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm).
2.1.4.2. Algoritma Asimetris
Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key. Public key dan private key harus saling berpasangan secara matematis. Dengan
memberikan public key, pembuat kunci berhak memberikan dan mendapatkan public key agar pesan aman dan hanya bisa dibaca oleh si pembuat kunci. Dalam
kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia. Untuk Skema Kriptografi Asimetris dapat dilihat pada gambar 2.3
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,
Ciphertext Algoritma
Enkripsi
Plaintext
Plaintext Algoritma
Dekripsi
karena pihak yang tidak berkepentingan tidak akan dapat mendekripsi pesan tersebut, karena tidak memiliki kunci privat.
2.2. Operasi dan Teknik
2.2.1. Operasi XOR (Ekslusive OR)
XOR merupakan operasi Exclusive OR yang dilambangkan dengan tanda “”.
Operasi Xor merupakan operasi logika bitwise yang bekerja dengan
membandingkan dua buah bit (0 dan 1) yang apabila pada salah satu bit nya bernilai 1, maka hasil akhir operasi Xor tersebut adalah 1. Namun, bila kedua bit yang akan dibandingkan bernilai 0 atau keduanya bernilai 1 maka hasil akhir operasi Xor tersebut adalah 0 (Ali. 2014). Aturan yang berlaku untuk operasi Xor dapat dilihat pada tabel berikut:
A B AB
1 1 0
1 0 1
0 1 1
0 0 0
Tabel 2.1. operasi Xor (Shashank. 2015)
Jika nilai A di-Xor-kan dengan nilai B sebanyak 2 (dua) kali, maka akan didapatkan nilai A kembali. Karena sifat istimewa yang dimiliki operasi Xor tersebut sehingga operasi Xor cenderung dipakai dalam proses enkripsi dan
dekripsi yang memiliki algoritma yang sama. Contoh operasi XOR:
1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1
Berikut ini adalah contoh Enkripsi menggunakan operasi XOR:
jika ingin mengenkripsi kata “NURHASANAH” (Plaintext). Diketahui kunci
pengirim yaitu K= 00001001. Maka enkripsi dapat dilihat pada Tabel 8.2 berikut ini:
Tabel 2.2. Proses Perhitungan Enkripsi Menggunakan XOR
Plaintext (P) ASCII Biner C = (P K) Ciphertext (C)
N 78 01001110 01000111 01000111
U 85 01010101 01011100 01011100
R 82 01010010 01011011 01011011
H 72 01001000 01000001 01000001
A 65 01000001 01001000 01001000
S 83 01010011 01011010 01011010
A 65 01000001 01001000 01001000
N 78 01001110 01000111 01000111
A 65 01000001 01001000 01001000
H 72 01001000 01000001 01000001
Pada tabel 2.2 didapatlah hasil enkripsi berupa Ciphertext yaitu “01000111 01011100 01011011 01000001 01001000 01011010 01001000 01000111
01001000 01000001”. Selanjutkan untuk mengembalikan pesan aslinya, maka
Ciphertext harus didekripsi dengan kunci yang sama, sehingga didapatlah hasil dekripsi pada tabel berikut:
Tabel 2.3. Proses Perhitungan Dekripsi Menggunakan XOR
Ciphertext (C) P=CK ASCII Plaintext (P)
01000111 01001110 78 N
01011100 01010101 85 U
01011011 01010010 82 R
01000001 01001000 72 H
01001000 01000001 65 A
01011010 01010011 83 S
01001000 01000001 65 A
01000111 01001110 78 N
01001000 01000001 65 A
Pada Tabel 2.3 ditunjukkan bahwa hasil dekripsi sesuai dengan plaintext sebelum dienkripsi yaitu NURHASANAH. Itu berarti penggunaan operasi XOR memenuhi parameter keutuhan data.
2.2.2. Teknik Transposisi Segitiga
Teknik transposisi segitiga memiliki pola pada baris pertama dimulai dari satu karakter dan baris selanjutnya bertambah 2 karakter dari baris sebelumnya. Bentuk ini memberi pola bilangan ganjil baris pertama 1 karakter, baris kedua 3 karakter, baris ketiga 5 karakter dan selanjutnya. Pola ini tergantung banyak digit dari plaintext yang akan ditransposisikan. Untuk enkripsi, pola ini ditulis per baris
dimulai dari baris paling atas, kemudian dibaca per kolom yang dimulai dari kolom paling kiri untuk menghasilkan ciphertext. (Department of The Army, 1990). Berikut contoh Transposisi Segitiga:
Diberikan plaintext : NURHASANAH Maka hasil Transposisi yang didapat adalah
N
U R H
A S A N A
H # # # # # #
Gambar 2.4. Enkripsi Transposisi segitiga
Dari gambar 2.4 dapat dilihat hasil transposisi yang dilakukan dengan plaintext yang diberikan. Jika karakter tidak memenuhi semua kolom pada baris terakhir maka akan dimasukkan karakter # sebagai pengisinya. Untuk membaca hasil transposisi terlebih dahulu dibaca dari kolom paling kiri, sehingga hasil yang
didapat adalah “HA#US#NRA#HN#A##”.
N
U R H
A S A N A
H # # # # # #
Gambar 2.5. Dekripsi Transposisi segitiga
Dan hasilnya adalah NURHASANAH######. Dan setiap karakter “#” akan dihapus dari plaintext sehingga menghasilkan NURHASANAH. Itu berarti penggunaan teknik Transposisi segitiga memenuhi parameter keutuhan data.
2.3. File Citra
Citra Digital adalah representasi dari sebuah citra dua dimensi sebagai sebuah kumpulan nilai digital yang disebut elemen gambar atau piksel. Piksel adalah elemen terkecil yang menyusun citra dan mengandung nilai yang mewakili kecerahan dari sebuah warna pada sebuah titik tertentu. Citra juga merupakan salah satu bentuk multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Citra memiliki beberapa jenis format yaitu JPG, PNG, Bitmap, GIF dan lain-lain. Diantara multimedia lainnya, citra sangat rentan untuk disalah gunakan seperti diduplikasi, dimodifikasi bahkan dipalsukan. Maka dari itu keamanan suatu citra sangat dibutuhkan.
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 (Kadir, 2013).
2.3.1. Citra JPEG
Grayscale. Tetapi tidak mampu menampilkan citra dengan latar belakang transparan (luca, 2014).
2.4 Android
Android adalah suatu 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). Android merupakan sistem operasi open source. Ada empat keuntungan dari sistem operasi open source. Keuntungan pertama, sistem operasi ini gratis. Kedua, semua orang
bebas memodifikasi sistem yang ada. Ketiga, pengguna tidak harus menggunakan perangkat lunak berbayar yang hanya bisa bersinergi dengan perangkat lunak berbayar yang lain dari perusahaan yang sama. Keempat, banyaknya orang yang ikut mengembangkan sistem membuat sistem operasi open source selalu diperbaharui, dan sistem keamannnya pun lebih baik (Asror, 2015).
Menurut Safaat & Nazruddin (Shabara, 2015), Android merupakan sebuah sistem operasi berbasis Linux yang dirancang untuk perangkat seluler layar sentuh
seperti smartphone atau komputer tablet. Android berjalan di dalam Dalvik Virtual Machine (DVM) bukan di Java Virtual Machine (JVM). Sebenarnya DVM memiliki banyak kesamaan dengan Java Virtual Machine, seperti Java ME (Java
Mobile Edition), tetapi Android menggunakan Virtual Machine sendiri yang dikustomisasi dan dirancang untuk memastikan bahwa beberapa fitur berjalan lebih efisien pada perangkat mobile.
2.5. Penelitian Relevan
Berikut ini beberapa penelitian yang terkait dengan algoritma XOR dan Algoritma Transposisi Segitiga:
1. Liza Alfira Ali (2014) dalam skripsi yang berjudul Analisis dan Implementasi Algoritma Exclusive OR Least Significant Bit untuk Penyisipan File Gambar
operasi logika XOR serta dihasilkannya citra stego XOR. Sedangkan pada proses penyisipan dengan menggunakan algoritma Least Significant Bit (LSB) sama halnya dengan algoritma sebelumnya mengubah citra sisipan maupun citra cover kedalam bit biner RGB, tetapi proses penyisipannya hanya mengganti nilai bit terakhir pada citra cover dengan nilai bit citra yang akan disipkan satu per satu secara berurutan serta dihasilkannya citra stego LSB. Pengamanan hasil sisipan citra itu dengan menggunakan password yang disisipkan pada bit terakhir yaitu titik (299,299) pada citra stego. Pada hasil pengujian terlihat secara jelas bahwa proses penyisipan dengan algoritma LSB lebih baik dari algoritma XOR yang memiliki kerusakan yang lebih banyak diketahui berdasarkan hasil nilai MSE yang lebih tinggi dan hasil nilai PSNR yang rendah pada algoritma XOR.
2. Brikson Hara Donald Barus (2012) dalam skripsi yang berjudul Perancangan Add On Keamanan Email Mozilla Thunderbird Dengan Algoritma
Kriptografi Xor Dan Three Pass Protocol Serta Kompresi Lempel Ziv Welch.
Dalam skripsi ini, dapat disimpulkan bahwa, Kombinasi algoritma kriptografi
XOR, Pembangkit kunci Linear Congruential Generator, Kompresi data Lempel Ziv Welch (LZW) dan base64 encoding dapat diterapkan menggunakan Three Pass Protocol. Implementasi XOR dengan Three Pass
Protocol memiliki kelemahan, yaitu sangat rentan terhadap serangan jenis chipertext only attack selama pesan dikirimkan mengikuti mekanisme yang terdapat pada Three Pass Protocol.
3. Ismail Fata Lubis (2014) dalam skripsi yang berjudul Implementasi Super Enkripsi Algoritma ElGamal dengan Teknik Transposisi Segitiga. Dalam