Pembangkitan Pasangan Kunci Pembangkitan Tanda Tangan Digital Domain Parameter Kurva Eliptik

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