BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
Universitas Sumatera Utara BAB 2 LANDASAN TEORI

Kriptografi Modern Part -1

BAB 2 TINJAUAN PUSTAKA

Disusun oleh: Ir. Rinaldi Munir, M.T.

Kriptografi Modern Part -1

BAB Kriptografi

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

Algoritma Kriptografi Modern (Bagian 2)

BAB III ANALISIS DAN DESAIN SISTEM

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB III ANALISA DAN PERANCANGAN. pengamanan file teks dengan menggunakan algoritma triangle chain dan rivest cipher (RC4).

Penerapan Matriks dalam Kriptografi Hill Cipher

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

Pengenalan Kriptografi

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

BAB 2 LANDASAN TEORI

Add your company slogan STREAM CIPHER. Kriptografi - Week 7 LOGO. Aisyatul Karima, 2012

BAB 2 LANDASAN TEORI

Kriptografi Kunci Rahasia & Kunci Publik

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

KRIPTOGRAFI VERNAM CIPHER UNTUK MENCEGAH PENCURIAN DATA PADA SEMUA EKSTENSI FILE

JURNAL KEAMANAN KOMPUTER APLIKASI ENKRIPSI - DEKRIPSI DENGAN ALGORITMA RC2 MENGGUNAKAN JAVA NETBEANS

Kompleksitas Waktu Algoritma Kriptografi RC4 Stream Cipher

ANALISIS ALGORITMA KRIPTOGRAFI RC4 PADA ENKRIPSI CITRA DIGITAL

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Halim Agung 1*, Budiman 1. Jl.Lodan Raya No.2, Jakarta 14430

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

BAB I PENDAHULUAN 1.1. Latar Belakang

Kriptografi. A. Kriptografi. B. Enkripsi

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB I PENDAHULUAN. keamanan, kerahasiaan, dan keotentikan data. Oleh karena itu diperlukan suatu

BAB 3 METODOLOGI PENELITIAN

BAB II TINJAUAN PUSTAKA

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

STUDI & IMPLEMENTASI ALGORITMA TRIPLE DES

BAB I PENDAHULUAN. Kerahasiaan dan keamanan saat melakukan pertukaran. data adalah hal yang sangat penting dalam komunikasi data,

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB IV HASIL DAN UJI COBA

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

BAB I PENDAHULUAN. 1.1 Latar Belakang

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Algoritma Kriptografi Modern

Menggunakan Algoritma Kriptografi Blowfish

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. dari isinya, informasi dapat berupa penting atau tidak penting. Bila dilihat dari sifat

BAB III ANALISA DAN PERANCANGAN

BAB 2 LANDASAN TEORI

ANALISA DAN IMPLEMENTASI ALGORITMA TRIANGLE CHAIN PADA PENYANDIAN RECORD DATABASE

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

Analisa Perbandingan Algoritma Monoalphabetic Cipher Dengan Algoritma One Time Pad Sebagai Pengamanan Pesan Teks

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS DAN DESAIN SISTEM

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Penelitian sebelumnya yang ditulis oleh Alen Dwi Priyanto

IMPLEMENTASI PENGAMANAN DATA ENKRIPSI SMS DENGAN ALGORITMA RC4 BERBASIS ANDROID

Bab 1 PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN , 1.1. Latar Belakang

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN Latar Belakang

BAB II. Dasar-Dasar Kemanan Sistem Informasi

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

ENKRIPSI DATA KUNCI SIMETRIS DENGAN ALGORITMA KRIPTOGRAFI LOKI97

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. Plaintext Ciphertext Plaintext Enkripsi. Dekripsi. Gambar 2.1 Skema proses enkripsi dan dekripsi. Universitas Sumatera Utara

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB III ANALISIS DAN DESAIN SISTEM

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

Studi Perbandingan ORYX Cipher dengan Stream Cipher Standard

KOMBINASI ALGORITMA ONE TIME PAD CIPHER DAN ALGORITMA BLUM BLUM SHUB DALAM PENGAMANAN FILE

