Pengambilan DataUji Implementasi PembuatanAplikasi Tanda

7 diberi penandatanganan digital berjumlah 15 file yang masing-masing filemengalami 3 kali perulangan. Metodologi Metode yang digunakan dalam penelitian inimencakup studi literaturdari berbagai sumber, implementasi pembuatan aplikasi tanda tangan digital yang merupakan penerapan hasil studi pustaka mengenai kriptografi kunci- publik, tanda tangan digital, fungsi hashdankode program yang termasuk ke dalam DSS, pengujian hasil implementasi menggunakan bahasa pemrograman C++dan penyusunan dokumentasi laporan hasil penelitian.Pengujian terhadap aplikasi yang bertujuan memperoleh gambaran kinerja sistem kriptografitandatangan digital, terdiri atasduakomponenyaitu: • Pengujian hasil penggabungan algoritme tanda tangan digital dengan fungsi hashpada program aplikasi tanda tangan digital yang meliputi identifikasi waktu proses dan identifikasi penggunaan memori, • Analisis keragaman terhadap hasil yang diperolehdari identifikasi waktu proses. Aplikasitanda tangan digital inidiimplementasikan menggunakan Crypto++ Library 5.6.0. Modul tersebut merupakan library yang bersifat open sourceyang khusus dirancang untuk skema kriptografi. Tahapan penelitian ini ditunjukkan dengandiagrampada Gambar5. Gambar 5 Tahapan penelitian. HASIL DAN PEMBAHASAN

1. Pengambilan DataUji

Data yang digunakan pada penelitian ini adalah data dengan tipe fileyang secara umum sering dipakai dalam kehidupan sehari-hari. Data contoh yang dikumpulkan yaitu file yang berisi karakter dengan format teks berupa huruf, angka dan simbol, file executable serta masukan file berupa gambar. Besar ukuran file untuk sebuah data uji diambil kelipatan dua dari ukuran file data uji sebelumnya. Misalnya ukuran data kedua dua kali lebih besar dibandingkan data pertama, ukuran data ketiga lebih besar dua kali dibandingkan data kedua dan seterusnya sampai berjumlah lima buah data untuk masing-masing tipe file. Kelipatan dua ini diambil dengan asumsi bahwa dengan bertambahnya ukuran plainteks maka akan dapat dilihat dengan jelas perbedaan hasil kinerja dari aplikasi tanda tangan digital yang akan diberikan perlakuan pertukaran penggunaan fungsi hash. Data uji pertama pada penelitian ini berukuran 5 MB dan maksimal ukuran file data uji yaitu 80 MB untuk data uji kelima.

2. Perancangan AplikasiTanda Tangan

Digital 8 Aplikasi yang dibuat memiliki fungsi utama sebagai berikut: 1 Menerima masukan data file yang tersimpan didalam hardisk pengguna dari sebuah alamat direktori tertentu. 2 Membangkitkan sepasang kunci yaitu kunci privat dan kunci publik key generation. 3 Membuat tanda tangan digital untuk sebuah masukan file tertentu signature generation. 4 Memverifikasi keabsahan pemilik tanda tangan ataupun file yang diperiksa signature verifying. Implementasiaplikasi tanda tangan digital inimenggunakan sistem operasi Microsoft Windows. Pengujian penggabungan antaraalgoritme tanda tangan digital dengan fungsi hash dibuat menurut skenariopengujian yang ditunjukkan pada Tabel 2. Tabel2Skenario pengujian penggabungan algoritme tanda tangan digital dengan fungsi hash. Perancangan aplikasi tanda tangan digital mengacukepada fungsi utama aplikasi, yang juga merupakan urutan proses pemberian tanda tangan terhadap sebuah dokumen digital. Masing-masing perancangan digambarkan dengan algoritme pemanggilan kelas-kelas yang terdapat pada Crypto++ Library. Rancangan tampilan antarmuka aplikasi simulasi ditunjukkan pada Gambar 6. Header - Pembangkitan Kunci - Pembangkitan Tanda Tangan SHA-256 - Pembangkitan Tanda Tangan SHA-384 - Pembangkitan Tanda Tangan TIGER - Verifikasi Tanda Tangan SHA-256 - Verifikasi Tanda Tangan SHA-384 - Verifikasi Tanda Tangan TIGER 1. DSA 2. RSA - Pembangkitan Kunci - Pembangkitan Tanda Tangan SHA-256 - Pembangkitan Tanda Tangan SHA-384 - Pembangkitan Tanda Tangan TIGER - Verifikasi Tanda Tangan SHA-256 - Verifikasi Tanda Tangan SHA-384 - Verifikasi Tanda Tangan TIGER 3. ECDSA - Pembangkitan Kunci - Pembangkitan Tanda Tangan SHA-256 - Pembangkitan Tanda Tangan SHA-384 - Pembangkitan Tanda Tangan TIGER - Verifikasi Tanda Tangan SHA-256 - Verifikasi Tanda Tangan SHA-384 - Verifikasi Tanda Tangan TIGER Gambar 6 Tampilan antarmuka aplikasi.

