Kriptografi Aplikasi SMS berbasis android dengan enkripsi vigenere running key.

9 BAB II LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa yunani, menurut bahasa yunani dibagi menjadi 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 ketempat yang lain. Dalam kriptografi juga terdapat berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui antara lain : 1. Enkripsi : Proses mengubah data asli plaintext menjadi data yang tersandi ciphertext dengan menggunakan kunci key. 2. Dekripsi : Proses mengembalikan data tersandi ciphertext menjadi data asli plaintext dengan menggunakan kunci key. 3. Plaintext : data atau informasi yang dapat dibaca atau dimengerti maknanya. 4. KunciKey : parameter yag digunakan untuk transformasi enkripsi dan dekripsi. 5. Ciphertext : data atau informasi yang sudah dienkripsi 6. Kriptografer : orang yang berhak untuk membaca data yang dikirim dan memiliki kunci untuk mengembalikan data tersandi ke data asli. 10 7. Kriptoanalis : orang yang menganalisadata tersandi untuk menemukan kunci dan kemudian mengembalikan data tersandi ke data asli. Kriptoanalis tidak memiliki hak untuk 8. Penyadap : orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Dengan menggunakan kunci K maka fungsi enkripsi dan dekripsi menjadi Terdapat dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu : 1. Algoritma Simetri, adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Contoh Algoritma Simetri adalah Algoritma Vigenere Cipher, DES, Blowfish, RC2, RC4, RC5, Twofish, Blowfish. 11 Gambar 2. 1 Enkripsi dan Dekripsi dengan kunci Simetri 2. Algoritma Asimetri, adalah algoritma yang kunci untuk enkripsi dan dekripsinya berbeda. Contoh Algoritma Asimetri adalah algoritma RSA Rivest- Shamir-Adleman. Enkripsi dan dekripsi dengan kunci Asimetri ditunjukan pada gambar 2.2. Gambar 2. 2 Enkripsi dan Dekripsi dengan kunci Asimetri 12

2.1.1. Algoritma Vigenere

