3.2.2 Pembangkitan Pasangan Kunci
Untuk membangkitkan pasangan kunci privat dan kunci publik, maka digunakan domain parameter kurva eliptik
, , , , , , D
m a b G n h f x
. Pada proses pembangkitan pasangan kunci akan didapat pasangan kunci publik dan kunci privat yang memenuhi
permasalahan logaritma diskrit kurva eliptik. G dan Q adalah titik kurva eliptik E.
Algoritma untuk membangkitkan pasangan kunci privat dan kunci publik adalah sebagai berikut:
1. Pilih sebuah bilangan bulat
pseudorandom
d pada interval [1, n-1]. 2.
Hitung Q = dG. 3.
Tetapkan kunci privat adalah d dan kunci publik adalah Q
3.2.3 Pembangkitan Tanda Tangan Digital
Setelah pasangan kunci privat dan kunci publik dibangkitkan maka pengirim dapat menandatangani pesan M dengan menggunakan kunci privat. Algoritma pembangkit
tanda tangan digital berbasis kriptografi kurva eliptik sama dengan algoritma tanda tangan digital Digital Signature AlgorithmDSA hanya perbedaannya pada
penggunaan domain parameter. Algoritma untuk membangkitkan membangkitkan tanda tangan digital adalah sebagai berikut:
1. Pilih bilangan bulat pseudorandom k dimana 1
1 k
n .
2. Hitung
1 1
, kG
x y
, dan konversikan
1
x
menjadi integer
1
x
. 3.
Hitung
1
mod r
x n
, jika r
maka kembali ke langkah 1. 4.
Hitung
1
mod k
n
. 5.
Hitung message digest h = HM dimana H adalah fungsi hash SHA-512 dan konversikan menjadi integer e.
Universitas Sumatera Utara
6. Hitung
1
mod s
k e dr
n
, jika s
maka kembali ke langkah 1. 7.
Tanda tangan digital dari pesan M adalah r,s.
3.2.4 Verifikasi tanda tangan digital
Setelah menandatangani pesan M maka pengirm mengirim pesan M dan tanda tangan digital r,s kepada penerima. Penerima pesan dapat menverifikasi tanda tangan digital
dengan langkah-langkah sebagai berikut :
1. Periksa bahwa r dan s adalah bilangan bulat pada interval [1, n-1].
2. Hitung message digest h = HM dimana H adalah fungsi hash SHA-512 dan
konversikan menjadi integer e. 3.
Hitung
1
mod w
s n
. 4.
Hitung
1
mod u
hw n
dan
2
mod u
rw n
. 5.
Hitung
1 2
,
r r
R x y
u G u Q
. 6.
Jika R
maka tanda tangan digital ditolak. Jika tidak maka konversikan
r
x
menjadi integer
r
x
dan hitung
mod
r
u x
n
. 7.
Tanda tangan digital diterima jika dan hanya jika
u r
3.3 Analisis Input Citra
Masukan input berupa citra dengan format umum yaitu jpg, bmp,png, dan gif. Setelah input citra dilakukan maka dicari reprentasi byte pixel dari citra. Berikut
source code java untuk mendapatkan representasi byte dari citra:
byte[] pixel
= DataBufferByte
pesan.getRaster.getDataBuffer.getData;
Sumber : http:stackoverflow.comquestions6524196java-get-pixel-array-from-
image.
Universitas Sumatera Utara
Setelah mendapatkan representasi byte dari citra maka dimasukkan ke fungsi hash SHA-512 untuk mendapatkan message digest.
3.4 Analisis Perancangan Aplikasi
Untuk mengimplementasikan algoritma tanda tangan digital, maka terlebih dahulu harus melakukan perancangan program. Tujuannya adalah untuk melakukan
penyederhanaan masalah sehingga memudahkan dalam implementasinya.
Diagram alur flowchart merupakan rancangan alur proses yang ada dalam program aplikasi. Pembuatan diagram alur flowchart bertujuan untuk lebih
memudahkan dalam perancangan program. Diagram alur dari algoritma tanda tangan digital berbasis kriptografi kurva eliptik adalah sebagai berikut:
Universitas Sumatera Utara
Gambar 3.3 Digram alur algoritma tanda tangan digital berbasis kriptografi kurva eliptik
Universitas Sumatera Utara
Dari flowchart diatas terdapat tujuh proses, yaitu: 1.
Pemilihan domain parameter. 2.
Pembangkitan kunci privat. 3.
Pembangkitan kunci publik. 4.
Input citra. 5.
Pembangkitan tanda tangan digital. 6.
Pengiriman citra dan tanda tangan digital. 7.
Verifikasi tanda tangan digital. Jika dilakukan penyederhanaan proses maka tujuh proses itu dapat dibagi
menjadi tiga bagian utama program, yaitu 1.
Domain parameter kurva eliptik. 2.
Pengirim pesan. 3.
Penerima pesan.
3.4.1 Domain Parameter Kurva Eliptik
Sebelum melakukan pembangkitan tanda tangan digital, terlebih dahulu pengirim pesan harus memilih jenis domain parameter kurva eliptik. Domain parameter yang
dipilih berdasarkan standar NIST pada tabel 3.2.
Tabel 3.2 Jenis domain parameter berdasarkan standar NIST
Nama Domain Parameter Nilai m
Finite Field
2
n
F
NIST_B_163 163
163
2
F
NIST_B_233 233
233
2
F
NIST_B_283 283
283
2
F
NIST_B_409 409
409
2
F
NIST_B_571 571
571
2
F
Universitas Sumatera Utara
Setiap pemilihan domain parameter di atas akan menghasilkan output yaitu domain parameter kurva eliptik
, , , , , , D
n a b G p h m x
yang memenuhi kurva eliptik:
2 3
2
:
m
E F y
xy x
ax b
,
2
,
m
a b F
dan b
Proses pada
domain parameter
kurva eliptik
dengan output
, , , , , ,
D m a b G n h f x
dapat dilihat pada gambar berikut:
Gambar 3.4 Diagram alur domain parameter kurva eliptik
3.4.2 Pengirim Pesan