2.1 Perancangan DSA

• Pembangkitan kunci key generation, bagian ini berfungsi untuk membangkitkan kunci privat dan kunci publik. Kunci dibuat menggunakan seed yang dibangkitkan dari random number generator yang didalamnya memuat teknik subtitusi dan transformasi. Kunci privat dan publik, diakses dari pustaka kelas DSA. Penelitian ini menggunakan random number generator dari sistem operasi. Panjang kunci L yaitu 512 ≤ L ≤ 100, dan harus kelipatan 64, • Pembangkitan tanda tangan signature generation, pada tahap iniberfungsi untuk membangkitkan signatureuntuk file masukan dari pengguna, untuk proses ini diperlukan seed yang berasal dari pseudo random number generator PRNG, kunci privat yang berasal dari key generationdan informasi nilai panjang maksimum signature. Fungsi hash yang digunakan dipertukarkandiantara SHA-256, SHA- 384 dan Tiger, • Verifikasi tanda tangan signature verifying, pada blok ini fungsinya untuk memverifikasi signature dengan kunci publik dan membandingkan dengan filemessage aslinya, apakah message yang diterima sama dengan hasil verifikasi atau tidak. Jika tidak berarti file yang diterima tersebut sudah mengalami pengubahan data. DSA didasarkan pada kode program ElGamal, yang meletakkan keamanannya pada sulitnya menghitung logaritma diskret. Skenario Algoritme Fungsi Hash 1 DSA SHA-256 2 DSA SHA-384 3 DSA Tiger 4 RSA SHA-256 5 RSA SHA-384 6 RSA Tiger 7 ECDSA SHA-256 8 ECDSA SHA-384 9 ECDSA Tiger 9 Struktur template untuk skema aplikasi DSA, dalam penggunaan class library pada Crypto++ ditunjukkan pada Gambar 7. Gambar 7Inheritance diagram untuk DSA Anonim 2009.

2.2 Perancangan RSA

• Pembangkitan kunci key generation, pada blok ini berfungsi untuk membangkitkan kunci privat dan kunci publik. Sepasang kunci dibangkitkan dari dua bilangan prima p dan q. Nilai modulus n untuk menentukan kunci privat dan kunci publik. Untuk kunci publik e dipilih bilangan yang relatif prima terhadap modulus n. Selanjutnya ditentukan kunci privatd, menggunakan algoritme Euclidian dengan persamaan e.d = 1mod n. Nilai n tidak bersifat rahasia, sebab diperlukan dalam perhitungan enkripsi atau dekripsi, • Pembangkitan tanda tangan signature generation, pada bagian blok ini berfungsi untuk membangkitkan signature menggunakan kunci privat dan modulus n.Pada proses ini dibutuhkan pula akses random number generator. Signature file yang dihasilkan berisi sebuah nilai dalam bentuk format heksadesimal. Pengubahan nilai acak dari format yang terenkripsi menjadi nilai dalam bentuk format heksadesimal menggunakan sebuah decoder. Fungsi hash yang digunakan SHA-256, SHA- 384 dan Tiger, • Verifikasi tanda tangan signature verifying, bagian blok ini berfungsi untuk memverifikasi signature menggunakan kunci publik. Signature file diubah dari format heksadesimal menjadi format terenkripsi menggunakan encoder. Proses verifikasi memeriksa message yang diberikan, apakah message yang diterima sama dengan hasil verifikasi atau tidak. Jika tidak berarti file yang diterima tersebut sudah mengalami pengubahan data. Keamanan RSA terletak pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor primanya atau dalam istilah lain Integer Factorization Problem IFP. Struktur template untuk skema aplikasi RSA, dalam penggunaan class library pada Crypto++ ditunjukkan pada Gambar 8. Gambar 8Inheritance diagram untuk RSA Anonim 2009.