PERANCANGAN APLIKASI PENGAMANAN INFORMASI TEKS DENGAN MENGGUNAKAN ALGORITMA KRIPTOGRAFI ALPHA-QWERTY REVERSE

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB 1 PENDAHULUAN Latar Belakang

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

Optimalisasi Beaufort Cipher Menggunakan Pembangkit Kunci RC4 Dalam Penyandian SMS

APLIKASI ENKRIPSI SMS (SHORT MESSAGE SERVICE) MENGGUNAKAN ALGORITMA DATA ENCRYPTION STANDARD (DES) BERBASIS ANDROID

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

PENERAPAN METODA FILE COMPRESSION PADA KRIPTOGRAFI KUNCI SIMETRI

Transkripsi:

BAB 2 LANDASAN TEORI 2.1 Kriptografi Kata Cryptography berasal dari bahasa Yunani yang terdiri dari dua kata yaitu kryptos yang berarti rahasia dan graphein yang berarti tulisan (Mollin, 2007). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain (Ariyus, 2008). 2.1.1 Sejarah kriptografi Kriptografi mempunyai sejarah yang menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu yang diperkenalkan oleh orang-orang Mesir untuk mengirim pesan ke pasukan militer yang berada di lapangan dan supaya pesan tersebut tidak terbaca oleh pihak musuh walaupun kurir pembawa pesan tersebut tertangkap oleh musuh (Ariyus, 2006). 2.1.2 Algoritma kriptografi Algoritma ditinjau dari asal usul kata, kata algoritma mempunyai sejarah yang menarik, kata ini muncul dalam kamus Webster sampai akhir tahun 1957 hanya menemukan kata algorism yang mempunyai arti proses perhitungan dengan bahasa Arab. Algoritma berasal dari nama penulis buku Arab yang terkenal yaitu Abu Ja far Muhammad Ibnu Musa al-khuwarizmi (al-khuwarizmi dibaca oleh orang barat menjadi algorism). Kata algorism lambat laun berubah menjadi algorithm. Definisi terminologinya algoritma adalah urutan langkah-langkah logis untuk penyelesaian masalah yang disusun secara sistematis. Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orangorang yang tidak berhak atas pesan tersebut.

7 Algoritma kriptografi terdiri dari tiga fungsi dasar yaitu: 1. Enkripsi: Enkripsi merupakan hal yang sangat penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan dan terjaga kerahasiannya. Pesan asli disebut plaintext yang dirubah menjadi kode-kode yang tidak dimengerti atau disebut dengan chipertext. 2. Dekripsi: Dekripsi merupakan kebalikan dari enkripsi, pesan yang telah dienkripsi dikembalikan kebentuk asalnya (plaintext) disebut dengan dekripsi pesan. 3. Kunci: Kunci yang dimaksud disini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi, kunci terbagi menjadi dua bagian yaitu kunci pribadi (private key) dan kunci umum (public key). Secara umum fungsi tersebut dapat dilihat pada Gambar 2.1. Plaintext Ciphertext Plaintext Enkripsi Dekripsi Kunci Kunci Gambar 2.1 Proses enkripsi dan dekripsi 2.2 Macam-Macam Algoritma Kriptografi Algoritma kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsi hash (Ariyus, 2008). 2.2.1 Algoritma simetri Algoritma simetri adalah algoritma dimana penyandian kunci enkripsi dan kunci dekripsi bernilai sama. Kunci pada penyandian simetri diasumsikan bersifat rahasia dan hanya pihak yang melakukan enkripsi dan dekripsi yang mengetahui nilainya (Sadikin, 2012). Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci yang sama untuk kegiatan enkripsi dan dekripsi. Algoritma ini sudah ada

