Abstrak — Tanda tangan digital adalah skema tanda tangan untuk  dokumen  digital.  Algoritma  tanda  tangan  digital  yang sering  digunakan  adalah  Diffie-Hellman Digital  Signature Algorithm dan  lebih  dikenal  sebagai Digital  Signature  Algorithm (DSA)  lalu  dikembangkan  menjadi Elliptic  Curve Digital SignatureA lgorithm (ECDSA). Tugas
akhir ini
mengimplementasikan  ECDSA  untuk  membuat  suatu  tanda tangan  digital.  Waktu  eksekusi  yang  dibutuhkan  oleh  ECDSA dan DSA untuk membuat dan memverifikasi hampir sama, akan tetapi  waktu  yang  dibutuhkan brute  force  attack untuk menemukan  nilai  dari private  key dari  ECDSA  15,5  kali  lebih lama dibanding waktu yang dibutuhkan brute force attack untuk menemukan  nilai  dari private  key dari  DSA.  Sehingga  ECDSA memiliki  keamanan  yang  lebih  baik  daripada  DSA  tanpa mengorbankan lama waktu eksekusi.
Kata Kunci — Tanda tangan, Tanda tangan Digital, Algoritma Tanda Tangan Digital, DSA, Elliptic Curve, ECDSA, Keamanan

## I. PENDAHULUAN
EBELUM  era digital, sebuah pesan dikirim dalam bentuk kertas  dan  tanda  tangan  dibubuhkan  oleh  pengirim  pesan untuk  memberi  kepastian  atas  keaslian  pesan  tersebut. Tanda tangan konvensional yang berupa coretan tangan tidak dapat  digunakan  untuk  memastikan  keaslian  pesan  digital meski  diproses  menjadi  bentuk  citra  digital  karena  kita dapat dengan mudah menduplikasi suatu citra dengan menggunakan aplikasi  komputer.  Oleh  karena  itu  dibuatlah  suatu  skema tanda tangan untuk dokumen digital yaitu tanda tangan digital.
Salah  satu  algoritma  tanda  tangan  digital  yang  sering digunakan adalah Diffie-Hellman Digital Signature Algorithm dan lebih dikenal sebagai Digital Signature Algorithm (DSA). Algoritma ini menggunakan prime finite field dengan bilangan prima  yang  cukup  besar  sehingga  menyulitkan  pihak  yang ingin  menduplikasi  tanda  tangan  yang  dihasilkan.  Sayangnya prime  finite  field kurang  fleksibel  sehingga  pemilihan key kurang  beragam. Elliptic  Curve  Digital  Signature  Algorithm (ECDSA)  merupakan  pengembangan  dari  DSA.  ECDSA menggunakan elliptic  curve atas  suatu prime  finite  field sehingga lebih fleksibel dalam proses menentukan key . Makalah ini bertujuan untuk melakukan pengujian terhadap proses  tanda  tangan  digital  menggunakan  DSA  dan  ECDSA . Proses  pada  tanda  tangan  digital  tersebut  akan  diuji
menggunakan  10  bilangan  prima  acak  dan  sebuah  dokumen dengan  tipe text berekstensi  txt.  Diharapkan  penggunaan ECDSA dapat  meningkatkan  keamanan  tanda  tangan dibandingkan dengan DSA tanpa mengorbankan waktu proses penanda-tanganan dan verifikasi.

## II. DASAR TEORI

