BAB II
LANDASAN TEORI
2.1 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, 2006)
Berikut adalah gambar sistem kriptografi konvensional:
Gambar 2.1: Sistem Kriptografi Konvensional (Sadikin, 2012)
Sistem kriptografi seperti yang ditunjukkan pada gambar 2.1 di atas terdiri dari 5 bagian yaitu (Sadikin, 2012) : 1.
Plaintext (M) adalah pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi.
Universitas Sumatera Utara
6
2.
Sumber kunci juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
3.
Ciphertext (C) adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma yang baik akan manghasilkan ciphertext yang terlihat acak.
4.
Algoritma enkripsi memiliki 2 masukan, teks asli (M) dan kunci rahasia (K). Algoritma enkripsi melakukan transformasi terhadap plaintext sehingga menghasilkan ciphertext.
5.
Algoritma dekripsi memiliki 2 masukan yaitu ciphertext (C) dan kunci rahasia (K). Algoritma dekripsi memulihkan kembali ciphertext menjadi plaintext bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.
Diasumsikan dalam sistem kriptografi klasik, pihak pengirim dan pihak penerima memiliki kunci rahasia yang sama. Sistem ini disebut sistem kriptografi simetris. Kunci rahasia harus dibangkitkan secara rahasia dan didistribusikan ke pengirim dan penerima melalui saluran yang diasumsikan aman. Kebutuhan saluran untuk mendapatkan kunci rahasia menjadi kelemahan utama sistem simetris. Asumsi ini diatasi sistem kriptografi kunci publik yaitu dengan tidak dbutuhkan saluran aman untuk distribusi kunci. (Sadikin, 2012)
Kunci yang dimiliki oleh proses enkripsi dan dekripsi pada sistem kriptografi kunci publik berbeda. Kunci pada proses enkrips bersifat tidak rahasia sehingga disebut kunci publik yang dapat didistribusikan melalui saluran yang tidak aman. Kunci pada proses dekripsi bersifat rahasia yang disebut kunci private yang kerahasiaannya harus dijaga oleh pemegang kunci. (Sadikin, 2012)
Kriptografi kunci publik dapat dianalogikan seperti kotak surat yang terkunci dan
memiliki lubang untuk memasukkan surat. Kotak surat yang
diletakkan di depan rumah pemiliknya sehingga setiap orang dapat memasukkan surat ke dalam kotak tersebut, tetapi hanya pemilik kotak yang dapat membuka
Universitas Sumatera Utara
7
dan membaca surat yang ada di dalam kotak tersebut. Kriptografi kunci publik berkembang menjadi sebuah revolusi baru dalam sejarah kriptografi, tidak seperti pada kunci simetris yang hanya didasarkan pada subtitusi dan permutasi saja, akan tetapi kriptografi kunci public didasarkan pada fungsi matematika seperti perpangkatan dan modulus. (Tamam, 2010)
Diagram berikut memperlihatkan perbedaan dari kriptografi simetris dan kriptografi asimetris. Plaintext
Ciphertext
Plaintext
Enkripsi
Dekripsi
Kunci
Kunci
Gambar 2.2: Diagram Kriptografi Simetris
Pada kriptografi simetris yang dapat dilihat pada gambar 2.2, kunci pada proses enkripsi dan dekripsi adalah sama. Berikut diagram pada kriptografi asimetris. Plaintext
Ciphertext
Plaintext
Enkripsi
Dekripsi
Kunci Publik
Kunci Private
Gambar 2.3 : Diagram Kriptografi Asimetris
Sedangkan pada kriptografi asimetris yang dapat dilihat pada gambar 2.3, kunci dari proses enkripsi dan dekripsi berbeda. Untuk proses enkripsi digunakan kunci publik sedangkan untuk proses dekripsi digunakan kunci private.
Dalam kriptografi kunci asimetris, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia. Skema algoritma kriptografi asimetris nirkunci publik (dengan asumsi kunci sudah diketahui oleh kedua belah pihak sebelumnya) dapat dilihat pada Gambar 2.4.
Universitas Sumatera Utara
8
Teks Asli
Algoritma Enkripsi
Ciphertext
Algoritma Dekripsi
Teks Asli
B
A Kunci Rahasia A
Kunci Rahasia B
Gambar 2.4 : Skema Kriptografi Asimetris Nirkunci Publik
2.2 Tujuan Kriptografi
Berikut ini adalah tujuan adanya kriptografi (Munir, 2006): 1. Kerahasiaan Data 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 Data Data yang benar atau asli tanpa ada rekayasa dari pihak ketiga atau pihak yang tidak memiliki akses terhadap data tersebut. 3. Autentikasi Autentikasi dilakukan untuk membuktikan data yang dikirim adalah data asli atau data yang benar. Autentikasi mencegah adanya data palsu. 4. Nir-penyangkalan Nir-penyangkalan adalah salah satu tujuan kriptografi. Dengan ini si pengirim tidak dapat menolak bahwa pesan tersebut benar berasal dari si pengirim.
2.3 Ancaman Keamanan
Berikut beberapa ancaman yang dapat mempengaruhi keamanan data (Stallings, 2011):
Universitas Sumatera Utara
9
1. Interruption Interruption merupakan ancaman yang dilakukan dengan merusak dan menghapus data sehingga data tidak dapat ditemukan lagi. 2. Interception Interception adalah ancaman yang dilakukan pihak ketiga dengan menyadap ataupun mengakses data. Data yang seharusnya rahasia dapat diakses oleh pihak yang tidak memiliki akses. 3. Modification Modification adalah ancaman yang lebih berbahaya, pihak yang tidak memiliki akses tidak hanya dapat mengakses data namun dapat memodifikasi atau mengubah data. 4. Fabrication Fabrication merupakan ancaman yang paling berbahaya, pihak yang tidak memiliki akses tidak hanya dapat membaca data, juga dapat mengubah dan memalsukan data, sehingga data seolah berasal dari pengirim sebenarnya.
2.4 Kriptografi Asimetris
Sistem kriptografi kunci publik atau sering disebut sebagai kunci asimetrik pertama kali diusulkan oleh Diffie dan Hellman pada tahun 1976. Ide kriptografi kunci publik sebenarnya mirip dengan cara kerja kunci gembok. Dimisalkan terdapat sebuah peti yang berisi pesan rahasia, lalu peti dikunci dengan gembok, kemudian dikirim kepada penerima. Gembok hanya dapat dibuka oleh penerima, apabila kunci yang dipegang olehnya merupakan pasangan gembok. (Sadikin, 2012)
Algoritma pertukaran kunci Diffie-Hellman (protokol Diffie-Hellman) berguna untuk mempertukarkan kunci rahasia untuk komunikasi menggunakan kriptografi simetris. Langkah-langkahnya adalah sebagai berikut (Ramdan Mangunpraja, 2007):
Universitas Sumatera Utara
10
1. Misalkan Alice dan Bob adalah pihak-pihak yang berkomunikasi. Mula-mula Alice dan Bob menyepakati 2 buah bilangan yang besar (sebaiknya prima) P dan Q, sedemikian sehingga P < Q. Nilai P dan Q tidak perlu rahasia, bahkan Alice dan Bob dapat membicarakannya melalui saluran yang tidak aman sekalipun. 2. Alice membangkitkan bilangan bulat acak x yang besar dan mengirim hasil perhitungan berikut kepada Bob: X = Px mod Q . 3. Bob membangkitkan bilangan bulat acak y yang besar dan mengirim hasil perhitungan berikut kepada Alice : Y = Py mod Q . 4. Alice menghitung K = Yx mod Q . 5. Bob menghitung K’ = Xy mod Q . Jika berhitungan dilakukan dengan benar maka K = K’. Dengan demikian Alice dan Bob telah memiliki sebuah kunci yang sama tanpa diketahui pihak lain. Gambar 2.5 mendeskripsikan diagram protokol pertukaran kunci DiffieHellman: ALICE
BOB P,Q Bangkitkan Bilangan y
Bangkitkan Bilangan x X
Hitung X = Px mod Q
Hitung Key = Yx mod Q
Y
Hitung X = Py mod Q
Hitung Key = Xy mod Q
Gambar 2.5 Pertukaran Kunci Deffie –Hellman (Ramdan Mangunpraja, 2007)
Kriptografi asimetris memiliki kunci enkripsi dan kunci dekripsi yang berbeda. Salah satu algoritma yang dikembangkan sesuai kriptografi asimetris adalah algoritma RSA. Algoritma ini memiliki kelebihan melakukan pemfaktoran bilangan yang besar.
Universitas Sumatera Utara
11
2.5 Akar primitif Jika ada suatu bilangan bulat m dan order dari m modulo n adalah 𝜱(n), maka m disebut akar primitif modulo n. Dapat juga dituliskan sebagai ordn(m) = 𝜱(n). (Mollin, 2007) Sebagai contoh, akan dicari akar primitif modulo 7. 𝜱(7) = 7 – 1 = 6 Ord7(1) = 1 𝜱(7), maka 1 bukan akar primitif modulo 7 Ord7(2) = 3 𝜱(7), maka 2 bukan akar primitif modulo 7 Ord7(3) = 6 = 𝜱(7), maka 3 adalah akar primitif modulo 7 Apabila p adalah bilangan prima, maka disebut akar primitf modulo p apabila pemetaan r(mod p) terhadap r {1, 2, 3, …, p-1} akan menghasilkan permutasi dari r.
Sebagai contoh, apakah 3 adalah akar primitif modulo 7? r 1 2 3 4 5 6
r(mod p) 3 2 6 4 5 1
Karena hasil r(mod p) merupakan permutasi dari r, maka 3 merupakan akar primitif modulo 7.
Teorema: Banyaknya jumlah akar primitif modulo n adalah tepat sebanyak 𝜱(𝜱(n)) akar primitif yang tidak saling kongruen. (Mollin, 2007) Dari teorema ini, maka banyaknya akar primitif modulo 7 adalah: 𝜱(𝜱(7)) = 𝜱(6) = 2 akar primitif.
Universitas Sumatera Utara
12
2.6 Fermat’s Little Theorem Teorema : Untuk bilangan prima p dan bilangan bulat a, ap ≡ a(mod p) dan jika a tidak dapat dibagi oleh p, maka ap-1 ≡ 1 (mod p). Teorema ini dapat digunakan untuk mempermudah kalkulasi pemangkatan modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 274 (mod 13). Karena 13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat digunakan untuk mengkalkulasi 212 ≡ 213-1 (mod 13) ≡ 1 (mod 13). Jadi 274 = (212)6 × 22 ≡ 16 × 22 ≡ 4 (mod 13). Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi, peran terpenting dari Fermat’s little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris. Untuk memudahkan pembuatan program untuk pembangkitan bilangan prima maka digunakan teknik iterasi. Untuk bilangan yang lebih kecil dari 100 maka akan dilakukan pengujian sebanyak tiga kali, untuk bilangan yang lebih besar dari 100 maka dilakukan pengujian sebanyak digit bilangan tersebut. (Kromodimoeljo. 2010)
2.7 Modulus Exponential
Dalam kriptografi, perhitungan modulus exponential sering dijumpai. Sistem kriptografi asimetris seperti RSA dan ElGamal menggunakan modulus exponential dalam perhitungan enkripsi dan dekripsinya. Persamaan modulus exponential adalah (Sadikin, 2012): y = ax mod n Salah satu metode untuk menghitung modulus exponential adalah Square and Multiply. Langkah-langkah untuk menghitung modulus exponential menggunakan Square And Multiply (Sadikin, 2012): 1. Ubah nilai x ke dalam nilai biner. 2. Tentukan y = 1. 3. Lakukan perhitungan sebanyak panjang biner, jika xi = 1 maka,
Universitas Sumatera Utara
13
y = (y2 * a) mod n Jika xi = 0 maka, y = y2 mod n
Perhitungan modulus exponential menggunakan Square And Multiply dicontohkan sebagai berikut: Hitung nilai 1725 mod 11. Penyelesaian: Ubah 25 ke dalam nilai biner, maka didapat 11001, y = 1 Untuk nilai x1 = 1 y = y2 * 17 mod 11 = 12 * 17 mod 11 =6 Untuk nilai x2 = 1 y = y2 * 17 mod 11 = 62 * 17 mod 11 =7 Untuk nilai x3 = 0 y = y2 mod 11 = 72 mod 11 =5 Untuk nilai x4 = 0 y = y2 mod 11 = 52 mod 11 =3 Untuk nilai x5 = 1 y = y2 * 17 mod 11 = 32 * 17 mod 11 = 10 Maka, didapat hasil 1725 10 mod 11
Universitas Sumatera Utara
14
2.8 Algoritma ElGamal
Algoritma
ElGamal
merupakan
algoritma
kriptografi
asimetris
yang
menggunakan dua jenis kunci, yaitu kunci publik dan kunci rahasia. Kunci publik berfungsi untuk mengenkripsi pesan sedangkan kunci rahasia berfungsi untuk mendekripsi pesan. Tingkat keamanan algoritma ini didasarkan atas masalah logaritma diskrit pada grup pergandaan bilangan bulat modulo prima. (Singh, 2012)
Algoritma ElGamal mempunyai kunci publik berupa urutan tiga bilangan dan sebuah bilangan sebagai kunci rahasia. Algoritma ElGamal merupakan cipher block, yaitu melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Kelebihan algoritma ElGamal adalah suatu plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda, tetapi pada proses dekripsi akan diperoleh plaintext yang sama. (Bahary, 2010)
ElGamal dapat digunakan untuk tanda tangan digital dan enkripsi, algoritma ini memberikan keamanan dari sulitnya menghitung logaritma diskrit yang digunakan dalam tempat terbatas. Untuk membangkitkan pasangan kunci, dilakukan langkah berikut (Mollin, 2007): 1. Pilih bilangan prima p dan cari akar primitif mod p 2. Pilih bilangan random a dimana 2 < a < p – 1, dan hitung nilai a 3. Public key yang diperoleh adalah p, , dan a sedangkan private key adalah a
Setelah didapatkan public key yang disepakati, maka dilakukan enkripsi dengan langkah berikut (Mollin, 2007): 1. Pilih bilangan random b dengan syarat b < p -1 2. Hitung nilai b mod p untuk C1 dan m*ab mod p untuk C2, dimana m adalah plaintext
Universitas Sumatera Utara
15
3. Maka setiap satu karakter plaintext memiliki dua ciphertext. (Mollin, 2007)
Proses selanjutnya adalah dekripsi. Setelah memperoleh ciphertext, maka penerima pesan akan mengubah ciphertext menjadi plaintext. Sehingga dapat dengan mudah membaca isi dari pesan tersebut. Untuk mendekripsi pesan, penerima membutuhkan kunci private a. Dan dilakukan perhitungan berikut: 1. Kunci yang digunakan adalah nilai a 2. Hitung nilai dengan menggunakan C1 dengan cara C1p-1-a mod p yang disebut m1 3. Dari hasil perhitungan m1 maka untuk memperoleh hasil dilakukan perhitungan m1*C2 mod p, langkah-langkah ini dilakukan per karakter. Maka akan didapat plaintext yang disampaikan oleh pengirim. (Mollin, 2007)
2.9 Transposisi Segitiga
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) Seperti pada contoh berikut : diberikan plaintext (M) : ILMU KOMPUTER maka hasil transposisi yang didapat adalah
U
T
L K E
I M O R
U M ¿
P ¿
¿
Gambar 2.6: Enkripsi Transposisi
Universitas Sumatera Utara
16
Dari gambar 2.6 dapat dilihat hasil transposisi yang dilakukan dengan plaintext yang diberikan. Dapat dilihat juga bahwa 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 U TLKEIMORUM¿P¿ ¿
Untuk mengembalikan plaintext yang telah ditransposisi, dilakukan penyusunan kembali karakter kedalam segitiga, dengan karakter pertama menduduki kolom paling kiri dan dibaca dari baris atas ke bawah. Sehingga dari ciphertext “U TLKEIMORUM¿P¿ ¿” didapat hasil yang dapat dilihat pada gambar 2.7.
U
T
L K E
I M O R
U M ¿
P ¿
¿
Gambar 2.7: Dekripsi Transposisi dan hasilnya adalah ILMU KOMPUTER¿ ¿ ¿. Dan setiap karakter “¿” akan dihapus dari plaintext sehingga menghasilkan ILMU KOMPUTER.
2.10
Penelitian Terdahulu
Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah: 1.
Penelitian yang dilakukan oleh Rininda Ulfa, dengan judul penelitian Penerapan Sistem Kriptografi ElGamal Atas Zp* Dalam Pembuatan Tanda Tangan Digital memberikan penjelasan sebagai berikut : Tanda tangan digital dapat digunakan untuk melakukan pembuktian secara matematis bahwa data tidak mengalami modifikasi secara ilegal, sehingga bisa digunakan sebagai salah satu solusi untuk melakukan verifikasi data. Tujuan dari penulisan skripsi ini adalah untuk mengetahui proses pembuatan tanda tangan digital menggunakan sistem kriptografi ElGamal atas Zp*.
Universitas Sumatera Utara
17
Proses pembuatan tanda tangan digital diawali dengan pembuatan kunci publik dan kunci privat. Proses pembuatan kunci menghasilkan kunci publik (p, g, v ) dan kunci privat s. Kunci publik akan dikirimkan kepada penerima pesan untuk memverifikasi tanda tangan. Pada proses perhitungan nilai hash akan dihasilkan message digest, yang akan digunakan dalam pembuatan tanda tangan. Proses penandatanganan dihasilkan sepasang tanda tangan (R, T). Tanda tangan dan dokumen dikirimkan kepada penerima. Selanjutnya, pada proses verifikasi, penerima akan mengecek apakah tanda tangan tersebut cocok atau tidak dengan menggunakan kunci publik dan menghitung nilai hash dokumen yang ia terima. (Ulfa. 2011)
2.
Penelitian yang dilakukan oleh Barra Rizky Bahary. Penelitian ini mengangkat judul Pengamanan Pesan Teks Menggunakan Algoritma ElGamal. Algoritma ElGamal mempunyai kunci publik berupa urutan tiga bilangan dan sebuah bilangan sebagai kunci rahasia. Algoritma ElGamal merupakan cipher block, yaitu melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Kelebihan algoritma ElGamal adalah suatu plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda, tetapi pada proses dekripsi akan diperoleh plaintext yang sama. Pada penelitian ini pembahasan difokuskan pada pengaplikasian algoritma ElGamal dalam pengamanan pesan teks dan pengimplementasian algoritma ElGamal kedalam program sederhana menggunakan bahasa pemprograman pascal. (Bahary. 2010)
Universitas Sumatera Utara