8 sejak lebih dari 4000 tahun yang lalu. Bila mengirim pesan dengan menggunakan algoritma ini, si penerima pesan harus diberitahu 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 akan dapat melakukan enkripsi dan dekripsi terhadap pesan. Algoritma yang memakai kunci simetri di antaranya adalah DES, RC2, RC4, RC5, RC6, IDEA, AES, A5, OTP, dan sebagainya (Ariyus, 2008). Proses kriptografi simetri dapat dilihat pada Gambar 2.2. Teks Enkripsi Ciphertext Dekripsi Teks Kunci Rahasia Gambar 2.2 Kriptografi simetri 2.2.2 Algoritma asimetri Algoritma asimetri atau sering juga disebut dengan penyandian kunci publik (public key) adalah algoritma dimana penyandian antara kunci enkripsi dan dekripsi mempunyai nilai yang beda. Kunci enkripsi yang juga disebut dengan kunci publik (public key) bersifat terbuka. Sedangkan, kunci dekripsi yang juga disebut kunci privat (private key) bersifat tertutup/rahasia (Sadikin, 2012). Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci publik orang dapat mengenkripsi pesan tetapi tidak bisa mendekripsinya. Hanya orang yang memiliki kunci rahasia yang dapat mendekripsi pesan tersebut. Algoritma asimetri bisa mengirimkan pesan dengan lebih aman daripada algoritma simetri. Contoh, Alice mengirim pesan ke Bob menggunakan algoritma asimetri. Hal yang harus dilakukan adalah: 1. Bob memberitahukan kunci publiknya ke Alice. 2. Alice mengenkripsikan dengan menggunakan kunci publik Bob. 3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya. 4. Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice.

9 Proses kriptografi asimetri dapat dilihat pada Gambar 2.3. Gambar 2.3 Kriptografi asimetri (Paar, 2010) Algoritma yang memakai kunci public diantaranya adalah: DSA, RSA, DH, ECC, Kriptografi Kuantum, dan lain sebagainya. 2.3 Tipe dan Model Algoritma Kriptografi Pada dasarnya ada dua tipe dan model yang umum digunakan dalam algoritma kriptografi simetri yaitu aliran kode (stream cipher) dan blok kode (block cipher). 2.3.1 Aliran kode Aliran kode (stream cipher) adalah sebuah simetri cipher yang beroperasi bit per bit pada plaintext dimana 1 bit setiap kali transformasi untuk menjadi ciphertext. Aliran kode mengenkripsi teks asli menjadi teks kode bit per bit. Stream cipher umumnya lebih cepat daripada block cipher pada perangkat keras dan juga lebih tepat dalam beberapa kasus wajib (misalnya, dalam beberapa aplikasi telekomukasi) dimana ketika proses pengiriman data memiliki buffering yang terbatas sehingga setiap karakter harus diproses secara individu (van Tillborg, 2011). Stream cipher Pertama kali diperkenalkan oleh Vernam melalui algoritma yang dikenal dengan nama kode Vernam. Kode Vernam diadopsi dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 dan 1). Ciphertext diperoleh dengan melakukan penjumlahan modulo 2 satu bit plaintext dengan satu bit kunci seperti pada persamaan 1. C i = P i + K i mod 2....(1)

10 yang dalam hal ini: P i : bit plaintext K i : bit kunci C i : bit ciphertext 1. Plaintext diperoleh dengan melakukan penjumlahan modulo 2 satu bit ciphertext dengan satu bit kunci seperti pada persamaan 2. P i = (C i K i ) mod 2......(2) 2. Dengan kata lain, kode Vernam adalah versi lain dari kode one-time pad. 3. Oleh karena operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR maka persamaan 1 dapat ditulis seper.ti pada persamaan 3. C i = P i K i......(3) dan proses dekripsi menggunakan persamaan seperti pada persamaan 4. P i = C i K i......(4) Pada stream cipher, bit hanya mempunyai dua buah nilai sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut, berubah atau tidak berubah. Dua keadaan itu ditentukan oleh kunci enkripsi yang disebut aliran bit kunci (keystream). Aliran bit kunci dibangkitkan dari sebuah pembangkit yang dinamakan pembangkit aliran bit kunci (keystream generator). Aliran bit kunci (sering dinamakan running key) di-xor-kan dengan aliran bit-bit plaintext, P 1, P 2,, P i untuk menghasilkan aliran bit-bit ciphertext (Ariyus, 2008). Konsep stream cipher dapat dilihat pada Gambar 2.4. Pengirim Key stream Generator Penerima Key stream Generator Keystream K 1 K 1 Plaintext P 1 Enkripsi C 1 Ciphertext Dekripsi P 1 Plaintext Gambar 2.4 Konsep stream cipher

