18 5 perlakuan ini memiliki nilai rata-rata yang
tidak mirip dengan perlakuan lain. Tabel 21Perbandingan perlakuan hasil waktu
prosesverifyingdengan ukuran file 80MB
Dari Tabel 21 di atas diketahui bahwa perlakuan yang berbeda nyata dari segi waktu
prosesverifyingdengan ukuran file 80MB adalah DSA-Tiger, DSA-SHA-256, DSA-SHA-384,
RSA-SHA384 dan ECDSA-SHA384 karena ke- 5 perlakuan ini memiliki nilai rata-rata yang
tidak mirip dengan perlakuan lain.
Dari Tabel 18 sd 21 dapat diambil kesimpulan sebagai berikut:
• Perlakuan yang paling berbeda nyata adalah DSA-Tiger, DSA-SHA-256 dan
ECDSA-SHA-384 karena dalam berbagai ukuran file ke-2 perlakuan ini memeiliki
nilai nilai rata-rata yang tidak memiliki kemiripan dengan perlakuan lain.
• Dalam berbagai ukuran file kombinasi DSA-Tiger pada proses
verifyingmenghasilkan nilai rata-rata paling kecil yang artinya DSA-Tiger merupakan
kombinasi terbaik karena melakukan proses verifyingpaling cepat.
• Dalam berbagai ukuran file kombinasi ECDSA-SHA-384 pada proses
verifyingmenghasilkan nilai rata-rata paling besar yang artinya ECDSA-SHA-384
merupakan kombinasi terburuk karena melakukan proses verifyingpaling lama.
• Perlakuan yang paling mirip adalah RSA- Tiger dengan ECDSA-Tiger dan RSA-
SHA-256 dengan ECDSA-SHA-256. Kesamaan ini terjadi dalam berbagai
ukuran file kecuali file ukuran 20MB.
Pada Lampiran 10 disertakan salah satu hasil plot interaksi data watu proses verifying
dengan ukuran file 5MB. Dari hasil plot interaksi tersebut dapat dilihat bahwa terdapat
interaksi baik dari faktor algoritme maupun faktor fungsi hash.
5.2. Analisis Penggunaan Memori Proses
Signing dan Proses Verifying
Analisis tahap ini merupakan analisis pada hasil pengujianyang membandingkan memori
baik pada saat proses signing maupun verifying. Analisis Penggunaan Memori Proses
Signing
Ringkasan data penggunaan memori pada proses signing terdapat pada Tabel 22. Agar
lebih jelas, hasil perbandingan untuk penggunaan memori signingdisajikan berupa
grafik pada Gambar 13. Dari hasil tersebut, sudah tampak jelas perbedaan ketiganya.
Tabel 22Data ringkasan penggunaan memori pada proses signing
Gambar 13 Perbandingan penggunaan memori proses signing DSA, RSA dan
ECDSA. Dari hasil identifikasi penggunaan memori
untuk proses signingdapat disimpulkan bahwa algoritme tandatangan digital yang sangat
mempengaruhi. Jika diperhatikan antar fungsi hash pada masing-masing algoritme hasilnya
tidak jauh berbeda, namun jika dipandang berdasarkan algoritme terdapat perbedaan
jumlah memori yang dibutuhkan dalam jumlah yang besar untuk proses signing.
Analisis Penggunaan Memori Proses Verifying
Ringkasan data penggunaan memori pada proses verifyingterdapat pada Tabel 23. Agar
lebih jelas, hasil perbandingan untuk
DSA-Tiger DSA-256 DSA-384 RSA-Tiger ECDSA-Tiger RSA-256 ECDSA-256 RSA-384 ECDSA-384 6.17
6.91 7.31
7.49 7.52
7.62 7.69
7.83 8.24
DSA RSA
ECDSA SHA-256
54,169.87 1,976.00
2,969.33 19,705.07
SHA-384 54,193.87
1,976.00 2,969.60
19,735.20 TIGER
54,206.40 1,976.00
2,973.60 19,718.67
Rata-rata Kolom 54,190.04
1,998.04 2,970.84
Rata-rata Baris KB
Fungsi Hash Memori Signing KB
54169.87
1976.00 2969.33
54193.87
1976.00 2969.60
54206.40
1976.00 2973.60
0.00 10000.00
20000.00 30000.00
40000.00 50000.00
60000.00
DSA RSA
ECDSA
M em
o r
i K
B
Digital
Signature
SHA-256 SHA-384
TIGER
19 penggunaan memori signing ditunjukkan berupa
grafik batang pada Gambar 14. Dari hasil tersebut, sudah
tampak jelas perbedaan ketiganya.
Tabel 23Data ringkasan penggunaan memori pada proses verifying
Gambar 14 Perbandingan penggunaan memori proses verifying DSA, RSA dan
ECDSA. Dari hasil identifikasi memori untuk proses
verifyingdapat disimpulkan bahwa algoritme tandatangan digital yang sangat mempengaruhi.
Jika diperhatikan antar fungsi hash pada masing-masing algoritme hasilnya tidak jauh
berbeda, namun jika dipandang berdasarkan algoritme terdapat perbedaan jumlah memori
yang dibutuhkan dalam jumlah yang besar untuk proses verifying.
Identifikasi Penyebab Perbedaan dari Hasil Waktu Proses dan Penggunaan Memori
Identifikasi penyebab perbedaan hasil yang diperoleh pada penelitian ini, terbagi menjadi
dua bagian, yaitu: 1 Identifikasi Fungsi Hash
Dari hasil pengujian ini, diperoleh suatu gambaran bahwa pemilihan fungsi hash cukup
memberikan kontribusi perbedaan kecepatan pada proses signing maupun verifying. Hal ini
disebabkan oleh cara pendistribusian fungsi hash yang memiliki perbedaan pada desain,
kapasitas masukan blok dan jumlah putaran. [FIPS-HASH] mengemukakan pada SHA-
256 terjadi penambahan bit-bit pengganjal kedalam blok pesan agar panjangnya kelipatan
512-bit, sebelum dilakukan proses komputasi hash.
Komputasi SHA-256 dilakukan pada 32-bit words. Keluaran dari setiap blok digabungkan
dengan keluaran blok berikutnya. Dengan demikian akhirnyadiperoleh message digest.
Desain pada SHA-256 adalah serial artinya setiap blok diproses setelah blok sebelumnya
diproses. Algoritmenya menggunakan message schedule berjumlah 64 kali putaran dan 8
working variables 32-bit words. Algoritme SHA-256 ditunjukkan pada Lampiran 11. Inisial
hashvalueH
SHA-256 adalah sebagai berikut: H
= 6a09e667 H
1
= bb67ae85 H
2
= 3c6ef372 H
3
= a54ff53a H
4
= 510e527f H
5
= 9b05688c H
6
= 1f83d9ab H
7
= 5be0cd19 Pada SHA-384 blok pesan berukuran 1024
bit. Komputasi SHA-384 dilakukan pada 64 bit words. Desain pada SHA-384 adalah serial
artinya setiap blok diproses setelah blok sebelumnya diproses. Algoritmenya
menggunakan message schedule berjumlah 80 kali putaran dan 8 working variables 64-bit
words. Algoritme SHA-384 ditunjukkan pada Lampiran 12. Inisial hashvalueH
SHA-384 adalah sebagai berikut:
H = cbbb9d5dc1059ed8
H
1
= 629a292a367cd507 H
2
= 9159015a3070dd17 H
3
= 152fecd8f70e5939 H
4
= 67332667ffc00b31 H
5
= 8eb44a8768581511 H
6
= db0c2e0d64f98fa7 H
7
= 47b5481dbefa4fa4 [TIGER] mengemukakan, pada fungsi
hashTiger blok pesan berukuran 512-bit. Komputasi Tiger dilakukan pada 64-bit words.
Tiger menggunakan tiga register 64-bit yang disebut dengan a, b dan c sebagai nilai hash
intermediate. Register-register ini diinisialisasi sebagai H
yaitu: a = 0x0123456789ABCDEF
b = 0xFEDCBA9876543210 c = 0xF096A5B4C3B2E187
Setiap 512-bit blok pesan sebelumnya dipecahmenjadi delapan 64-bit words x0, x1,
…, x7, dankomputasinya berubah dari h
i
DSA RSA
ECDSA SHA-256
53,476.00 1,980.00
2,300.00 19,252.00
SHA-384 53,480.00
1,980.00 2,296.00
19,252.00 TIGER
53,484.00 1,979.73
2,296.00 19,253.24
Rata-rata Kolom 53,480.00
1,979.91 2,297.33
Fungsi Hash Memori Verifying KB
Rata-rata Baris KB
53,476.00
1,980.00 2,300.00
53,480.00
1,980.00 2,296.00
53,484.00
1,980.00 2,296.00
- 10,000.00
20,000.00 30,000.00
40,000.00 50,000.00
60,000.00
DSA RSA
ECDSA
M e
m o
ri K
B
Digital Signature
SHA-256 SHA-384
20 menjadi h
i+1
.Komputasi ini mengandung tiga tahapan dan diantara tahapan tersebut terdapat
key schedule, suatu transformasi dari data masukan yangmencegah para penyerang
memaksakan masukanyang mirip pada tiga putaran tadi. Akhirnyaada suatu tahapan
feedforward dimana nilai barudari a, b, dan c dikombinasikan dengan nilaiinisial untuk
memberikan nilai h
i+1
. Efisiensi dari fungsi Tiger berdasarkan pada
desainnya yang paralel. Dalam setiap putaran dalam Tiger, operasi lookup terhadap delapan
tabel dapat dilaksanakan secara paralel, sehingga compiler dapat membuat penggunaan
yang optimal bagi pipeline. AlgoritmeTiger dapat dilihat pada Lampiran 13.
Penggunaan memori untuk menjalankan proses hashing dari ketiga fungsi hash tersebut,
tidak terdapat perbedaan yang nyata. Hal ini terjadi karena ketiganya memiliki jumlah
putaran proses hash yang tidak banyak dan operasi yang dilakukan adalah operasi bitwise
sederhana dengan menggunakan operator logika seperti AND, OR, NOT dan XOR.
2 Identifikasi Algoritme Tanda Tangan Digital Berdasarkan hasil pengujian, perbedaan
nyata pada ketiga algoritme ada pada proses signing, proses verifying danjumlah penggunaan
memori. Secara perhitungan matematis tampak dalam grafik bahwa DSA yang paling baik,
kemudian RSA dan yang paling terakhir adalah ECDSA. Perbedaan tersebut disebabkanmetode
pada
pendistribusian nilai hash untuk
signaturefile secara algoritmik dan juga disebabkan lingkungan pengembangan aplikasi
kriptosistem untuk digital signature. Jika ditinjau dari metode pendistribusian
nilai hash untuk signaturefile secara algoritmik, perbedaan tiap algoritmeterutama dikarenakan
bedanya operasi komputasi yang digunakan. Pada algoritme DSA, perhitungan komputasi
dilakukan secara eksponensial g
k
mod p. Nilai ini, tidak bergantung pada pesan yang akan
ditandatangani sehingga dapat dihitung sebelumnya, walaupun DSA harus menghitung
inverse perkalian untuk mencari nilai s. Algoritmeeuclidean dipakai untuk menghitung
nilai inverse dari k
-1
mod q. Operasi yang dijalankan pada DSA adalah operasi
perpangkatan bilangan bulat. Bilangan bulat yang menjadi pangkat merupakan bilangan yang
kurang dari q. Kunci privat digunakan pada proses untuk operasi pertambahan dan
perkalian, ketika mencari s.
Pada algoritme RSA, operasi komputasi yang dijalankan sama dengan DSA yaitu
operasi perpangkatan bilangan bulat yang besar, secara eksponensial pada aritmatika modular.
Pangkat bilangan bulat pada RSA menggunakan kunci privat untuk signing dan kunci publik
untuk proses verifying, sehingga jumlah komputasinya menjadi lebih tinggi
dibandingkan DSA.
Pada algoritme ECDSA, [CERTICOM] mengemukakan, secara konseptual ECDSA
sama halnya dengan DSA, hanya saja mengganti sub kelompok dari order q
yang dihasilkan oleh g dengan sub kelompok titik
pada kurva eliptik yang dihasilkan oleh G. Satu- satunya perbedaan yang signifikan antara
ECDSA dan DSA adalah dalam proses generasi r. Pada DSA hal ini dilakukan dengan
mengambil unsur acak X =
mod p dan mengurangi modulo q, sehingga diperoleh
sebuah integer dalam interval [1, q-1]. Pada ECDSA, r dihasilkan pada interval [1, n-1],
dengan mengambil x-koordinat dari titik acak kG dan mengurangi modulo n.
Hasil dari pengujian aplikasi tandatangan digital ECDSA menunjukkan ada perbedaan
waktu dengan DSA dan RSA. Hal tersebut dikarenakan selainpada algoritmenya terdapat
proses perpangkatan bilangan bulat dan perhitungan inversi, terdapat juga proses
komputasi untuk perhitungan scalar multiplicationuntuk perkalian skalar antara titik
dengan bilangan bulat yang besar.
Pada ECDSA ada 3 operasi matematika, yaitu:
• Operasi penambahan addition, yakni operasi penjumlahan dua buah titik berbeda
pada kurva eliptik yang menghasilkan titik ke tiga pada kurva eliptik. Contohnya,
penjumlahan titi P dan Q.
• Operasi penggandaan doubling, yakni penjumlahan dua titik yang sama.
Contohnya, penjumlahan titik P dan titik P maka sama dengan 2P .
• Perkalian skalar scalar multiplication, yakni operasi penambahan yang dilakukan
secara berulangterhadap titik yang sama di sepanjang kurva eliptik. Contohnya, jika n
adalah suatu integer positif dan P suatu titik pada kurva eliptik, perkalian skalar nP
adalah hasil penambahan P sejumlah n kali. Dengan demikian 3P = P+P+P sehingga
3P=2P+P.Maka pada setiap proses scalar multiplication, terdapat pula operasi
doubling.
Operasi matematika yang dominan pada ECDSA adalah operasi scalar multiplication.
Hal tersebut salah satunya ditemukan pada proses pembangkitan sepasang kunci.
21 Selanjutnya, jika ditinjau dari lingkungan
pengembangan aplikasi kriptosistem,
implementasi DSA, RSA dan ECDSA secara garis besar menggunakan dua metode
pendekatan yang berbeda. Hal inilah yang menyebabkan adanya perbedaan yang nyata
pada penggunaan memori pada ketiga algoritme tersebut.
Pada RSA dan ECDSA menggunakan konsep Filter, sedangkan pada DSA sebaliknya.
[CRYPTO] mengemukakan Filter adalah sebuah kelas dasar abstrak dari
BufferedTransformation . Ia menerapkan
fungsi attachment lampiran yang sifatnya hanya mendeklarasikan, tetapi tidak
diimplementasikan pada BufferedTransformation
. Attachment adalah konsep yang sudah maju
dan sangat praktis dalam penggunaannya. Dengan Filter dan fungsi lampiran mereka,
banyak fungsi elegan diciptakan, dalam jumlah kode program yang relatif lebih sedikit. Pada
saat sebuah objek yang diturunkan dari BufferedTransformation
, katakanlah B, dikaitkan pada sebuah objek yang diturunkan
dari Filter, katakanlah F, ketika sebuah data dikirim ke F melalui salah satu metode misalnya
Put , maka F akan melakukan proses tertentu
pada data ini, dan akan menyalurkan hasil keluarannya pada B, dengan memanggil fungsi
Put pada B. Pada saat ada sebuah metode
misalnya Get dipanggil pada F, maka F cukup menyalurkannya pada B, dan B
mengembalikan nilai data hasilnya. Jika B adalah filter lain yang diturunkan, ia akan
melakukan hal yang sama, membentuk rantai attachment, yang pasti berakhir dengan sebuah
objek BufferedTransformation. Contohnya sebagai berikut:
char const zInputFile = ...;
char const zOutputFile = ...; SHA hash;
FileSourcezInputFile, true, new HashFilterhash, new
FileSinkzOutputFile, true; Potongan kode diatas membuka file yang
diidentifikasi oleh sebuah
variablezInputFilemelalui filesource
, kemudian feed ke modul hash SHA melalui
HashFilter , dan menyimpan data asli
bersama dengan digest yang telah dihitung ke sebuah
fileyang diidentifikasi oleh
zOutputFile melalui
FileSink . Jika
parameter true dibaris terakhir diabaikan, nilai default false akan berlaku, dan hanya
digestyang akan disimpan ke file output, tanpa data asli yang telah dihitung digest-nya.
Potongan kode program class template untuk filter proses signer dan verifying, dapat dilihat
pada Lampiran14. Metode attachment merupakan sebuah
konstruktor. Semua kelas yang berasal dari Filter
dan kelas Filter itu sendiri, mengambil parameter bentuk
BufferedTransformation .Parameter ini
menentukan pointer ke setiap objek yang berasal dari BufferedTransformation, yang
harus terpasang ke objek yang sedang dibangun. Sebuah pointer yang terpasangparameter
attachment, akan menjadi milik sebuah objek setelah dimulai hubungan. Saat ini, standar
untuk membuat objek adalah MessageQueue. MessageQueue
akan menyimpan semua data yang diterima melalui metode Put,yang
nantinya akan ditemukembalikan melalui metode Get, melalui urutan yang sama
setelah data diterima.
Metode yang sering dipakai pada kelas Filter adalah SignerFilter
dan VerifierFilter
.SignerFilter adalah
fungsi yang merangkum kelas yang diturunkan dari PK_Signer untuk menerapkan tandatangan
digital pada sebuah data masukan. File tandatangan
digital akan ditransfer ke
transformasi terlampir. VerifierFilter juga adalah fungsi yang merangkum kelas yang
diturunkan dari PK_Verifier, yaitu untuk memverifikasi tandatangan digital dari input
data.
File tandatangan, melewati
VerifierFilter melalui metode
PutSignature . Namun dalam prakteknya,
akan lebih mudah menggunakan SignMessage
danVerifyMessage, yang merupakan metode pada objekPK_Signer
danPK_Verifier. Berdasarkan penjelasan diatas, maka
diperoleh suatu kesimpulan. Pada DSA digunakan metode SignMessage dalam
proses signing dan VerifyMessage dalam proses verifying. Proses berjalan lebih cepat
karena proses komunikasi antar metode untuk parsing data lebih sedikit, namun terjadi
penurunan kinerja pada penggunaan memori.Hal tersebut berkaitan dengan
manajemen pointer, yang mana pada metode tersebut pada prakteknya lebih banyak
penggunaan temporary buffer. Hal tersebut berakibat pada saat terjadi proses iterasi,
sehingga setiap iterasi sampai harus dibuat semacam pengendali buffer. Pengontrolan
memori pointer pada metode ini bersifat auto. Contoh potongan kode program yang lengkap
untuk fungsi signing DSA ditunjukkan pada
22 Lampiran15.ContohpotonganTemplate class
yang digunakan pada DSA ditunjukkan pada Lampiran16.
Pada RSA dan ECDSA digunakan metode Filter yang menerapkan sistem penanganan
memori bernama BufferedTransformation. Memori yang digunakan untuk menjalankan
setiap tahapan proses signing dan verifying sedikit sehingga dinilai lebih efisien dalam
penggunaan resource. Class tersebut sejenis perangkat untuk optimasi buffer output. Pointer
untuk mengakses data lebih cepat dan life time object lebih jelas kapan harus idle atau hancur.
Objek BufferedTransformation
memerlukan aliran byte sebagai masukan, dan menyimpan hasil
keluarannya pada sebuah buffer internal dengan tujuan dapat ditemukembalikan jika nanti
dibutuhkan. Sehingga tidak mengulang proses kembali ke awal. Namun pada prakteknya
banyak message data yang di-parsing dari satu fungsi ke fungsi yang lain. Hal tersebut
mengakibatkan waktu yang dibutuhkan untuk menjalankan serangkaian proses signing atau
verifying menjadi lebih lama.
Contoh potongan kode program yang lengkap untuk fungsi signing RSA ditunjukkan
pada Lampiran17. Contoh potongan Template class yang digunakan pada RSA ditunjukkan
pada Lampiran18.
Contoh potongan kode program yang lengkap untuk fungsi signing
ECDSA ditunjukkan pada Lampiran19. Contoh
potongan Template class yang digunakan pada ECDSA ditunjukkan pada Lampiran20.
Pada Lampiran 21 dapat dilihat tampilan menu aplikasi tanda tangan digital. Sementara
pada Lampiran 22 disertakan ilustrasi singkat bagaimana aplikasi ini bekerja. Pada ilustrasi
tersebut diambil contoh file masukan 1.pdf dan proses
penandatanganan menggunakan algoritme RSA dengan fungsi hash SHA-256.
KESIMPULAN
Pada penelitian ini telah dirancang aplikasi tanda tangan digital menggunakan fungsi hash
yaitu SHA-256, SHA-384 dan Tiger dengan DSS yaitu DSA, RSA, dan ECDSA
menggunakan pustaka kelas C++ untuk skema kriptografi. Aplikasi tersebut dapat menerima
masukan berupa file dengan format teks, executable dan gambar.
Dari hasil pengujianmenggunakan uji statistik diketahui bahwa untuk identifikasi
kinerja waktu proses signingdan verifyingyang memiliki perbedaan nyata adalah faktor
algoritme karena cara atau metode
pendistribusian nilai hash untuk signature file secara algoritmik dan perangkat pengembangan
aplikasi kriptosistem untuk digital signature, faktor fungsi hash karena cara pendistribusian
fungsi hash yang memiliki perbedaan pada desain, kapasitas masukan blok dan jumlah
putaranserta interaksi antara faktor algoritme dan faktor fungsi hash. Dalam berbagai ukuran
file kombinasi algoritme DSA dengan fungsi hashTiger merupakan kombinasi terbaik karena
melakukan proses signingdan verifyingpaling cepat. Sebaliknya, kombinasi ECDSA dengan
fungsi
hash SHA-384 pada proses
signingverifyingmerupakan kombinasi terburuk karena melakukan proses signingdan
verifyingpaling lama. Pada proses signing perlakuan yang paling
mirip adalah RSA-Tiger dengan ECDSA-Tiger. Pada proses verifying perlakuan yang paling
mirip adalah RSA-Tiger dengan ECDSA-Tiger dan RSA-256 dengan ECDSA-256. Semakin
besarukuran file semakin sedikit pula perlakuan yang memiliki kemiripan, demikian pula
sebaliknya.
Untuk identifikasi penggunaan memori signingdan verifyingyang memiliki perbedaan
nyata adalah algoritme tandatangan digital yang dipengaruhi oleh ukuran file, sementara fungsi
hash tidak berpengaruh atau tidak memiliki perbedaan nyata.Pada DSA yang tidak
menerapkan konsep filter, semakin besar ukuran file, maka semakin besar pula jumlah memori
yang dibutuhkan, berlaku sebaliknya pada RSA dan ECDSA yang menerapkan konsep filter.
SARAN
Pada penelitian selanjutnya dalam rangka pengembangan untuk pemahaman pada aplikasi
kriptosistem maka perlu diadakan
pengidentifikasian dalam analisis pembangkitan sepasang kunci dan penggunaan lingkungan
pengembangan yang lain selain Crypto++ Library, jika memungkinkan dilakukan
perbandingan diantara keduanya. Selain itu dapat diadakan juga penelitian yang tidak
memanfaatkan konsep filter yang merupakan suatu kelebihan dari aplikasi Crypto++ Library
untuk RSA dan ECDSA, sehingga diketahui pola perbedaan lain dari segi waktu pemrosesan
dan penggunaan memori.
DAFTAR PUSTAKA
Anonim. Manual Crypto++ Library 5.6.0 API Reference.
http:www.cryptopp.com , [11
Mei 2009].
23 Ismaliansyah MK. 2006. Kriptanalisis Pada
Tiger. http:www.informatika.org~rinaldiKriptog
rafi2006-2007Makalah2Makalah-057.pdf ,
[25 Februari 2011]. Menezes A., Van Oorschot P., Vanstone S.
1996. Hanbook of Applied Cryptography. CRCPress
Inc. www.cacr.math.uwaterloo.cahac
.[15Jun i 2009].
Munir R.2006.Kriptografi. Bandung:Informatika.
Rasyid MF. 2007. Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal
dengan Algoritma RSA dan El Gamal. http:www.informatika.org~rinaldiKriptog
rafi2007-2008Makalah2MakalahIF5054- 2007-B-039.pdf
, [September 2009]. Setiawan A. 2009. Percobaan Faktorial.
http:smartstat.wordpress.com20091223s lide-rancangan-faktorial
, [30 September 2010]
Stalling W. 2003. Cryptography and Network Security Principles and Practice. Third
Edition. New Jersey: Pearson Education. Walpole RE. 1990. Pengantar Statistika.
Sumantri B, penerjemah. Jakarta. PT. Gramedia. Terjemahan dari: Introduction to
Statistics.
Triwinarko A. 2004. Elliptic Curve Digital Signature Algorithm ECDSA.
http:www.infomatika.org~rinaldiTAMak alah_TA20Andy20T.pdf
, [September 2009].
Triyanto. 2009. Pengenalan Minitab. http:trie.staff.fkip.uns.ac.idfiles201003
MINITAB-14.pdf , [07 Januari 2011].
LAMPIRAN
25 Lampiran 1 Hasil Pengujian Aplikasi Tanda Tangan Digital
No Uraian
DSA RSA
ECDSA 1.
Pembangkitan Kunci Key Generation
User Input
Tidak ada Panjang kunci dalam bit,
random seed Tidak ada
Process Function
CreateDSAKeys GenerateRSAKey
CreateECDSAKeys Output
Kunci Privat dan Publik Kunci Privat dan Publik
Kunci Privat dan Publik
Hasil Uji
Sukses Sukses
Sukses 2.
Pembangkitan tanda Tangan Signature Generation
User Input
Kunci Privat dan File pesan Kunci Privat dan File
pesan Kunci Privat dan File pesan
Process Function
SignDSAMessage_256 RSASignFile_256
SignMessageECDSA_256 Output
- Signature file
- Waktu proses dan jumlah memori yang digunakan
- Signature file
- Waktu proses dan jumlah memori yang
digunakan - Signature file
- Waktu proses dan jumlah yang memori digunakan
Hasil Uji
Sukses Sukses
Sukses 3.
Verifikasi Tanda Tangan Signature Verifying
User Input
Kunci Publik dan File pesan Kunci Publik dan File
pesan Kunci Publik dan File pesan
Process Function
VerifyDSAMessage_256 RSAVerifyFile_256
VerifyMessageECDSA_25 6
Output - Informasi hasil verifikasi
- Waktu proses dan jumlah memori yang digunakan
- Informasi hasil verifikasi
- Waktu proses dan jumlah memori yang
digunakan - Informasi hasil verifikasi
- Waktu proses dan jumlah memori yang digunakan
Hasil Uji
Sukses Sukses
Sukses
26 Lampiran 2Data Hasil Pengujian Aplikasi Tanda Tangan Digital
DSA RSA
ECDSA DSA
RSA ECDSA
DSA RSA
ECDSA DSA
RSA ECDSA
1 SHA-256
1 5.270.016
EXE 68
88 93
78 140
93 11.424
1.976 2.968
10.732 1.980
2.300 2
5.127.245 PDF
78 83
94 63
145 151
11.424 1.976
2.972 10.732
1.980 2.300
3 5.119.536
BMP 67
78 93
66 140
156 11.428
1.976 2.968
10.732 1.980
2.300 4
10.357.440 EXE
135 156
166 135
250 265
19.644 1.976
2.968 18.952
1.980 2.300
5 10.259.143
PDF 140
156 171
141 249
255 19.648
1.976 2.972
18.952 1.980
2.300 6
10.243.640 BMP
130 156
177 135
240 266
19.648 1.976
2.968 18.952
1.980 2.300
7 20.758.285
EXE 265
312 317
265 526
546 36.088
1.976 2.968
35.392 1.980
2.300 8
20.486.360 PDF
255 307
338 266
520 541
36.088 1.976
2.968 35.392
1.980 2.300
9 20.492.996
BMP 266
312 348
266 520
542 36.088
1.976 2.968
35.392 1.980
2.300 10
40.668.080 EXE
500 604
604 510
1.083 1.104
68.964 1.976
2.972 68.272
1.980 2.300
11 40.978.851
PDF 500
599 676
505 1.067
1.088 68.964
1.976 2.968
68.272 1.980
2.300 12
41.041.160 BMP
510 604
656 500
1.072 1.083
68.964 1.976
2.968 68.272
1.980 2.300
13 83.562.496
EXE 1.020
1.208 1.370
1.016 1.817
2.265 134.724
1.976 2.972
134.032 1.980
2.300 14
81.951.720 PDF
994 1.188
1.297 1.010
2.156 2.176
134.728 1.976
2.972 134.032
1.980 2.300
15 81.922.776
BMP 989
1.179 1.307
994 2.180
2.127 134.724
1.976 2.968
134.032 1.980
2.300 Rata-rata
394,47 468,67
513,80 396,67
807,00 843,87
54.169,87 1.976,00
2.969,33 53.476,00
1.980,00 2.300,00
2 SHA-384
1 5.120.421
EXE 109
125 266
99 203
286 11.448
1.976 2.968
10.736 1.980
2.296 2
5.127.245 PDF
104 119
235 98
161 265
11.448 1.976
2.968 10.736
1.980 2.296
3 5.119.536
BMP 109
109 244
110 161
260 11.452
1.976 2.968
10.736 1.980
2.296 4
10.240.844 EXE
203 219
494 198
322 495
19.672 1.976
2.968 18.956
1.980 2.296
5 10.259.143
PDF 203
219 463
197 301
494 19.672
1.976 2.972
18.956 1.980
2.296 6
10.243.640 BMP
203 223
463 193
286 495
19.672 2.968
2.976 18.956
1.980 2.296
7 20.481.689
EXE 380
437 969
385 619
984 36.112
1.976 2.968
35.396 1.980
2.296 8
20.486.360 PDF
380 442
907 385
609 963
36.108 1.976
2.972 35.396
1.980 2.296
9 20.492.996
BMP 375
432 901
380 614
979 36.112
1.976 2.968
35.396 1.980
2.296 10
40.963.380 EXE
744 849
1.869 760
1.260 1.885
68.988 1.976
2.968 68.276
1.980 2.296
11 40.978.851
PDF 750
844 1.786
750 1.239
1.890 68.992
1.976 2.968
68.276 1.980
2.296 12
41.041.160 BMP
755 859
1.797 760
1.239 1.917
68.988 1.976
2.968 68.276
1.980 2.296
13 81.926.762
EXE 1.515
1.729 3.619
1.525 2.573
3.895 134.748
1.976 2.968
134.036 1.980
2.296 14
81.951.720 PDF
1.484 1.692
3.567 1.495
2.495 3.760
134.748 1.976
2.968 134.036
1.980 2.296
15 81.922.776
BMP 1.489
1.692 3.546
1.495 2.494
3.765 134.748
1.976 2.976
134.036 1.980
2.296 Rata-rata
586,87 666,00
1.408,40 588,67
971,73 1.488,87
54.193,87 2.042,13
2.969,60 53.480,00
1.980,00 2.296,00
3 TIGER
1 5.120.421
EXE 41
47 57
42 125
156 11.464
1.976 2.972
10.740 1.980
2.296 2
5.127.245 PDF
36 52
62 32
120 135
11.460 1.976
2.972 10.740
1.980 2.296
3 5.119.536
BMP 36
47 62
41 120
140 11.464
1.976 2.972
10.740 1.980
2.296 4
10.240.844 EXE
67 88
93 67
180 218
19.684 1.976
2.972 18.960
1.980 2.296
5 10.259.143
PDF 67
94 94
72 213
208 19.680
1.976 2.972
18.960 1.980
2.296 6
10.243.640 BMP
73 93
94 67
197 213
19.684 1.976
2.976 18.960
1.980 2.296
7 20.481.689
EXE 135
172 182
135 437
458 36.120
1.976 2.972
35.400 1.980
2.296 8
20.486.360 PDF
130 172
177 130
432 448
36.120 1.976
2.976 35.400
1.980 2.296
9 20.492.996
BMP 125
172 182
135 432
448 36.124
1.976 2.972
35.400 1.980
2.296 10
40.963.380 EXE
244 338
344 250
906 932
69.000 1.976
2.972 68.280
1.980 2.296
11 40.978.851
PDF 245
349 354
250 880
901 69.004
1.976 2.976
68.280 1.980
2.296 12
41.041.160 BMP
250 338
349 245
880 901
69.004 1.976
2.972 68.280
1.980 2.296
13 81.926.762
EXE 490
682 693
494 1.765
1.896 134.760
1.976 2.976
134.040 1.980
2.296 14
81.951.720 PDF
478 672
687 479
1.838 1.828
134.764 1.976
2.976 134.040
1.980 2.296
15 81.922.776
BMP 484
672 687
469 1.807
1.828 134.764
1.976 2.976
134.040 1.976
2.296 Rata-rata
193,40 265,87
274,47 193,87
688,80 712,60
54.206,40 1.976,00
2.973,60 53.484,00
1.979,73 2.296,00
Memori Verifying KB
Waktu Signing ms
Waktu Verification ms
Memori S igning
KB No
Tipe Hash Perulangan
Ukuran Bytes
Tipe File
27 Lampiran 3 Tampilan Software Minitab
28 Lampiran 4Hasil UjiNormal Probability Plot dan Test for Equal VariencesPada Proses Signingdengan
hasil data tidak menyebar normal
29 Lampiran 5 Data Waktu Proses Signing yang Telah Ditransformasi Menggunakan Logaritma Natural
File 5
MB File
10 MB
File 20
MB File
40 MB
File 80
MB File 5 MB File 10 MB File 20 MB File 40 MB
File 80 MB
SHA256 DSA
68 135
265 500 1020
4.21951 4.90527
5.57973 6.21461
6.92756 SHA256
DSA 78
140 255
500 994
4.35671 4.94164
5.54126 6.21461
6.90174 SHA256
DSA 67
130 266
510 989
4.20469 4.86753
5.58350 6.23441
6.89669 SHA384
DSA 109
203 380
744 1515 4.69135
5.31321 5.94017
6.61204 7.32317
SHA384 DSA
104 203
380 750 1484
4.64439 5.31321
5.94017 6.62007
7.30250 SHA384
DSA 109
203 375
755 1489 4.69135
5.31321 5.92693
6.62672 7.30586
TIGER DSA
41 67
135 244
490 3.71357
4.20469 4.90527
5.49717 6.19441
TIGER DSA
36 67
130 245
478 3.58352
4.20469 4.86753
5.50126 6.16961
TIGER DSA
36 73
125 250
484 3.58352
4.29046 4.82831
5.52146 6.18208
SHA256 RSA
88 156
312 604 1208
4.47734 5.04986
5.74300 6.40357
7.09672 SHA256
RSA 83
156 307
599 1188 4.41884
5.04986 5.72685
6.39526 7.08003
SHA256 RSA
78 156
312 604 1179
4.35671 5.04986
5.74300 6.40357
7.07242 SHA384
RSA 125
219 437
849 1729 4.82831
5.38907 6.07993
6.74406 7.45530
SHA384 RSA
119 219
442 844 1692
4.77912 5.38907
6.09131 6.73815
7.43367 SHA384
RSA 109
223 432
859 1692 4.69135
5.40717 6.06843
6.75577 7.43367
TIGER RSA
47 88
172 338
682 3.85015
4.47734 5.14749
5.82305 6.52503
TIGER RSA
52 94
172 349
672 3.95124
4.54329 5.14749
5.85507 6.51026
TIGER RSA
47 93
172 338
672 3.85015
4.53260 5.14749
5.82305 6.51026
SHA256 ECDSA
93 166
317 604 1370
4.53260 5.11199
5.75890 6.40357
7.22257 SHA256
ECDSA 94
171 338
676 1297 4.54329
5.14166 5.82305
6.51619 7.16781
SHA256 ECDSA
93 177
348 656 1307
4.53260 5.17615
5.85220 6.48616
7.17549 SHA384
ECDSA 266
494 969
1869 3619 5.58350
6.20254 6.87626
7.53316 8.19395
SHA384 ECDSA
235 463
907 1786 3567
5.45959 6.13773
6.81014 7.48773
8.17948 SHA384
ECDSA 244
463 901
1797 3546 5.49717
6.13773 6.80351
7.49387 8.17358
TIGER ECDSA
57 93
182 344
693 4.04305
4.53260 5.20401
5.84064 6.54103
TIGER ECDSA
62 94
177 354
687 4.12713
4.54329 5.17615
5.86930 6.53233
TIGER ECDSA
62 94
182 349
687 4.12713
4.54329 5.20401
5.85507 6.53233
Fungsi Hash
Algoritme Time Signing ms
LN Time Signing ms
30 Lampiran 6 Data Waktu Proses Verifying yang Telah Ditransformasi Menggunakan Logaritma Natural
File 5 MB
File 10
MB File
20 MB
File 40
MB File
80 MB
File 5 MB
File 10 MB
File 20 MB
File 40 MB
File 80 MB
SHA256 DSA
78 135
265 510 1016 4.35671 4.90527 5.57973 6.23441 6.92363
SHA256 DSA
63 141
266 505 1010 4.14313 4.94876 5.58350 6.22456 6.91771
SHA256 DSA
66 135
266 500
994 4.18965 4.90527 5.58350 6.21461 6.90174 SHA384
DSA 99
198 385
760 1525 4.59512 5.28827 5.95324 6.63332 7.32975 SHA384
DSA 98
197 385
750 1495 4.58497 5.28320 5.95324 6.62007 7.30988 SHA384
DSA 110
193 380
760 1495 4.70048 5.26269 5.94017 6.63332 7.30988 TIGER
DSA 42
67 135
250 494 3.73767 4.20469 4.90527 5.52146 6.20254
TIGER DSA
32 72
130 250
479 3.46574 4.27667 4.86753 5.52146 6.17170 TIGER
DSA 41
67 135
245 469 3.71357 4.20469 4.90527 5.50126 6.15060
SHA256 RSA
140 250
526 1083 1817 4.94164 5.52146 6.26530 6.98749 7.50494 SHA256
RSA 145
249 520 1067 2156 4.97673 5.51745 6.25383 6.97261 7.67601
SHA256 RSA
140 240
520 1072 2180 4.94164 5.48064 6.25383 6.97728 7.68708 SHA384
RSA 210
322 619 1260 2573
5.34711 5.77455 6.42811 7.13887 7.85283 SHA384
RSA 161
301 609 1239 2495 5.08140 5.70711 6.41182 7.12206 7.82204
SHA384 RSA
161 286
614 1239 2494 5.08140 5.65599 6.41999 7.12206 7.82164 TIGER
RSA 125
180 437
906 1765 4.82831 5.19296 6.07993 6.80904 7.47591 TIGER
RSA 120
213 432
880 1838 4.78749 5.36129 6.06843 6.77992 7.51643 TIGER
RSA 120
197 432
880 1807 4.78749 5.28320 6.06843 6.77992 7.49942 SHA256
ECDSA 141
265 546 1104 2265 4.94876 5.57973 6.30262 7.00670 7.72533
SHA256 ECDSA
151 255
541 1088 2176 5.01728 5.54126 6.29342 6.99210 7.68524 SHA256
ECDSA 156
266 542 1083 2127 5.04986 5.58350 6.29527 6.98749 7.66247
SHA384 ECDSA
286 495
984 1885 3895 5.65599 6.20456 6.89163 7.54168 8.26745 SHA384
ECDSA 265
494 963 1890 3760 5.57973 6.20254 6.87005 7.54433 8.23217
SHA384 ECDSA
260 495
979 1917 3765 5.56068 6.20456 6.88653 7.55852 8.23350 TIGER
ECDSA 135
218 458
932 1896 4.90527 5.38450 6.12687 6.83733 7.54750 TIGER
ECDSA 135
208 448
901 1828 4.90527 5.33754 6.10479 6.80351 7.51098 TIGER
ECDSA 140
213 448
901 1828 4.94164 5.36129 6.10479 6.80351 7.51098
Fungsi Hash
Algoritme Time Verifying ms
LN Time Verifying ms
31 Lampiran 7 Hasil UjiNormal Probability Plot dan Test for Equal Variences Pada Proses Signing dengan
hasil data menyebar normal
32 Lampiran 8Hasil UjiNormal Probability Plot dan Test for Equal Variences Pada Proses Verifying
dengan hasil data menyebar normal
33 Lampiran 9 Plot Interaksi Waktu proses Signing
34 Lampiran 10 Plot Interaksi Waktu proses Verifying
35 Lampiran 11AlgoritmeKomputasi HashSHA-256
Setelah dilakukan praproses, setiap blok pesan, M
1
, M
2
, ..., M
N
, diproses lebih lanjut sesuai urutan, mengikuti langkah-langkah sebagai berikut:
For i=1 to N: {
1. Mempersiapkan penjadwalan pesan, {W
t
}: =
0 t 15 16 t 63
2. Inisialisasi delapan working variables, a, b, c, d, e, f, g, dan h, dengan i-1
st
nilai hash: a = H
i-1
b = H
1 i-1
c = H
2 i-1
d = H
3 i-1
e = H
4 i-1
f = H
5 i-1
g = H
6 i-1
h = H
7 i-1
3. For t = 0 to 63: {
T
1
= h + + Che, f, g +
+ T
2
= + Maj a, b, c
h = g g = f
f = e e = d + T
1
d = c c = b
b = a a = T
1
+ T
2
} 4. Hitung
nilai hash :
H
i
= a + H
i-1
H
1 i
= b + H
1 i-1
H
2 i
= c + H
2 i-1
H
3 i
= d + H
3 i-1
H
4 i
= e + H
4 i-1
H
5 i
= f + H
5 i-1
H
6 i
= g + H
6 i-1
H
7 i
= h + H
7 i-1
} Setelah dilakukan proses sampai dengan
, hasil message digest 256-bit dari pesan, M, adalah ||
|| ||
|| ||
|| ||