Abstrak
Kriptografi kurva eliptik termasuk kedalam sistem kriptografi kunci publik yang mendasarkan keamanannya pada
permasalahan matematis kurva eliptik. Tidak seperti permasalahan matematis logaritma diskrit (Discrete
Logarithm Problem, DLP) dan pemfaktoran bilangan bulat (Integer Factorization Problem, IFP), tidak ada
algoritma waktu subeksponensial yang diketahui untuk memecahkan permasalahan matematis logaritma diskrit
kurva eliptik (Elliptic Curve Discrete Logarith Problem, ECDLP). Karena alasan tersebut, algoritma kriptografi
kurva eliptik mempunyai 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 tiga
protokol ECDLP yang diketahui saat ini yaitu Elliptic Curve Digital Signature Algorithm (ECDSA), Elliptic Curve
Diffie Hellman (ECDH), dan Elliptic Curve ElGamal (ECElgamal). Jurnal ini membahas tentang ECDSA dan
pengimplementasiannya, serta pembahasan tingkat keamanan dan performansinya.
Kata kunci: sistem kriptografi kunci publik, kriptografi kurva eliptik, ECDSA, tingkat keamanan, dan
performansi
1
umum mempunyai tiga macam proses utama, yaitu Proses pembuktian keotentikan tanda tangan digital
: pembangkitan pasangan kunci, pemberian tanda ini dijelaskan sebagai berikut:
tangan digital (signing), dan verifikasi terhadap 1. Apabila pesan M yang diterima sudah berubah,
keabsahan tanda tangan digital tersebut (verifying). maka MD’ yang dihasilkan dari fungsi hash
berbeda dengan MD semula. Hal ini berarti
Signing, pesan yang hendak dikirim diubah bahwa pesan sudah tidak asli lagi (data
terlebih dahulu menjadi bentuk yang ringkas yang integrity).
disebut message digest. Message digest (MD) 2. Apabila pesan M tidak berasal dari orang yang
diperoleh dengan cara mentransformasikan pesan sebenarnya, maka message digest MD yang
M menggunakan fungsi hash satu-arah (one-way) dihasilkan dari persamaan 3 berbeda dengan
H, message digest MD’ yang dihasilkan pada
MD = H(M) (1) proses verifikasi (hal ini karena kunci publik
Pesan yang sudah diubah menjadi message digest yang digunakan oleh penerima pesan tidak
oleh fungsi hash tidak dapat dikembalikan lagi berkoresponden dengan kunci rahasia pengirim).
menjadi bentuk semula walaupun digunakan Bila MD = MD’, ini berarti pesan yang diterima
algoritma dan kunci yang sama (itulah sebabnya adalah pesan yang asli (message authentication)
dinamakan fungsi hash satu-arah). Sembarang dan orang yang mengirim adalah orang yang
pesan yang berukuran apapun diubah oleh fungsi sebenarnya (user authentication). Karena proses
hash menjadi message digest yang berukuran tetap signing menggunakan kunci rahasia pengirim
(umumnya 128 bit). Selanjutnya, message digest maka pengirim pesan tidak dapat menyangkal
MD dienkripsikan dengan algoritma kunci-publik aktivitas yang telah dilakukannya (non-
menggunakan kunci rahasia (SK) pengirim menjadi repudiation).
tanda tangan tanda tangan S,
S = ESK(MD) (2) 3. Bidang Terbatas
Pesan M disambung (append) dengan tanda tangan
tanda tangan S, lalu keduanya dikirim melalui Bidang terbatas (finite field) atau yang biasa
saluran komunikasi. Dalam hal ini, kita katakan disebut dengan Galois Field (GF) adalah bidang
bahwa pesan M sudah ditandatangani oleh pengirim yang hanya memiliki elemen bilangan yang
dengan tanda tangan digital S. terbatas. Derajat (order) dari finite field adalah
banyaknya elemen yang ada di dalam bidang. Jika
Verifying, Pesan M dan tanda tangan digital S yang q adalah pangkat prima (prime power), maka hanya
dikirim melalui saluran komunikasi akan diterima ada satu bidang terbatas dengan derajat q. Bidang
oleh pihak penerima. Di tempat penerima, pesan tersebut dilambangkan dengan Fq atau GF(q).
diverifikasi untuk dibuktikan keotentikannya Banyak cara untuk merepresentasikan elemen dari
dengan cara berikut : Tanda tangan digital S Fq, jika q=pm, dimana p adalah bilangan prima dan
didekripsi dengan menggunakan kunci publik (PK) m adalah bilangan integer positif, maka p disebut
pengirim pesan, menghasilkan message digest sebagai karakteristik dari Fq dan m disebut sebagai
semula, MD, sebagai berikut: derajat perluasan (extension degree) dari Fq.
MD = DPK(S) (3) Bidang terbatas yang digunakan dalam kriptografi
Pengirim kemudian mengubah pesan M menjadi adalah q=p, dimana p adalah bilangan prima ganjil,
message digest MD’ menggunakan fungsi hash yang dilambangkan dengan Fp (odd prime), dan
satu-arah yang sama dengan fungsi hash yang q=2m, dimana m adalah integer lebih besar dari
digunakan oleh pengirim. Jika MD’ = MD, berarti satu, yang dilambangkan dengan F2m
pesan yang diterima otentik dan berasal dari (characteristic two or even).
pengirim yang benar.
Signer Verifier 3.1 Bidang Terbatas Fp
Message Message Message Message Bidang Terbatas Fp merupakan sebuah bidang yang
Signature Signature
beranggotakan bilangan integer {0,1,...,p-1}, dan p
merupakan bilangan prima, setiap perhitungan
Fungsi
Hash
dikalkulasikan dengan modulo p agar hasilnya tetap
Signature berada dalam daerah Fp. Operasi yang berlaku
dalam bidang terbatas Fp adalah:
Message
Digest
Fungsi 1. Penjumlahan (Addition), jika a,b ∈ Fp, maka a
Hash
Public
+ b = r, dimana r adalah sisa pembagian a + b
Secret Key
Verify dengan bilangan prima p, 0 ≤ r ≤ p-1.
Signing
Key penjumlahan seperti ini disebut penjumlahan
modulo p (mod p).
Signature
Message
Digest
?
=
Message
Digest
2. Perkalian (Multiplication), jika a,b ∈ Fp, maka
a• b = s, dimana s adalah sisa pembagian a • b
2
dengan bilangan prima p, 0 ≤ s ≤ p-1. perkalian
seperti ini disebut perkalian modulo p (mod p).
∈
2. Misalkan P(x1,y1) E(Fp) , Q(x2,y2) E(Fp),∈
dan P ≠ ± Q, maka P + Q = (x3,y3) dimana :
2
3.2 Bidang Terbatas F2m ⎛ y 2 − y1 ⎞
x3 = ⎜ ⎟ - x1 - x2 (8)
Bidang terbatas F2m biasa disebut dengan bidang ⎝ x 2 − x1 ⎠
terbatas biner (binary finite field), dapat dipandang ⎛ y 2 − y1 ⎞
sebagai ruang vektor berdimensi m pada F2. Karena y3 = ⎜ ⎟ ( x1 - x3) – y1 (9)
itu ada himpunan yang beranggotakan m elemen ⎝ x 2 − x1 ⎠
{α0,α1,...αm-1}di dalam F2m sedemikian rupa 3. Misalkan P(x1,y1) ∈E(F ), maka P + P = 2P =
p
sehingga setiap a ∈ F2m dapat ditulis secara unik ke (x3,y3), dimana :
dalam bentuk: 2
a = a0α0+a1α1+...+am-1αm-1 , untuk ai ∈ {0,1} (4) ⎛ 3x 2 + a ⎞
Salah satu cara untuk merepresentasikan elemen-
x3 = ⎜⎜ 1 ⎟ − 2 x1
⎟ (10)
⎝ 2 y1 ⎠
elemen pada F2m adalah dengan representasi basis
polinomial. Pada representasi basis polinomial ⎛ 3x + a ⎞
2
3
⎛ y + y2 ⎞ 2. Pemilihan Kurva Eliptik E pada Fq, tidak semua
y 3 = ⎜⎜ 1 ⎟⎟(x1 + x3 ) + x3 + y1 . (14) kurva eliptik ’aman’ digunakan untuk kriptografi.
⎝ x1 + x 2 ⎠ Menurut [9] , syarat yang harus dipenuhi adalah :
3. Penggandaan titik (Point doubling) Misalkan P a. Jumlah titik pada kurva E atau derajat kurva
= (x1,y1) ∈ E(F2m), kemudian 2P = (x3,y3), dimana : E, #E(Fq), harus dapat dibagi oleh sebuah
bilangan prima n yang cukup besar.
2 b
x3 = x1 + 2
(15) b. #E(Fq) ≠ q
x1 c. n tidak membagi qk-1 untuk semua 1≤k≤20
Implementasi yang dipilih : kurva eliptik yang
⎛ y ⎞ dibangkitkan dengan cara metoda perkalian
y 3 = x1 + ⎜⎜ x1 + 1 ⎟⎟ x3 + x3. (16)
2
4
Dengan cara yang sama dihitung tingkat keamanan kunci publik RSA yang diperlukan adalah 128
untuk kunci dengan panjang bit n yang berbeda- bytes untuk modulo dan 3 bytes untuk kunci
beda sehingga diperoleh tabel hubungan panjang publik, sehingga totalnya adalah 131 bytes.
kunci ECDSA dengan tingkat keamanannya Sedangkan jika sistem kriptografi ECDSA
sebagai berikut : menggunakan 160 bit, maka panjang kunci publik
No Ukuran n Tingkat Keamanan (MIPS ECDSA adalah sebuah titik pada kurva Q(x,y) yang
(bit) year) (≈) masing masing elemennya , x dan y, juga
1 149 6.108 mempunyai panjang 160 bit. Sehingga total ukuran
2 160 3,8.1010 kunci publik ECDSA adalah 160 bit = 40 bytes,
3 183 7,9.1013 yang jauh lebih kecil jika dibandingkan dengan
4 229 6,6.1020 RSA.
5 353 3.1039
6 512 3,7.1063 Ukuran panjang tanda tangan digital, panjang
7 768 1,2.10102 tanda tangan digital ECDSA = 320 bit (2 x 160 bit,
8 1024 4,3.10140 tanda tangan merupakan pasangan r dan s yang
9 1280 1,4.10179 masing-masing panjangnya 160 bit), atau 40 bytes.
Sedangkan ukuran tanda tangan digital RSA adalah
10 1536 4,9 .10217
1020 bit ≈ 1024 bit = 128 bytes. Sehingga total
11 2048 5,7.10294
ukuran tanda tangan digital ECDSA jauh lebih
kecil dari RSA.
Sedangkan untuk hubungan panjang kunci RSA
dan tingkat keamanannya menurut [13] dapat Kecepatan proses signing dan verifying, waktu
dilihat dalam tabel berikut ini:
yang diperlukan untuk proses signing dan verifying
No Ukuran n Tingkat Keamanan (MIPS dapat dilihat pada tabel berikut ini :
(bit) year) Proses ECDSA RSA
1 512 30000 Operasi Kunci Rahasia Cepat Lambat
2 768 2.108 (pembangkitan tanda tangan
3 1024 3.1011 digital)
4 1280 1.1014 Operasi Kunci Publik Lambat Cepat
5 1536 3.1016 (verifikasi tanda tangan
6 2048 3.1020 digital)
Hubungan antara tingkat keamanan RSA dan Berdasarkan tabel di atas ECDSA baik digunakan
ECDSA dapat dilihat pada grafik berikut ini : untuk proses yang banyak menggunakan
pembangkitan tanda tangan digital, misalnya
Perbandingan Tingkat Keamanan
digunakan oleh orang yang sering menggunakan
ECDSA Dan RSA
2500 webmail karena di setiap suratnya, dia harus selalu
Panjang bit kunci
9. Kesimpulan
Tingkat Keamanan Kesimpulan yang dapat ditarik sehubungan dengan
tingkat keamanan dan performansi dari algoritma
8. Performansi kriptografi ECDSA maupun RSA adalah :
1. ECDSA dengan panjang kunci 160 bit
Untuk membahas tingkat performansi dari ECDSA mempunyai tingkat keamanan yang relatif sama
maupun RSA ada tiga kriteria yang menjadi dengan RSA dengan panjang kunci 1024 bit. Jadi
pertimbangan yaitu : algoritma kriptografi kurva eliptik mempunyai
keuntungan berupa ukuran panjang kunci yang
Ukuran pajang kunci, kunci publik RSA adalah lebih kecil jika dibandingkan dengan algoritma
pasangan (n,e), dimana n adalah modulo sedangkan kunci publik lainnya (RSA) tetapi sudah
e adalah kunci publik. Jika sistem kriptografi RSA memiliki tingkat keamanan yang relatif sama.,
yang dibangun 1024 bit, maka tentunya n juga sehingga algoritma kriptografi kurva eliptik
mempunyai panjang 1024 bit dan kunci publik cocok untuk diimplementasikan pada peralatan
yang digunakan adalah e = 216 + 1=65537. Ukuran
5
perangkat keras yang memiliki daya dan memori 7. Jurisic, A. Menezes, A. (2000). Elliptic
yang terbatas Curve and Cryptography.
2. Dari kriteria ukuran panjang tanda tangan digital, http://citeseer.ist.psu.edu/cache/papers/
algoritma kriptografi kurva eliptik memiliki Agustus 2004.
performansi yang lebih baik karena 8. Koblitz, N. Menezes, A. Vanstone, S.
menghasilkan tanda tangan digital yang (2000). The State of Elliptic Curve
mempunyai ukuran lebih kecil. Sedangkan dari Cryptography.
kriteria kecepatan proses signing dan verifying, http://www.cacr.math.uwaterloo.ca,
performansi kriptografi kurva eliptik akan lebih Desember 2004.
baik jika proses signing lebih sering dilakukan. 9. Lopez, Julio. Dahab, Ricardo. (2000). An
Sebaliknya performansi kriptografi RSA akan Overview of Elliptic Curve Cryptography.
lebih baik jika proses verifying lebih sering http://citeseer.ist.psu.edu/cache/papers/,
dilakukan. Agustus 2004.
10. Menezes,A. van Oorschot, P. Vanstone, S.
10. Saran (1997). Handbook of Applied
Cryptography.
Saran untuk pengembangan di masa mendatang : CRCPress.http://www.cacr.math.uwaterlo
1. Kriptografi kurva eliptik memiliki dua buah o.ca/hac/., Oktober 2004
bidang terbatas yaitu Fp dan F2m, dan yang 11. Munir, Rinaldi.(2003). Kumpulan Bahan
diimplementasikan adalah bidang terbatas Fp, Kuliah
saran penulis adalah bidang terbatas F2m juga Kriptografi.http://www.mail.informatika.o
diimplementasikan, kemudian dicoba untuk rg/~rinaldi/, Oktober 2004
dibandingkan bagaimana performansi keduanya. 12. Robshaw, JB. Lisa Yin, Yiquin . (1997).
2. Algoritma kriptografi kurva eliptik lain yang Elliptic Curve Cryptosystem.
dapat digunakan untuk penandatanganan http://RSASecurity.com , Agustus 2004.
dokumen elektronis adalah ECElGamal, saran 13. Schneier, Bruce.(1996). Applied
penulis adalah algoritma kriptografi ECElGamal Cryptography, second edition.John Wiley
tersebut juga diimplementasikan untuk kemudian & Sons, inc.
diketahui bagaimana performansinya jika 14. Zuccherato, Robert.(2000). Elliptic Curve
dibandingkan dengan algoritma kriptografi kurva Cryptography Support in Entrust.
eliptik ECDSA. http://www.entrust.com , Oktober 2004.