BAB 2
LANDASAN TEORI
2.1 Definisi Kriptografi Kata kriptografi berasal dari bahasa Yunani, “kryptós” yang berarti tersembunyi dan “gráphein” yang berarti tulisan. Sehingga kata kriptografi dapat diartikan berupa frase “tulisan tersembunyi”. Menurut Request for Comments (RFC), kriptografi merupakan ilmu matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak dapat dipahami (untuk menyembunyikan maknanya), mencegahnya dari perubahan tanpa izin, atau mencegahnya dari penggunaan yang tidak sah. Jika transformasinya dapat dikembalikan, kriptografi juga bisa diartikan sebagai proses mengubah kembali data yang terenkripsi menjadi bentuk yang dapat dipahami. Artinya, kriptografi dapat diartikan sebagai proses untuk melindungi data dalam arti yang luas (Oppliger, 2005).
Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebgai berikut : “ Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan mengguanakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini.” Jadi, secara umun dapat diartikan sebagai seni menulis atau memecahkan cipher (Talbot dan welsh, 2006).
Menezes, Oorschot dan Vanstone (1996) menyatakan bahwa kriptografi adalah suatu studi teknik matematika yang berhubungan dengan aspek keamanan informasi seperi kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Kriptografi tidak hanya berarti penyediaan keamanan informasi, melainkan sebuah himpunan taknik-teknik.
Universitas Sumatera Utara
2.2 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang dan menakjubkan. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph yang terdapat pada piramid) hingga penggunaan kriptografi pada abad ke-20 (Menezes et al, 1996).
Secara
historis
ada
empat
kelompok
yang
berkontribusi
terhadap
perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelijen dan mata-mata), kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Di antara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.
Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa (Number of the Beast) di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografik (yaitu dienkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi.
Di India, kriptografi digunakan oleh pencinta (lovers) untuk berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan cipher. Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia, Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkrpsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode (Munir, 2006).
Universitas Sumatera Utara
Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. Mesin yang menggunakan beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia ke-2 (Churchhouse, 2004).
Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal Amerika Serikat untuk mengenkripsi informasi yang tidak belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.
Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan ”New Directions in Cryptography”. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun Diffie dan Hellman tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi.
Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah faktorisasi bilangan yang sulit, dan menggiatkan kembali usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80-an terjadi peningkatan luas di area ini, sistem RSA masih aman. Sistem lain yang merupakan rancangan kunci publik ditemukan oleh Taher ElGamal pada tahun 1984. Rancangan ini berdasar pada masalah logaritma diskret.
Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada 1991 standar internasional pertama untuk tanda tangan digital diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah
Universitas Sumatera Utara
Amerika Serikat mengadopsi Digital Signature Standard, sebuah mekanisme kriptografi yang berdasar pada algoritma ElGamal (Menezes et al, 1996).
2.3 Tujuan Kriptografi
Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah sebagai berikut (Menezes et al, 1996) (Schneier, 1996) :
a)
Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.
b) Integritas data adalah layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli.
c) Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan
Universitas Sumatera Utara
otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.
d) Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
Tujuan dasar dari kriptografi adalah mewujudkan keempat aspek keamanan informasi tersebut dalam teori dan praktek.
2.4 Terminologi dan Konsep Dasar Kriptografi
Di dalam kriptografi kita akan sering menemukan berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui diberikan di bawah ini:
2.4.1 Pesan, Plainteks, dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks atau teks jelas (cleartext) (Schneier, 1996). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dsb) atau yang disimpan di dalam media perekaman (kertas, storage, dan sebagainya). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara/bunyi (audio), dan video, atau berkas biner lainnya.
Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami (enkripsi). Bentuk pesan yang tersandi disebut ciphertext atau kriptogram. Proses pembalikan dimana ciphertext diubah kembali menjadi plainteks di sebut dekripsi (Stamp, 2007).
Universitas Sumatera Utara
2.4.2 Peserta Komunikasi
a)
Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob) sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di bank).
b) Pengirim adalah entitas dalam komunikasi yang mengirimkan informasi kepada entitas lainnya lainnya. c)
Penerima adalah entitas dalam komunikasi yang diharapkan menerima informasi.
d) Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba untuk membobol keamanan informasi. Penyusup biasanya bertindak seolah-olah sebagai pengirim yang sah ataupun penerima yang sah.
2.4.3. Kriptologi Kriptologi berasal dari bahasa Yunani, “kryptós” yang berarti “tersembunyi” dan “lógos” yang berarti “kata”. Jadi, kriptologi dapat diartikan sebagai frase kata yang tersembunyi (Oppliger, 2005). Kriptologi dapat juga diartikan sebagai seni dan ilmu untuk membuat dan memecahkan kode rahasia. Kriptologi dibagi menjadi kriptografi (seni dan ilmu membuat kode rahasia), kriptanalisis (ilmu dan seni untuk memecahkan chiperteks menjadi plainteks tanpa mengetahui kunci yang digunakan) (Stamp, 2007) dan steganografi (metoda menyembunyikan pesan atau data lainnya) (Oppliger, 2005).
Pelaku
kriptanalisis
disebut
kriptanalis.
Jika
seorang
kriptografer
mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan ciphertext tersebut untuk menemukan plaintext atau kunci.
Universitas Sumatera Utara
2.5 Algoritma dan Kunci
Algoritma menggambarkan sebuah prosedur komputasi yang terdiri dari variabel input dan menghasilkan output yang berhubungan (Oppliger, 2005). Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Algoritma kriptografi ini bekerja dalam kombinasi dengan menggunakan kunci (key) seperti kata, nomor atau frase tertentu.
Bila keamanan algoritma bergantung pada kerahasian algoritma yang bekerja, maka
algoritma
tersebut
dikatakan
sebagai
algoritma
terbatas
(terbatas
kemampuannya). Algoritma terbatas mempunyai sejarah yang menarik. Algoritma terbatas biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama lain. Mereka membuat suatu algoritma enkripsi dan algoritma enkripsi tersebut hanya diketahui oleh anggota kelompok itu saja. Tetapi, algoritma terbatas tidak cocok lagi saat ini, sebab setiap kali ada anggota kelompok keluar, maka algoritma kriptografi harus diganti lagi. Kerahasian algoritmanya menjadi titik kelemahan karena tidak mengijinkan adanya kontrol kualitas atau standarisasi.
Kriptografi modern mengatasi masalah di atas dengan penggunaan kunci, dimana algoritma yang diguakan tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan dechipering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai 𝐸𝐾 𝑃 = 𝐶 𝑑𝑎𝑛 𝐷𝐾 𝐶 = 𝑃
(2.1)
dan kedua fungsi ini memenuhi 𝐷𝐾 (𝐸𝐾 𝑃) = 𝑃
(2.2)
Universitas Sumatera Utara
2.6 Jenis Algoritma Kriptografi
Berdasarkan jenis kunci yang digunakannya, algoritma .kriptografi dikelompokan menjadi dua bagian, yaitu algoritma simetris (algoritma konvensional) dan algoritma asimetris (algoritma kunci publik) (Schneier, 1996) (Kurniawan, 2004) (Munir, 2006) (Menezes et al, 1996).
2.6.1 Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kunci-simetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Sistem kriptografi kunci-simetri (atau disingkat menjadi “kriptografi simetri” saja), mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya.
Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk ke dalam sistem kriptografi simetri.
Kelebihan algoritma simetris ini adalah proses enkripsi dan deskripsinya yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribution). Seperti yang telah dibahas, proses enkripsi dan deskripsi menggunakan kunci yang sama. Sehingga muncul persoalan menjaga kerahasian kunci, yaitu pada saat pengiriman kunci pada media yang tidak aman seperti internet. Tentunya jika kunci ini sampai hilang atau sudah dapat ditebak oleh orang lain (orang yang tidak berhak), maka kriptosistem ini sudah tidak aman lagi.
Universitas Sumatera Utara
Kelemahan lain adalah masalah efisiensi jumlah kunci. Jika terdapat n user, maka diperlukan n(n-1)/2 kunci, sehingga untuk jumlah user yang sangat banyak, sistem ini tidak efisien lagi (Menezes et al, 1996).
Gambar 2.1 Skema Kriptografi Simetri
2.6.2. Algoritma Asimetris
Algoritma asimetris atau kunci publik didesain sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi dimana kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan (rahasia).
Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri. Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak dan membaca surat di dalamnya karena ia yang memiliki kunci. Keuntungan sistem ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan. Saluran untuk mengirim pesan umumnya tidak aman.
Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup
Universitas Sumatera Utara
membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan kriptografi kunci-simetris yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.
Contoh penggunaan, misalkan jaringan komputer menghubungkan komputer karyawan di kantor cabang dengan komputer manejer di kantor pusat. Seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan ke manejer di kantor pusat, mereka harus mengenkripsi laporan tersebut dengan kunci publik manejer (kunci publik menejer diumumkan kepada seluruh kepala cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya manejer yang dapat melakukan dekripsi, karena hanya dialah yang memegang kunci privat. Selama proses transmisi ciphertext dari kantor cabang ke kantor pusat melalui saluran komunikasi mungkin saja data yang dikirim disadap oleh pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan ciphertext ke plainteksnya karena ia tidak mengetahui kunci untuk dekripsi.
Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik mempunyai kontribusi yang luar biasa dibandingkan dengan sistem kriptografi simetri. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan untuk memberikan aspek keamanan otentikasi, integritas data, dan nirpenyangkalan. Tanda-tangan digital adalah nilai kriptografis yang bergantung pada isi pesan dan kunci yang digunakan. Pengirim pesan mengenkripsi pesan (yang sudah diringkas) dengan kunci privatnya, hasil enkripsi inilah yang dinamakan tanda-tangan digital. Tanda-tangan digital dilekatkan (embed) pada pesan asli. Penerima pesan memverifikasi tanda-tangan digital dengan menggunaklan kunci publik.
Gambar 2.2 Skema Kriptografi Asimetri
Universitas Sumatera Utara
2.7 Keamanan Sistem Kriptografi
Suatu
sistem
kriptografi
merupakan
sebuah
himpunan
algoritma,
seluruh
kemungkinan plaintext, ciphertext, kunci, dan proses manajemen kunci yang digunakan (Oppliger, 2005).
2.7.1 Jenis-Jenis Ancaman Keamanan
Terdapat banyak faktor yang mengancam keamanan data. Ancaman-ancaman tersebut menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia seperti pemindahan dana secara elektronik pada dunia perbankan atau pengiriman dokumen rahasia pada instansi pemerintah. Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk melindungi data yag dikirim melalui saluran komunikasi. Salah satunya adalah dengan teknik enkripsi.
Dari sekian banyak faktor-faktor yang dapat mengancam keamanan dari suatu data, maka berdasarkan tekniknya, faktor-faktor tersebut dapat dikelompokkan ke dalam empat jenis ancaman, yaitu:
a) Interruption Interruption terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak (B). Interruption merupakan pola penyerangan terhadap sifat availability (ketersediaan data), yaitu data dan informasi yang berada dalam sistem komputer dirusak atau dibuang, sehinggga menjadi tidak ada dan tidak berguna. Contohnya, hard disk yang dirusak atau memotong jalur komunikasi.
b) Interception Serangan ini terjadi jika pihak ketiga berhasil mendapatkan akses informasi dari dalam sistem komputer. Contohnya, dengan menyadap data yang melalui jaringan public (wiretapping) atau menyalin secara tidak sah file atau program Interception merupakan pola penyerangan terhadap sifat confidentially/secrecy (kerahasiaan data).
Universitas Sumatera Utara
c) Modification Pada serangan ini pihak ketiga yang tidak hanya berhasil mendapatkan akses informasi dari dalam sistem komputer, tetapi juga dapat melakukan perubahan terhadap informasi. Contohnya, merubah program berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data).
d) Fabrication Fabrication merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak yang meniru atau memalsukan suatu objek ke dalam sistem. Contohnya, dengan menambahkan suatu record ke dalam file.
2.7.2 Serangan Pada Sistem Kriptografi
Pada dasarnya serangan terhadap sistem kriptografi dapat dibedakan menjadi dua jenis yaitu:
a) Serangan pasif adalah serangan dimana penyerang hanya memonitor saluran komunikasi. Penyerang pasif hanya mengancam kerahasiaan data.
b) Serangan aktif adalah serangan dimana penyerang mencoba untuk menghapus, menambahkan, atau dengan cara yang lain mengubah transmisi pada saluran. Penyerang aktif mengancam integritas data dan otentikasi, juga kerahasiaan.
2.7.3 Kualitas Keamanan Algoritma
Suatu algoritma dikatakan aman, bila tidak ada cara menemukan plaintextnya, berapapun banyaknya ciphertext yang dimiliki cryptanalyst. Sampai saat ini hanya OTP (one-time-pad) yang dinyatakan tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas. Seluruh algoritma lainnya selalu dapat dipecahkan dengan Ciphertext only attack, dan dengan teknik brute-force attack (memeriksa satu-
Universitas Sumatera Utara
persatu seluruh kemungkinan kunci dan memeriksa apakah plaintext yang dihasilkan memiliki arti yang sesuai). Komputer DNA yang sedang diteliti sekarang memiliki kemampuan yang mampu melakukan perhitungan milyaran kali lebih cepat daripada komputer yang ada sekarang ini. Dengan peningkatan kecepatan komputasi, maka keamanan algoritma kriptografi akan semakin terancam tentunya.
2.8 Algoritma ElGamal
Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan di dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program PGP dan pada sistem sekuriti lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit (Munir, 2006).
Logaritma ini disebut logaritma diskret karena nilainya berhingga dan bergantung pada bilangan prima yang digunakan. Karena bilangan prima yang digunakan adalah bilangan prima yang besar, maka sangat sulit bahkan tidak mungkin menurunkan kunci privat dari kunci publik yang diketahui walaupun serangan dilakukan dengan menggunakan sumberdaya komputer yang sangat besar.
Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Plainteks yang akan dienkripsi dipecah menjadi blok-blok plainteks, selanjutnya proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti.
2.8.1 Kelebihan Algoritma ElGamal
Algoritma ElGamal juga dikenal sebagai kriptografi digital signature karena dapat difungsikan secara baik untuk mengirimkan sebuah tanda tangan digital pada sebuah
Universitas Sumatera Utara
pesan dan lebih sempurna dibandingkan kriptografi Diffie-Hellman. Kelebihan dari algoritma ElGamal yaitu:
a)
Sebuah plainteks yang sama dapat diubah menjadi chiperteks yang berbeda karena dalam algoritma ElGamal, kita dapat memilih secara acak bilangan bulat untuk membuat sebuah kunci.
b) Dalam algoritma ElGamal sama seperti beberapa jenis kriptografi kunci yang lain. Hanya kunci privat yang perlu dijamin kerahasiannya. Tetapi, autentikasi kunci publik juga harus tetap dijaga. c)
Pasangan kunci publik dan kunci privat pada algoritma ElGamal tidak perlu diubah dalam periode waktu yang panjang.
d) Algoritma ElGamal bisa dimanfaatkan untuk mengirimkan sebuah pesan rahasia yang sangat rahasia, yaitu kunci dari sebuah kriptografi simetris.
2.8.2 Logaritma Diskret Misalkan G adalah grup siklik dengan order n, adalah pembangun G dan 1 adalah elemen identitas G. Diberikan β € G. Permasalahan yang dimunculkan adalah bagaimana menentukan suatu bilangan bulat nonnegatif terkecil a sedemikian hingga : β=α
a
(2.3)
Bilangan bulat a seperti ini disebut dengan logaritma diskret (discrete logarithm) dari de β dengan basis α. Selanjutnya, masalah bagaimana menentukan bilangan bulat a seperti ini disebut dengan masalah logaritma diskret (discrete logarithm problem). Masalah logaritma diskret ini menjadi sulit apabila digunakan grup dengan order yang besar (Buchmann, 2000).
Universitas Sumatera Utara
2.8.3 Proses Pembentukan Kunci
Proses pertama pada algoritma ElGamal adalah pembentukan kunci yang terdiri dari kunci rahasia dan kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima *
aman p yang digunakan untuk membentuk grup Z p, elemen primitif α yang merupakan elemen pembangun grup dan sembarang a Є {0,1,..., p – 2}. Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu (p, α, β), dengan: a
β = α (mod p),
(2.4)
dimana a merupakan kunci rahasia.
Langkah-langkah dalam pembentukan kunci sebagai berikut: a) Input bilangan prima aman p > 255 *
b) Input sebuah bilangan α yang merupakan elemen primitif dimana α Є Z
p
c) Input sebuah bilangan a Є {0,1,..., p − 2} a
d) Hitung β = α (mod p) e) Publikasikan nilai p, α, dan β, serta rahasiakan nilai a.
Pihak yang membuat kunci publik dan kunci rahasia adalah penerima, sedangkan pihak pengirim hanya mengetahui kunci publik yang diberikan oleh penerima, dan kunci publik tersebut digunakan untuk mengenkripsi pesan. Jadi, kentungan menggunakan algoritma kriptografi kunci publik adalah tidak ada permasalahan pada distribusi kunci apabila jumlah pengirim sangat banyak serta tidak ada kepastian keamanan jalur yang digunakan.
2.8.4 Proses Enkripsi
Karena pada algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standard for Information Interchange). Kode ASCII merupakan representasi numerik dari karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0
Universitas Sumatera Utara
dan maksimal 255. Oleh karena itu berdasarkan sistem kriptografi ElGamal di atas maka harus digunakan bilangan prima yang lebih besar dari 255 sehingga kode ASCII berkorespondensi 1-1 dengan karakter pesan. Pada proses enkripsi pesan dienkripsi menggunakan kunci publik (p, α, β) dan sembarang bilangan acak rahasia k Є {0,1,..., p − 2}. Misalkan m adalah pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plainteks m1, m2, m3, ..., mn dengan mi Є {1, 2,..., p-1} dan i =1, 2,..., n . Proses enkripsi pada algoritma ElGamal dilakukan dengan menghitung ki
γi = α (mod p)
(2.5)
dan ki
δ i= β × m (mod p)
(2.6)
dengan k Є {0,1,..., p − 2} acak, diperoleh cipherteks (γ, δ) . Bilangan acak k ditentukan oleh pihak pengirim dan harus dirahasiakan, jadi hanya pengirim saja yang mengetahuinya, tetapi nilai k hanya digunakan saat melakukan enkripsi saja dan tidak perlu disimpan.
Langkah-langkah proses enkripsi : a) Pesan dipotong-potong ke dalam bentuk blok-blok pesan dengan setiap blok adalah satu karakter pesan. b) Konversikan masing-masing karakter ke dalam kode ASCII, maka diperoleh plainteks sebanyak n bilangan, yaitu m1, m2, ..., mn. c) Untuk i dari 1 sampai n kerjakan: - Pilih bilangan acak ki dimana 1 < k ≤ p-2 ki
- Hitung γi = α (mod p) - Hitung δi = β
ki
× mi (mod p)
d) Diperoleh cipherteks (γi, δi), dimana i = 1,2,...,n.
Universitas Sumatera Utara
2.8.5 Proses Dekripsi Setelah menerima cipherteks (γ, δ), proses selanjutnya adalah mendekripsikan cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat ditunjukkan bahwa plainteks m dapat diperoleh dari cipherteks menggunakan kunci rahasia a. Diberikan (p, α, β) sebagai kunci publik dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (γ, δ), maka: a -1
m = (γ ) × (mod p)
(2.7)
dengan m adalah plainteks.
2.9 Konsep Dasar Perhitungan Matematis
2.9.1 Teori Modulo Fast Eksponensial
Modulo fast eksponensial adalah pemangkatan yang dilakukan bersamaan dengan operasi modulo. Modulo eksponensial sering digunakan dalam bidang kriptografi untuk menghitung hasil enkripsi maupun hasil dekripsi. Adapun yang dihitung dalam dalam modulo Fast eksponensial adalah sisa dimana bila sebuah bilangan x dipangkatkan y, kemudian dibagi dengan n, dengan bentuk umum xy mod n.
Dalam proses enkripsi dan dekripsi, biasanya digunakan y ataupun pangkat yang cukup besar, sehingga apabila kita menghitung secara langsung xy dapat menyebabkan xy cukup besar hingga tidak bisa disimpan dalam variable yang ada dalam bahasa pemograman.
Untuk menyelesaikan masalah ini digunakanlah algoritma big mod dimana untuk mencari nilai dari xy mod n, dilakukan proses membagi dan mengurangi pangkat yang ada.
Contoh : Hitung hasil dari 430mod 10
Universitas Sumatera Utara
Bila pangkatnya genap, maka pangkatnya dibagi 2, jika pangkatnya ganjil, maka pangkat dikurangi 1, sampai dengan pangkatnya menjadi 1. 430 / \ 15 4 415 karena sama, yang dicari hanya salah satu saja / \ 1 4 414 / \ 7 4 47 / \ 1 4 46 / \ 43 43 / \ 41 42 / \ 41 41
Karena pangkat terbawah sudah 1 maka dihitung kembali ke atas sambil dimodulo 10, maka dilakukan perhitungan dari bawah ke atas, seperti yang bisa dilihat berikut ini : 430 = (415x415 = 4 x 4 = 16 mod 10 = 6), jadi 430 = 6 / \ 415 415 = (41x414 = 4 x 6 = 24 mod 10 = 4), jadi 415 = 4 / \ 41 414 = (47x47 = 4 x 4 = 16 mod 10 = 6), jadi 414 = 6 / \ 47 47 = (41x46 = 4 x 6 = 24 mod 10 = 4), jadi 47 = 4 / \ 41 46 = (43x43 = 4 x 4 = 16 mod 10 = 6), jadi 46 = 6 / \ 43 43 = (41x42 = 4 x 6 = 24 mod 10 = 4), jadi 43 = 4 / \ 1 4 42 = (41x41 = 16 mod 10 = 6), jadi 42 = 6 / \ 1 4 41 Sehingga didapat 430 mod 10 = 6.
Universitas Sumatera Utara
2.9.2 Modulo Invers
Modulo Invers untuk menghitung balikan dari modulo yang digunakan pada proses dekripsi. Jika a dan m relatif prima dan m > 1, maka kita dapat menemukan balikan (invers) dari a modulo m. Balikan dari a modulo m adalah bilangan bulat
a
sedemikian sehingga a a 1 (mod m)
(2.8)
Bukti: Dari definisi relatif prima diketahui bahwa PBB (a, m) = 1, dan terdapat bilangan bulat p dan q sedemikian sehingga: pa + qm = 1
(2.9)
yang mengimplikasikan bahwa pa + qm 1 (mod m)
(2.10)
Karena qm 0 (mod m), maka pa 1 (mod m)
(2.11)
Kekongruenan yang terakhir ini berarti bahwa p adalah balikan dari a modulo m.
Pembuktian di atas juga menceritakan bahwa untuk mencari balikan dari a modulo m, kita harus membuat kombinasi lanjar dari a dan m sama dengan 1. Koefisien a dari kombinasi lanjar tersebut merupakan balikan dari a modulo m.
Contoh : Tentukan balikan dari 4 (mod 9), 17 (mod 7), dan 18 (mod 10).
Universitas Sumatera Utara
Karena PBB(4, 9) = 1, maka balikan dari 4 (mod 9) ada. Dari algoritma Euclidean diperoleh bahwa : 9=24+1 Susun persamaan di atas menjadi –2 4 + 1 9 = 1
Dari persamaan terakhir ini kita peroleh –2 adalah balikan dari 4 modulo 9. Periksalah bahwa: –2 4 1 (mod 9)
(9 habis membagi –2 4 – 1 = –9)
2.9.3 Bilangan Prima
Sebuah bilangan prima adalah bilangan bulat yang besar dari 1 yang hanya mempunyai faktor 1 dan bilangan itu sendiri. Tidak ada bilangan pembagi lainnya. 2 (dua) adalah bilangan prima (Schneier, 1996).
Contoh : 73, 2521, 2365347734339, dan 2
756839
- 1.
Kriptografi, khususnya kunci publik biasanya menggunakan bilangan prima yang besar (512 bits atau lebih besar). Bilangan selain bilangan bilangan prima disebut bilangan komposit. Misalnya, 20 adalah bilangan komposit karena 20 dapat dibagi oleh 2, 4, 5, 10, selain 1 dan 20 sendiri.
Universitas Sumatera Utara
2.9.5
Algoritma Euclidean
Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari dua bilangan bulat (Munir, 2006). Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean adalah:
1. Jika n = 0 maka m adalah PBB (m, n); stop. Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah nomor 2. 2. Bagilah m dengan n dan misalkan sisanya adalah r. 3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1. Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima.
Contoh : Tentukan gcd (108, 360)
Tentukan gcd (45, 13)
360 mod 108 = 36
45 mod 13 = 6
108 mod 36 = 0 (STOP)
13 mod 6 = 1
Jadi gcd (108, 360) = 36
6 mod 1 = 0 (STOP) Jadi gcd (45, 13) = 1
2.9.5 Bilangan Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB atau gcd (greatest common divisor) dari a dan b bernilai 1.
Universitas Sumatera Utara
Contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1. Begitu juga 7 dan 11 relatif prima karena PBB (7, 11) = 1. Tetapi 20 dan 5 tidak relatif prima sebab PBB (20, 5) = 5 1.
Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga ma + nb = 1
(2.12)
Contoh : Bilangan 20 dan 3 adalah relatif prima karena PBB (20, 3) =1, atau dapat ditulis 2 . 20 + (–13) . 3 = 1 dengan m = 2 dan n = –13. Tetapi 20 dan 5 tidak relatif prima karena PBB (20, 5) = 5 1 sehingga 20 dan 5 tidak dapat dinyatakan dalam m . 20 + n . 5 = 1.
2.9.6 Kekongruenan (Congruence)
Misalkan a dan b adalah bilangan bulat dan m adalah bilangan bulat > 0, maka a ≡ b (mod m) jika m habis membagi a – b ditulis (m|a − b). Jika a tidak kongruen dengan b dalam modulus m, maka di tulis a ≡/ b (mod m) (Oppliger, 2005).
Contoh : 17 ≡ 2 (mod 3)
(3 habis membagi 17 - 2 = 15)
-7 ≡ 15 (mod 11)
(11 habis membagi -7 - 15= -22)
12 ≡ / 2 (mod 7)
(7 tidak habis membagi 12-2 = 10)
Universitas Sumatera Utara
Kekongruenan a ≡ b (mod m) dapat juga di tuliskan hubungan a = b + km yang dalam hal ini k adalah bilangan bulat. Berdasarkan definisi aritmetika modulo, dapat dituliskan a ≡ b mod m.
Contoh : 17 ≡ 2 (mod 3), dapat ditulis sebagai 17 = 2 + 5 . 3 -7 ≡ 15 (mod 11), dapat ditulis sebagai -7 = 15 + (-2) .11.
Persamaan kongruen modulo n merupakan relasi ekuivalensi pada bilangan bulat. Hal ini berarti untuk setiap n ∈ N dan a, b, c ∈ Z 1. a ≡ a (mod n) (relasi refleksif); 2. Jika a ≡ b (mod n), maka b ≡ a (mod n) (relasi simetris); 3. Jika a ≡ b (mod n) dan b ≡ c (mod n), maka a ≡ c (mod n) (relasi transitif).
2.10 Penelitian Sebelumnya Mengenai Algoritma ElGamal
Penelitian sebelumnya yang berkaitan dengan algoritma ElGamal dan aplikasi pembelajaran dapat dilihat pada tabel 1.1 berikut ini:
Tabel 1.1 Penelitian Sebelumnya Mengenai Algoritma ElGamal
No
1
2
Peneliti / Tahun
Riyanto, 2007
Ariwibowo, 2008
Judul
Keterangan
Pengamanan Pesan
Algoritma kriptografi
Rahasia Menggunakan
asimetris, seperti algoritma
Algoritma Kriptografi
ElGamal, sangat baik
Elgamalatas Grup
untuk mengatasi masalah
Pergandaan ZP*
distribusi kunci.
Aplikasi Pengamanan
Implementasi program ini
Dokumen Office Dengan
menghasilkan suatu aplikasi
Algoritma Kriptografi
yang mengubah isi
Universitas Sumatera Utara
Kunci Asimetris ElGamal
dokumen (plaintext) yang berupa text, table dan gambar menjadi kode-kode yang tidak dikenal (ciphertext). Algoritma ElGamal keamanannya terletak pada
Metode Enkripsi Dan 3
Ifanto, 2009
Dekripsi Dengan Menggunakan Algoritma ElGamal
logaritma diskrit pada grup pergandaan bilangan bulat modulo prima, dengan mengambil nilai bilangan prima yang besar, maka upaya pemecahan pesan akan sangat sukar. Pada dasarnya, dari proses
Algoritma Elgamal Dalam 4
Massandy, 2009
Pengamanan Pesan Rahasia
pembentukan kunci sampai proses dekripsi ini, digunakan aritmatika modulo.
Aplikasi komputer dalam bidang pembelajaran memungkinkan berlangsungnya proses 5
Suyadi, 2008
Manfaat Komputer Dalam
belajar secara individual
Pembelajaran
(individual learning). Pemakai komputer atau user dapat melakukan interaksi langsung dengan sumber informasi.
Universitas Sumatera Utara