Analisis Algoritma dan Keamanan Keaman an pada Kriptografi Kurva Eliptik Jasson Prestiliano (972009005) Magister Sistem Informasi Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60 Salatiga 50711
[email protected] Abstrak Algoritma kriptografi untuk mengamankan data masih terus dikembangkan, di mana salah satunya adalah Algoritma Kriptografi Kurva Eliptik. Algoritma ini termasuk ke dalam sistem sistem kriptografi kunci publik yang mendasarkan keamanannya pada permasalahan matematis kurva eliptik. Algoritma ini memiliki keuntungan jika dibandingkan dengan algoritma kriptografi kunci publik lainnya yaitu dalam hal ukuran panjang kunci yang lebih pendek tetapi memiliki tingkat keamanan yang sama. Ada dua protokol yang dibahas di dalam jurnal ini, yaitu Elliptic Curve Digital Signature Algorithm) Algorithm) dan ECDH ( Elliptic Elliptic Curve ECDSA ( Elliptic Diffie Hellman). Hellman). Jurnal ini membahas tentang analisis algoritmanya, bagaimana mempergunakan algoritma tersebut dan keamanan algoritma ini bila dibandingkan dengan RSA 1024.
1. Pendahuluan Sebuah data penting biasanya disimpan di dalam basis data bila telah dienkripsi, agar bila ada yang mencoba menyerang sistem, data tersebut tidak dapat diketahui begitu saja. Namun, sebaik apapun enkripsi dari data tersebut, selalu ada algoritma untuk memecahkannya, walaupun membutuhkan waktu yang tidak sedikit untuk memecahkannya. Apabila data yang telah dienkripsi tersebut berhasil dipecahkan oleh sang penyerang, maka keamanan data yang ada di dalam sistem berada dalam bahaya. Karena itu sampai saat ini masih terus dikembangkan sistem-sistem yang dapat dipakai untuk men gamankan data tersebut Ilmu kriptografi adalah ilmu yang mempelajari tentang penyembunyian huruf atau tulisan sehingga membuat tulisan tersebut tidak dapat dibaca oleh orang yang tidak berkepentingan[1]. Kriptografi sudah dipakai sejak jaman Julius Caesar dimana akan mengirimkan pesan kepada panglimanya tetapi tidak mempercayai kurir pembawa pesan tersebut. Kriptografi terus menerus dikembangkan dari sisi kerumitan algoritma dan pembentukan kunci. Dan di antara algoritma-algoritma tersebut ada yang mudah dipecahkan dan ada yang sulit untuk dipecahkan. Di dalam jurnal ini dibahas tentang sebuah algoritma yang disebut Kriptografi Kurva Eliptik. 1
2. Kriptografi Kriptografi mempunyai 2 (dua) bagian yang penting, yaitu enkripsi dan dekripsi. Enkripsi adalah proses dari penyandian pesan asli menjadi pesan yang tidak dapat diartikan seperti Aslinya. Dekripsi sendiri berarti merubah pesan yang sudah disandikan menjadi pesan aslinya. Pesan asli biasanya disebut plaintext , sedangkan pesan yang sudah disandikan disebut ciphertext [1]. Pada Gambar 1 dapat dilihat bahwa masukan berupa plaintext akan masuk ke dalam blok enkripsi dan keluarannya akan berupa ciphertext , kemudian ciphertext akan masuk ke dalam blok dekripsi dan keluarannya akan kembali menjadi plaintext semula.
Plain
Enkripsi
Text
Chipper
Dekripsi
Text
Plain Text
Gambar 1 Enkripsi dan Dekripsi
Ada 2 (dua) model algoritma enkripsi yang menggunakan kunci, yaitu kunci simetrik dan kunci asimetrik[2, 3]. Enkripsi kunci simetrik yang biasanya disebut enkripsi konvensional adalah enkripsi yang menggunakan kunci yang sama untuk enkripsi maupun dekripsi, dari Gambar 2 terlihat bahwa untuk mengenkripsi maupun mendekripsi pesan hanya menggunakan satu buah kunci (K) saja.
Kunci K
Plain Text
Enkripsi
Chipper
Dekripsi
Text
Plain Text
Gambar 2 Enkripsi-dekripsi Kunci Simetrik
Penggunaan metode ini membutuhkan persetujuan antara pengirim dan penerima tentang kunci sebelum mereka saling mengirim pesan. Keamanan dari kunci simetrik tergantung pada kerahasiaan kunci, apabila seorang penyusup dapat menemukan kunci maka dengan mudah dapat membaca pesan yang sudah dienkripsi. Enkripsi kunci simetrik dapat dibagi kedalam 2 (dua) kelompok yaitu metode stream cipher dan metode block cipher . Enkripsi kunci asimetrik (biasa disebut enkripsi kunci publik) dibuat sedemikian rupa sehingga kunci yang dipakai untuk enkripsi berbeda dengan kunci yang dipakai untuk dekripsi. Enkripsi kunci public disebut demikian karena kunci untuk enkripsi boleh disebarluaskan kepada umum sedangkan kunci untuk mendekripsi hanya disimpan oleh orang yang bersangkutan. Enkripsi asimetrik dapat ditulis seperti berikut:
2
Ek (P) = C Dk (C) = P Contohnya seperti pada Gambar 2.3 bila seseorang ingin mengirim pesan kepada orang lain maka orang tersebut menggunakan kunci public orang tersebut untuk mengenkripsi pesan yang kita kirim kepadanya lalu orang tersebut akan mendekripsi pesan tersebut dengan kunci privat miliknya. Kunci Public
Plain
Kunci Private
Enkripsi
Text
Chipper
Dekripsi
Text
Plain Text
Gambar 3 Enkripsi Kunci Asimetrik
Seperti juga perkembangan ilmu kriptografi, tujuan-tujuan dari kriptografi teruslah berkembang. Bila pertama kali dibuat hanya untuk keamanan data saja, tetapi sekarang semakin banyak tujuan-tujuan yang ingin dicapai[1], yaitu: 1. Privasi, Musuh tidak dapat membongkar tulisan yang kita kirim. 2. Autentikasi, Penerima pesan dapat meyakinkan dirinya bahwa pesan yang diterima tidak terjadi perubahan dan berasal dari orang yang diinginkan. 3. Tanda tangan, penerima pesan dapat meyakinkan pihak ketiga bahwa pesan yang diterima berasal dari orang yang diinginkan. 4. Minimal , Tidak ada yang dapat berkomunikasi dengan pihak lain kecuali berkomunikasi dengan pihak yang diinginkan. 5. Pertukaran bersama, suatu nilai (misalnya tanda tangan sebuah kontrak) tidak akan dikeluarkan sebelum nilai lainnya (misalnya tanda tangan pihak lain) diterima. 6. Koordinasi, di dalam komunikasi dengan banyak pihak, setiap pihak dapat berkoordinasi untuk tujuan yang sama walaupun terdapat kehadiran musuh.
3. Kriptografi Kurva Eliptik Elliptic Curve Cryptography atau Kriptografi Kurva Eliptik adalah sebuah algoritma kriptografi kunci publik, yaitu algoritma di mana setiap pihaknya memiliki sepasang kunci privat dan kunci publik. Kunci privat hanya dimiliki oleh pribadi-pribadi yang berkepentingan, sedangkan kunci publik disebarluaskan ke semua pihak [2]. Pendekatan yang dilakukan untuk menghasilkan algoritma Kriptografi Kurva Eliptik adalah dengan menggunakan struktur matematika yang sangat unik yang memungkinkan pemrosesan titik dengan memiliki dua buah titik dalam sebuah kurva eliptik dan menghasilkan sebuah titik lain yang ada pada kurva tersebut. Struktur yang unik ini memberikan keuntungan dalam kriptografi dikarenakan kesulitan untuk menemukan 2 buah titik yang menentukan sebuah titik tertentu tersebut tidak dapat ditemukan dengan mudah.Tingkat kesulitan untuk menemukan 2 buah titik termasuk dalam golongan yang rumit sama seperti kesulitan untuk memperhitungkan 3
variasi eksponensial yang digunakan dalam algoritma RSA yang telah banyak diimplementasikan. Untuk memecahkan Kriptografi Kurva Eliptik sendiri dibutuhkan perhitungan matematis yang sangat tinggi. Kriptografi Kurva Eliptik terdiri dari beberapa operasi basic dan juga aturan yang mendefinisikan penggunaan dari operasi operasi basic seperti penambahan, pengurangan, perkalian dan perpangkatan yang didefinisikan sesuai dengan kurva-kurva yang ada. Operasi matematika yang digunakan pada Elliptic Curve Cryptography didefinisikan dengan persamaan y2 = x3 + ax + b dengan 4a3+27b2 ≠ 0 Setiap prubahan nilai dari ‘a’ dan’b’ akan menghasilkan elliptic curve yang berbeda. Contoh Elliptic Curve bisa dilihat pada Gambar 4 di mana Gambar 4(a) merupakan representasi kurva eliptik dari y2 = x3 -12x + 3 sedangkan Gambar 4(b) merupakan representasi kurva eliptik dari y2 = x3 -2x + 1. [3]
(a)
(b) Gambar 4 Beberapa Representasi Kurva Eliptik [2, 3]
Setiap kurva eliptik akan mendefinisikan kumpulan titik pada bidang dan dapat membentuk kumpulan albelian (kumpulan titik dangan titik tak hingga sebagai elemen identitas). Jika nilai x dan y yang dipilih adalah daerah terbatas (finit) yang besar, solusi akan menghasilkan suatu albelian finite. Kurva ellips yang digunakan dalam Kriptografi Kurva Eliptik didefinisikan dengan dua buah bidang terbatas. Kunci publik pada algoritma Kriptografi Kurva Eliptik adalah sebuah titik pada kurva eliptik dan kunci privatnya adalah sebuah angka random. Kunci publik diperoleh dengan melakukan operasi perkalian terhadap kunci privat dengan titik generator G pada kurva eliptik. Keamanan Kriptografi Kurva Eliptik bergantung pada masalah logaritma diskrit yang sulit untuk dipecahkan. Misalnya P dan Q adalah dua titik pada suatu kurva eliptik, sedemikian rupa sehingga kP = Q, di mana k adalah sebuah nilai skalar. Dengan mengetahui nilai P dan Q, 4
tidak mungkin bisa mendapatkan nilai k , jika k adalah nilai yang sangat besar. k adalah logaritma diskrit basis P terhadap Q. Ada tiga operasi yang perlu dijabarkan dalan Kriptografi Kurva Eliptik ini. Operasi-operasi tersebut antara lain perkalian titik, pertambahan titik dan penggandaan titik. Namun semua operasi tersebut berawal mula dari operasi Perkalian titik. Oleh karena itu, operasi utama pada Kriptografi Kurva Eliptik adalah perkalian titik.[4] Pada operasi Perkalian Titik, sebuah titik P pada kurva eliptik dikalikan dengan bilangan skalar k dengan menggunakan persamaan kurva eliptik untuk mendapatkan titik Q pada kurva eliptik yang sama. Dengan demikian kP = Q. Perkalian titik didapatkan dengan melakukan dua operasi dasar kurva eliptik sebagai berikut : a. Operasi pertambahan titik, yaitu menambahkan dua buah titik J dan K untuk mendapatkan titik L. Dengan demikian L = 2J. b. Operasi penggandaan titik, yaitu menambahkan titik J dengan dirinya sendiri untuk mendapatkan titik L. Dengan demikian L = 2J. Pada operasi pertambahan titik, dua buah titik J dan K pada sebuah kurva eliptik ditambahkan satu sama lain untuk mendapatkan titik L pada kurva eliptik yang sama. Perhatikan Gambar 5 sebagai representasi Pertambahan titik pada Kurva Eliptik.
Gambar 5 Representasi Contoh Operasi Pertambahan Titik pada Kurva Eliptik [4]
Pada Gambar 5, titik J dan K adalah titik yang berada pada kurva eliptik. Jika K ≠ -J maka sebuah garis yang melewati J dan K akan memotong kurva eliptik dan melewati sebuah titik –L. Pencerminan dari –L terhadap sumbu X akan menghasilkan titik L, yang merupakan hasil dari penambahan J dan K. Penggandaan titik adalah penambahan titik J pada kurva eliptik dengan dirinya sendiri untuk mendapatkan titik L pada kurva eliptik yang sama. Untuk mendapatkan L dengan menggandakan titik J, sehingga L = 2J, misalkan ada sebuah titik J pada kurva eliptik. Jika ordinat titik J tidak sama dengan nol, maka garis yang tangen pada J akan melalui –L. –L adalah
5
pencerminan L terhadap sumbu X, dengan demikian L = 2J. Perhatikan Gambar 6 sebagai representasi operasi penggandaan titik.
Gambar 6 Representasi Contoh Operasi Penggandaan Titik pada Kurva Eliptik [4]
4. Jenis-jenis Kriptografi Kurva Eliptik Ada dua jenis kriptografi kurva eliptik yang dibahas, yaitu algoritma penandatanganan pesan yang disebut dengan ECDSA ( Elliptic Curve Digital Signature Algorithm) dan ECDH ( Elliptic Curve Diffie Hellman). 4.1.
ECDSA ( Elliptic Curve Digital Signature Algorithm)
Algoritma penandatanganan pesan menggunakan Kriptografi Kurva Eliptik yang disebutkan sebagai ECDSA adalah salah satu variasi dari Digital Signature Algorithm yang beroperasi dengan kelompok kurva eliptik sebagai basis perhitungan dari proses penandatanganan. Agar dapat menyamakan suatu tanda tangan digital dari sebuah pesan yang dikirim oleh dua orang, maka kedua orang tersebut harus memiliki kurva elliptic yang sama. Seorang pngirim pesan yang akan ditandatangani akan memiliki sebuah kunci pribadi yang merupakan sbuah integer yang dipilih acak kurang dari n yang merupakan urutan kurva, pada meter kurva eliptik domain. Dan kunci publik yang merupakan titik yang dibangkitkan dengan kurva eliptik domain dngan perhitungan sebagai berikut: QA = dA * G Pembangkitan Kunci: 1. Memilih sebuah bilangan bulat random dA, yang nilainya diantara [1,n-1] 2. Menghitung QA = dA * G = (x1,y1) 3. Kunci rahasia = dA, dan kunci publik = QA.
6
Penandatanganan Digital: 1. Memilih sebuah bilangan bulat random k , yang nilainya diantara [1,n-1]. 2. Menghitung QA = k * G = (x1,y1) dan r = x1 mod n, jika r = 0, maka kembali ke langkah 1. 3. Menghitung k-1 mod n 4. Menghitung e = Hash(m) 5. Menghitung s = k-1 {e+dA * r} mod n tanda tangan si pengirim untuk message m adalah (r,s) Verifikasi Tanda Tangan Digital: 1. Memverifikasi bahwa r dan s adalah bilangan bulat yang antara [1,n-1] 2. Menghitung e = Hash (m) 3. Menghitung w = s-1 mod n 4. Menghitung u1 = ew mod n dan u2 = rw mod n 5. Menghitung u1 * G + u2 * QA = (x1,y1) 6. Menghitung v = x1 mod n 7. Menerima tanda tangan jika dan hanya jika v = r Seperti dengan kriptografi kurva eliptik pada umumnya, ukuran bit dari kunci publik diyakini diperlukan untuk ECDSA adalah sekitar dua kali ukuran tingkat keamanan, dalam bit. Sebagai perbandingan, pada tingkat keamanan 80 bit, berarti penyerang membutuhkan sekitar setara dengan sekitar 280 generasi tanda tangan untuk menemukan kunci pribadi, ukuran kunci DSA publik setidaknya 1024 bit, sedangkan ukuran sebuah kunci publik ECDSA akan menjadi 160 bit. Di sisi lain, ukuran tanda tangan adalah sama untuk kedua DSA dan ECDSA: 4t bit, dimana t adalah tingkat keamanan yang diukur dalam bit, yaitu, sekitar 320 bit untuk tingkat keamanan 80 bit[5]. 4.2.
ECDH (Elliptic Curve Diffie Hellman).
ECDH ( Elliptic Curve Diffie Hellman) adalah sebuah protokol perjanjian kunci yang memungkinkan dua pihak pengirim dan penerima , yang pada awalnya masing-masing memiliki kurva eliptik sepasang kunci publik-privat masing-masing, dan mengirimkan sebuah kunci rahasia bersama melalui saluran yang tidak aman. Ini adalah varian dari protokol Diffie-Hellman yang digunakan untuk menyamakan kunci untuk menggunakan kriptografi kurva eliptik. Misalkan Pengirim ingin menyepakati sebuah kunci bersama dengan Penerima, tapi saluran hanya tersedia bagi mereka mungkin disadap oleh pihak ketiga. Awalnya, parameter domain yaitu (p, a, b, G, n, h) dalam kasus perdana atau (m, f (x), a, b, G, n, h) dalam kasus biner) harus disepakati. Selain itu, masing-masing pihak harus memiliki sepasang kunci yang cocok untuk kriptografi kurva eliptik, terdiri dari sebuah kunci pribadi d: (a integer yang dipilih secara acak dalam interval [1n - 1]), dan kunci publik Q (mana Q = DG). sepasang kunci Pengirim (dA, QA) dan sepasang kunci Penerima (dB,QB). Setiap pihak harus memiliki kunci publik pihak lain (pertukaran harus terjadi). Pengirim menghitung (xk, yk) dAQB =. Penerima menghitung k = dBQA. Kunci berbagi adalah xk (koordinat x dari titik tersebut). Jumlah hasil penghitungan oleh kedua belah pihak seharusnya menghasilkan jumlah yang sama, karena dAQB = dAdBG = dBdAG = dBQA. Protokol aman karena tidak ada yang diungkapkan (kecuali untuk kunci publik, yang tidak rahasia), dan tidak ada pihak yang dapat menurunkan kunci pribadi yang lain kecuali dapat memecahkan prosesor aritmatika Kurva Logaritma Diskrit. 7
5. Implementasi Kriptografi Kurva Eliptik Kriptografi kurva eliptik dapat digunakan untuk mengenkripsi pesan ( plain text ), M, menjadi chiper text s. Pesan M di enkripsi menjadi PM dari himpunan terbatas dari titik-titik dalam lingkup eliptik, Ep(a, b). Langkah awal yang dilakukan yaitu memilih sebuah titik Generator atau G, di mana G ∈ Ep(a, b), di mana nilai terkecil dari n di dalam nG = O adalah sebuah bilangan prima yang sangat besar. Kurva eliptik Ep(a, b) dan titik Generator G dibuat menjadi kunci publik [3]. Setiap pengguna memilih sebuah kunci privat, n A < n dan menghitung kunci publik P A sebagai: P A = n AG. Untuk mengenkripsi pesan PM untuk user B, maka user A memilih sebuah bilangan bulat (integer ) acak k dan menghitung chiper text yang merupakan pasangan titik PC menggunakan kunci publik dari user B: ), (P P C = [(kG M + kP B)] Setelah menerima pasangan titik dari chiper text , P C , user B mengalikan titik pertama, (kG) dengan kunci privat yang dimilikinya, nB, kemudian menambahkan hasilnya ke dalam titik kedua di dalam pasangan titik dari chiper text , ( PM + kPB): (P )] = (P ) − [n )] = P G M + kP B) − [n B( kG M + kn B B( kG M Yang mana merupakan titik dari pesan ( plain text ), berkorespondensi ke pesan M. Hanya user B yang mengetahui kunci privat n B, yang dapat melepaskan nB(kG) dari titik kedua dari dari pasangan titik cipher text , misalnya ( P M + kP B), dan oleh karenanya mengambil informasi dari pesan P M. Contoh Enkripsi dengan menggunakan Kriptografi Kurva Eliptik. Diketahui terdapat kurva eliptik sebagai berikut: 2 3 mod y = x + ax + b p 2 3 y = x − x + 188 mod 751
dari persamaan tersebut didapatkan a = −1, b = 188, and p = 751. Grup Kurva Eliptik kemudian dibangkitkan oleh kurva eliptik yaitu Ep(a, b) = E 751(−1 , 188). Titik Generator point G = (0 , 376). Kemudian perkalian kG dari titik Generator G adalah (untuk 1 ≤ k ≤ 751): G = (0, 376) 4G = (2, 373) 7G = (667, 571) 10G = (57, 332) ... 763G = (677, 185) 766G = (3, 370) 769G = O (titik yang
2G = (1, 376) 5G = (188, 657) 8G = (121, 39) 761G = (565, 312) 764G = (196, 681) 767G = (1, 377) tidak terbatas)
8
3G = (750, 375) 6G = (6, 390) 9G = (582, 736) 762G = (328, 569) 765G = (417, 320) 768G = (0, 375)
Jika user A ingin mengirim pesan M kepada user B yang telah dienkripsi menjadi titik plain text PM = (443 , 253) ϵ E 751(−1 , 188). User A harus menggunakan kunci publik user B untuk mengenkripsinya. Misalnya user B memiliki kunci rahasia atau kunci privat n B = 85, maka kunci publiknya adalah: P B = n BG = 85(0, 376) P B = (671, 558)
User A memilih angka acak, misalnya k = 113 dan menggunakan kunci publik user B P B = (671 , 558) untuk mengenkripsi titik pesan menjadi pasangan titik cipher text pair of points: P C = P C = P C = P C =
[(kG ), (P M + kP B)] [113 × (0, 376), (443, 253) + 113 × (671, 558)] [(34, 633), (443, 253) + (47, 416)] [(34, 633), (217, 606)]
Ketika menerima pasangan titik dari cipher text , P C = [(34 , 633) , (217 , 606)], user B menggunakan kunci privatnya nB = 85, untuk menghitung titik pesan ( plain text ), P M , sebagai berikut: ( PM + kPB) − [nB(kG)] = (217 , 606) − [85(34 , 633)] ( PM + kPB) − [nB(kG)] = (217 , 606) − [(47 , 416)] ( PM + kPB) − [nB(kG)] = (217 , 606) + [(47 ,−416)] (since −P = ( x1 ,−y1)) ( PM + kPB) − [nB(kG)] = (217 , 606) + [(47 , 335)] (since −416 ≡ 335 (mod 751)) ( PM + kPB) − [nB(kG)] = (443 , 253) Dan titik koordinat dari pesan ( plain text ) P M = (443 , 253) kembali menjadi pesan asli M .
6. Analisis Tingkat Keamanan Kriptografi Kurva Eliptik Tingkat keamanan pada sistem kriptografi kunci publik adalah berapa waktu yang diperlukan untuk memecahkan suatu kunci rahasia berdasarkan persamaan matematis yang dimiliki oleh algoritma kriptografinya. RSA ( Rivet Shamir Addleman) termasuk ke dalam persamaan matematis IFP ( Integer Factorization Problem) sedangkan Kriptografi Kurva Eliptik termasuk ke dalam ECDLP ( Elliptic Curve Discrete Logarithm Problem). Tingkat keamanan dihitung berdasarkan panjang kunci dari masing-masing algoritma kriptografi, parameter kunci RSA yang digunakan adalah panjang bit n, yaitu perkalian antara faktor prima P dan Q, sedangkan untuk Kriptografi Kurva Eliptik parameter kunci yang digunakan juga panjang bit n, tetapi merupakan orde dari titik basis yang digunakan dalam persamaan kurva eliptik. Untuk memecahkan persamaan matematis tersebut harus digunakan software dan hardware yang terbaik. Algoritma terbaik yang diketahui untuk menyelesaikan IFP pada RSA adalah algoritma General Purposed Number Field Sieve yang memiliki kompleksitas algoritma Ơ = exp [1,923 (ln n)1/3 (ln ln n)2/3], sedangkan untuk menyelesaikan ECDLP pada Kriptografi Kurva Eliptik, terkhusus pada ECDSA adalah Pollard Rho Method Attacks yang memiliki Ơ = 2 n/2. Jika diasumsikan hardware yang digunakan mampu menjalankan 1000000 instruksi per 9
detik (1 MIPS (Million Instruction per Second )) maka akan dihitung tingkat keamanan kunci ECDSA [5]. Misalkan untuk n = 149 bit , maka tingkat keamanan dihitung sebagai berikut : MIPS = 2
149/2
/ 1000000.3600.24.365 = 598981035 MIPS years
Dengan cara yang sama dihitung tingkat keamanan untuk kunci dengan panjang bit n yang berbedabeda sehingga diperoleh tabel hubungan panjang kunci kriptografi kurva eliptik yang lebih spesifik pada metode ECDSA dengan tingkat keamanannya dapat dilihat pada Tabel 1. Sedangkan untuk hubungan panjang kunci RSA dan tingkat keamanannya dapat dilihat dalam Tabel 2. Tabel 1 Hubungan Panjang Kunci dengan Tingkat keamanan pada Kriptografi Kurva Eliptik
Tabel 2 Hubungan Panjang Kunci dengan Tingkat keamanan pada RSA
Hubungan antara tingkat keamanan RSA dan Kriptografi Kurva Eliptik yang lebih dikhususkan pada ECDSA dapat dilihat pada grafik yang terdapat di dalam Gambar 7.
10
Gambar 7 Perbandingan Tingkat Keamanan ECDSA dan RSA
7. Kesimpulan
Algoritma Kriptografi Kurva Eliptik dapat dijadikan sebagai sebuah algoritma kriptografi pilihan di mana untuk memecahkannya diperlukan usaha untuk memecahkan persamaan logaritma yang cukup rumit karena melibatkan titik, garis dan kurva.Oleh karena itulah, Kriptografi Kurva Eliptik termasuk ke dalam ECDLP ( Elliptic Curve Discrete Logarithm Problem). Kriptografi Kurva Eliptik yang dalam hal lebih spesifik adalah ECDSA dengan panjang kunci 160 bit mempunyai tingkat keamanan yang relatif sama dengan RSA dengan panjang kunci 1024 bit. Jadi algoritma kriptografi kurva eliptik mempunyai keuntungan berupa ukuran panjang kunci yang lebih kecil jika dibandingkan dengan algoritma kunci publik lainnya (RSA) tetapi sudah memiliki tingkat keamanan yang relatif sama sehingga algoritma kriptografi kurva eliptik cocok untuk diimplementasikan pada peralatan perangkat keras yang memiliki daya dan memori yang terbatas. Contoh nyata penggunaan algoritma kriptografi kurva eliptik ini adalah pada pengamanan data smart card, pengamanan data mobile device dan pengamanan data game yang disimpan pada memory card dari Nintendo Wii.
11
8. Daftar Pustaka
[1] Munir, Rinaldi. 2003. Kumpulan Bahan Kuliah Kriptografi. http://www.mail.informatika.org/~rinaldi/, diakses tanggal 20 Juli 2010. [2] Tirtawinata, Kevin. 2010. Studi dan Analisis Elliptic Curve Cryptography. Bandung: STEI – ITB [3] Lopez, Julio. Dahab, Ricardo. 2000. An Overview of Elliptic Curve Cryptography. http://citeseer.ist.psu.edu/cache/papers/, Diakses tanggal 20 juli 2010. [4] Aprilia, Shieny. 2009 Analisis dan Implementasi Elliptic Curve Cryptography dan Aplikasinya pada Sistem File Save Game Nintendo Wii. Departemen Teknik Informatika – ITB. [5] Triwinarko, Andi. 2004. Elliptic Curve Digital Signature Algorithm (ECDSA) . Departemen Teknik Informatika – ITB.
12