Vigenere cipher merupakan salah satu algoritma klasik yang termasuk dalam cipher abjad-majemuk polyalpabetic substitution cipher, nama vigenere diambil dari seorang yang bernama Blaise de Vigenere pada abad 16 1586, tetapi sebenarnya Giovan Batista Belaso telah menggambarkannya pertama kali pada tahun 1553 seperti ditulis di dalam bukunya La Cifra del Sig. Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu. Panjang kunci tersebut bisa lebih pendek ataupun sama dengan panjang plaintext. Jika panjang kunci kurang dari panjang plaintext, maka kunci yang tersebut akan diulang secara periodik hingga panjang kunci tersebut sama dngan panjang plainteksnya. Pada Vigenere Cipher, setiap karakter mengandung sebuah angka yang merupakan urutan karakter tersebut ditempatkan. Untuk melakukan enkripsi, angka yang terkandung pada karakter ke-n pada plaintext dijumlah dengan angka yang terkandung pada karakter ke-n pada key sehingga menghasilkan sebuah angka yang disebut sebagai ciphertext. Hasil tersebut dimodulo sebesar jumlah karakter yang ada mod 256. Sedangkan untuk melakukan dekripsi, angka yang terkandung pada karakter ke-n pada ciphertext dikurangi dengan angka yang terkandung pada karakter ke-n pada key dan dimodulo dengan banyaknya jumlah karakter yang ada mod 256. Algoritma enkripsi vigenere cipher : Algoritma dekripsi vigenere cipher : Cn= Pn+Kn mod 256 Pn = Cn – Kn mod 256 13 Keterangan : Cn = nilai decimal karakter ciphertext ke-n Pn = nilai decimal karakter plaintext ke-n Kn = nilai decimal karakter kunci ke-n Vigenere Cipher menggunakan Bujursangkar Vigenere untuk melakukan enkripsi, dimana setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertext yang diperoleh dengan Caesar Cipher, yang dapat dilihat pada gambar 2. Gambar 2. 3 Bujursangkar Vigenere 14 Sebagai contoh, jika plaintext adalah THEBEAUTYANDTHEBEAST dan key adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut: Plaintext : THEBEAUTYANDTHEBEAST Key : ABCABCABCABCABCABCAB Ciphertext : TIGBFCUUAAOFTIGBFCSU Pada contoh di atas kata kunci ABC diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci sama dengan panjang plainteks, proses enkripsi dilakukan dengan menggeser setiap huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf plainteks tersebut. Pada contoh diatas plainteks huruf pertama adalah T akan dilakukan pergeseran huruf dengan kunci Ki=0 kunci huruf pertama adalah A yang memiliki Ki=0 menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada tiap huruf hingga semua plainteks telah terenkripsi menjadi ciphetext. Vigenere Cipher yang akan dipakai pada aplikasi ini adalah Vigenere Cipher extended di mana ekripsi tidak hanya untuk huruf alphabet saja, tetapi termasuk juga karakter-karakter ASCII. Jadi batas pengenkripian tidak terbatas untuk 26 karakter tetapi mencapai 128 karakter. Algoritma Extended Vigenere Chiper merupakan pengembangan dari algoritma Vigenere. Jika pada Algoritma Vigenere menggunakan 15 bujursangkar vigenere yang berisi 26 alphabet, maka pada algoritma Extended Vigenere digunakan table ASCII, ditunjukan pada gambar 2.3, untuk melakukan proses enkripsi dan dekripsi. Dengan penggunaan ASCII, karakter yang digunakan dapat lebih komplek dibanding dengan penggunaan bujursangkar Vigenere. Gambar 2. 4 Tabel ASCII Rumus Vigenere Cipher Extended : Ci= Pi + Ki mod 128 Pi= Ci - Ki mod 128 16 Contoh penyelesaian Vigenere chipper extended sederhana: Plainteks :gorontalo Key :arif Ciphertext : Ha[UOfJRP

2.1.2. The Run-Key Vigenere Cipher

Pada aplikasi VinereySMS ini, Algoritma Vigenere yang digunakan yaitu yang telah divariasi dalam pembentukan kuncinya, yaitu dengan Run- Key Vigenere Cipher. Perbaikan pada metode Vigenere ditujukan untuk menghilangkan pengulangan cipherteks yang sama untuk plainteks yang sama agar tidak bisa dikenakan teknik kasiski untuk melakukan kriptanalisis. Telah banyak yang mengembangkan variasi dari Vigenere Cipher, salah satunya adalah Running-key Vigenere Cipher. Running-key Vigenere Cipher menggunakan teks yang memiliki arti atau cukup dikenal dalam masyarakat. Teks ini bisa berupa buku yang dimiliki oleh pengirim dan penerima pesan. Sebagai contoh : 1. Plaintext : BUKUKRIPTOGRAFI Key : INDONESIATANAHA Ciphertext : JHNIXVAXTHGEAMI 2. Plaintext : TIARA KUSUMA AYU Key : INDONESIA PUSAKA 17 Ciphertext : {YGcQe’Vu?XsfX 3. Plaintext : 209790854 Key : INDONESIA Ciphertext : [~}u-~u

2.1.3. Kunci Simetris

Kunci Simetris sering juga disebut dengan algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik. Skema algoritma sandi akan disebut kunci-simetris apabila untuk setiap proses enkripsi maupun dekripsi menggunakan kunci yang sama. Algoritma ini mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman 18 atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Kelebihan kunci simetris adalah proses enkripsidekripsi membutuhkan waktu yang singkat, ukuran kunci simetri relative pendek, dan Otentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

2.1.4. Distribusi kunci simetris

Masalah utama dari kriptografi simetris adalah sulitnya mendistribusikan kunci. Kunci tidak dapat dipertukarkan dengan aman melalui saluran data, kecuali di-enkripsi. Dengan mengenkripsi kunci, bagaimanapun pasti membutuhkan kunci lain. Dan kunci tersebut perlu dipertukarkan antara kedua entitas yang akan berkomunikasipengirim dan penerima SMS. Salah satu solusi dalam pendistribusian kunci adalah dengan cara manual misalnya dengan surat pos. Distribusi manual memiliki kelemahan seperti mahal, memakan waktu, dan rentan terhadap kesalahan. Dua pendekatan otomatis untuk mendistribusikan kunci yang dibahas dalam bagian ini adalah : ANSI American National Standards Institute standar X9.17, Manajemen kunci dan pertukaran kunci Diffie Hellman. 19  Pendekatan ANSI X9.17 Pendekatan ANSI X9.17 didasarkan pada hirarki kunci. Pada hirarki kunci, bagian bawah adalah kunci dataDK, kunci data ini digunakan untuk mengenkripsi dan mendekripsi pesan. Sedangkan dibagian paling atas dari hirarki kunci adalah kunci enkripsi KKM yang harus didistribusikan secara manual. Kunci KKM memiliki rentan hidup yang lebih lama daripada kunci DK. Pada hirarki kunci dua lapis, KKM berguna untuk mengenkripsi DK. Kemudian DK didistribusikan secara elektronik untuk mengenkripsi dan mendekripsi pesan. Model hirarki kunci 2 lapis tersebut dapat ditingkatkan menjadi 3 lapis. Dalam model hirarki kunci tiga lapis, KKM tidak digunakan untuk mengenkripsi kunci secara langsung, tetapi untuk mengenkripsi kunci enkripsi kunci lainnyaKK. KK yang dipertukarkan secara elektronik, digunakan untuk mengenkripsi kunci data. Pada gambar 2.5 menggambarkan pertukaran kunci antara dua pihak yang menggunakan model hirarki kunci tiga lapis. Gambar 2. 5 Point-to-Point 20 Pada gambar diatas mengilustrasikan dua pengguna bertukar kunci secara langsung, yang dikenal dengan Point-to-Point. Selain itu standar ANSI X9.17 juga memberikan gambaran lain mengenai distribusi kunci dengan Key Distribution CenterKDC dan Key Translation CenterKTC yang memungkinkan untuk memanajemen kunci yang terpusat. Manajemen Kunci terpusat ditunjukan pada gambar 2.6 Gambar 2. 6 Manajemen Kunci Perbedaan antara KDC dan KTC adalah bahwa KDC menghasilkan kunci bagi penggunanya sedangkan KTC digunakan ketika kedua entitaspengirim dan penerima membutuhkan manajemen kunci.  Key Distribution Center KDC Pada mekanisme KDC dimisalkan Alice dan Bob ingin berkomunikasi dan menggunakan kunci simetris. Mereka tidak pernah bertemu mungkin mereka hanya bertemu disebuah chat online 21 dengan demikian belum ada kesepakatan mengenai kunci yang akan digunakan. Bagaimana mereka bisa setuju atau menyepakati kunci. Solusi yang sering digunakan adalah menggunakan KDC. KDC adalah server yang dapat menghasilkan kunci yang berbeda pada masing-masing pengguna yang terdaftar dengan melakukan register terlebih dahulu untuk mendaftar ke KDC. Diilustrasikan bahwa Alice dan Bob adalah pengguna terdaftar KDC, mereka hanya tahu kunci masing-masing, KA – KDC dan KB – KDC. Alice mengetahui R1 Bob mengetahui R1 Bob mengetahui R1 Alice dan Bob berkomunikasi menggunakan kunci session yaitu R1 Gambar 2. 7 Cara kerja Key Distribution Center 1. Langkah pertama yang harus dilakukan Alice adalah menggunakan KA – KDC untuk mengenkripsi komunikasinya dengan KDC, Alice mengirimkan pesan ke KDC dan mengatakan bahwa dia A ingin berkomunikasi dengan Bob B. 2. Setelah itu KDC akan mendekripsi KA – KDC A,B dan kemudian KDC mengotentikasi Alice. KDC kemudian 22 menghasilkan nomor acak, R1. Ini adalah nilai yang akan menjadi kunci bersama untuk Alice dan Bob dan akan digunakan untuk melakukan enkripsi simetris ketika mereka berkomunikasi satu sama lain. R1 ini disebut dengan kunci one-time session. Lalu KDC menginformasikan kepada Alice dan Bob mengenai kunci one-time session mereka yaitu R1. KDC mengirimkan kembali pesan terenkripsi ke Alice berisi sebagai berikut :  R1 merupakan kunci one-time session yang akan digunakan Alice dan Bob untuk berkomunikasi.  Sepasang nilai A, dan R1, Dienkripsi oleh KDC menggunakan kunci Bob, KB – KDC. Kunci yang dihasilkan adalah KB-KDC A, R1. 3. Selanjutnya Pesan dari KDC ke Alice adalah KA – KDC R1, KB – KDC R1. Alice menerima pesan dari KDC dan memverifikasi R1. Dan Alice mengetahui kunci One-Time Sessionnya adalah R1. Alice juga mengekstrak KB – KDC A, R1 dan memforward pesan kepada Bob. 4. Bob mendekripsi pesan yang diterima, KB – KDC A, R1. Bob mengetahui bahwa R1 adalah kunci one-time sessionnya, dan Alice A yang akan berkomunikasi dengan dia. Bob harus mengotentikasi Alice terlebih dahulu menggunakan R1. 23 Keuntungan menggunakan KDC adalah fleksibilitas dan efisiensi. Karena pengguna hanya perlu bertukar dan menyimpan KKM. Bukan KKM dari setiap penerima.  One-Time Session Key Kita telah melihat diatas bahwa kunci one-time session dihasilkan oleh KDC untuk digunakan dalam enkripsi kunci simetris antara dua entitas. Dengan menggunakan kunci one-time session dari KDC pengguna dibebaskan dari keharusan untuk menyepakati kunci bersama untuk setiap entitas dengan siapa ingin berkomunikasi. Sebaliknya, pengguna hanya perlu memiliki satu kunci rahasia bersama untuk berkomunikasi dengan KDC, dan KDC akan menginformasikan kunci one-time session dari KDC untuk semua komunikasi dengan entitas lainnya. Kunci one-time session juga digunakan dalam kriptografi kunci publik . Sistem kunci publik sering digunakan untuk tujuan otentikasi. Setelah dua pihak telah dikonfirmasi, mereka kemudian menggunakan komunikasi kunci public yang dienkripsi untuk menyepakati satu kali 24 kunci simetris bersama . Session key simetris ini kemudian digunakan untuk mengenkripsi pesan.  Pertukaran kunci dengan Algoritma Diffie Helman Solusi lain untuk masalah distribusi kunci rahasia adalah pertukaran kunci Diffie Hellman. Algoritma ini pertama kali diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1975. Mereka berdua adalah peneliti pada universitas Stanford. Mereka memperkenalkan algoritma ini untuk memberi solusi atas pertukaran informasi secara rahasia. Algoritma ini tidak berdasarkan pada proses enkripsi dan dekripsi, melainkan lebih kepada proses matematika yang dilakukan untuk menghasilkan kunci rahasia yang dapat disebarkan secara bebas tanpa harus khawatir karena kunci rahasia tersebut hanya dapat didekripsi hanya oleh pengirim dan penerima pesan. Dasar dari algoritma ini adalah matematika dasar dari aljabar eksponen dan aritmatika modulus. Langkah-langkah dalam pertukaran kunci dengan menggunakan algoritma Diffie-Hellman adalah sebagai berikut: 1. Pilih bilangan prima yang besar, p dan bilangan integer yang tidak melebihi dari nilai p, g, biasa disebut bilangan basis atau generator. Kedua bilangan tersebut dapat diketahui secara publik. 25 2. Pilih sebuah bilangan acak oleh pengirim, x, bilangan ini tidak boleh diketahui oleh orang lain. 3. Pilih sebuah bilangan acak oleh penerima, y, bilangan ini tidak boleh diketahui oleh orang lain. 4. Pengirim menghitung A = gx mod p. Bilangan A ini dapat diketahui secara publik. 5. Penerima menghitung B = gy mod p. Bilangan B ini dapat diketahui secara publik. 6. Lakukan pertukaran bilangan A dan B terhadap pengirim dan penerima. 7. Lalu Pengirim menghitung ka = Bx mod p. 8. Penerima menghitung kb = Ay mod p. 9. Berdasarkan hukum aljabar nilai ka sama dengan kb atau bisa disebut ka = kb = k. Sehingga pengirim dan penerima tersebut mengetahui kunci rahasia tersebut “k”. Contoh penggunaan dari algoritma ini adalah: 1. Alice dan Bob menetapkan p = 23 dan g = 5. 2. Eve penyadap tahu nilai p dan g. 3. Alice memilih nilai x = 6 dan Bob memilih nilai y = 15. 26 4. Alice menghitung nilai A = 56 mod 23 = 8. 5. Bob menghitung nilai B = 515 mod 23 = 19. 6. Alice dan Bob bertukar nilai A dan B. 7. Eve menyadap mereka dan tahu nilai A dan B. 8. Alice melakukan perhitungan ka = 196 mod 23 = 2. 9. Bob melakukan perhitungan kb = 815 mod 23 = 2. 10. Eve mengetahui nilai p , g, A, dan B tetapi dia tidak dapat mengetahui kunci rahasia, k dari Bob dan Alice. Alice dan Bob dapat mengetahui kunci rahasia tersebut dan dapat bertukar pesan dengan aman tanpa harus diketahui oleh Eve. Eve hanya dapat mengetahui nilai p, g, A, dan B tetapi tidak dapat menghitung kunci rahasia dari mereka berdua. Sehingga Eve tidak dapat mengetahui pesan rahasia apa antara Alice dan Bob. 27

2.2. Short Message Service SMS