## A. Digital Signature Algorithm (DSA)
DSA  merupakan  salah  satu  algoritma  untuk  tanda  tangan digital yang menggunakan prime finite field untuk menentukan key. Ada tiga tahapan pada DSA yaitu tahap menentukan key , tahap  penanda-tanganan,  dan  tahap  verifikasi  [1]. Tahapan- tahapan dari DSA dapat dilihat pada Gambar 1 - 3.
Tahap menentukan key :
1. Pilih suatu bilangan prima  . 2. Cari bilang bilangan prima   dengan . 3. Cari suatu bilangan   yang merupakan generator dari subgrup dengan order   dengan memilih secara acak lalu hitung . Jika , pilih   yang lain lalu ulangi. 4. Pilih sebagai private key. 5. Hitung Gambar 1.  Tahap menentukan key pada DSA
Pada tahap ini diperoleh   sebagai public key dan   sebagai private key.
Tahap penanda-tanganan. Masukan: pesan   dan private key  .
Luaran: tanda tangan 1. Pilih secara acak . 2. Hitung . 3. Definisikan fungsi dengan . 4. Hitung , jika ulangi langkah 1. 5. Hitung , dimana   merupakan hash function. 6. Hitung , jika ulangi langkah 1. Gambar 2. Tahap penanda-tanganan pada DSA
Tahap ini menghasilkan tanda tangan yang berupa pasangan bilangan bulat atas suatu private key dan pesan  .
Tahap verifikasi.
Masukan: pesan  , public key dan tanda tangan
1. Tolak jika .

## Elliptic Curve dan Implementasinya pada Algoritma Tanda Tangan Digital
Vincent Kusuma dan Darmaji Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan alam, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia e-mail : darmaji@matematika.its.ac.id
S
2. Hitung . 3. Hitung . 4. Hitung . 5. Hitung . 6. Terima jika dan hanya jika .
Gambar 3. Tahap verifIkasi pada DSA
Tahap ini menentukan keaslian tanda tangan digital yang dibubuhkan pada pesan   dengan cara melakukan cek pada nilai yang seharusnya bernilai sama dengan  .

## B. Elliptic Curve
Sebelum  membahas  ECDSA,  terlebih  dahulu  dibahas mengenai struktur dari elliptic curve.
Definisi 2.1. Definisi persamaan elliptic curve [2] .
Sebuah elliptic  curve atas field didefinisikan  oleh
persamaan
Dengan dimana adalah  diskriminan  dari E yang didefinisikan oleh persamaan
Dengan
Notasi didefinisikan  sebagai  himpunan  titik-titik yang  memenuhi  persamaan
,  bersama  dengan ― point  at  infinity ‖  yang  dinotasikan  dengan O .  Sedangkan notasi didefinisikan  sebagai  banyaknya  elemen  pada
.
Definisi  2.2. Penjumlahan  titik  pada elliptic  curve untuk dan didefinisikan
sebagai berikut.
1. untuk setiap , berlaku sebagai elemen netral pada 2. dengan , maka adalah invers dari   yang didefinisikan dengan sehingga . 3. Diberikan dengan dan dengan . Maka dimana dan 4. Diberikan dengan maka
, dimana
dan
bersama dengan operasi   membentuk suatu grup.
C. Elliptic Curve Digital Signature Algorithm (ECDSA)
ECDSA  merupakan  algoritma  hasil  dari  pengembangan DSA.  Algoritma  ini  menggunakan elliptic  curve atas prime finite  field untuk  menentukan key. Layaknya  DSA,  ada  tiga tahapan  pada  ECDSA  yaitu  tahap  menentukan key ,  tahap penanda-tanganan,  dan  tahap  verifikasi  [1]. Tahapan-tahapan dari ECDSA dapat dilihat pada Gambar 4 - 6.
Tahap menentukan key.
1. Pilih suatu bilangan prima  . 2. Cari bilang bilangan prima   dengan . 3. Cari suatu titik   yang merupakan generator dari subgrup dengan order   dengan memilih secara acak lalu hitung . Jika , pilih   yang lain lalu ulangi. 4. Pilih sebagai private key. 5. Hitung
Gambar 4. Tahap menentukan key pada ECDSA
Tahap  menentukan  key  ini  diperoleh    sebagai public  key dan   sebagai private key.
Tahap penanda-tanganan. Masukan: pesan   dan private key  . Keluaran: tanda tangan 1. Pilih secara acak . 2. Hitung . 3. Definisikan fungsi dengan , dimana adakah koordinat-x dari titik  . 4. Hitung , jika ulangi langkah 1. 5. Hitung , dimana   merupakan hash function. 6. Hitung , jika ulangi langkah 1. Gambar 5. Tahap penanda-tanganan pada ECDSA
Tahap  penanda-tanganan  ini  menghasilkan  tanda  tangan yang berupa pasangan bilangan bulat atas private key dan pesan  .
Tahap verifikasi. Masukan: pesan  , public key serta tanda tangan 1. Tolak jika . 2. Hitung . 3. Hitung . 4. Hitung . 5. Hitung .
6. Terima jika dan hanya jika