11 Contoh: misalkan plaintext adalah 110010101 dan aliran bit kunci (keystream) adalah 101001110 maka ciphertext yang dihasilkan yaitu 011011011. Proses tersebut dapat dilihat pada Gambar 2.5. Plaintext (110010101) Keystream Generator Keystream (101001110) Ciphertext (011011011) Secret Key Gambar 2.5. Contoh stream cipher (Smart, 2004) Aliran kode (stream cipher) merupakan kode yang berasal dari hasil XOR seperti pembahasan diatas. Setiap bit plaintext dengan setiap bit kunci. Kunci merupakan kunci utama (kunci induk) yang digunakan untuk membangkitkan kunci acak semu yang dibangkitkan dengan Pseudo-Random Sequence Generator yang merupakan suatu nilai yang nampak seperti diacak tetapi sesungguhnya nilai tersebut merupakan suatu urutan. Secara khusus urutan dari nilai yang dihasilkan oleh RNG (Random Number Generator). Random Number Generator secara umum adalah pseudo-random, yang memberikan inial state atau seed (nilai yang dimasukkan ke dalam state). Seluruh urutan tersebut ditentukan secara menyeluruh. Meskipun demikian jumlah karakteristik yang ditampilkan berasal dari urutan yang acak tersebut. Pseudorandomness menghasilkan urutan yang sama secara berulang-ulang pada penempatan yang berbeda. Kemudian kunci acak semu tersebut diberi operasi XOR dengan plaintext untuk mendapatkan ciphertext. Proses stream cipher dapat dilihat pada Gambar 2.6. Gambar 2.6 Proses stream sipher

12 Keamanan sistem stream cipher bergantung seluruhnya pada pembangkit aliran bit kunci (keystream). Jika pembangkit mengeluarkan aliran bit kunci yang seluruhnya nol maka ciphertext sama dengan plaintext sehingga proses enkripsi menjadi tidak ada artinya. Jika pembangkit mengeluarkan aliran bit kunci dengan pola 16 bit yang berulang maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat keamanan yang tidak berarti. Jika pembangkit mengeluarkan aliran bit kunci yang benar-benar acak (truly random), maka algoritma enkripsinya sama dengan one-time pad dengan tingkat keamanan yang sempurna. Pada kasus ini aliran bit kunci sama panjangnya dengan panjang plaintext, dan mendapatkan aliran kode sebagai unbreakable cipher. Tingkat keamanan stream cipher terletak antara algoritma XOR sederhana dengan one-time pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran kunci bit, maka semakin sulit kriptanalis memecahkan ciphertext-nya (Ariyus, 2008). 2.3.2 Blok kode Blok kode (block cipher) adalah sebuah fungsi enkripsi dengan membagi-bagi data menjadi beberapa blok yang tetap. Generasi sekarang dari block cipher mempunyai ukuran blok 128 bit (16 byte). Block cipher ini mengenkripsi 128 bit plaintext menjadi 128 bit ciphertext sebagai hasilnya. Ukuran plaintext dan ciphertext selalu sama, dan kita sebut ini sebagai ukuran blok pada block cipher (Ferguson, 2010). Blok kode mempunyai banyak aplikasi. Aplikasi tersebut digunakan untuk memberikan layanan confidentiality (kerahasiaan), integritas data atau authentication (pengesahan pemakai), dan juga bisa memberikan layanan keystream generator untuk aliran kode (stream cipher). Misalkan blok plaintext (P) yang berukuran m bit dinyatakan sebagai vektor seperti pada persamaan 5. P = (P i, P 2,, P m )...(5) yang dalam hal ini p i adalah 0 atau 1 untuk i = 1, 2,, m, dan blok ciphertext (C) adalah: C = (C i, C 2,, C m )...(6) yang dalam hal ini c i adalah 0 atau 1 untuk i = 1, 2,, m. Bila plaintext dibagi menjadi n buah blok, barisan blok plaintext dinyatakan pada persamaan 7. (P i, P 2,, P n )...(7)

