IMPLEMENTASI ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM PADA SKEMA BLIND SIGNATURE Is Esti Firmanesa Lembaga Sandi Negara e-mail: isesti.firmanesa@lemsaneg.go.id / isestif@yahoo.com ABSTRACT Some blind signature schemes (blind signature) previously proposed based on the Integer Factorization Problem (IFP), such as RSA and Discrete Logarithm Problem (DLP) such as ElGamal algorithm. However, both of these schemes has not meet the two properties as stated by Chaum, that every blind signature protocol should hold two basic properties, namely blindness (blindness) and complexity (intractableness). For this reason, some researchers make blind signature scheme based on Elliptic Curve Cryptography (ECC) which is proven to meet these two properties. This study will discuss the blind signature scheme based on algorithm based ECC, namely the Elliptic Curve Digital Signature Algorithm (ECDSA) where security depends on the difficulty of solving the Elliptic Curve Discrete Logarithm Problem (ECDLP). ECDSA is the development of DSA-based on the DLP, namely the DSA analogous to the ECC-based on the ECDLP. Keywords : Blind Signature, ECC, ECDLP, ECDSA PENDAHULUAN Internet telah memberikan kontribusi dan andil yang sangat besar bagi perkembangan dunia. Kehadiran internet telah menghapus batas dan jarak terhadap akses informasi. Perkembangan internet juga telah mempengaruhi perkembangan ekonomi. Berbagai transaksi jual beli yang sebelumnya hanya bisa dilakukan dengan cara tatap muka (dan sebagian sangat kecil melalui pos atau telepon), kini sangat mudah dan sering dilakukan melalui internet. Transaksi melalui internet ini dikenal dengan nama e-commerce. Sekarang, tantangannya adalah meningkatkan keamanan dan anonimitas orangorang dalam lingkungan internet yang tidak terkendali dan berbahaya ini. Hal ini untuk menghindari penipuan/pemalsuan atau tindakan-tindakan ilegal lainnya secara online. Salah satu solusinya adalah menerapkan konsep blind digital signature atau disebut juga blind signature. Konsep ini diperkenalkan pertama kali oleh Chaum pada tahun 1982 dan beberapa aplikasi blind signature telah dikembangkan melalui bidang e-commerce dan e-voting [İsmail Butun, Mehmet Demirera]. Beberapa skema blind signature yang diusulkan sebelumnya didasarkan pada IFP dan DLP. Namun kedua skema ini belum memenuhi dua sifat/syarat seperti yang dinyatakan oleh Chaum, bahwa setiap protokol blind signature harus memegang dua sifat dasar, yaitu kebutaan (blindness) dan kerumitan (intractableness) [Fuh-Gwo Jeng, Tzer-Long Chen, Tzer-Shyong Chen]. Oleh karena itu, peneliti-peneliti membuat skema blind signature baru yang menerapkan Elliptic Curve Cryptography (ECC) untuk memperoleh keamanan dan keefisiensian yang lebih baik dalam penggunaan resources. Dalam hal ini, skema blind signature menggunakan ECDSA yang berbasis ECDLP. Tujuan dari skema ini adalah memanfaatkan keuntungan yang melekat pada ECC, yaitu dengan tingkat keamanan yang sama, ukuran kunci ECC lebih kecil dan waktu perhitungannya lebih cepat dari pada RSA dan ElGamal. Demikian juga berdasarkan hasil simulasi dari penelitian sebelumnya terjadi peningkatan kinerja hingga 96% jika dibandingkan dengan skema yang diusulkan sebelumnya. Oleh karena itu, skema ini telah terbukti kuat dan sangat sulit untuk dilacak yaitu, serta dapat diusulkan untuk digunakan dalam berbagai aplikasi seperti e-voting, digital cash, dan lain-lain. Keamanan dari skema blind signature yang kuat adalah untuk menghindari usaha pemalsuan otentikasi tanda tangan dan data dari pihak yang tidak berwenang atau lawan, sehingga integritas data, keabsahan pengirim, dan anti-penyanggahan dapat dijamin. METODE PENELITIAN Metode penelitian yang digunakan dalam paper ini adalah Metode Penelitian dan Pengembangan, yaitu skema blind signature yang mengimplementasikan ECDSA (berbasis ECDLP) adalah perbaikan dari skema blind signature sebelumnya yang berbasis IFP dan DLP dalam hal A-321
kekuatan algoritma dan keefisiensian dalam penggunaan resources (biaya komputasi, ukuran kunci dan bandwidth). PEMBAHASAN Skema yang dibuat dalam paper ini adalah skema blind signature analog dengan ECC yang berbasis keamanan ECDLP. Sebelum membahas skema blind signature tersebut akan dibahas landasan teori yang mendukung skema tersebut. Digital Signature Tanda tangan digital (digital signature) digunakan proses pengiriman dan penerimaan pesan melalui jalur pribadi berdasarkan kesepakatan antara semua user terkait. Pesan ini dienkripsi dan didekripsi menggunakan sistem kriptografi tertentu untuk menjamin kerahasiaan dan integritas pesan. Peran digital signature dalam proses pengiriman/penerimaan pesan ini adalah untuk menjamin integritas, otentikasi (pesan dan user), dan non-repudiasi. Konsep digital signature awalnya berasal dari kriptografi yang didefinisikan sebagai metode untuk pesan pengirim yang dienkripsi atau didekripsi dengan melibatkan fungsi hash untuk menjamin kerahasiaan pesan ketika ditransmisikan. Ketika fungsi hash digunakan untuk pesan, maka digital signature yang dihasilkan disebut pesan digest. Fungsi hash adalah algoritma matematika yang membuat pesan dari input dengan panjang sembarang sebagai masukan dan menghasilkan output dengan panjang tetap. Karena syarat yang satu arah, maka bagi pihak ketiga tidak mungkin untuk mendekripsi pesan yang terenkripsi. Fase Signing Proses dari penandaan (signing) memerlukan pentransformasian beberapa pesan rahasia yang dibawa oleh user ke dalam suatu tanda pengenal yang disebut tanda tangan (signature). Pertma kali pengirim membuat pesan/data sebagai input dari fungsi hash kemudian menghasilkan pesan digest sebagai output-nya. Yang ke-2, pesan digest ini dienkripsi dengan kunci rahasia pengirim dan digital signature pesan ini sudah dilakukan. Akhirnya, pengirim mengirim pesan/datanya dengan digital signature-nya ke penerima. Fase Verifikasi Pertama kali penerima memperoleh pesan dengan digital signature-nya, dia mengulang proses yang sama dengan yang dilakukan oleh pengirim, yaitu menggunakan pesan tersebut sebagai input ke fungsi hash untuk memperoleh pesan digest pertama sebagai output. Kemudian mendekripsi digital signature dengan menggunakan kunci publik pengirim untuk memperoleh pesan digest ke-2. Terakhir, memverifikasi apakah dua pesan digest ini sama atau tidak. Pada fase verifikasi, apabila diketahui bahwa kedua pesan digest tersebut tidak sama berarti ada gangguan terhadap keontetikasi dan integritas pesan/data dari pihak lain yang tidak berwenang. Blind Signature Signer menandatangani pesan requester dan tidak mengetahui apapun tentang ini, selain itu tidak seorang pun mengetahui tentang hubungan antara pasangan pesan-signature kecuali requester. Proses blind signature adalah sebagai berikut: Fase Blinding Awalnya pengirim memilih bilangan secara acak yang disebut faktor blind untuk menyamarkan pesannya sehingga signer akan membutakan pesan tersebut. Fase Signing Ketika signer memperoleh pesan blinded, dia langsung mengenkripsi pesan blinded dengan kunci rahasianya dan kemudian mengirimkan blind signature kembali ke pengirim. Fase Unblinding Pengirim menggunakan faktor blind-nya yang ditentukan dalam (1) untuk menemukan kembali digital signature-nya signer dari signature yang dibutakan (blinded signature). Fase Verifikasi Signature Siapapun dapat menggunakan kunci publik signer untuk memverifikasi apakah signature tersebut adalah asli. A-322
Protokol blind signature berbasis kriptosistem RSA pertama kali diusulkan oleh Chaum. Kemudian penelitian selanjutnya adalah membuat protokol blind signature berbasis kriptosistem ElGamal. Pada tahun 1994, Camenisch memberikan definisi lebih jauh tentang blindness untuk sebuah skema signature. Skema signature dikatakan blind sesuai definisi Camenisch adalah bahwa ada faktor blinding yang unik untuk sepasang pesan-signature (m, s(m)) sehingga dua pesan yang sama ditandai akan menghasilkan dua signature yang berbeda. Elliptic Curve Cryptography Masalah Komputasi Berbasis Keamanan a. Misalkan diberikan n, p, q. IFP adalah menghitung p dan q sehingga n = pq. b. Misalkan diberikan suatu prima p, sebuah generator α dari dan elemen β. DLP adalah menghitung x, 0 x p-2 sehingga α x β (mod p). c. Misalkan E( p ) adalah kurva eliptik dan P, Q adalah titik-titik pada E( p ), diberikan P E( p ) berorder n (jumlah titik hasil perkalian titik P), Q P, dan Q=aP, a [0, n-1]. ECDLP adalah menghitung a sehingga Q=aP. Kurva Eliptik atas p. Misalkan p > 3 adalah bilangan prima dan 4a 3 + 27b 2 0, dimana a, b R. Kurva eliptik E p (a, b) = {(x, y) R 2 / y 2 = x 3 + ax + b, 4a 3 + 27b 2 0, x, y, a, b R} {O (titik infinity)}. (E( p ), +) membentuk grup abelian dengan O sebagai identitasnya. Kurva eliptik E adalah himpunan titik (x, y) dengan x, y E yang memenuhi y 2 =x 3 +ax+b disertai dengan sebuah elemen tunggal, yaitu O. Order kurva eliptik E( p ) adalah jumlah maksimun titik yang terdapat pada suatu kurva eliptik E( p ) yang dinotasikan #E( p ) berada pada interval p + 1-2 p #E( p ) p + 1 + 2 p. Misalkan: a=1, b=6 dan p=11, persamaan kurva eliptik y 2 = x 3 + x + 6 (mod11), sehingga 4a 3 +27b 2 = 4.1 3 +27.6 2 = 976 (mod 11) = 8 (mod 11). Selanjutnya dicari elemen-elemen grup eliptik E 11 (1,6) atas Z 11, dengan Z 11 ={0,1,2,3,4,5,6,7,8,9,10}. Sebelum menentukan elemen-elemen E 11 (1,6), terlebih dahulu mencari residu kuadrat modulo 11 untuk mendapatkan nilai pasangan (x,y). Setelah melalui semua perhitungan tersebut diperoleh semua titik pada kurva eliptik E 11 (1, 6) adalah {(2, 4), (2, 7), (3, 5), (3, 6), (5, 2), (5, 9), (7, 2), (2, 9), (8, 3), (8, 8), (10, 2), (10, 9), O }. Untuk suatu titik P pada kurva eliptik, (O+P+PP+ ) adalah grup siklik. Notasinya adalah P = {0P=O, 1P=P, 2P=P+P, 3P=P+P+P,...}. Operasi penjumlahan ini disebut juga perkalian skalar, yaitu kp menunjukkan penjumlahan P sebanyak k kali, yaitu kp=p+p+ +P. Order dari suatu titik P E( p ) adalah bilangan bulat positif terkecil k, sehingga kp = O dan titik P disebut titik hingga (finite point). Jika tidak ada integer positif yang memenuhinya, maka order titik tersebut dikatakan tidak berhingga (infinity). Struktur Grup Kurva Eliptik: Diberikan sebarang himpunan tidak kosong E( p ) dan operasi penjumlahan titik kurva eliptik, maka (E( p ), +) disebut grup jika dipenuhi hal-hal sebagai berikut: Misalkan P, Q, dan R adalah titik-titik pada kurva eliptik, maka: a. memenuhi sifat tertutup terhadap penjumlahan dalam E( ): P+Q=R E( ); Gambar 1. Penjumlahan dua titik P dan Q yang berbeda. A-323
b. memenuhi sifat asosiatif: (P+Q)+R=P+(Q+R); Gambar 2. Penjumahan tiga titik memenuhi sifat asosiatif (P+Q)+R=P+(Q+R) c. mempunyai identitas, yaitu titik infinity O; Gambar 3. Operasi Penjumlahan Identitas d. mempunyai invers, misal P dari P (lihat gambar 3). Operasi aritmetika penjumlahan pada E( p ) adalah sebagai berikut: a. P+O=O+P=P, untuk semua P E( p ) (lihat Gambar 3); b. Jika P(x,y) E( p ), maka (x,y)+(x,-y)=o ((x,-y) E( p ) dinotasikan P dan disebut negatif P). c. Penjumlahan dua titik yang berbeda. Misal P=(x 1,y 1 ) E( p ), Q=(x 2,y 2 ) E( p ), P ± Q, maka P + Q = (x 3, y 3 ), dimana x 3 = λ 2 - x 1 - x 2 ; y 3 = λ (x 1 x 3 ) y 1 ; dan λ = (y 2 -y 1 )/(x 2 -x 1 ) (lihat Gambar 1); Contoh: Misalkan titik P(3,10) dan Q(9,7) dalam E 23 (1,1), maka P+Q=R(x R,y R ), dengan x R dan y R diperoleh dengan menghitung nilai λ terlebih dahulu. λ = (y 2 -y 1 )/(x 2 -x 1 ) = (7-10)/(9-3) =-3/6 = -1/2 = -2-1 (mod 23) = 11, kemudian dapat dihitung nilai x 3 dan y 3, yaitu: x 3 = λ 2 - x 1 - x 2 = 11 2-3-9 (mod 23) =17 dan y 3 = λ (x 1 x 3 ) y 1 = 11(3-17)-10 (mod 23) = 20. Jadi P+Q=(17,20). d. Penjumlahan dua titik yang sama. Misal P=(x 1,y 1 ) E( p ), P+P=2P=(x 3,y 3 ), dimana x 3 =λ 2-2x 1 ; y 3 = λ (x 1 x 3 ) y 1 ; dan λ = (3x 1 2 + a) / 2y 1. Operasi ini disebut doubling suatu titik. Contoh: Misalkan titk P(x 1,y 1 )=P(3,10) dalam E 23 (1,1), sehingga perkalian skalar 2P=P+P dihitung dengan cara berikut ini. λ = (3x 1 2 + a) / 2y 1 = (3.3 2 +1) / 2.10 (mod 23) = 6 x 3 =λ 2-2x 1 = 36-6 (mod 23) = 7 dan y 3 = λ (x 1 x 3 ) y 1 = 6(3-7)-10 = 12. Jadi, 2P = (x 3, y 3 ) = (7, 12). A-324
Gambar 4. Operasi doubling jika yp = 0 dan yp 0 Elliptic Curve Digital Signature Algorithm (ECDSA) membantu kita dalam penerapan pendekatan kriptografi ini (ECC) untuk digital signature. ECDSA adalah pengembangan dari DSA yang menggunakan aritmatika ECC atas finite field. Skema blind signature berbasis ECDSA adalah untuk menghasilkan blind signature yang efektif dan memuaskan. Skema blind signature berbasis ECDSA diyakini lebih unggul dari algoritma kriptografi lainnya, seperti RSA, DSA, dan lain-lain. ECDSA merupakan algoritma standar yang sudah disahkan dalam American National Standard X9.62-1998, yaitu Publik Key Cryptography For The Financial Service Industry: The Elliptic Curve Digital Signature Alorithm (ECDSA). Skema Blind Signature Berbasis Ecdsa Skema blind signature yang menerapka ECDSA mempunyai lima fase, yaitu: a. Initialization Signer mendefinisikan parameter kurva eliptik, kemudian memilih secara acak integer k setiap permintaan dan menghitung: R = kg = (x 1, y 1 )... (1) r = x 1, r 0... (2) Ketika signer memeriksa apakah (2) dipenuhi maka signer mengirimkan titik R ke requester. Jika tidak memenuhi maka signer akan memilih secara acak integer k lagi dan mengulang perhitungan (1) dan (2) sampai memenuhi (2). Signer membangkitkan kunci privat d (1, n 1) secara acak dan kunci publik dibangkitkan dari perhitungan Q = dg = (x Q,y Q ). b. Blinding Untuk membutakan pesan m, requester memerlukan parameter kurva eliptik dari signer. 1) Signer mengirimkan titik R ke requester sebagai faktor blinding. 2) Requester menghitung r. 3) Requester memilih integer A dan B (1, n 1) secara acak. 4) Requester menghitung R = A R + BG = (x 1, y 1 ). 5) Requester membangkitkan pesan blinded m dan mengirimkan ke signer untuk operasi signing: m = A H(m) r r -1 (mod n). c. Signing Setelah signer menerima pesan blinded m dari requester, signer membangkitkan blind signature s, yaitu s =d r + k m (mod n). d. Unblinding Ketika requester menerima blind signature s dari signer, operasi unblinding dibutuhkan untuk membangkitkan digital signature (s, R) untuk pesan m, yaitu s = s r (r ) -1 + B H(m) (mod n). e. Verifying Setiap pihak yang memiliki parameter signer dapat memverifikasi digital signature (s, R) atas pesan m dengan menghitung u 1 = sg (mod n) dan u 2 = rq + H(m) R (mod n). Jika u 1 = u 2, maka signature yang diverifikasi benar dan sebaliknya. A-325
f. Pembuktian kebenaran skema blind signature berbasis ECDSA Berawal dari persamaan, u 2 = rq + H(m) R (mod n) = rdg + H(m)AR + H(m)BG (mod n) = rdg + H(m)AkG + H(m)BG (mod n). Kemudian dengan persamaan u 1 = sg (mod n) dan diketahui s = s r (r ) -1 + B H(m) (mod n) maka u 1 = (s r (r ) -1 + B H(m))G (mod n) = rdgr (r ) -1 + k A H(m) r r -1 r (r ) -1 G + B H(m)G (mod n) = rdg + H(m) A k G + H(m)BG (mod n). Sehingga dapat dilihat bahwa u 1 = u 2 dan terbukti bahwa verifikasi digital signature benar. KESIMPULAN Kesimpulan yang diperoleh dari penelitian ini adalah sebagai berikut: 1. Skema blind signature berbasis ECDLP mempunyai kompleksitas yang lebih rendah (yaitu dalam hal bebasn komputasi) dan memberikan keamanan yang lebih baik dibandingkan dengan BDS berbasis IFP dan DLP. Skema blind signature yang menggunakan ECDSA menyediakan semua keuntungan atas algoritma PKC lainnya. Skema ini menawarkan panjang kunci yang lebih kecil untuk tingkat keamanan yang diinginkan, proses kriptografi dengan kecepatan tinggi yang mengarah ke persyaratan kompleksitas hardware dan software rendah. 2. Keuntungan ini sangat diperlukan untuk aplikasi di mana kekurangan sumber daya adalah sangat penting terutama dalam platform mobile. Skema yang diusulkan kami dapat digunakan dalam aplikasi di mana tidak hanya pengguna anonimitas tapi kali juga pengolahan sangat penting di bawah kendala hardware tertentu. 3. Skema blind signature berbasis ECDLP memberikan koefisiensian lebih besar karena membutuhkan penyimpanan lebih hemat dan komputasional lebih sedikit jika dibandingkan dengan skema blind signature lainnya. Hal ini dikarenakan dengan level keamanan yang sama, panjang kunci ECC lebih pendek daripada kedua kriptografi berbasis IFP maupun DLP tersebut. Di samping itu ECC telah memenuhi syarat skema blind signature. Penerapan skema ini untuk smart card, e-commerce, dan e-voting untuk tugas masa depan bagi kita yang perlu dipertimbangkan. UCAPAN TERIMA KASIH Dengan tersusunnya penelitian ini, saya mengucapkan terima kasih kepada Institusi saya, yaitu Lembaga Sandi Negara selaku pendukung dana penelitian ini. DAFTAR PUSTAKA D. Johnson, A. Menezes, S. Vanstone, 2001. The Elliptic Curve Digital Signature Algorithm (ECDSA). International Journal of Information Security, Vol. 1, Springer Berlin. Darrel Hankerson, Alfred Menezes, S. Vanstone, 2003. Guide to Elliptic Curve Cryptography. Springer-Verlag. Fuh-Gwo Jeng, Tzer-Long Chen, Tzer-Shyong Chen, 2010. An ECC-Based Blind Signature Scheme. Journal Of Network. Academy Publisher. Is Esti Firmanesa, 2009. Konstruksi Algoritma Penandaan Dijitel ElGamal Berbasis Grup Kurva Eliptik. Tesis Program Magister Matematika Terapan, IPB. Is Esti Firmanesa, 2014. Skema Blind Signature Berbasi Elliptic Curve Discrete Logarithm Problem, Prosiding Konferensi Nasional Teknologi Informasi dan Aplikasinya 2014. İsmail BÜTÜN, Mehmet DEMİRERA, 2013. Blind Digital Signature Scheme Using Elliptic Curve Digital Signature Algorithm, Turkish Journal of Electrical Engineering & Computer Sciences. S. A. Vanstone, 1997. Elliptic Curve Cryptosistem-The Answer to Strong, Fast Public-key Cryptography for Securing Constrained Environments. Information Security Technical Report A-326