2.3 Perancangan ECDSA

• Pembangkitan kunci key generation, pembuatan key ECDSA dilakukan dengan pencarian parameter domain kurva elliptik Fp, G base point coordinat, pprima, norder. Pada penelitian ini menggunakan kurva elliptik pada bidang terbatas Fp prime field, karena disesuaikan dengan rekomendasi NIST yang memiliki jumlah polynomial lebih sedikit sehingga lebih efisien. Fungsi penjumlahan dan penggandaan titik kurva koordinat Fp ditunjukkan pada Persamaan 1. • Pembangkitan tanda tangan signature generation, bagian blok ini berfungsi untuk membangkitkan signature dengan kunci privat key dan modulus n.Proses signaturememilih bilangan bulat randomk, rangenilainya diantara [1, n- 1]. Fungsi hash yang digunakan dipertukarkan diantara SHA-256, SHA- 384 dan Tiger. • Verifikasi tanda tangan signature verifying, bagian blok ini berfungsi untuk memverifikasi signature dengan kunci public. Pesan yang baru diterima diperiksa keabsahannya dengan menggunakan signature file yang sudah disepakati dengan penerima. Jika tidak sesuai, maka pesan itu telah mengalami pengubahan. Keamanan ECDSA terletak pada permasalahan logaritma diskret kurva eliptik dalam istilah lainnya Elliptic Curve Discrete Logarithm Problem ECDLP. Struktur template untuk skema aplikasi ECDSA, dalam penggunaan class library pada Crypto++ ditunjukkan pada Gambar 9. GDSA H DL_SS DL_SignatureKeys_GFP, DL_Algorithm_GDSA Integer, DL_SignatureMessageEncodingMethod_DSA, H DL_SignatureKeys_GFP RSASSSTANDARD, H TF_SSSTANDARD, H, RSA RSA 10 Gambar 9Inheritance diagram untuk ECDSA Anonim 2009. Pada algoritme kurva eliptik titik input berperan sebagai pembuatsignature, selanjutnya dipetakan menjadi titik output pada proses verifikasi. Pendefinisian persamaan untukoperasi penjumlahan dan penggandaan titik kurva eliptik pada penelitian ini,terbatas untuk mendefinisikan persamaan kurva eliptik pada bidang terbatas Fp.

3. Implementasi PembuatanAplikasi Tanda