13 Untuk setiap blok plaintext P i, bit-bit penyusunnya dapat dinyatakan pada persamaan 8. P i = (P i1, P i2,, P im )...(8) Enkripsi dan dekripsi dengan kunci K dinyatakan berturut-turut seperti pada persamaan 9 dan 10. E k P = C...(9) untuk dekripsi, D k C = P...(10) dan fungsi E haruslah fungsi yang berkorespondensi satu-ke-satu, sehingga: E 1 = D...(11) Proses enkripsi dan dekripsi block cipher dapat dilihat pada Gambar 2.7. Enkripsi: Block Plaintext P Dekripsi: Block Ciphertext C P = (p 1, p 2,, p m ) C = (c 1, c 2,, c m ) Key K E Key K D Block Ciphertext C Block Plaintext P C = (c 1, c 2,, c m ) P = (p 1, p 2,, p m ) Gambar 2.7 Proses enkripsi dan dekripsi Block Cipher Contoh: Database di sebuah bank memiliki data INCOME, dienkripsi menjadi satu blok, itu berarti semua rekening memiliki blok enkripsi yang sama. Misalnya, database bank memilki dua record: MEMBER: HOLLY INCOME $100,000 MEMBER: HEIDI INCOME $100,000 Hasil enkripsinya menjadi: ABCQZRME GHQRMSIB CTXUVYSS RMGRPFQN ABCQZRME ORMPABRZ CTXUVYSS RMGRPFQN Penyerang bisa menyimpulkan bahwa record yang ada di dalam database tersebut memiliki nilai yang sama. Kesimpulan itu diambil dari kata CTXUVYSS

14 RMGRPFQN. Serangan dilakukan terhadap block cipher dengan melihat posisi dan ukuran blok. Untuk meminimalkan serangan terhadap block cipher digunakan beberapa cara agar posisi dan ukurannya menjadi tidak sama. Banyak mode block cipher yang dapat dipakai. Mode operasi block cipher terbagi menjadi empat bagian, antara lain: 1. Mode Electronic Code Book (ECB) 2. Mode Cipher Block Chaining (CBC) 3. Mode Cipher Feed Back (CFB) 4. Mode Output Feed Back (OFB) Dari setiap mode tersebut plaintext dibagi menjadi blok-blok. Misalnya, setiap blok mempunyai nilai 128 bit. Jika terdapat plaintext yang dibagi ke bentuk blok yang mempunyai nilai kurang dari 128 bit maka blok tersebut terlebih dahulu ditambah dengan padding bit (bit tambahan) agar jumlahnya menjadi 128 bit untuk setiap bloknya (Ariyus, 2008). 2.4 Algoritma Kriptografi XOR Algoritma XOR adalah algoritma enkripsi sederhana dengan menggunakan prinsip operator logika XOR (Exclusive-OR). Cara enkripsinya adalah dengan meng-xor-kan plaintext dengan kunci sehingga didapatkan ciphertext-nya. Sebaliknya untuk proses dekripsi adalah dengan meng-xor-kan ciphertext dengan kunci sehingga didapatkan plaintext-nya kembali. Teknik ini beroperasi sesuai prinsip seperti pada Tabel 2.1. Tabel 2.1 Tabel XOR A B Y 0 0 0 0 1 1 1 0 1 1 1 0 Gambar 2.8 Gerbang logika XOR