## Gambar 6 Tahap verifikasi pada ECDSA
Tahap  verifikasi  ini  menentukan  keaslian  tanda  tangan digital yang dibubuhkan pada pesan   dengan cara melakukan cek pada nilai yang seharusnya bernilai sama dengan .

## III. UJI COBA
Pada  tahap  ini  akan  dilakukan  uji  coba  untuk  menguji performa  proses  tanda  tangan  digital  yang  dihasilkan  dan keamanan pada DSA dan ECDSA dengan 10 kali proses tanda tangan  menggunakan  10  bilangan  prima  acak  dan  sebuah
dokumen  dengan  tipe text dan  berekstensi  txt.  Evaluasi dilakukan dengan membandingkan waktu eksekusi dari proses penanda-tanganan, verifikasi dan brute force attack pada DSA dan ECDSA.

## A. Brute Force Attack Pada DSA dan ECDSA
Pada  DSA,    dan    berlaku  sebagai public  key ,  padahal . Brute  force  attack pada discrete  log  problem dari  DSA  dapat  dilakukan  dengan  cara  melakukan  cek  pada nilai ,  untuk hingga  ditemukan  nilai    yang memenuhi .
Serupa  dengan  kasus  pada  DSA, brute  force  attack pada discrete  log  problem dari  ECDSA  dapat  dilakukan  dengan cara melakukan cek pada nilai , untuk
hingga ditemukan nilai n yang memenuhi . Brute force attack
pada  DSA  memiliki  kompleksitas
karena  untuk
melakukan  cek  pada
dimana
merupakan  hasil  dari  pengecekan  sebelumnya.  Sedangkan brute  force  attack pada  ECDSA  memiliki  kompleksitas karena  penjumlahan  titik  pada elliptic  curve membutuhkan perhitungan invers modulo. Untuk memaksimalkan  waktu  eksekusi brute  force  attack maka dipilih nilai private key yang maksimal yaitu

## B. Lingkungan Uji Coba
Lingkungan  pelaksanaan uji  coba  meliputi  perangkat  keras dan  perangkat  lunak  yang  akan  digunakan  pada  sistem  ini. Spesifikasi  perangkat  keras  dan  perangkat  lunak  yang digunakan  dalam  uji  coba  perangkat  lunak  ini  dapat  dilihat pada Tabel 1.
Tabel 1. Lingkungan Pelaksanaan Uji Coba Perangkat Spesifikasi Perangkat keras Prosesor: Intel® Pentium® CPU B950 @ 2.10GHz 2.10GHz Memori : 4.00 GB Perangkat lunak Sistem Operasi: Microsoft Windows 7 Professional 64-bit Perangkat Pengembang: NetBeans IDE 7.3.1 Perangkat Pembantu: Notepad

## C. Parameter Uji Coba
Pada  bagian  ini  akan  dijelaskan  nilai-nilai  yang  menjadi parameter pada hasil uji coba. Semua parameter pada hasil uji coba  ini  diturunkan  dari  3  parameter  utama  perhitungan performa  pada  tugas  akhir  ini  yaitu  waktu  eksekusi  proses penanda-tanganan,  waktu  eksekusi  proses  verifikasi  ,  dan waktu  eksekusi  proses brute  force  attack dalam  satuan nanodetik.  Daftar  lengkap  seluruh  nilai  parameter  ini  dapat dilihat pada Tabel 2.