Tangan Digital Implementasi aplikasi tanda tangan digital dibuat menggunakan bahasa pemrograman C++ dengan memanfaatkan library open source untuk skema kriptografi, yaitu Crypto++ Library.Aplikasi ini dapat dijalankan melalui aplikasi command prompt.Menu-menu yang digunakan meliputi tiga operasi proses yaitu pembangkitan sepasang kunci, pembuatan tandatangan dan verifikasi tanda tangan. Dalam pembuatan aplikasipada penelitian ini, ada beberapa hal yang harus diperhatikan: • Pembangkit bilangan acak yang digunakan.Pertama, Operating system random numbergenerator untuk DSA dan ECDSA. Pada objek tersebut bersifat automatic dan tidak mendefinisikan parameter-parameter yang berkaitan dengan key generation seperti panjang kunci dalam bit dan pendefinisian seed. Librarysistem operasi yang digunakan CRYPTOPP_WIN32_AVAILABLE dengan memanfaatkan kelas kriptografi yang bernama MicrosoftCryptoProvider dan fungsiyang dipanggil yaitu CryptGenRandom .Kedua, Randomness pool yang dapat menghasilkan pseudorandom bytes berkualitas menggunakan incorporate entropy.Objek kelas tersebut memanfaatkan fungsi timer untuk mengambil nilai waktu current. Selain itu, mendukung juga pendefinisian parameter masukan seed awal dan penentuan panjang kunci.Pembangkit ini digunakan pada RSA. • Proses signing dan verifyingmenggunakan class library sesuai dengan skema algoritme tandatangan digital. Penggunaan fungsi hash dipertukarkan diantara SHA-256, SHA-384 dan Tiger. Pada proses signing dan verifyingitu, terdapat pencatatan waktu yang dibutuhkan untuk menjalankan proses dan jumlah memori yang terpakai. • Pembacaan waktu yang digunakan untuk menjalankan proses signing atau verifyingadalah perhitungan waktu akhir atau setelah proses selesai dijalankan dikurangi waktu sesaat sebelum proses mulai berjalan. Fungsi waktu yang digunakan dari sistem operasi bernama GetTickCount . Fungsi tersebut memiliki tingkat keakuratan sampai dengan milisecond. • Identifikasi jumlah memori yang digunakan untuk menjalankan proses signing atau verifying, digambarkan dalam tahapan yang dapat dilihat pada Gambar 10. Tahap pertama yaitu identifikasi proses yang sedang berjalan menggunakan GetCurrentProcessId , selanjutnya membuka proses dengan id yang telah didapatkan sebelumnya menggunakan fungsi OpenProcess . Jika tidak berhasil maka program langsung dihentikan, jika sebaliknya dilanjutkan dengan mengakses informasi memori yang digunakan oleh proses tersebut dengan dilakukan pemanggilan fungsi GetProcessMemoryInfo , hasil yang diperoleh disimpan ke dalam sebuah variabel yang selanjutnya bertindak sebagai sebuah objek. Setelah semua proses signing ataupun verifyingselesai dijalankan, maka dilakukan pengaksesan metode-metode yang berperan menyajikan informasi pagefile usage dan working set size memory. Setelah pencatatan selesai dilakukan maka objek tersebut dihapus. ECDSAEC, H DL_SSDL_Keys_ECDSA EC , DL_Algorithm_ECDSA EC , DL_SignatureMessageEncodingMethod_DSA, H DL_Keys_ECDSA EC 11 Identifikasi ID Proses Akses Objek Informasi Memori Proses Baca Ukuran Memori Buka Proses End Ya Tidak Hapus Objek Gambar 10Diagram tahapan identifikasipenggunaan memori. Dalam mengakses fungsi memori dibutuhkan sebuah file library Application Programming Interface API yang bernama Process Status API PSAPI. Kelas yang diakses adalah PROCESS_MEMORY_CONTERS . Struktur dari kelas tersebut mengacu pada sintak di bawah ini. typedef struct _PROCESS_MEMORY_COUNTERS { DWORD cb; DWORD PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; } PROCESS_MEMORY_COUNTERS, PPROCESS_MEMORY_COUNTERS; Keterangan masing-masing anggota fungsi dari kelas adalah sebagai berikut: - cb:Ukuran dari struktur, dalambytes, - PageFaultCount: Jumlahpage faults, - PeakWorkingSetSize: Set ukuran untuk suatu pekerjaan puncak, dalambytes, - WorkingSetSize: Set ukuran untuk suatu pekerjaan yang sedang berlangsung, dalambytes, - QuotaPeakPagedPoolUsage: kuota memori maksimum atau puncak yang telah dialokasikan untuk keseluruhan pemakaian, dalambytes, - QuotaPagedPoolUsage: kuota memori yang sedang digunakan yang telah dialokasikan pada keseluruhan pemakaian, dalambytes, - QuotaPeakNonPagedPoolUsage: kuota memori maksimum atau puncak yang belum dialokasikan terhadap keseluruhan pemakaian, dalambytes, - QuotaNonPagedPoolUsage: kuota memori yang sedang berlangsung digunakan dan belum dialokasikan terhadap keseluruhan pemakaian, dalambytes, - PagefileUsage: Jumlah ruang memori yang dialokasikan untuk sebuah pagefile, dalambytes, - PeakPagefileUsage: Jumlah ruang memori puncak atau maksimum yang dialokasikan untuk sebuah pagefile, dalambytes.

4. Pengujian AplikasiTanda Tangan Digital