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