## D. Hasil Uji Coba
Pada  skenario  ini  dilakukan  uji  coba  untuk  menghitung performa dari  proses tanda tangan digital menggunakan DSA dan ECDSA. Hasil performa proses tanda tangan digital DSA akan dibandingkan dengam hasil performa proses tanda tangan digital  ECDSA  dengan  masukan  yang  sama.  Masukan  yang
digunakan pada skenario uji coba ini adalah dokumen dengan tipe text yang berekstensi txt dan sebuah bilangan prima. Hasil percobaan dari skenario ini dapat dilihat pada Tabel 3.
Tabel 2. Parameter Uji Coba Nama Parameter Deksripsi TS DSA Rata - rata waktu eksekusi dari 10 kali proses penanda- tanganan dengan DSA TV DSA
Rata - rata waktu eksekusi dari 10 kali proses verifikasi dengan DSA TB DSA
Rata - rata waktu eksekusi dari 10 kali proses brute force attack pada DSA
TS ECDSA
Rata - rata waktu eksekusi dari 10 kali proses penanda- tanganan dengan ECDSA
TV ECDSA
Rata - rata waktu eksekusi dari 10 kali proses verifikasi dengan ECDSA TB ECDSA
Rata - rata waktu eksekusi dari 10 kali proses brute force attack pada ECDSA
Tabel 3. Hasil  Uji Coba Parameter Waktu eksekusi yang dibutuhkan(nanodetik) TSDSA 2760531,5 TVDSA 534844,5 TBDSA 126327693711,4 TSEC 2691035,7 TVEC 532890,1 TBEC 1957412198801,4
Dari hasil uji coba ini dapat dilihat bahwa rata - rata waktu eksekusi  proses  penanda-tanganan  dengan  ECDSA  adalah 2691035,7  nanodetik  (0,003  detik),  hasil  ini  hampir  sama dengan rata  -  rata  waktu  eksekusi  proses  penanda-tanganan dengan  DSA  yaitu  2760531,5  nanodetik  (0,003  detik).  Juga dapat dilihat bahwa rata - rata waktu eksekusi proses verifikasi dengan  ECDSA  adalah  532890,1  nanodetik  (0,0005  detik), hasil ini hampir sama dengan rata - rata waktu eksekusi proses verifikasi  dengan  DSA  yaitu  534844,5  nanodetik  (0,0005 detik). Sedangkan rata - rata waktu eksekusi proses brute force attack pada  ECDSA  adalah  1957412198801,4  nanodetik (1957,412 detik), hasil ini 15,5 kali lebih baik dari rata - rata waktu  eksekusi  proses brute  force  attack pada  DSA  yaitu 126327693711,4 nanodetik (126,328 detik).

## IV. KESIMPULAN
Dari  hasil  uji  coba  dapat  diambil  kesimpulan  bahwa performa  tanda  tangan  digital  yang  dihasilkan  oleh  ECDSA hampir  sama  dengan  performa  tanda  tangan  digital  yang dihasilkan  oleh  DSA.  Untuk  proses  penanda-tanganan  rata- rata  membutuhkan  0,003  detik,  dan  untuk  proses  verifikasi membutuhkan waktu 0,0005 detik
Dari segi keamanan, brute force attack pada ECDSA rata - rata  membutuhkan  waktu  1957412198801,4  nanodetik (1957,412  detik),  15,5  kali  lebih  baik  daripada brute  force attack pada  DSA  yang  rata  –  rata  membutuhkan  waktu 126327693711,4 nanodetik  (126,328  detik).  Keamanan  dapat ditingkatkan  dengan  memperbesar  bilangan  prima,  Oleh
karena  itu,  perbaikan  yang  bisa  dilakukan  adalah  dengan memperbaiki  metode  pencarian  bilangan  prima  sehingga keamanan pada DSA maupun ECDSA dapat ditingkatkan.

## DAFTAR PUSTAKA
[1] Blake,  I.F.,  Seroussi,  G.,  Smart,  N.P.,  2005, Advances  in  Elliptic  Curve
Cryptography, Cambridge University Press, New York
[2] Hankerson,  D.,  Vanstone,  S.,  Menezes,  A.J.,  2004, Guide  to  Elliptic Curve Cryptography, Springer-Verlag, New York.