15 Jika kita berpikir tentang angka 0 dan 1 pada operasi diatas, maka operasi XOR adalah sama dengan pemambahan modulo 2. Dasar algoritma XOR ini didefinisikan sebagai berikut: untuk enkripsi dapat dilihat pada persamaan 12. P K = C......(12) sedangkan untuk dekripsi seperti pada persamaan 13. C K = P.........(13) Kode XOR ini memiliki keuntungan menjadi sangat efisien dan benar-benar simetris dalam arti bahwa enkripsi dan dekripsi adalah fungsi yang sama. Jika K dipilih secara acak dan hanya digunakan sekali, maka algoritma ini dikenal sebagai Vernam onetime pad. Sayangnya, hal ini memerlukan sebuah kunci yang sama panjangnya dengan plaintext, yang membuatnya agak susah untuk diimplementasikan dalam beberapa aplikasi (Hoffstein, 2008). Sebagai contoh Algoritma XOR sederhana diketahui plaintext ILKOM jika ditulis dalam format ASCII 8-bit menjadi 01001001 01001100 01001011 01001111 01001101 dapat dienkripsi dengan suatu kunci string AAAAA (01000001 01000001 01000001 01000001 01000001 dalam format ASCII 8-bit) sehingga didapat hasil sebagai berikut: 01001001 01001100 01001011 01001111 01001101 01000001 01000001 01000001 01000001 01000001 -------------------------------------------------------------- 00001000 00001101 00001010 00001110 00001100 (BSCRLFSOFF) dan sebaliknya proses dekripsi: 00001000 00001101 00001010 00001110 00001100 01000001 01000001 01000001 01000001 01000001 -------------------------------------------------------------- 01001001 01001100 01001011 01001111 01001101 (ILKOM) Operator XOR sering dijadikan sebagai salah satu komponen dalam pembentukan chipertext yang lebih kompleks. Namun, penggunaan suatu kunci yang berulang secara konstan menyebabkan suatu chipertext dapat dengan mudah dipecahkan menggunakan analisis frekuensi (seperti dibahas pada huruf yang paling sering muncul dalam suatu bahasa). Keutamaan dari teknik ini adalah mudah

16 diimplementasikan dan operasi XOR tidak sulit secara komputasional. Oleh Karena itu, algoritma XOR masih sering kali digunakan untuk menyembunyikan informasi dalam kasus-kasus tertentu dan kemudian dilengkapi dengan suatu mekanisme keamanan tambahan lainnya. 2.5 Algoritma Kriptografi RC4 RC4 didesain oleh Ron Rivest yang berasal dari RSA Security pada tahun 1987. RC4 sendiri mempunyai singkatan resmi yaitu Rivest Chiper, namun juga dikenal sebagai Ron s Code. RC4 sebenarnya dirahasiakan dan tidak dipublikasikan kepada khalayak ramai, namun ternyata ada orang yang tidak dikenal menyebarkan RC4 ke mailing list Cypherpunks. Kemudian berita ini dengan cepat diposkan ke sci.crypt newsgroup, dan dari newsgroup ini kemudian menyebar luas di internet. Kode yang dibocorkan tersebut dipastikan keasliannya karena output yang dikeluarkan sama dengan software-software yang menggunakan RC4 yang berlisensi. Nama RC4 sudah dipatenkan, sehingga RC4 sering disebut juga ARCFOUR atau ARC4 (Allegred RC4) untuk menghindari masalah pematenan. RSA Security tidak pernah secara resmi merilis algoritma tersebut, namun Rivest secara pribadilah yang merilisnya tersebut dengan menghubungkan Wikipedia Inggris ke catatan-catatan yang ia punya. RC4 telah menjadi bagian dari protokol enkripsi yang standar dan sering digunakan, termasuk WEP dan WPA untuk wireless card, serta TLS. Faktor utama yang menjadi kesuksesan dari RC4 adalah kecepatannya dan kesederhanaannya dalam mengenai banyak aplikasi, sehingga mudah untuk mengembangkan implementasi yang efisien ke software dan hardware. RC4 termasuk ke dalam kode aliran (stream cipher) dengan kunci rahasia/kunci simetri (kunci yang sama digunakan untuk proses enkripsi dan dekripsi). Seperti halnya dengan Vernam Cipher, inti dari enkripsi RC4 adalah pembangkitan kunci aliran (keystream) yang bersifat acak semu (pseudo random). Algoritma RC4 terdiri atas 2 bagian yaitu Key Scheduling algorithm (KSA) dan Pseudo Random Generation Algorithm (PRGA) (Mooduto, 2004).

