OTENTIKASI PESAN MENGGUNAKAN ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
SKRIPSI
AULIA RAHMAN DALIMUNTHE 071402031
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
OTENTIKASI PESAN MENGGUNAKAN ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
AULIA RAHMAN DALIMUNTHE 071402031
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : OTENTIKASI PESAN MENGGUNAKAN
ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
Kategori : SKRIPSI
Nama : AULIA RAHMAN DALIMUNTHE
Nomor Induk Mahasiswa : 071402031
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Nopember2013 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Syahriol Sitorus, S.Si., M.I.T. Romi Fadillah Rahmat, B.Comp.Sc., M.sc
NIP 19710310 199703 1 004 NIP 19860303 201012 1 004
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
PERNYATAAN
OTENTIKASI PESAN MENGGUNAKAN ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Nopember 2013
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh ijazah Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara. Ucapan terima kasih penulis sampaikan kepada:
1. Kedua orang tua dan keluarga penulis yang telah memberikan dukungan dan motivasi baik materil dan spiritual, Ayahanda Habiburrohman Dalimunthe dan Ibunda Tambaia Rangkuti yang selalu sabar dalam mendidik dan membesarkan penulis.
2. Bapak Romi Fadillah Rahmat, B.Comp.Sc.M.Sc selaku pembimbing satu dan Bapak Syahriol Sitorus, S.Si., M.I.T selaku pembimbing dua yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis.
3. Ucapan terima kasih juga ditujukan kepada Dr. Erna Budhiarti Nababan, M.IT dan Dedy Arisandi, ST., M.Kom yang telah bersedia menjadi dosen pembanding.
4. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Prof. Dr. Opim Salim Sitompul, M.Sc. dan Drs. Sawaluddin, M.IT.
5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.
ABSTRAK
Dalam konteks keamanan data selalu dihubungkan dengan kriptografi. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan keamanan informasi. Dalam pengiriman pesan, aspek keamanan sangatlah penting karena banyak terjadi penyadapan dan penukaran data oleh orang yang tidak bertanggung jawab. Hal ini bisa menyebabkan perubahan pesan yang dikirim. Untuk menvalidasi pesan itu asli atau tidak ada perubahan maka pesan dibubuhi tanda tangan digital. Dengan tanda tangan digital maka integritas data terjamin. Salah satu metode yang digunakan untuk tanda tangan digital adalah ECDSA (Elliptical Curve Digital Signature Algorithm) yang beroperasi dengan
kelompok kurva elliptik sebagai basis perhitungan. Penelitian ini hanya di aplikasikan untuk pengiriman pesan teks pada email. Maka dari itu hasil dari penelitian ini merupakan sebuah aplikasi yang dapat mengirim pesan teks dan memverifikasi pesan teks.
AUTHENTICATE THE MESSAGE USING ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
ABSTRACT
DAFTAR ISI
Ha l.
PERSETUJUAN i
PERNYATAAN ii
UCAPAN TERIMA KASIH iii
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL ix
DAFTAR GAMBAR x
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB 2 LANDASAN TEORI 6
2.1 Pengenalan Kriptografi 6
2.2 Enkripsi dan Dekripsi 7
2.3 Algoritma Kriptografi 8
2.3.1 Algoritma Simetrik (Symmetric Algoithms) 8 2.3.2 Algoritma Asimetrik (Asymmetric Algorithms) 9 2.3.3 Perbandingan Algoritma Simetrik dengan
Asimetrik 10
2.4 Serangan Kriptografi 11
2.5 Tanda Tangan Digital 12
2.5.1 Sifat Umum dari Tanda Tangan Digital 12
2.5.2 Penandatanganan Pesan 13
2.5.3 Skenario Tanda Tangan Digital 14
2.7 DSA 16
2.8 Elgamal 17
2.9 ECC ( Elliptical Curve Cryptography ) 18 2.9.1 Jenis-jenis Elliptic Curve Cryptography 19 2.9.1 Hal –hal yang perlu diperhatikan pada Elliptic
Curve Cryptography 20
2.10 ECDSA ( Elliptical Curve Digital
Signature Algorithm ) 20
2.10.1 Parameter Domain ECDSA 21
2.10.2 Proses ECDSA 21
2.11 Penelitian Terdahulu 22
BAB 3 ANALISIS DAN PERANCANGAN 25
3.1 ECC ( Elliptical Curve Cryptography ) 25 3.1.1 Menentukan Nilai P Bilangan Prima dengan
Syarat P>3 untuk Fp 26
3.1.2 Menentukan Nilai a,b dan Persamaan Kurva
Eliptik 26
3.2.3 Menentukan Nilai G dan n 26
3.2 ECDSA ( Elliptical Curve Digital Signature Algorithm ) 31 3.2.1 Proses Pembentukan Kunci Publik dan Privat 31 3.2.2 Proses Signing (Pemberian Tanda Tangan) 32 3.2.3 Proses Verifying (Verifikasi Tanda Tangan) 32
3.3 Perancangan Flowchart Sistem 33
3.3.1 Flowchart Sistem User Pengirim 33 3.3.2 Flowchart Sistem User Penerima 34
3.3.3 Flowchart Algoritma ECDSA 34
3.4 Use Case Diagram 35
3.5 Perancangan Antar Muka Pemakai 40
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 42
4.1 Implementasi Sistem 42
4.3 Pengujian dan Tampilan 42
BAB 5 KESIMPULAN DAN SARAN 50
5.1 Kesimpulan 50
5.2 Saran 50
DAFTAR PUSTAKA 51
Daftar Tabel
Hal.
Tabel 3.1 QRp (quadratic residue modulo) 26
Tabel 3.2 Mencari Elemen E23 (1,4) 27
Tabel 3.3 Spesifikasi Use case User Login 36
Tabel 3.4 Spesifikasi Use case User Daftar Akun 36 Tabel 3.5 Spesifikasi Use case User Lihat Profil 37 Tabel 3.6 Spesifikasi Use case User Lihat Email Masuk 38 Tabel 3.7 Spesifikasi Use case User Kirim Email 38 Tabel 3.8 Spesifikasi Use case User Lihat Email Keluar 39
Daftar Gambar
Hal.
Gambar 2.1 Proses Enkripsi dan Dekripsi 8
Gambar 2.2 Proses Algoritma Simetrik 8
Gambar 2.3 Proses Algoritma Asimetrik 10
Gambar 3.1 Flowchart Sistem User Pengirim 33
Gambar 3.2 Flowchart Sistem User Penerima 34
Gambar 3.3 Flowchart Algoritma ECDSA 34
Gambar 3.4 Diagram Use Case 35
Gambar 3.5 Rancangan Halaman Login 40
Gambar 3.6 Rancangan Halaman Daftar Email 41
Gambar 3.7 Rancangan Halaman Utama 41
Gambar 4.1 Tampilan Utama 43
Gambar 4.2 Tampilan Form Daftar 43
Gambar 4.3 Tampilan Login 44
Gambar 4.4 Tampilan Beranda 44
Gambar 4.5 Tampilan Halaman Compose 45
Gambar 4.6 Tampilan Penandaan Signature 46
Gambar 4.7 Tampilan Halaman Email Terkirim 46
Gambar 4.8 Tampilan Halaman Sent Email 47
Gambar 4.9 Tampilan Halaman Inbox 47
ABSTRAK
Dalam konteks keamanan data selalu dihubungkan dengan kriptografi. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan keamanan informasi. Dalam pengiriman pesan, aspek keamanan sangatlah penting karena banyak terjadi penyadapan dan penukaran data oleh orang yang tidak bertanggung jawab. Hal ini bisa menyebabkan perubahan pesan yang dikirim. Untuk menvalidasi pesan itu asli atau tidak ada perubahan maka pesan dibubuhi tanda tangan digital. Dengan tanda tangan digital maka integritas data terjamin. Salah satu metode yang digunakan untuk tanda tangan digital adalah ECDSA (Elliptical Curve Digital Signature Algorithm) yang beroperasi dengan
kelompok kurva elliptik sebagai basis perhitungan. Penelitian ini hanya di aplikasikan untuk pengiriman pesan teks pada email. Maka dari itu hasil dari penelitian ini merupakan sebuah aplikasi yang dapat mengirim pesan teks dan memverifikasi pesan teks.
AUTHENTICATE THE MESSAGE USING ELLIPTICAL CURVE DIGITAL SIGNATURE ALGORITHM
ABSTRACT
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dengan meningkatnya penggunaan internet saat ini dengan demikian komunikasi pertukaran data juga marak. Keamanan dalam pertukaran data sangatlah penting dalam penggunaan internet. Hal ini memerlukan suatu mekanisme dalam menjaga keaslian data dalam pertukaran data di internet. Metode yang biasa digunakan dalam hal ini adalah dengan cara menambahkan tanda tangan digital ke dalam data agar dapat membuktikan data itu asli atau tidak. Dengan menggunakan tanda tangan digital data yang akan di kirim akan di uji keaslianya dengan menggunakan banyak metode.
Seperti kita ketahui selama ini dalam pertukaran data banyak terjadi penyadapan dan penukaran data yang dilakukan oleh pihak-pihak yang tidak bertanggung jawab. Di dalam pengiriman pesan teks melalui email sangat dibutuhkan keamanan pesan tersebut agar menjaga keaslian pesan.
Sebagai contoh, dalam kasus dunia saham, dimana seorang pialang A menerima pesan elektronik dari pialang B agar tidak melakukan transaksi. Ternyata dalam proses pengiriman pesan terjadi perubahan yang dilakukan oleh seseorang yang tidak bertanggung jawab yang mengubah pesan menjadi pialang A harus melakukan transaksi. Untuk kasus ini sangat jelas keamanan pesan sangat dibutuhkan agar dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga keduanya dapat memastikan sumber pesan.
integritas data (data integrity) dan otentikasi (authentication). Sehingga keaslian data dapat terjamin.
Otentikasi (authentication) merupakan sebuah konsep yang di pakai untuk menjaga keaslian data, dipakai untuk membuktikan asli atau tidaknya sebuah data atau pesan oleh orang yang berhak atas data tersebut. Pembuktian sebuah dokumen asli atau tidak merupakan dasar untuk pelayanan keamanan. Karena dalam setiap pengiriman data pasti selalu ada gangguan seperti penyadapan data dan menukar data yang dikirim. Salah satu metode yang di tawarkan dalam konsep otentikasi (authentication) adalah tanda tangan digital (digital signature). Dalam proses tersebut di perlukan suatu tanda tangan digital untuk mengatasi masalah penyadapan dan penukaran data di dalam proses pengiriman data.
Tanda tangan digital merupakan suatu tanda tangan yang di cantumkan pada data digital bukan seperti tanda tangan seseorang di atas kertas yang seperti kita ketahui selama ini. Tanda tangan digital yang diberikan pada suatu data dapat memvalidasi dari mana asal data tersebut. Nilai setiap tanda tangan digital dapat selalu berbeda tergantung data yang ditandatangani. Dengan tanda tangan digital, maka integritas data terjamin. Tanda tangan digital ini menerapkan teori kriptografi asimetrik. Kriptografi asimetrik ini merupakan jenis kriptografi dengan menggunakan konsep dalam mengenkripsi dan mendekripsikan data dengan kunci yang berbeda.
Ada tiga algoritma dari tipe kunci yang biasa di gunakan untuk tanda tangan digital ini yaitu RSA, DSA, ECDSA (elliptic curve digital signature algorithm). ECDSA merupakan salah satu tipe digital signature dari ECC yang
memberikan layanan confidentiality, data integrity, authentication. ECDSA di perkenalkan pada tahun 1992 oleh Scott Vanston dan pada tahun 1998 mendapat standar ISO (International Standards Organization) yaitu ISO 14888-3. Tahun 1999 diterima sebagai standar ANSI (American National Standard Institute) ANSI X9.62 dan pada tahun 2000 sebagai standar IEEE (Institute of Electrical and Electronics Engineers) IEEE 1363-2000, serta standar NIST (National
Melihat latar belakang di atas, maka penulis tertarik membuat skripsi dengan judul “Otentikasi Pesan menggunakan ECDSA (Elliptical Curve Digital Signature Algorithm)”.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah yang ada, maka dapat dirumuskan permasalahan yang ada yaitu perlunya mengatasi penyadapan dan penukaran data dalam pengiriman data menggunakan tanda tangan digital sebagai otentikasi keaslian data.
1.3 Batasan Masalah
Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan, maka diperlukan batasan masalah. Dalam penelitian batasan masalah diuraikan sebagai berikut:
1. Algoritma yang digunakan adalah algoritma ECDSA (Elliptical Curve Digital Signature Algorithm)
2. Jenis pesannya merupakan text yang ada dalam pengiriman email.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk otentikasi pesan teks pada email dengan menggunakan Elliptical Curve Digital Signature Algorithm.
Manfaat dari penelitian ini merupakan untuk mencegah terjadi penyadapan dan penukaran pesan di dalam sebuah proses pegiriman pesan. Agar di dalam sebuah proses pengiriman pesan melalui email terjaga keamanannya.
1.6 Metodologi Penelitian
Metodologi penelitian yang digunakan pada penelitian ini adalah: 1. Studi Literatur
Pada tahap ini dilakukan studi kepustakaan yaitu proses pengumpulan bahan-bahan referensi yang berkaitan dengan kriptografi, elliptic curve cryptogrphy dan elliptic curve digital signature algorithm dari buku, artikel, paper, jurnal, makalah dan sumber lainnya.
2. Analisis
Pada tahap ini dilakukan analisis spesifikasi perangkat lunak yang dibangun pada penelitian ini, seperti perhitungan algoritma.
3. Perancangan
Pada tahap ini dilakukan perancangan perangkat lunak yang dibangun, seperti perancangan proses dan antarmuka.
4. Implementasi
Pada tahap ini dilakukan pengkodean perangkat lunak sesuai dengan spesifikasi yang ditentukan.
5. Pengujian
Pada tahap ini dilakukan pengujian terhadap perangkat lunak yang dibangun, dan bagaimana keakuratan dai sistem yang dibuat.
6. Penyusunan Laporan
1.7 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut:
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.
BAB 2: LANDASAN TEORI
Bab ini berisi teori-teori yang digunakan untuk memahami permasalahan yang dibahas pada penelitian ini. Pada bab ini dijelaskan tentang kriptografi dan metode elliptical curve digital signature algorithm.
BAB 3: ANALISIS DAN PERANCANGAN
Bab ini membahas tentang perancangan sistem dan program yang mencakup perancangan pangkalan data, perancangan sistem, dan perancangan interface. Dalam perancangan sistem dicantumkan data flow diagram untuk mempermudah penjelasan sistem.
BAB 4: IMPLEMENTASI DAN PENGUJIAN
BAB 5: KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
Pada tinjauan pustaka ini akan dibahas tentang konsep dasar dan teori-teori yang mendukung pembahasan yang berhubungan dengan sistem yang akan dibuat.
2.1 Pengenalan Kriptografi
Kriptografi adalah sebuah teknik pengamanan data untuk menjamin kerahasian data, selain itu pengertian kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan keamanan informasi seperti kerahasian data, keabsahan data, integritas data, autentikasi data (Hankerson, et al. 2004).
Menurut (Rinaldi, 2006) kriptrografi mempunyai tujuan sebagai berikut : A. Kerahasiaan Data (confidentiality)
Ancaman atau serangan terhadap kerahasiaan data ini biasanya dilakukan dengan menerobos hak akses, penyadapan data dan penipuan. Di dalam kriptografi layanan ini di realisasikan dengan menyandikan pesan menjadi cipherteks. Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data asli (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang akan dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai pada si penerima ciphertext tersebut diubah lagi ke bentuk asli (plaintext).
B. Nirpeyangkalan (non-repudiation)
online dan dalam tahap pertama si pembeli mengirimkan sebuah email dalam orderan maka si pembeli tidak dapat menyangkal bahwa dia telah mengirim email.
C. Integritas Data (data integrity)
Layanan yang menjamin bahwa data masih dalam keadaan asli atau belum pernah diubah selama dalam pengiriman. Layanan ini di realisasikan dengan menggunakan tanda tangan digital (digital signature). Data yang dikirim dengan tanda tangan digital menyiratkan bahwa data itu asli. Aspek ini menjamin bahwa data tidak dapat diubah tanpa izin dari yang berhak.
D. Autentikasi Data (authentication)
Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Data yang didapat oleh suatu pihak oleh pihak lain harus di lakukan identifikasi agar memastikan keaslian data tersebut. Identifikasi terhadap data tersebut dapat berupa tanggal pembuatan data, isi informasi, waktu kirim dan hal-hal lainnya yang berhubungan dengan data tersebut.
2.2 Enkripsi dan Dekripsi
Enkripsi (Encryption), adalah proses yang dilakukan untuk mengubah pesan yang tidak disandikan (plaintext) ke dalam bentuk yang tidak dapat dibaca (ciphertext), dekripsi (Decryption) adalah proses yang dilakukan untuk mengubah pesan yang tidak dapat dibaca kedalam bentuk yang dapat dibaca dan dimengerti. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi.(Rinaldi, 2006)
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi kriptografi kunci simetri (Symmetric-key Cryptography) dan kriptografi kunci asimetri (Asymmetric-key Cryptography). Proses enkripsi dan dekripsi dapat dilihat pada gambar 2.1. (Rinaldi, 2006)
Gambar 2.1 Proses Enkripsi dan Dekripsi
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk
mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, parameter yang menetukan transformasi pencipheran tertentu di sebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kuci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Secara umum proses operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi)
Pada pesan M kita mengekripsikan menajadi pesan C dengan menggunakan kunci K, sedangkan pada proses dekripsi kita menggunakan kunci K dan melakukan pada pesan C yang sudah di enkripsi dan menghasilkan pesan awal yaitu M.
2.3 Algoritma Kriptografi
2.3.1 Algoritma Simetrik (symmetric algorithms)
Algoritma simetrik adalah algoritma kriptografi berdasarkan kuncinya dibedakan menjadi dua yaitu algoritma aliran (Stream Cipher) dan algoritma blok (Block Cipher). Pada algoritma Stream Cipher, proses penyandiannya berorientasi pada
terkenal adalah DES (Data Encryption Standard) (Silviana, 2013). Proses algoritma simetrik dapat dilihat pada gambar 2.2.
Gambar 2.2 Proses Algoritma Simetrik
Algoritma ini menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Dalam system kriptografi kunci simetrik, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat diturunkan dari kunci yang lainnya. Kunci – kunci ini harus dirahasiakan. Oleh sebab itu sistem ini sering disebut sebagai secret key cipher system.
2.3.2 Algoritma Asimetrik (Asymmetric Algortihms)
Algortima kriptografi asimetrik adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Algoritma ini sering juga disebut algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat di ketahui oleh setiap orang, tapi kunci dekripsi hanya di ketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key). Contoh algoritma terkenal menggunakan kunci asimetrik adalah ECC dan RSA. Proses algoritma asimetrik dapat dilihat pada gambar 2.3. Syarat-syarat yang harus di penuhi oleh algoritma public-key yaitu :
1. Mudah secara komputasi bagi suatu pihak B untuk mengkrontuksi sepasang kunci asimetrik (kunci publik KU, kunci pribadi KR).
2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan data yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C).
3. Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan menggunakan kunci pribadinya untuk mengembalikan data asli. 4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi
5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext C.
6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik. Kegunaan persyaratan yang keenam adalah untuk penerapan tanda tangan digital (digital signature) yang digunakan memecahkan isu otentikasi dalam masalah keamanan data.
Proses enkripsi publik key sederhana melibatkan empat tahap berikut : 1. Setiap user didalam jaringan membuat sepasang kunci untuk digunakan
sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.
2. User kemudian mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.
3. Jika user A ingin mengirimkan data ke user B, ia akan mengenkripsikan data dengan menggunakan kunci publik user B.
[image:26.595.193.493.471.541.2]4. Pada saat user B mendekripsikan data dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa mendekripsikan data itu karena hanya B sendiri yang mengetahui kunci pribadi B.
Gambar 2.3 Proses Algoritma Asimetrik
2.3.3 Perbandingan Algoritma Simetrik dengan Asimetrik
Algoritma simetrik dan asimetrik sama-sama mempunyai kelebihan dan kekurangan msaing-masing.
Kelebihan kriptografi kunci simetrik :
2. Ukuran kunci simetrik relatif pendek. Algoritma simetrik dapat digunakan membangkitkan bilangan acak.
3. Algoritma kunci simetrik dapat disusun untuk menghasilkan cipher yang lebih kuat.
4. Otentikasi pengiriman data langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui pengirim dan penerima saja.
Kekurangan kriptografi kunci simetrik :
1. Kunci simetrik harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
2. Kunci harus sering diubah, mungkin setiap komunikasi.
Kelebihan kriptografi kunci asimetrik :
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan untuk mengirim kunci privat sebagaimana kriptografi kunci simetrik.
2. Pasangan kunci public tidak perlu diubah, bahkan dalam periode waktu yang panjang.
3. Dapat digunakan dalam pengiriman kunci simetrik.
4. Beberapa algoritma kunci publik dapat digunakan untuk member tanda tangan digital pada data.
Kekurangan kriptografi kunci asimetrik :
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem kriptografi simetrik, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
2. Ukuran ciphertext lebih besar dari plaintext.
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetrik.
2.4 Serangan Pada Kriptografi
Setiap penyerangan dalam kriptografi seorang kriptanalis berusaha untuk menemukan kunci atau menemukan plaintext dari ciphertext dengan asumsi kriptanalis mengetahui algoritma kriptografi yang digunakan. Menurut prinsip Kerckhoff semua algoritma kriptografi harus publik, hanya kunci yang rahasia (Silviana, 2013).
Jenis-jenis serangan dalam kriptografi berdasarkan keterlibatan penyerang dalam komunikasi :
1. Serangan pasif (passive attack)
Penyerang tidak terlibat komunikasi langsung dengan pengirim dan penerima dan hanya melakukan penyadapan untuk memperoleh data atau informasi sebanyak-banyaknya.
2. Serangan aktif (active attack)
Penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya dan penyerang mengubah aliran pesan seperti :
1. Menghapus sebagian ciphertext 2. Mengubah ciphertext
3. Menyisipkan ciphertext palsu 4. Me-replay pesan lama
Jenis-jenis serangan dalam kriptografi berdasarkan teknik yang digunakan untuk menemukan kunci :
1. Exhaustive attack
Penyerang menggunakan cara untuk menemukan kunci dengan mencoba semua kemungkinan kunci, pasti berhasil menemukan kunci jika ada waktu yang cukup.
2. Analytical attack
dengan cara memecahkan persamaan-persamaan matematika. Metode ini biasanya lebih cepat menemukan kunci dibandingkan dengan exhaustive attack. Sebuah algoritma kriptografi dikatakan aman bila memenuhi tiga kriteria berikut :
1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.
2. Biaya untuk memecahkan ciphertext melampui nilai informasi yang terkandung di dalam ciphertext tersebut.
3. Waktu yang diperlukan untuk memcahkan ciphertext melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.
2.5 Tanda Tangan Digital
Tanda tangan digital atau Digital Signature merupakan suatu tanda tangan (penanda) yang dibubuhkan pada data digital. Tanda tangan digital bukan merupakan hasil scan atau input tanda tangan melalui interface tertentu. Tanda tangan digital adalah suatu nilai kriptografis yang bergantung pada isi data itu sendiri serta kunci yang digunakan untuk membangkitkan nilai kriptografisnya. Sehingga nilai setiap tanda tangan digital dapat selalu berbeda tergantung data yang ditanda tangani. Dengan tandatangan digital maka integritas data dapat dijamin, disamping itu juga digunakan untuk membuktikan asal pesan (keabsahan pengirim), dan nir penyangkalan (Silviana, 2013).
2.5.1 Sifat umum dari tanda tangan digital
Beberapa sifat umum dari tanda tangan digital adalah sebagai berikut :
2. Sah (integrity) untuk dokumen (pesan) itu saja atau salinannya yang sama persis. Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya, meskipun dokumen lain itu hanya berbeda sedikit. Ini juga berarti bahwa jika dokumen itu diubah, tanda tangan digital dari pesan tersebut tidak lagi sah.
3. Nirpenyangkalan (Non Repudiation), non repudiation ini timbul dari keberadaan digital signature yang menggunakan enkripsi asimetris (asymmetric encryption). Enkripsi asimetris ini melibatkan keberadaan dari kunci prifat dan kunci public. Suatu pesan yang telah dienkripsi dengan menggunakan kunci prifat maka ia hanya dapat dibuka/dekripsi dengan menggunakan kunci public dari pengirim. Jadi apabila terdapat suatu pesan yang telah dienkripsi oleh pengirim dengan menggunakan kunci prifatnya maka ia tidak dapat menyangkal keberadaan pesan tersebut karena terbukti bahwa pesan tersebut dapat didekripsi dengan kunci publik pengirim. Keutuhan dari pesan tersebut dapat dilihat dari keberadaan hash function dari pesan tersebut, dengan catatan bahwa data yang telah di-sign akan dimasukkan kedalam digital envelope.
4. Dapat diperiksa dengan mudah, termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penandatangan.
2.5.2 Penandatanganan Pesan
Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara, yaitu : 1. Enkripsi pesan
Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi juga sudah menyatakan bahwa pesan tersebut telah ditandatangani.
2. Tanda tangan digital dengan fungsi hash
kunci-publik dan menggunakan kunci privat pengirim. Hasil enkripsi inilah yang disebut dengan tanda tangan digital. Selanjutnya tandatangan digital dilekatkan dengan ke pesan dengan cara menyambung (append) lalu dikirim melalui saluran komunikasi. Kemudian di tempat penerima, tandatangan digital dibuktikan keotentikannya dengan melakukan verifikasi pesan, yaitu dengan cara sebagai berikut:
1. Tandatangan digital didekripsi dengan menggunakan kunci public pengirim pesan yang menghasilkan message digest (MD) semula.
2. Penerima pesan mengubah pesan menjadi message digest (MD’) menggunakan fungsi hash satu arah yang sama dengan fungsi hash yang digunakan pengirim. 3. Jika MD’ = MD, maka pesan dan tandatangan yang diterima memang benar
berasal dari pengirim pesan.
2.5.3 Skenario Tanda Tangan Digital
Tanda tangan digital didalam kriptografi mempunyai skenario atau proses penandatanganan. Misalnya Alice ingin mengirim document bertandatangan secara digital pada Bob. Alice terlebih dahulu membangkitkan sepasang kunci asimetrik miliknya, yaitu kunci privat ( ) dan kunci public ( ). Kemudian Alice menandatangani dokumen M dengan memanggil algoritma sign sebagai berikut:
Untuk menghasilkan tandatangan, alice kemudian mengirim (M, ) kepada Bob. Bob pada akhirnya memanggil algoritma verify sebagai berikut:
Untuk memverifikasi tandatangan, bob menerima pasangan (M, ) bila nilai terima adalah true (benar).
2.6 Fungsi Hash
(di mana, h = H(m)). Fungsi hash sederhana ini memiliki berbagai jenis kegunaan komputasi, tetapi ketika digunakan untuk masalah kriptografi, fungsi hash selalu ditambahkan dengan sejumlah properti tambahan (Liao & Shen 2006).
Yang dibutuhkan untuk fungsi kriptografi hash, yaitu: 1. Input dengan panjang sembarang
2. Hasilnya mempunyai keluaran dengan panjang yang fixed 3. H(x) umumnya mudah dikalkulasi untuk sembarang nilai x 4. H(x) adalah satu arah
5. H(x) tidak pernah bermasalah dengan yang lain
Fungsi hash H merupakan fungsi satu-arah sebab sulit untuk dibalikkan yang berarti untuk nilai fungsi hash h, kita sulit menemukan nilai input x yang memenuhi persamaan H(x) = h. Nilai dari fungsi hash menyatakan sebuah pesan atau dokumen yang lebih panjang yang berasal dari proses komputasi. Hal ini menarik sebab dengan fungsi hash, kita dapat membuat sebuah digital fingerprint untuk sebuah dokumen. Contoh yang paling terkenal dari fungsi hash adalah MD2, MD5 dan SHA.
Mungkin penggunaan yang umum dari fungsi kriptografi hash adalah pembuatan digital signatures. Karena fungsi hash umumnya lebih cepat daripada algoritma digital signature lainnya, fungsi hash lebih sering digunakan untuk mendapatkan nilai fungsi hash dengan mengkalkulasikan signature yang menghasilkan sebuah nilai hash yang lebih kecil daripada dokumen itu sendiri. Selain itu, publik dapat memberikan sebuah saran atau pendapat tanpa membeberkan isi dari pendapat yang terdapat di dalamnya. Cara ini digunakan dalam memberikan tanggal pada sebuah dokumen dimana dengan menggunakan fungsi hash, setiap orang dapat memberikan tanggal pada dokumen tanpa memperlihatkan isi dari dokumennya pada saat proses pemberian tanggal.
Sifat-sifat fungsi hash kriptografi : 1. Preimage resistant
Bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
2. Second Preimage resistant
Bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1)=hash(m2)
3. Collision-resistant
Sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
Beberapa contoh algoritma fungsi hash kriptografi yaitu MD4, MD5, SHA-0, SHA-1, SHA-256, SHA-512.
2.7 DSA
DSA dikembangkan dari algoritma ElGamal. DSA tidak dapat digunakan untuk enkripsi tetapi di spesifikasikan khusus untuk tanda tangan digital. Pada DSA, algoritma signature dan verifikasi berbeda. DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci privat. Pembentukan tanda tangan menggunakan kunci rahasia privat, sedangkan verifikasi tanda tangan menggunakan kunci publik pengirim.
DSA menggunakan fungi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit. Tingkat keamanan DSA bergantung kepada dua masalah logaritma yang jauh akan tetapi saling berkaitan. Pertama adalah masalah logaritma di Zp dimana metode index kalkulus yang kuat diterapkan. Yang kedua adalah masalah logaritma pada cyclic subgroup pada urutan q, dimana metode berjalan pada waktu yang “square-root”
(Wizanajani, 2013).
2. Ambil t dimana 0 ≤ t ≤ 8
3. Ambil bilangan prima p dimana 2511 + 64t < q < 2512 + 64t , dengan tambahan bahwa q dapat dibagi oleh (p-1)
4. Pilih sebuah generator α dari uniqe cyclic group berdasar urutan q di Zp* 5. Ambil bilangan integer acak dimana 1 ≤ a ≤ q-1
6. Hitung y = αa mod p
Kunci publik mengandung p, q, α, y, dan kunci privat adalah a.
2.8 Elgamal
Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk tanda tangan digital atau digital signature. Namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGaMal digunakan dalam perangkat lunak yang dikembangkan oleh GNU, program PGP, dan pada program keamanan jaringan lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritma diskrit. Masalah algoritma diskrit adalah, jika p adalah bilangan prima dan g dan y adalah sembarang bilangan bulat. Carilah x sedemikian sehingga gx ≡ y (mod p). (Rinaldi, 2006).
Besaran - besaran yang digunakann dalam algoritma ElGamal adalah : 1. Bilangan Prima p (Publik)
2. Bilangan acak, g (g<p) (Publik) 3. Bilangan acak,x (x<p-3) (Privat) 4. y = gx mod p (Publik)
5. m (Plainteks) (Privat)
6. a dan b (Chiperteks) (Publik)
Prosedur Membuat Pasangan Kunci : 1. Pilih sembarang bilangan prima p.
4. Kunci publik adalah y, kunci rahasia adalah x. Nilai g dan p tidak dirahasiakan dan dapat diumumkan kepada anggota kelompok.
Enkripsi :
1. Plainteks disusun menjadi blok-blok m1, m2, …, sedemikian sehingga setiap
blok merepresentasikan nilai di dalam rentang 0 sampai p – 1.
2. Pilih bilangan acak k, yang dalam hal ini 0 k p – 1, sedemikian sehingga k relatif prima dengan p – 1.
3. Setiap blok m dienkripsi dengan rumus : a = gk mod p b = ykm mod p
Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.
Dekripsi :
Untuk mendekripsi a dan b digunakan kunci rahasia, x, dan plainteks m diperoleh kembali dengan persamaan :
m = b/ax mod p karena : ax gkx (mod p)
maka :
b/ax ykm/ax gxkm/gxk m (mod p)
yang berarti bahwa plainteks dapat ditemukan kembali dari pasangan cipherteks a dan b.
2.9 ECC (Elliptical Curve Cryptography)
Pendekatan yang dilakukan untuk menghasilkan algoritma Elliptic Curve Cryptography adalah dengan meggunakan struktur matematika yang sangat unik
sebuah kurva eliptik dan menghasilkan sebuah titik lain yang ada pada kurva tersebut. Struktur yang unik ini memberikan keuntungan dalam kriptografi dikarenakan kesulitan untuk menemukan 2 buah titik yang menentukan sebuah titik tertentu tersebut tidak dapat ditemukan dengan mudah. Tingkat kesulitan untuk menemukan 2 buah titik termasuk dalam golongan yang rumit sama seperti kesulitan untuk memperhitungkan variasi eksponensial yang digunakan dalam algoritma RSA yang telah banyak diimplementasikan. Untuk memecahkan Elliptic Curve Cryptography sendiri dibutuhkan perhitungan matematis yang sangat tinggi. Elliptic Curve Cryptography terdiri dari beberapa operasi basic dan juga aturan yang mendefinisikan penggunaan dari operasi operasi basic seeperti penambahan, pengurangan, perkalian dan perpangkatan yang didefinisikan sesuai dengan kurvakurva yang ada. Berikut adalah operasi matematika yang digunakan pada Elliptical Curve Cryptography didefinisikan dengan persamaan :
y2 = x3 + ax + b
dengan
4a3 + 27b2≠ 0
Setiap perubahan nilai dari a dan b akan menghasilkan elliptic curve yang berbeda (Hankerson, et al. 2004).
2.9.1 Jenis-jenis Elliptic Curve Cryptography
Elliptical Curve Cryptography mempunyai beberapa jenis-jenis algoritma yaitu : 1. ECDSA (Elliptical Curve Digital Siganature Algortihm)
Algoritma penandatanganan pesan menggunakan ECC yang disebutkan sebagai ECDSA adalah salah satu variasi dari Digital Signature Algorithm yang beroperasi dengan kelompok kurva elliptic sebagai basis perhitungan dari proses penandatanganan. Agar dapat menyamakan suatu tandatangan digital dari sebuah pesan yang dikirim oleh dua orang, maka kedua orang tersebut harus memiliki kurva elliptic yang sama.
2. Elliptical Curve Diffie Hellman
masing-masing memiliki kurva eliptik sepasang kunci publik-swasta masing – masing, dan mengirimkan sebuah kunci rahasia bersama melalui saluran yang tidak aman. Berbagi rahasia ini mungkin langsung digunakan sebagai tombol, atau lebih baik lagi, untuk mendapatkan kunci lain yang kemudian dapat digunakan untuk mengenkripsi komunikasi berikutnya menggunakan cipher kunci simetris.
2.9.2 Hal –hal yang perlu diperhatikan pada Elliptic Curve Cryptography
Pada Elliptical Curve Cryptography ini ada hal-hal yang harus diperhatikan untuk menyandikan pesan, yaitu :
1. Domain Parameter Kurva Ellips yang digunakan dalam ECC
Pembuatan parameter domain tidak dilakukan oleh masing-masing pengirim atau penerima karena ini melibatkan menghitung jumlah titik pada kurva yang memakan waktu dan sulit untuk diterapkan. Akibatnya dipilih beberapa standar parameter domain kurva eliptik untuk beberapa ukuran.
2. Panjang kunci
Skema ECC terkuat yang sudah berhasil diretas sampai saat ini memiliki sebuah kunci 112-bit untuk kasus dengan penggunaan umum dan sebuah kunci 109-bit untuk kasus dengan operasi biner. Untuk kasus pengenkripsian secara biasa rusak pada bulan Juli 2009 dengan menggunakan sekelompok lebih dari 200 PlayStation 3 game konsole dan bisa selesai dalam 3,5 bulan menggunakan cluster saat menjalankan terus menerus .Untuk kasus dengan pengoperasian biner, itu rusak pada bulan April 2004 dengan menggunakan 2.600 komputer selama 17 bulan operasi komputer.
3. Lisensi dan ijin
eliptik telah dipatenkan oleh berbagai orang dan perusahaan di seluruh dunia. Terutama perusahaan Kanada, Inc Certicom memegang lebih dari 130 paten yang berkaitan dengan kurva eliptik dan kriptografi kunci publik pada umumnya.
2.10 ECDSA (Elliptical Curve Digital Signature Algorithm)
ECDSA (Elliptical Curve Digital Signature Algorithm) adalah kurva elliptik analog dari Digital Siganature Algorithm (DSA). ECDSA merupakan salah satu jenis dari metode tanda tangan digital yang beroperasi dengan kelompok kurva elliptik sebagai basis perhitungan.
Skematik ECDSA adalah part penghitung digital untuk menulis penandaan. Skematik penandaan digital dapat diklasifikasikan berdasarkan pada permasalahan matematika yang menyediakan dasar untuk keamanan :
1. Integer Faktorisasi (IF)
Dasar keamanan pada intrektabiliti dari permasalahan faktorisasi integer. 2. Diskrit Logaritma (DL)
Dasar keamanan dititik beratkan pada permasalahan logaritma dalam sebuah daerah terbatas.
3. Skema kurva elliptic
Dasar keamanan dititik beratkan pada permasalahan curva elliptic logaritma diskrit (Hankerson, et al. 2004).
2.10.1 Parameter-parameter domain ECDSA
Parameter-parameter domain ECDSA terdiri dari sebuah pilihan yang sesuai dengan kurva elliptik E yang didefinisikan melebihi bidang tak hingga Fq dari karateristik p, dan sebuah titik dasar G € E(Fq). Untuk menyimpulkan, parameter-parameter domain terdiri dari :
b. Sebuah inidkasi FR (field representation) dari representasi yang digunakan untuk elemen dari Fq
c. Sebuah string bit seedE dari ukuran minimal 160 bit
d. Dua elemem bidang xg dan yg dalam Fq yang mendefinisikan sebuah titik tak
hingga G = (xg,yg) dari orde prima dalam E(Fq)
e. Orde n dari titik G, dengan n>2160 dan n > f. Kofaktor h = ≠E(Fq)/n
2.10.2 Proses ECDSA
Dalam protokol ECDSA, pihak yang akan melakukan tanda tangan digital mempunyai parameter domain kurva eliptik berupa D = { p, FR, a, b, G, n } dan pasangan kunci-kunci rahasia dA dan kunci publik QA. Kemudian pihak yang akan melakukan verifikasi terhadap tanda tangan , memiliki salinana dokumen D yang otentik dan kunci publik QA. Proses-proses yang terjadi adalah sebagai berikut :
Key generation :
1. Memilih sebuah bilangan bulat random dA yang nilainya diantara ( 1,n-1) 2. Menghitung QA = dA * G = ( X1, Y1)
3. Kunci rahasia = dA, dan kunci publik = QA
Signing ( Pemberian Tanda Tangan ) :
1. Memilih sebuah bilangan bulat random k, yang nilainya diantara ( 1, n-1 ) 2. Menghitung QA = k * G = ( X1, Y1 ) dan r = X1 mod n, jika r = 0, maka
kembali ke langkah 1 3. Menghitung k-1 mod n 4. Menghitung e = Hash (m)
5. Menghitung s = k-1 { e+dA * r } mod n Tanda tangan untuk pesan m adalah ( r,s ).
Verifying ( Verifikasi tanda tangan digital ) :
2. Menghitung e = Hash (m) 3. Menghitung w = s-1 mod n
4. Menghitung u1 = ew mod n dan u2 = rw mod n
5. Menghitung u1 * G + u2 * QA = ( X1, Y1)
6. Menghitung v = X1 mod n
7. Menerima tanda tangan jika dan hanya jika v = r
2.11 Penelitian Terdahulu
Pualam Sendi A P dan temannya menghasilkan kesimpulan bahwa Algoritma ECDSA yang diimplementasikan pada email client dalam proyek akhir ini dapat memberikan informasi tentang keaslian pesan yang diterima dengan syarat penerima sudah memiliki kunci publik milik pengirim. Kemudian, penggunaan fungsi trim pada saat pengambilan data dari luar program sangat penting karena sering terjadi perubahan saat proses pengambilan data dilakukan. Serta penggunaan tanda tangan digital akan mempengaruhi ukuran email (Sendi, et al. 2010).
Wizanajani menyimpulkan bahwa algoritma ECC memiliki banyak keunggulan dibandingkan dengan algritma RSA dan DSA. Kecepatan algoritma berbasis ECC dalam proses pemberian dan verifikasi tanda tangan digital jauh lebih cepat dibandingkan dengan algoritma DSA dan RSA. Ukuran dari Algoritma berbasis ECC juga lebih kecil dari RSA dan DSA akan tetapi tidak dalam nilai yang besar. Yang paling utama adalah penyelesaian masalah algoritma berbasis ECC dilakukan secara eksponensial penuh dan lebih sulit dipecahkan daripada masalah DSA dan RSA, hal ini membuktikan bahwa ECC lebih kuat daripada DSA dan RSA. Pada implementasinya ECC cocok digunakan untuk aplikasi pada mobile phone, PDA, karena aplikasi tersebut membutuhkan ukuran kunci dan kecepatan pemberian tanda tangan serta verifikasi yang cepat (Wizanajani, 2013).
meminimalisir adanya penyadapan data, hal ini dikarenakan tanda tangan digital dapat memenuhi syarat keamanan data antara pengirim dan penerima pesan melalui tanda tangan yang diembed (dibawa) beserta data yang dikirim (Adam, 2009).
Triwinarko pada tahun 2010 melakukan penelitian pada ECDSA dan menyimpulkan bahwa ECDSA dengan panjang kunci 160 bit mempunyai tingkat keamanan yang relatif sama dengan RSA dengan panjang kunci 1024 bit. Jadi algoritma kriptografi kurva eliptik mempunyai keuntungan berupa ukuran panjang kunci yang lebih kecil jika dibandingkan dengan algoritma kunci publik lainnya (RSA) tetapi sudah memiliki tingkat keamanan yang relatif sama, sehingga algoritma kriptografi kurva eliptik cocok untuk diimplementasikan pada peralatan perangkat keras yang memiliki daya dan memori yang terbatas. Dari kriteria ukuran panjang tanda tangan digital, algoritma kriptografi kurva eliptik memiliki performansi yang lebih baik karena menghasilkan tanda tangan digital yang mempunyai ukuran lebih kecil. Sedangkan dari kriteria kecepatan proses signing dan verifying, performansi kriptografi kurva eliptik akan lebih baik jika proses signing lebih sering dilakukan. Sebaliknya performansi kriptografi RSA akan lebih baik jika proses verifying lebih sering dilakukan (Triwinarko, 2010).
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini menjelaskan tentang proses pembuatan otentikasi pesan dengan menggunakan ECDSA (elliptical curve digital signature algorithm) dan menganalisis kebutuhan perangkat lunak yang akan dibangun serta perancangan sistem.
3.1 ECC (Elliptical Curve Cryptography)
Kurva elpitik pada kriptografi merupakan sebuah algoritma kriptografi kunci asimetris yaitu, algoritma dimana setiap pihaknya memiliki sepasang kunci privat dan kunci publik. Kunci privat hanya dimiliki oleh pribadi-pribadi yang berkepentingan, sedangkan kunci publik disebarluaskan ke semua pihak. Kriptografi kurva eliptik menggunakan masalah logaritma diskrit pada titik-titik kurva eliptik yang disebut dengan ECDLP (Elliptical Curve Discrete Logarithm Problem) (Triwinarko, 2004).
Parameter-parameter pada ECC :
1. Penentuan nilai p, dimana nilai p adalah sebuah bilangan prima dengan syarat p > 3.
2. Penentuan nilai a dan b dilakukan dengan memilih nilai dengan syarat a,b € p. koefesien a dan b menentukan kurva elips E(Fp) yang memenuhi persamaan y2
= x3 + ax + b (mod p), keduanya terletak pada interval [0,p-1] dan memenuhi 4a3 + 27b2≠ 0 (mod p).
3. Penentuan titik G dilakukan dengan mengambil titik koordinat pada kurva eliptik E(Fp), dimana G = (xG,yG), xG dan yG merupakan integer pada selang
[0, p-1].
3.1.1 Menentukan nilai p bilangan prima dengan syarat p > 3 untuk Fp
Dalam menetukan bilangan prima dilakukan dengan memilih sembarang nilai bilangan prima, misalkan diambil nilai bilangan prima 23, p = 23. Lakukan pengujian terhadap nilai p yang sudah ditentukan apakah merupakan bilangan prima atau tidak dengan cara ambil nilai PBB atau pembagi bersama terbesar n = 2. Pengujian dilakukan dengan menggunakan np - 1 = 1 (mod p) = 223 - 1 = 8388608 – 1 = 8388607 = 1 (mod 23). Maka 23 adalah bilangan prima karena tidak habis dibagi, sehingga nilai p = 23.
3.1.2 Menentukan nilai a, b dan persamaan kurva eliptik
Persamaan kurva eliptik y2 = x3 + ax + b (mod p) dan nilai a, b ditentukan dengan syarat a,b € p. Missalkan nilai a = 1, b = 4 dan p = 23 maka persamaan kurva eliptik menjadi :
y2 = x3 + x + 4 (mod 23) = 4a3 + 27b2≠ 0 (mod p) = 4.13 + 27.42≠ 0 (mod 23) = 436 ≠ 0 (mod 23)
= 22 ≠ 0 (mod 23)
Persyaratan persamaan kurva eliptik terpenuhi karena 22 ≠ 0 (mod 23).
3.1.3 Menentukan nilai G dan n
Sebelum menentukan nilai G dan n terlebih dahulu menentukan grup eliptik kurva E pada Fp. Dalam menentukan grup eliptik kurva dilakukan dengan menggunakan
nilai p sehingga Fp= { 0, 1, 2, 3….. p-1}. Nilai p = 23 maka Fp = {0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}. Setelah nilai grup eliptik sudah dibuat, maka sekarang menentukan elemen-elemen kurva eliptik Ep
(a,b), terlebih dahulu mencari quadratic residue modulo p (QRp). Dalam mencari
Tabel 3.1 QRp (quadratic residue modulo)
Fp Y2 (mod p) QRp
0 02 (mod 23) 0
1 12 (mod 23) 1
2 22 (mod 23) 4
3 32 (mod 23) 9
4 42 (mod 23) 16
5 52 (mod 23) 2
6 62 (mod 23) 13
7 72 (mod 23) 3
8 82 (mod 23) 18
9 92 (mod 23) 12
10 102 (mod 23) 8 11 112 (mod 23) 6 12 122 (mod 23) 6 13 132 (mod 23) 8 14 142 (mod 23) 12 15 152 (mod 23) 18 16 162 (mod 23) 3 17 172 (mod 23) 13 18 182 (mod 23) 2 19 192 (mod 23) 16 20 202 (mod 23) 9 21 212 (mod 23) 4 22 222 (mod 23) 1
elemen grup eliptik E23 (1,4) dapat di tentukan dengan persamaan = x3 + x + 4
[image:45.595.147.517.210.732.2](mod 23), untuk x € F23 dan y2€ QR23.
Tabel 3.2 Mencari Elemen E23 (1,4)
x € F23 y2 = x3 + x + 4 (mod 23) y2€ QR23 (x,y)x € E23 (1,4)
0 4 Ya (0,2) dan (0,21)
1 6 Ya (1,11) dan (1,12)
2 14 Tidak -
3 11 Tidak -
4 3 Ya (4,7) dan (4,16)
5 19 Tidak -
6 19 Tidak -
7 9 Ya (7,3) dan (7,20)
8 18 Ya (8,8) dan (8,15)
9 6 Ya (9,11) dan (9.12)
10 2 Ya (10,5) dan (10,18)
11 12 Ya (11,9) dan (11,14)
12 19 Tidak -
13 6 Ya (13,11) dan (13,12)
14 2 Ya (14,5) dan (14,18)
15 13 Ya (15,6) dan (15,17)
16 22 Tidak -
17 12 Ya (17,9) dan (17,14)
18 12 Ya (18,9) dan (18,14)
19 5 Tidak -
20 20 Tidak -
21 17 Tidak -
Berdasarkan tabel 3.2 untuk nilai x = 0, maka diperoleh y2 = 03 + 1.0 + 4 = 4 sehingga diperoleh nilai y = 2, y= 21. Karena berdasarkan tabel 3.1 diatas 22 (mod 23) = 4 dan 212 (mod 23) = 4. Perhitungan untuk nilai x dan y selanjutnya dilakukan dengan cara yang sama. Sehingga didapatkan elemen-elemen grup eliptik modulo 23 atas F23 yaitu F23 (1,4) = {(0,2), (0,21), (1,11), (1,12), (4,7),
(4,16), (7,3), (7,20), (8,8), (8,15), (9,11), (9,12), (10,5), (10,18), (11,9), (11,14), (13,11), (13,12), (14,5), (14,18), (15,6), (15,17), (17,9), (17,14), (18,9), (18,14), (22,5), (22,18)}. Penentuan nilai G ditentukan secara acak dalam grup eliptik F23
(1,4). Misalkan titik yang dipilih (0,2), maka nilai G = (0,2).
Menentukan nilai n dilakukan dengan mencari nilai order dari titik G yang sudah di tentukan dengan syarat n.G = O, dimana O adalah titik infinity. Titik infinity itu adalah titik tak hingga dimana P + - P = O, -P = (xp,-yp) sehingga O =
(0,0).
Dalam penjumlahan titik pada kurva eliptik digunakan operasi aritmatika penjumlahan, pengurangan, perkalian dan invers. Operasi-operasi aritmatika tersebut didefinisikan sebagai berikut :
1. Operasi penjumlahan (addtion) : Jika a, b € Fp maka a+b = r, dengan r adalah
sisa pembagian ketika a+b dibagi dengan p dan 0 ≤ r ≤ p-1. Operasi ini dikenal operasi penambahan modulo p.
2. Operasi pengurangan (subraction) : Jika a, b € Fp maka a-b = r, dengan r
adalah sisa pembagian ketika dibagi dengan p bila a-b > 0, sedangkan bila a-b < 0 maka r adalah (a-b)+p. Operasi ini dikenal sebagai operasi pengurangan dengan modulo p.
3. Operasi perkalian (multiplication) : Jika a,b € Fp maka a.b = s, dengan s adalah
sisa pembagian ketika a.b dibagi dengan p dan 0 ≤ s ≤ p. Operasi ini dikenal sebagai operasi perkalian modulo p.
4. Invers (inversion) : Jika a adalah elemen tidak nol dalam Fp, maka invers a
modulo p, yang dinyatakan sebagai simbol a-1adalah suatu integer unik c € Fp
dengan a.c = 1 mod p.
1. Penjumlahan titik (point addition) : P = (x1,y1) € Ep dan Q = (x2,y2) € EP
dimana P ≠ Q. Maka P + Q = (x3,y3), dimana :
x3 = λ2– x1– x2
y3 = λ (x1 – x3) – y1
dimana
λ = (y2– y1) / (x2– x1)
2. Penggandaan dua titik (point doubling) : P = (x1,y1) € Ep dimana P ≠ -P. Maka
2P = (x3,y3) :
x3= λ2– 2x1
y3= λ (x1– x3) – y1
dimana λ = ( 3x12 + a ) / 2y1
Dengan menggunakan operasi aritmatika dapat ditentukan nilai dari penggandaan titik 2G sampai menemui titik infinity. 2G = (13,12), 3G = (11,9), 4G = (1,12), 5G = (7,20), 6G = (9,11), 7G = (15,6), 8G = (14,5), 9G = (4,7), 10G = (22,5), 11G = (10,5), 12G = (17,9), 13G = (8,15), 14G = (18,9), 15G = (18,14), 16G = (8,8), 17G = (17,14), 18G = (10,18), 19G = (22,18), 20G = (4,16), 21G = (14,18), 22G = (15,17), 23G = (9,12), 24G = (7,3), 25G = (1,11), 26G = (11,14), 27G = (13,11), 28G = (0,21), 29G = O.
Dari hasil tersebut diketahui nilai n adalah 29, karena menghasilkan nilai titik infinity. Nilai dari 2G = (13,12) ditentukan dengan penggandaan titik G. G = (0,2), 2G = (x3,y3)
λ = ( 3.02 + 1 ) / 2.2 = 1 / 4 mod 23 = 1.4-1 mod 23 = 1.6 mod 23 = 6 mod 23 = 6
x3 = λ2– 2x1
= 36 mod 23 = 13
y3 = λ (x1– x3) – y1
= 6 (0 – 13) – 2 = -78 – 2 mod 23 = -80 mod 23 = 12
Jadi titik 2G = (13,12). Dan untuk menentukan titik 3G dapat dilakukan dengan cara 2G + G, 3G = 2G + G, 2G = (13,12), G = (0,2), 3G = (x3,y3).
λ = (y2– y1) / (x2– x1)
= (12-2) / (13-0) = 10 / 13 mod 23 = 10.13-1 mod 23 = 22
x3 = λ2– x1– x2
= 222– 0 – 13 = 471 mod 23 = 11
y3 = λ (x1 – x3) – y1
= 22 (0 – 11) – 2 = -244 mod 23 = 9
Jadi titik 3G = (11,9). Perhitungan untuk selanjutnya dilakukan dengan cara yang sama sampai mendapatkan titik infinity n.G = (0,0). Parameter-parameter kurva eliptik sudah ditentukan dengan persamaan kurva y2 = x3 + x + 4 yang menghasilkan nilai a = 1, b = 4, p = 23, G = (0,2), n = 29.
Dalam proses ECDSA terdapat 3 tahap yaitu pembentukan kunci publik dan kunci privat, proses signing (pemberian tanda tangan) dan proses verifying (verifikasi tanda tangan digital).
3.2.1 Proses pembentukan kunci publik dan privat
Dalam proses pembentukan kunci privat = dA dan kunci publik = QA dilakukan dengan tahap berikut ini :
1. Memilih bilangan bulat random yang nilainya diantara (1,n-1) = dA, misalnya 14, jadi nilai dA = 14.
2. Menghitung QA = dA.G = 14 (0,2) = (18,9) jadi nilai QA = (18,9). 3. dA = 14, QA = (18,9)
3.2.2 Proses Signing (pemberian tanda tangan)
Dalam proses ini akan menghasilkan tanda tangan pesan (r,s). Dalam tahap ini ada beberapa proses yang dilakukan antara lain :
1. Memilih sebuah bilangan random k yang nilainya diantara (1,n-1)
2. Menghitung QA = k G = (x1,y1) dan r = x1 mod n, jika r = 0, maka kembali ke
langkah 1.
3. Menghitung k-1 mod n 4. Menghitung e = Hash (m)
5. Menghitung s = k-1 (e+(dA. r)) mod n Tanda tangan untuk pesan m adalah (r,s).
Setelah parameter kurva elpitik ditentukan yang menghasilkan nilai p = 23, a = 1, b = 4, G = (0,2), n = 29 dan kunci privat dA = 14, kunci publik QA = (18,9) pesan m = worldof. Proses Signing adalah sebagai berikut :
1. Menentukan nilai k diantara (1-28) adalah k = 7 2. Menghitung k G = 7 (0,2) = (15,6), maka nilai r = 15 3. Menghitung k-1 mod n = 7-1 mod 29 = 7.25 = 1 mod 29
5. Menghitung s = k-1 (e+dA.r) mod n = 25 (1789679805 + (14.15)) mod 29 = 25 (1789680015) = 44742000375 mod 29 = 4
Tanda tangan untuk pesan m adalah (15,4)
3.2.3 Proses Verifying (verifikasi tanda tangan)
Proses verifikasi merupakan proses untuk menentukan tanda tangan asli atau tidak dan mempunyai beberapa tahap sebagai berikut :
1. Memverifikasi bahwa r dan s adalah bilangan bulat yang diantara (1, n-1) 2. Menghitung e = Hash (m)
3. Menghitung w = s-1 mod n
4. Menghitung u1 = ew mod n dan u2 = rw mod n
5. Menghitung u1.G + u2.QA = ( x1,y1)
6. Menghitung v = x1 mod n
7. Menerima tanda tangan jika dan hanya jika v = r
Setelah nilai r dan s diketahui maka dilakukan proses verifikasi tanda tangan sebagai berikut :
1. r = 15, s = 4 adalah bilangan bulat diantara (1-28). (valid)
2. Menghitung e = Hash (worldof) = 1789679805 dengan menggunakan SHA-1(m) dan mengkonversi ke integer
3. Menghitung w = s-1 mod n = 4-1 mod 29 = 4.22 = 1 mod 29, maka w = 22 4. Menghitung u1 = ew mod n = 1789679805.22 mod 29 = 39372955710 mod 29
= 27 dan u2 = rw mod n = 15.22 mod 29 = 330 mod 29 = 11
5. Menghitung u1.G + u2.QA = 27 (0,2) + 11 (18,9) = (13,11) + (4,7) = (15,6)
6. Menghitung v = x1 mod n = 15 mod 29 = 15
7. Tanda tangan diterima karena r = 15, v = 15, v = r
3.3 Perancangan Flowchart Sistem
Flowchart program untuk proses tandatangan digital dan proses verifikasi tandatangan digital adalah sebagai berikut:
Proses untuk user pengirim direpresentasikan ke dalam flowchart pada gambar 3.1.
Mulai
Login Register
Apakah data sudah valid?
Compose
Isi Form Email Tujuan, Subjek dan
Pesan yang akan dikirim
Send Email Signature Submit Pesan telah
terkirim
Belum
Validasi
Salah
Home Benar
End Halaman Utama
Apakah sudah mendaftar?
Input Username dan Password
Sudah Belum
Sudah
[image:51.595.116.516.170.491.2]Isi form register
Gambar 3.1 Flowchart Sistem User Pengirim 3.3.2 Flowchart Sistem User Penerima
Inbox
Verifikasi Pesan
Verifikasi Pesan Benar
Verifikasi Pesan Salah Salah
Benar Login
Validasi Salah
Home Benar
End Mulai
Input username
[image:52.595.257.365.104.429.2]dan password
Gambar 3.2 Flowchart Sistem User Penerima
3.3.3 Flowchart Algoritma ECDSA
Proses Algoritma Elliptical Curve Digital Signature Algorithm (ECDSA) dapat di lihat pada gambar 3.3.
[image:52.595.114.529.544.729.2]3.4 Use case diagram
Diagram use case merupakan diagram yang memodelkan aspek-aspek perilaku sistem. Diagram use case memiliki aktor, use case, dan hubungannya.
Use case diagram di dalam pembuatan perangkat lunak berfungsi untuk
[image:53.595.149.476.276.547.2]mempermudah pemakai yang kurang menguasai komputer untuk mengerti sistem yang akan dikembangkan. Diagram use case dapat di lihat pada gambar 3.4.
Gambar 3.4 Diagram Use case
Spesifikasi use case merupakan gambaran lengkap spesifikasi tekstual pada use case. Spesifikasi use case sistem dilakukan berdasarkan kasus yang ada pada
use case diagram yang telah digambarkan . Berikut ini adalah tabel spesifikasi
Tabel 3.3 Spesifikasi Use case User Login
Tipe Use Case Penjelasan
Nama Use Case Login
User
Login
Penjelasan singkat Use case ini digunakan oleh user untuk login ke dalam sistem.
Pra-kondisi User harus login terlebih dahulu ke dalam sistem. Karakteristik Tindakan dan eksekusi tergantung dari permintaan
pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
a. Use case ini dimulai ketika user menekan tombol Login.
b. Selanjutnya user mengisi username dan password.
c. Kemudian user akan menekan tombol ‘Login’
Kondisi Akhir User berada di halaman utama.
Tabel 3.4 Spesifikasi Use case User Daftar Akun
Tipe Use Case Penjelasan
Penjelasan singkat Use case ini digunakan oleh user untuk mendaftarkan user id, password dan email ke dalam sistem.
Tabel 3.4 Spesifikasi Use case User Daftar Akun (Lanjutan)
Tipe Use Case Penjelasan
Pra-kondisi User tidak harus login terlebih dahulu ke dalam sistem.
Karakteristik Tindakan dan eksekusi tergantung dari permintaan pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
a. Use case ini dimulai ketika user menekan tombol Daftar.
b. Selanjutnya user mengisi username dan password dan email
c. Kemudian user akan menekan tombol ‘Daftar’
Kondisi Akhir User berada di halaman utama.
Tabel 3.5 Spesifikasi Use case User Lihat Profil
Tipe Use Case Penjelasan
Nama Use Case Lihat Profil
Penjelasan singkat Use case ini digunakan oleh user untuk melihat profil user.
pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
a. Use case ini dimulai ketika user memilih menu halaman Find User.
Kondisi Akhir User berada di halaman utama.
Tabel 3.6 Spesifikasi Use case User Lihat Email Masuk
Tipe Use Case Penjelasan
Nama Use Case Lihat Email Masuk
Penjelasan singkat Use case ini digunakan oleh user untuk melihat email user.
Pra-kondisi User harus login terlebih dahulu ke dalam sistem. Karakteristik Tindakan dan eksekusi tergantung dari permintaan
pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
b. Use case ini dimulai ketika user memilih menu halaman Inbox.
[image:56.595.115.528.77.706.2]Kondisi Akhir User berada di halaman utama.
Tabel 3.7 Spesifikasi Use case User Kirim Email
Tipe Use Case Penjelasan
Penjelasan singkat Use case ini digunakan oleh user untuk mengirim email.
Pra-kondisi User harus login terlebih dahulu ke dalam sistem. Karakteristik Tindakan dan eksekusi tergantung dari permintaan
pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
a. Use case ini dimulai ketika user akan mengirim Email
[image:57.595.122.525.89.797.2]Kondisi Akhir User berada di halaman utama.
Tabel 3.8 Spesifikasi Use case User Lihat Email Keluar
Tipe Use Case Penjelasan
Nama Use case Lihat Email Keluar
Penjelasan singkat Use case ini digunakan oleh user untuk mengirim email.
Pra-kondisi User harus login terlebih dahulu ke dalam sistem. Karakteristik Tindakan dan eksekusi tergantung dari permintaan
pengguna.
Skenario (Flow of Events) Skenario dasar (basic flow):
a. Use case ini dimulai ketika user memilih menu Sent email.
Kondisi Akhir User berada di halaman utama.
Tabel 3.9 Spesifikasi Use case User Logout
Nama Use Case Logout
Penjelasan singkat Use case ini digunakan oleh user untuk mengirim email.
Pra-kondisi User harus login terlebih dahulu ke dalam sistem.
Karakteristik Tindakan dan eksekusi tergantung dari permintaan pengguna.
Skenario (Flow of Events)
Skenario dasar (basic flow):
a. Use case ini dimulai ketika user memilih menu Logout.
b. Sistem akan menampilkan halaman login Kondisi Akhir User berada di halaman utama.
3.5 Perancangan Antarmuka Pemakai
Dalam perancangan antarmuka pemakai bagian sistem yang dikendalikan oleh user untuk mencapai dan melaksanakan fungsi-fungsi suatu sistem. Perancangan antarmuka pemakai yang akan dibuat adalah dari sisi user.
Gambar 3.5 Rancangan Halaman Login
2. Rancangan Halaman Daftar Email, di dalam sistem ini terdapat fasilitas bagi user yang belum terdaftar untuk melakukan pendaftaran melalui form. Rancangan Halaman Daftar Email dapat dilihat pada gambar 3.5.
[image:59.595.149.493.438.706.2]3. Rancangan Halaman Utama, di dalam sistem ini terdapat halaman utama. Rancangan Halaman Utama dapat dilihat pada gambar 3.6.
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
Implementasi sistem merupakan tahap akhir dalam pembuatan sistem setelah tahap perancangan sistem. Setiap sistem harus diuji agar mengetahui kelemahan dan kesalahan dalam sistem tersebut untuk dievaluasi atau berjalan dengan baik dan sempurna.
4.2 Tahap-Tahap Implementasi
Dalam pembuatan suatu sistem tahap-tahap dalam pembuatan harus di jelaskan terlebih dahulu, yaitu sebagai berikut :
1. Melakukan tahap persiapan, yaitu menganalisa hal-hal yang dibutuhkan dalam mendukung implementasi dari sistem. Persiapan yang dilakukan meliputi aspek perangkat lunak dan perangkat keras yang digunakan.
2. Melakukan tahap pengujian, yaitu dengan menguji setiap fungsi yang ada pada sistem apakah sudah berjalan dengan baik atau tidak.
4.3 Pengujian dan Tampilan
Gambar 4.1 Tampilan Utama
Gambar 4.2 Tampilan Form Daftar
Gambar 4.3 Tampilan Login
[image:64.595.126.478.239.417.2]Setelah melakukan login, user akan ditampilkan ke halaman beranda yang mempunyai fitur compose, inbox, sent email, find user dan logout. Berikut tampilan beranda di sistem otentikasi pesan.
Gambar 4.4 Tampilan Beranda
Gambar 4.5 Tampilan Halaman Compose
Setelah mengklik tombol kirim email, sistem akan melanjutkan dengan menampilkan hash message dengan menggunakan hash SHA-1, pesan yang akan di kirim adalah “percobaan otentikasi pesan dengan ECDSA” memiliki hash SHA-1 55407a6c48592ff0d99dac55526ce6b413f03124, kemudian hasil dari hash pesan SHA-1 diubah ke dalam bentuk integer dan menghasilkan E, 443950116884455485100777209562297365857001867710186854462664788598 677425590507651397216923365940.0000000000, setelah itu sistem akan memproses hasil integer dari hasil pesan hash dan menghasilkan signature (r,s) (4111385755471869119846890053857612538322676216602056968618),
Gambar 4.6 Tampilan Penandaan Signature
Gambar 4.7 Tampilan Halaman Email Terkirim
Untuk melihat pesan yang terkirim user harus masuk ke fitur sent email. Berikut tampilan halaman sent email.
[image:67.595.125.523.422.622.2]