Kriptografi Kunci Publik Berdasarkan Kurva Eliptis Dwi Agy Jatmiko, Kiki Ariyanti Sugeng
Departemen Matematika, FMIPA UI, Kampus UI Depok 16424 {dwi.agy, kiki}@sci.ui.ac.id Abstrak Kriptografi kunci publik merupakan salah satu teknik kriptografi untuk mengamankan transmisi informasi. Pertukaran kunci Diffie-Hellman dan sistem kriptografi ElGamal merupakan dua teknik kriptografi kunci publik yang didasarkan pada Discrete Logarithm Problem (DLP). Pesatnya perkembangan komputer belakangan ini menuntut penggunaan keysize yang relatif besar untuk menjaga tingkat keamanan transmisi informasi melalui pertukaran kunci Diffie-Hellman dan sistem kriptografi ElGamal. Di dalam paper ini, akan dijelaskan mengenai penerapan kurva eliptis pada pertukaran kunci DiffieHellman dan sistem kriptografi ElGamal. Diharapkan penerapan kurva eliptis dapat memberikan tingkat keamanan transmisi informasi yang tinggi namun dengan penggunaan keysize yang relatif lebih kecil.
Abstract Public key cryptography is one of cryptographic techniques for securing information transmission. Diffie-Hellman key exchange dan ElGamal Cryptosystem are public key cryptography techniques that based on Discrete Logarithm Problem (DLP). Recent rapid-growing of computer made information transmission using Diffie-Hellman key exchange dan ElGamal cryptosystem have to use a relative large keysize to keep its security level. This paper will explain about elliptic curve implementation in Diffie-Hellman key exchange dan ElGamal Cryptosystem. Elliptic curve implementation expected to give higher security level in information transmission althought using relative small keysize.
Keywords: public key cryptography, discrete logarithm problem, keysize, elliptic curve, running time .
1. Pendahuluan Di era sekarang, pesatnya perkembangan komputer dan jaringan telah menuntut keamanan penyimpanan dan proses transmisi data di berbagai bidang. Hal ini dipicu oleh munculnya virus komputer, aksi hacking, praktik spionase, maupun kejahatan elektronik lain yang tidak hanya ditujukan untuk kalangan militer saja. Aksi-aksi tersebut dilakukan atas motif yang beraneka ragam, mulai dari untuk mendapatkan pengakuan publik hingga persaingan usaha. Oleh karena itu, teknik kriptografi terus dikembangkan guna menghadapi tantangan berupa ancaman keamanan data penting tersebut. Dalam 30 tahun terakhir, kriptografi kunci publik (public key cryptography) telah dijadikan sebagai teknik pengamanan utama dalam komunikasi melalui internet maupun komunikasi lainnya. Di dalam kriptografi kunci publik, digunakan sepasang kunci yang berbeda, yaitu kunci privat (private key) dan kunci publik (public key). Kedua kunci tersebut digunakan untuk melakukan komunikasi terenkripsi melalui serangkaian prosedur. Teknik kriptografi kunci publik generasi pertama yang terkenal dan masih digunakan hingga DiffieHellman Key Exchange. Diffie-Hellman (DH) didasarkan pada discrete logarithm problem (DLP) pada grup berhingga. DH hanya bisa digunakan untuk melakukan pertukaran kunci. Namun, pada tahun 1985
suatu teknik kriptografi kunci publik lain yang sekarang dikenal sebagai sistem kriptografi ElGamal berhasil ditemukan oleh Taher ElGamal untuk menjawab cara pengiriman pesan rahasia yang didasarkan pada DLP.[1] Hingga sekarang ini, teknik-teknik kriptografi kunci publik terus dikembangkan guna memperoleh keamanan yang lebih baik dibandingkan teknik-teknik sebelumnya. Salah satu teknik kriptografi kunci publik tersebut dibangun berdasarkan sifat-sifat matematis dari kurva eliptis. Sistem kriptografi yang menggunakan sifat-sifat suatu kurva eliptis disebut dengan Elliptic Curve Crypto-graphy (ECC). Sebagian besar kriptografi kunci publik yang ada sekarang menggunakan parameter dengan ukuran minimal 1024-bit. Namun, berdasarkan US National Institute for Standards and Technology, penggunaan parameter dengan ukuran sebesar itu hanya direkomendasikan hingga tahun 2010 saja. Seiring pesatnya perkembangan komputer, kriptografi generasi pertama disarankan untuk mengubah parameter yang digunakan ke ukuran yang lebih besar atau berpindah ke kriptografi kurva eliptis yang dianggap lebih aman. [3] Dua contoh ECC antara lain adalah elliptic DiffieHellman dan elliptic ElGamal. Berdasarkan US National Institute for Standards and Technology, peningkatan ukuran kunci sebanyak satu bit pada ECC akan memberikan peningkatan keamanan yang lebih besar dibandingkan pada kriptogra-
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.
fi kunci publik generasi pertama. Dengan kata lain, ECC mampu memberikan tingkat keamanan yang tinggi namun dengan penggunaan kunci dengan ukuran yang lebih kecil. Selain itu, walaupun operasi pada ECC merupakan operasi yang lebih kompleks dibandingkan pada kriptografi kunci publik lainnya, peningkatan keamanan per-bit key-nya mampu menutupi waktu tambahan yang di-perlukan untuk proses komputasi. Dari data diketahui bahwa tingkat keamanan RSA dan DH dengan keysize 1024-bit setara dengan ECC dengan keysize 160-bit. Sumber daya yang digunakan untuk proses komputasi pada ECC jauh lebih sedikit jika dibandingkan dengan teknik kriptografi yang tidak menggunakan kurva eliptis. [3]
2. Metode Penelitian Metode Penelitian yang digunakan adalah studi literatur dari sumber-sumber yang berupa buku maupun artikel yang diperoleh dari internet.
3. Kriptografi Kunci Publik Pembahasan kriptografi kunci publik akan dimulai dengan pengenalan kriptografi kunci publik sebagai suatu asymmetric cipher. Perbedaan antara symmetric cipher dengan asymmetric cipher terletak pada kunci yang digunakan untuk melakukan proses enkripsi-dekripsi. Pada symmetric cipher, satu kunci yang sama digunakan dalam melakukan proses enkripsi-dekripsi. Jadi, satu kunci tersebut harus dijaga kerahasiaannya oleh kedua pihak yang melakukan komunikasi. Jika kunci tersebut bocor, maka semua rahasia yang mereka share akan bocor. Berbeda dengan asymmetric cipher, dimana dalam proses enkripsidekripsi digunakan dua kunci yang berbeda. Berikut merupakan definisi kriptografi kunci publik yang diambil dari Stallings [5]. Didefinisikan K sebagai suatu ruang kunci (terdiri dari himpunan seluruh kunci yang mungkin digunakan), M sebagai plaintext, dan C sebagai ciphertext. Suatu k anggota K merupakan pasangan kunci (kpriv, kpub) yang secara berturut-turut disebut sebagai kunci privat dan kunci publik. Untuk setiap kunci publik kpub yang dipilih, terdapat suatu fungsi enkripsi e yang mentransformasikan plaintext menjadi suatu ciphertext: Untuk setiap kunci privat kpriv terdapat suatu fungsi enkripsi d yang mentransformasikan kembali suatu ciphertext menjadi plaintext asal: Jika (kpriv,kpub) merupakan anggota ruang kunci K, maka sifat berikut akan terpenuhi: untuk setiap Misalkan komunikasi akan dilakukan oleh Alice dan Bob. Dalam kasus ini, suatu pesan akan dikirim
oleh Bob ke Alice. Enkripsi pesan m oleh Bob dilakukan dengan menggunakan fungsi enkripsi e dan kunci publik milik Alice (kpub Alice). Kemudian ciphertext c dikirimkan ke Alice melalui kanal publik. Isi pesan dari Bob bisa diketahui oleh Alice dengan cara melakukan dekripsi ciphertext yang diterima dari Bob dengan menggunakan fungsi d dan kunci privat miliknya sendiri, yaitu (kpriv Alice). Jadi, teknik kriptografi kunci publik adalah suatu asymmetric cipher Supaya keamaan m tetap terjaga dari pihak ketiga (misalkan Eva), proses dekripsi harus sulit dilakukan oleh Eva walaupun kpub diketahui. Nilai m akan mudah dicari jika dan hanya jika Eva memiliki informasi tentang nilai kunci privat Alice. Eva akan mengalami kesulitan mengetahui isi pesan m dari Bob karena kunci privat Alice dirahasiakan. Dalam hal ini, fungsi enkripsi adalah suatu one-way function. Proses enkripsi bisa dilakukan dengan mudah. Namun, fungsi dekripsi sebagai fungsi inversnya sulit dilakukan tanpa memiliki informasi mengenai kunci privat. Hal ini disebabkan oleh belum ditemukan algoritma polynomial time yang bisa melakukan proses tersebut. Akibatnya, jika ukuran kunci yang digunakan sangat besar (memiliki jumlah digit yang banyak), proses dekripsi tanpa kunci akan memakan waktu yang sangat lama. Enkripsi (mudah)
M
C Dekripsi dengan kunci privat (mudah) Dekripsi tanpa kunci privat (sulit)
Gambar 1. Asymmetric Cipher Pada teknik kriptografi simetris (symmetric cipher), komunikasi dilakukan oleh kedua belah pihak dengan menggunakan kunci yang sama. Dalam hal ini, komunikasi harus dimulai dengan melakukan pertemuan untuk melakukan pemilihan kunci. Karena jika kunci dikirimkan melalui perantara, sangat mungkin kerahasiaan kunci tersebut bocor pada saat proses pengiriman. Konsep kriptografi kunci publik dibangun untuk mengatasi masalah tersebut. Kriptografi kunci publik adalah teknik kriptografi yang menggunakan suatu pasangan kunci: kunci yang hanya diketahui oleh pemilik, dan privat kunci publik kpub yang bisa dipublikasikan kepada orang lain melalui kanal publik. Dengan teknik ini, komunikasi yang aman bisa dilakukan tanpa proses pertemuan untuk melakukan pemilihan kunci.
4. Sistem Kriptografi Kunci Publik Berdasarkan Discrete Logarithm Problem Diffie-Hellman Key Exchange dan sistem kriptografi ElGamal merupakan teknik kriptografi kunci publik yang di dasarkan pada discrete logarithm problem (DLP). DLP merupakan masalah mencari jika suatu nilai yang memenuhi yang diketahui adalah nilai dari , , dan (dimana
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.
merupakan bilangan prima). yang dipilih disini merupakan suatu generator dari suatu grup berhingga. Jika nilai dari yang digunakan sangat besar, mencari nilai sebagai solusi dari suatu DLP merupakan hal yang sulit secara komputasi. Hal ini disebabkan belum adanya algoritma dengan running time polinomial untuk menyelesaikan suatu DLP pada grup berhingga. Algoritma tercepat untuk menyelesaikan DLP pada grup berhingga adalah metode index calculus dengan running time sub-exponential.[3] Keysize yang digunakan oleh suatu sistem kriptografi selalu bertambah besar seiring dengan perkembangan komputer. Akibatnya, proses manajemen dan distribusi kunci menjadi tidak efisien karena jumlah bit yang harus disimpan dan didistribusikan selalu bertambah besar. Penambahan ini harus dilakukan untuk menjaga tingkat keamanan dari suatu sistem kriptografi. Oleh karena itu, dirumuskan suatu upgrade pada sistem kriptografi kunci publik, yaitu dengan menggunakan ECC.
5. Kurva Eliptis dan ECDLP Sebelum dibahas mengenai kriptografi kunci publik yang didasarkan pada kurva eliptis, akan diberikan terlebih dahulu penjelasan mengenai kurva eliptis secara umum. Kurva eliptis merupakan himpunan + solusi dari persamaan Weierstrass 2 = 3 + ditambah suatu titik ekstra O yang terletak di infinity, dimana konstanta dan harus memenuhi kendala 4 3 + 27 2 0. [3] Di bawah ini diberikan contoh suatu kurva eliptis.
va eliptis (sebut titik potong tersebut sebagai titik ). Titik diperoleh dengan cara melakukan pencerminan titik terhadap sumbu- . Di bawah ini diberikan ilustrasi penjumlahan dua titik pada .
Gambar 3. Penjumlahan titik dan Untuk kasus dimana dan merupakan dua titik ), titik 2 = merupakan hasil yang sama ( pencerminan titik perpotongan antara garis singgung pada dengan kurva terhadap sumbu- . Pada Gbr 4. diberikan ilustrasi untuk kasus dimana dan merupakan titik yang sama.
Gambar 4. Penjumlahan titik
Gambar 2. Kurva Eliptis
Pada kurva eliptis didefinisikan suatu operasi Penjumlahan dua titik yang dinotasikan dengan simbol “⊕”. Diberikan dua titik dan pada kurva eliptis , titik diperoleh dengan cara mencari titik potong garis yang melalui dan dengan kur-
dan dan titik Untuk kasus lain, dimana titik - , kurva akan dipotong secara vertikal oleh garis . Dalam hal ini, titik perpotongan yang ketiga tidak terletak pada pada kurva. Untuk menyelesaikan permasalahan ini, didefinisikan suatu titik ekstra O yang terletak di infinity. Lalu didefinisikan = O dan O = . Hasil penjumlahan dan O adalah , karena titik potong garis vertikal yang melalui pada merupakan titik . Setelah dicerminkan terhadap sumbu- akan diperoleh titik . Jadi, O berlaku sebagai identitas atas operasi ⊕, dan berlaku sebagai invers dari . Lebih jauh lagi, jika , hasil pencerminan titik terhadap diberikan - sebagai dan didefinisikan sumbu-x, yaitu sebagai . Perkalian titik dengan suatu bilangan bulat positif didefinisikan sebagai
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.
penjumlahan titik
secara berulang, yaitu sebanyak kali. Himpunan titik-titik pada ditambah titik ekstra O tertutup atas operasi karena hasil penjumlahan dua titik pada selalu bisa diperoleh dan berada pada . Titik O berlaku sebagai identitas atas operasi . pada kurva eliptis memiliki Setiap titik suatu invers, yaitu suatu titik - . Untuk pembahasan sifat asosiatif tidak diberikan di dalam paper ini. atas bisa dilihat di Bukti sifat asosiatif operasi Silverman [4]. Selain itu, penjumlahan dua titik dan pada bersifat komutatif karena garis yang melalui dan merupakan garis yang sama dengan garis yang melalui dan . Jadi, himpunan titik-titik pada kurva eliptis ditambah titik O membentuk suatu grup komutaif atas operasi yang ⊕ telah didefinisikan sebelumnya. Berikut ini akan dibahas langkah-langkah melakukan penjumlahan titik pada suatu kurva eliptis . Diberikan suatu kurva eliptis : dan dua titik 1 dan 2 yang terletak pada . a. Jika 1 = O, maka 1 2 = 2, b. Jika 2 = O, maka 1 2 = 1, c. Selain kasus a dan b, dimisalkan 1 1, 1 dan 2 2, 2 , - 2, c.1. Jika 1 2 namun 1 maka 1⊕ 2 = O, c.2. Jika tidak memenuhi c.1, definisikan jika 1 2 atau jika
1= 2,
Maka: and 1
,
2 = ( 3, 3)
Kurva eliptis yang diterapkan di bidang kriptografi merupakan kurva eliptis yang titik-titik koordinatnya terletak di lapangan hingga . Kurva eliptis yang dibangun atas suatu lapangan hingga merupakan solusi dari persamaan : 2 = 3 + + ditambah titik ekstra O, dengan , , . Selain 3 2 itu, harus memenuhi kendala 4 + 27 0. [3] Kurva eliptis atas lapangan hingga disusun atas variabel dan koefisien yang merupakan anggota . Jadi, titik-titik yang terletak di kurva sekarang memiliki nilai x dan y yang berada di . Himpunan titik-titik pada
tersebut dinotasikan sebagai ( ).
Berdasarkan Koblitz [2], ( ) ditambah dengan titik ekstra O akan membentuk suatu grup berhingga atas operasi . Penerapan kurva eliptis dalan kriptografi kunci publik yang didasarkan pada DLP memerlukan suatu bentuk masalah yang analog dengan DLP. Berikut ini
dirumuskan suatu DLP yang disusun oleh ( ) atas operasi yang membentuk suatu grup. Misalkan diberikan suatu kurva eliptis atas lapangan hingga , dan dua titik dan yang berada pada ( ). Elliptic Curve Discrete Logarithm Problem (ECDLP) merupakan masalah mencari suatu bilangan bulat yang . Sebagai catatan, jika diberikan memenuhi sembarang titik dan anggota ( ), titik belum tentu merupakan kelipatan titik . Misalkan nilai akan dicari oleh suatu pihak ketiga, sebut saja Eva. Pencarian nilai yang yang me(dengan asumsi ada) akan menjadi menuhi hal yang sulit karena operasi yang digunakan merupakan operasi yang kompleks. Misalkan nilai akan dicari dengan cara menambahkan secara berulang-ulang, lalu memeriksa apakah hasilnya sama dengan , pada setiap iterasi diperlukan setidaknya 4 kali proses modulo (langkah c.2) dan 1 kali pencarian invers (langkah c.2). Jadi, proses pencarian nilai dengan metode seperti ini tidak efisien secara komputasi, terutama jika bilangan prima yang membentuk berukuran sangat besar. Cara lain yang bisa digunakan Eva untuk mencari nilai adalah dengan menggunakan collision algorithm. Bilangan bulat dipilih Eva secara acak, yaitu dan yang nilainya berada di antara 1 dan lalu dibuat dua list sebagai berikut: List #1: List #2: Pencarian dihentikan jika telah ditemukan suatu kecocokkan antara dua anggota list tersebut. Misalkan , maka . Sehingga nilai = . Jika lebih besar daripada (misalkan
), maka kemungkinan ditemukan kesa-
dan sangat besar. Metode maan antara ini bisa digunakan, namun sangat tidak efisien jika dilihat dari penggunaan memori. Sampai sekarang, algoritma index calculus untuk menyelesaikan ECDLP masih belum ditemukan. Hal tersebut menjadi alasan utama penerapan kurva eliptis di bidang kriptografi. Algoritma tercepat yang diketalangkah unhui, memerlukan setidaknya sekitar tuk menyelesaikan satu ECDLP di
.
6. Elliptic Diffie-Hellman Selanjutnya akan dibahas elliptic Diffie-Hellman, yaitu teknik pertukaran kunci Diffie-Hellman yang menggunakan suatu kurva eliptis. Sumber diambil dari Hoffstein [3]. Dalam kasus ini, suatu pertukaran kunci (shared secret) akan dilakukan antara Alice dan Bob. Langkah pertama yang harus dilakukan oleh
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.
Alice dan Bob adalah melakukan per-setujuan suatu kurva eliptis ( dibangun atas suatu lapangan hingga sehingga titik-titiknya membentuk ) serta suatu titik yang himpunan akan digunakan sebagai parameter kriptografi. Selanjutnya Alice memilih bilangan bulat rahasia nA, sedangkan Bob memilih bilangan bulat rahasia nB. Kedua nilai bilangan bulat tersebut dijadikan sebagai kunci privat dan harus dijaga kerahasiaanya. Kemudian, nilai kunci publik dihitung sebagai berikut: Alice: A Bob: B Kemudian kedua nilai kunci publik tersebut dipertukarkan, sehingga Bob mengetahui nilai A sedang-kan Alice mengetahui nilai B. Nilai shared secret yang sama yaitu , bisa mereka peroleh dengan menghitung: = Alice: S Bob: Selanjutnya nilai bisa digunakan sebagai kunci rahasia pada teknik kriptografi simetris.
7. Elliptic ElGamal Berikut ini akan dibahas mengenai elliptic ElGamal, yaitu hasil penerapan kurva eliptis pada sistem kriptografi ElGamal. Penjelasan akan diberikan dalam bentuk contoh, dimana suatu pesan rahasia akan dikirimkan oleh Bob kepada Alice melalui suatu kanal publik. Seluruh pembahasan pada bagian ini merujuk pada Hoffstein [3]. Seperti pada elliptic Diffie-Hellman, pertamatama suatu kurva eliptis atas suatu lapangan hingga , dan suatu titik dipilih oleh Alice dan Bob sebagai parameter. Parameter ini bisa diketahui oleh umum. Langkah selanjutnya, suatu bilangan bulat nA dipilih oleh Alice sebagai kunci privat, sedangkan Bob memilih bilangan bulat nB sebagai kunci privatnya. Kemudian, kunci publik masing-masing bisa dihitung sebagai berikut: Kunci Publik Alice: A Kunci Publik Bob: B Nilai kunci publik ini dipublikasikan melalui kanal publik kepada pihak yang akan diajak berkomunikasi. Misalkan suatu pesan m akan dikirimkan oleh Bob kepada Alice. Hal pertama yang harus dilakukan Bob adalah mencari tahu nilai kunci publik Alice. Karena nilai kunci publik Alice sudah dipublikasikan, langkah yang harus dilakukan Bob selanjutnya adalah melakukan proses enkripsi pesan m . Enkripsi pesan dimulai Bob dengan melakukan representasi pesan m . Selanjutnya suatu bimenjadi suatu titik langan bulat dipilih secara acak sebagai ephemeral key (kunci yang digunakan hanya untuk satu sesi komunikasi). Langkah yang dilakukan Bob selanjutnya
adalah menghitung nilai dari 1 A, dimana pasangan
dan 2 merupakan titik-
Pasangan titik 1, 2 dikirim ke Alice titik di seba-gai ciphertext. Proses dekripsi ciphertext yang diterima dari Bob dapat dilakukan oleh Alice dengan cara menghitung: A
) Sehingga akan diperoleh pesan asli dari Bob berupa . Plaintext atau pesan asli adalah , sedangkan ciphertext yang dikirim adalah (( 1, 1), ( 2, 2)). Dari sini terlihat bahwa pengiriman pesan dengan menggunakan Elliptic ElGamal menyebabkan rasio ekspansi 1:4 antara plaintext dan ciphertext. Rasio ini lebih besar jika dibandingkan dengan menggunakan ElGamal yang biasa (rasio ekspansi antara plaintext dan ciphertext hanya 1:2 karena setiap plaintext dikirimkan dalam pasangan bilangan bulat (C1, C2)). Dari penjelasan mengenai elliptic Diffie-Hellman dan elliptic ElGamal terlihat bahwa sistem kriptografi kunci publik yang mengandalkan ECDLP analog dengan sistem kriptografi yang keamanannya bergantung pada DLP. Perbedaannya adalah jika pada sistem kriptografi kunci publik biasa (non-kurva eliptis) himpunan yang digunakan adalah anggota , sedangkan pada kriptografi kunci publik elliptic, himpunan yang digunakan adalah anggota .
8. Kesimpulan Kurva eliptis bisa diterapkan pada kriptografi kunci publik, antara lain pada pertukaran kunci Diffie-Hellman dan sistem kriptografi ElGamal. elliptic Diffie-Hellman dan elliptic ElGamal merupakan versi pertukaran kunci Diffie-Hellman dan sistem kriptografi ElGamal yang menggunakan kurva eliptis. Elliptic Diffie-Hellman dan elliptic ElGamal didasarkan pada elliptic curve discrete logarithm problem (ECDLP) yang memiliki tingkat kesulitan penyelesaian lebih tinggi daripada discrete logarithm problem biasa. Diharapkan, penerapan kurva eliptis pada kriptografi kunci publik dapat memberikan tingkat keamanan yang tinggi.
Daftar Acuan [1] Hoffstein, J., Pipher, J., Silverman, J. H. (2008). An Introduction to The Mathematical Cryptography. - : Brown University. [2] Koblitz, N., Menezes, A., Vanstone, S. (2000). The State of Elliptic Curve Cryptography. Designs, Codes, and Cryptography, 19: 173-178. [3] National Security Agency Central Security Service. (2009). The Case for Elliptic Curve Cryptography. http://www.nsa.gov/business/
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.
programs/elliptic_curve.shtml. Diakses 21 Agustus 2012 Pukul 15.00 WIB. [4] Silverman, J. H., Tate, J. (1992). Rationals Points on Elliptic Curves. New York: Springer-Verlag. [5] Stallings, W. (2005). Cryptography and Network Security Principle and Practices, 4th-Edition. USA: Prentice Hall.
Kriptografi kunci..., Dwi Agy Jatmiko, FMIPA UI, 2013.