17 2.5.1 Key schedulling algorithm Tahap pertama dari algoritma RC4 adalah key schedulling (KSA). Pada tahap ini State diberi nilai awal berupa larik yang merepresentasikan suatu permutasi dengan 256 elemen. Jadi, hasil dari KSA adalah permutasi awal. Larik yang mempunyai 256 elemen ini (dengan indeks 0-255) dinamakan S (Kromodimoeljo, 2010). Langkahlangkah pembentukan S adalah sebagai berikut: 1. Inisialisasi kotak-s sesuai dengan indeksnya: S[0] = 0, S[1] = 1,, S[255] = 255. Kotak-S yang terbentuk ditunjukkan oleh Tabel 2.2. Tabel 2.2 Larik 256 byte kotak-s awal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 2. Kunci dimasukkan ke dalam larik berukuran 256. Jika ukuran kunci kurang dari 256 byte, maka dilakukan padding dengan mengulang kunci hingga larik terisi penuh. Misalkan kunci jaya dengan kode ASCII 106, 97, 121, dan 97. Tabel 2.3 menunjukkan larik 256 byte dengan kunci tersebut.

18 Tabel 2.3 Larik 256 byte kunci 3. Kotak-S disusun kembali membentuk kotak-s akhir yang ditunjukkan oleh Tabel 2.4. Langkah pertama, penghitung j diinisialisasi dengan nol. Kemudian nilai j yang baru = (j + S[i] + K[i]) mod 256. Lalu, nilai S[i] dan S[j] ditukarkan. Proses penentuan nilai j yang baru dan penukaran nilai S[i] dengan S[j] tersebut dilakukan dari i = 0 sampai dengan i = 255. Tabel 2.4 Larik 256 byte kotak-s akhir 78 103 71 171 47 127 223 143 216 66 153 185 15 69 244 167 152 8 29 147 97 227 195 174 108 155 100 224 7 182 188 146 133 176 10 255 180 58 88 84 92 122 228 192 54 205 93 5 207 197 181 177 51 62 63 115 80 45 237 48 72 126 186 194 111 156 144 231 253 136 64 238 160 137 19 217 89 193 91 61 28 23 50 105 94 221 172 132 229 211 166 98 44 230 178 130 134 198 90 0 245 241 34 30 27 18 208 79 95 117 249 85

19 140 119 179 219 254 52 39 168 138 169 112 32 14 204 201 25 129 110 246 40 26 120 35 16 21 199 159 13 202 184 191 175 162 109 251 247 225 77 113 65 96 81 139 164 70 236 183 215 104 125 239 20 43 76 206 187 114 75 190 1 60 83 234 149 243 73 189 82 57 46 86 141 101 220 161 200 4 56 131 53 87 33 242 6 250 3 222 74 9 173 165 24 12 106 36 233 213 123 17 22 42 142 99 37 148 163 196 218 49 203 210 41 68 107 154 212 170 235 252 128 118 158 11 214 157 59 248 135 124 55 240 102 151 121 2 67 145 31 232 209 116 226 150 38 Untuk i = 0, j = (0 + S[0] + K[0]) mod 256 = (0 + 0 + 106) mod 256 = 106. Nilai S[0] dan S[106] ditukarkan sehingga S[0] = 106 dan S[106] = 0. Demikian seterusnya sampai i = 255. 2.5.2 Pseudo random generation algorithm Tahap selanjutnya dari algoritma RC4 dinamakan Pseudo Random Generation Algorithm (PRGA). Tahap ini menghasilkan nilai pseudo-random yang kemudian di- XOR-kan dengan plaintext untuk proses enkripsi atau dengan ciphertext pada proses dekripsi). Langkah pertama adalah menginisialisasikan nilai i dan j dengan nol. Untuk k = 0,, k = panjang pesan 1, nilai i dan j yang baru dihitung dengan cara: i = (i + 1) mod 256 j = (j + S[i]) mod 256 Nilai S[i] dan S[j] ditukarkan. Kemudian, nilai S dengan indeks t = (S[i] + S[j]) mod 256 diambil. Nilai S[t] tersebut terakhir di-xor-kan dengan plaintext atau ciphertext dengan indeks k. Misalkan pesan yang akan dienkripsi adalah ilkom dengan panjang lima byte. Pesan tersebut dalam kode ASCII adalah 105, 108, 107, 111, 109. Ciphertext dihasilkan pertama-tama dengan menginisialisasikan nilai i dan j dengan nol. Selanjutnya, dari nilai nol sampai dengan empat dilakukan perhitungan nilai i dan j yang baru. Hasil perhitungan yang pertama adalah: i = (0 + 1) mod 256 = 1 j = (0 + S[1]) mod 256 = (0 + 103) mod 256 = 103

20 Nilai S[1] = 103 dan S[103] = 30 ditukarkan sehingga dihasilkan S[1] = 30 dan S[103] = 103. Selanjutnya, nilai t dihitung: t = (S[1] + S[103]) mod 256 = (30 + 103) mod 256 = 133. Kemudian, nilai S[t] = S[133] = 120 di-xor-kan dengan pesan[k] = pesan[0], yaitu i yang kode ASCII nya adalah 105. 01111000 01101001_ 00010001 (dalam desimal = 17, yaitu kode ASCII untuk karakter DC1 ) Proses tersebut diulang sampai karakter terakhir plaintext. Algoritma yang sama juga digunakan untuk mendekripsi ciphertext (Fiansyah, 2008). 2.6 Android Android merupakan sistem operasi Mobile berbasis kernel Linux yang dikembangkan oleh Android Inc. Sistem operasi ini bersifat terbuka (open source) sehingga para pengembang dapat membuat aplikasi mereka sendiri. Awalnya Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat perangkat lunak untuk telepon genggam. Kemudian untuk mengembangkan Android di bentuklah Open Handset Alliance yang merupakan gabungan dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, T- Mobile, dan NVidia. Pada saat perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android dibawah lisensi Apache, sebuah lisensi perangkat lunak standar terbuka perangkat seluler. Terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Service (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung dari Google atau dikenal sebagai Open Handset Distribution (DHD) (Ardiansyah, 2011). 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, yakni Cupcake (1.5), Donut (1.6), Eclair (2.0 2.1), Froyo (2.2 2.2.3), Gingerbread (2.3 2.3.7), Honeycomb (3.0 3.2.6), Ice Cream Sandwich (4.0 4.0.4), Jelly Bean (4.1 4.3), KitKat (4.4-4.4.3), Lollipop (5.0) dan Marsmallow (6.0).

21 2.7 Penelitian yang Relevan Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah: 1. Nihe, H.R (2015) dalam skripsi yang berjudul Implementasi Algoritma Affine Cipher dan Algoritma Advance Encryption Standard (AES) Pada Aplikasi Short Message Service (SMS) Berbasis Android. Berdasarkan hasil pengujian, perbandingan panjang SMS berbanding lurus dengan waktu proses enkripsi dan dekripsi dimana dalam proses tersebut, algoritma AES membutuhkan waktu lebih lama dibandingkan dengan algoritma affine cipher. 2. Penelitian yang dilakukan oleh Nababan, A.M (2015). Membahas tentang penerapan algoritma RC4 dan Teknik Spread Spectrum untuk pengamanan Text File dimana ukuran naskah asli dan naskah acak selalu sama. Ukuran cover-image dan stego-image juga selalu sama. Hubungan antara panjang naskah acak dan waktu pemrosesan untuk penyisipan dan ekstraksi adalah hubungan yang berbanding lurus. Semakin panjang naskah acak, semakin lama waktu pemrosesan, begitu juga dengan sebaliknya. 3. Penelitian yang dilakukan oleh Fiansyah, E (2008). Membahas tentang penerapan algoritma RC4 pada aplikasi sistem informasi pengolah database pendataan kegiatan skripsi dimana aplikasi yang menggunakan mekanisme keamanan enkripsi, client menerima waktu tanggap lebih lama dibandingkan aplikasi yang tidak menggunakan keamanan enkripsi. Namun dengan adanya mekanisme keamanan enkripsi, data menjadi lebih aman. 4. Sebayang, A.M.S (2014) dalam skripsi yang berjudul Implementasi Kombinasi Beuafort Cipher dan Afffine Cipher pada Three Pass Protocol untuk Pengamanan Data. Berdasarkan hasil pengujian grafik, hubungan antara waktu proses dan panjang plaintext diperoleh bahwa hasil panjang plaintext berbanding lurus terhadap waktu, semakin panjang plaintext maka waktu yang dibutuhkan juga akan semakin lama.