1 4 Tentukan x, x
Pembangkitan tanda tangan digital Masukan pada proses pembangkitan tanda tangan digital adalah himpunan bilangan bulat (p, q, g, x) dan pesan asli (m). Algoritma pembangkitan tanda tangan digital adalah sebagai berikut: 1 Pilih bilangan acak integer k, 0
7
returned_bits=RBG(N+64) c=int(returned_bits) k=mod(c,(q-1))+1 k1=inverse(k,q) r=mod((mod(exp(g,k),p),q) z=SHA1(m) s=mod((k1*(z+x*r)),q) return r,s
Verifikasi tanda tangan digital 1 Terima (m, r, s, p, q, g, y) 2 Periksa 0
8
Gambar 4 Skema tanda tangan digital pada Algoritma DSA
9 Gambar 4 menjelaskan skema tanda tangan digital pada surat dinas menggunakan algoritma DSA dengan masukan pesan asli berupa SP. File yang dikirim oleh signatory adalah file terkompresi zip, terdiri dari SP, tanda tangan digital, dan kunci publik miliknya. Verifier selaku penerima surat mendapatkan file zip tersebut dan mengekstraknya kembali untuk selanjutnya melakukan proses verifikasi tanda tangan digital. Kunci publik yang diterima oleh verifier merupakan kunci publik yang sama dengan signatory, karena kunci publik tersebut digunakan sebagai alat autentikasi signatory sebagai penanda tangan surat. Fungsi Hash SHA-1 Fungsi hash adalah fungsi yang memetakan string biner dengan panjang input bervariasi ke suatu string biner dengan panjang output tetap, atau disebut juga sebagai message digest (Menezes et al. 1996).
Gambar 5 Proses fungsi hash SHA-1
10
Fungsi hash h memiliki dua sifat, yaitu: 1 Kompresi (compression). h memetakan suatu masukan , dengan panjang bit berubah-ubah, ke keluaran h(x) dengan panjang bit tetap . 2 Mudah dihitung (ease of computation). Diberikan suatu fungsi h dan masukan x, maka h(x) mudah untuk dihitung. SHA merupakan salah satu fungsi hash tanpa kunci, yaitu hanya memerlukan parameter input tunggal yaitu pesan asli. Fungsi hash SHA dibagi menjadi beberapa jenis sesuai dengan ukuran blok pesan dan message digest yang dihasilkan. Pada penelitian ini fungsi hash yang digunakan adalah SHA-1. Penghitungan algoritma SHA-1 dibagi ke dalam dua tahap, yaitu praproses, dan penghitungan hash. Tahap praproses meliputi penambahan bit (padding message) pada pesan, membagi pesan ke dalam blok-blok pesan dengan panjang masing-masing bit (parsing message), dan melakukan inisialisasi nilai yang digunakan pada penghitungan hash. Alur proses fungsi hash SHA-1 ditunjukkan oleh Gambar 5. Pada tahap penghitungan hash, dilakukan pembangkitan message schedule untuk mendapatkan barisan nilai hash secara iteratif. Praproses Sebelum menghitung nilai hash, pesan harus disisipkan bit tambahan. Proses penambahan pesan sisipan yang ditunjukkan pada Gambar 6 bertujuan untuk memastikan agar panjang blok bit pesan merupakan kelipatan dari 512 bit. Ilustrasi pembagian setiap blok pesan adalah sebagai berikut: 1 Misalkan sebuah pesan “abc” dalam representasi 8-bit ASCII memiliki panjang pesan l adalah 8×3 = 24 bit
2 Tambahkan bit “1” pada akhir pesan, diikuti oleh bit “0” sebanyak k. Bilangan kmerupakan solusi non-negatif dari persamaan l+1+k=448mod512, sehingga k=(448-(24+1))mod512 atau 423
3 Tambahkan 64 bit representasi bilangan l, yaitu 24, di akhir pesan
Setelah pesan asli ditambahkan bit sisipan, langkah berikutnya adalah mengurai pesan dengan kelipatan 512 bit sehingga menghasilkan N blok pesan. Blok pesan masing-masing adalah M(1) , M(2) … M(N) setiap blok direpresentasikan sebagai 16 word masing-masing berukuran 32 bit untuk setiap () () () word, sehingga menjadi , ... .
11 Pesan “abc” memiliki panjang pesan 24 bit, sehingga hanya terdiri dari satu blok pesan setelah ditambah bit sisipan yaitu M(1) dalam representasi 512 bit. Hasil penguraian M(1) disajikan pada Lampiran 1.
Gambar 6 Alur proses penambahan pesan sisipan pada SHA-1 Penghitungan hash Fungsi hash memiliki message schedule dari 80 word masing-masing berukuran 32 bit, delapan buah peubah masing-masing berukuran 32 bit, dan nilai inisial hash yaitu lima buah word berukuran 32 bit. Hasil akhir dari SHA-1 adalah message digest berukuran 160 bit. Proses penghitungan fungsi hash SHA-1 dijelaskan pada Gambar 7, dengan keterangan nomor sebagai berikut: 1 Masukan proses adalah blok pesan Mij masing-masing berukuran 32 bit seperti disajikan pada Lampiran 1. Inisial hash adalah konstanta yang menjadi nilai hash awal, yaitu:
12 H00 =67452301, H01 =efcdab89, H02 =98badcfe, H03 =10325476, H04 =c3d2e1f0. 2 Di dalam proses iterasi sebanyak N terdapat peubah yang berfungsi untuk menampung nilai hash sementara untuk setiap iterasi. Peubah tersebut adalah sebagai berikut: i-1
a=H0 , i-1
b=H1 , i-1
c=H2 , i-1
d=H3 , e=Hi-1 4 . 3 Sampai dengan iterasi t=15, message schedule Wt menyimpan nilai Mit . Pada iterasi berikutnya sampai dengan t=79 menyimpan nilai fungsi rotasi geser kiri (rotation shift left) yang didefinisikan dengan ROTLn (x)=(x≪n)˅(x≫w-n), n=1 dan x=(Wt-3 ⊕Wt-8 ⊕Wt-14 ⊕ Wt-16 ). Lampiran 2 menyajikan nilai message schedule W0 , W1 ,… W79 . 4 Fungsi logika T menggunakan input nilai peubah pada nomor (2), dan message schedule W . Fungsi f merupakan operasi logika terhadap 80 word dalam satuan 32 bit, fungsi f dijelaskan pada Gambar 8. Variabel array K pada Gambar 9 digunakan untuk menampung nilai konstanta tertentu. Setiap iterasi t menghasilkan nilai peubah a, b, c, d, dan e seperti yang disajikan pada Lampiran 3. 5 Penghitungan blok nilai hash untuk setiap iterasi ke-i sampai dengan N yaitu i-1
Hi0 =a+H0
i-1 Hi4 =e+H4 .
;
i-1
Hi1 =b+H1
;
i-1
Hi2 =c+H2
;
i-1
Hi3 =d+H3
;
Setiap blok nilai hash tersebut digabungkan (concatenate) menjadi nilai hash yang utuh. Berdasarkan rangkaian perhitungan ini, nilai fungsi hash SHA-1 dari pesan teks “abc” adalah A9993E36 4706816A BA3E2571 7850C26C.
13
blok pesan dalam 32 - bit, Mij
1 Wt ROTL (Wt 3 Wt 8 Wt 14 Wt 16 )
Hitung nilai hash Hi
gabungkan( HN0 ,H1N ,HN2 ,HN3 , HN4 )
Gambar 7 Alur proses perhitungan SHA-1
14
0 t 19
60 t 79
20 t 59
40 t 59
f t (x y) ( x z)
f t x y z
20 t 39
f t (x y) (x z) (y z)
t 79 t 79
Gambar 8 Alur perhitungan fungsi logika f pada SHA-1
0 t 19
60 t 79
20 t 59
K t 5 a 827999
40 t 59
20 t 39
Kt ca62c1d 6
K t 8 f 1bbcdc
Kt 6 ed 9 eba1
t 79 t 79
Gambar 9 Alur penyimpanan nilai konstanta K pada SHA-1
15 Metode penelitian yang digunakan untuk pengembangan sistem tanda tangan digital ini adalah pendekatan System Development Life Cycle (SDLC), yaitu suatu pendekatan sistematik dan sekuensial dalam pengembangan piranti lunak yang dilakukan secara bertahap. Gambar 10 menjelaskan proses pengembangan sistem dibagi menjadi beberapa fase, fase analisis merupakan tahap yang paling menentukan apakah sistem akan akan dikembangkan telah mengakomodasi kebutuhan penggunanya.
Gambar 10 Tahap pengembangan perangkat lunak dengan SDLC Fase Perencanaan Identifikasi Naskah Dinas Berdasarkan pengelompokkan naskah dinas pada Permen KP No.03/2011, jenis naskah dinas yang dijadikan acuan, arahan, dan landasan dari setiap kegiatan di lingkup Pusdatin yaitu Surat Perintah (SP), Surat Keputusan (SK), dan TOR. Identifikasi Pengguna Setiap pegawai dapat berperan sebagai signatory dan verifier yang memiliki kotak surat masuk, dan kotak surat keluar. Gambar 11 menjelaskan bahwa seluruh pejabat dan staf Pusdatin termasuk ke dalam pengguna kelompok Pegawai. Pihak yang mengelola kotak masuk surat dan kotak keluar adalah unit kerja yang dipercaya oleh Pusdatin untuk menjaga keutuhan kunci publik dan sertifikat semua pegawai, dalam hal ini adalah Biro Umum dan Perlengkapan sebagai pengguna Admin. Salah satu tugas pokoknya adalah mengelola persuratan lingkup Kementerian Kelautan dan Perikanan. Biro Hukum dan Organisasi adalah TTP yang berperan sebagai certification authority (CA) yang memiliki kewenangan untuk menerbitkan kunci pribadi dan kunci publik bagi semua pegawai Pusdatin karena fungsinya sebagai unit kerja yang bertanggung jawab terhadap aspek hukum di Kementerian Kelautan dan Perikanan. Lampiran 4 menjelaskan daftar kebutuhan sistem.
16
Gambar 11 Skema tanda tangan digital di Pusdatin
Fase Analisis Sistem Tanda Tangan Digital Online dapat dikembangkan menjadi tiga subsistem, yaitu Sirkulasi Surat, Tanda Tangan Digital, dan Key Generator. Subsistem Sirkulasi Surat menyediakan kebutuhan terhadap media penyimpanan surat, identitas pegawai, dan kunci publik pegawai beserta sertifikatnya. Subsistem ini harus mendukung mobilitas Pegawai dalam mengirim dan menerima surat dinas. Subsistem Key Generator merupakan pembangkit pasangan kunci bagi Pegawai, subsistem ini berada dalam kewenangan CA. Subsistem Tanda Tangan Digital berfungsi sebagai aplikasi signing dan verifying, dan harus dimiliki oleh setiap Pegawai. Interaksi antara pengguna dan sistem dijelaskan oleh use case diagram pada Gambar 12. Surat yang diunduh oleh pegawai dari subsistem Sirkulasi Surat adalah dalam bentuk “zip” yang disebut sebagai paket surat, terdiri dari naskah dinas (format “doc”), tanda tangan digital (binary file), dan kunci publik signatory (binary file). Tujuannya adalah memudahkan pengguna saat melakukan verifikasi pada subsistem Tanda Tangan digital. Hal yang sama berlaku untuk kunci publik pegawai beserta sertifikatnya yang dikirim oleh CA kepada Admin, paket kunci terdiri dari kunci publik pegawai, sertifikat kunci publik pegawai, dan kunci publik CA. Ketiganya merupakan binary file.
17
Gambar 12 Use case diagram pengguna Sistem Tanda Tangan Digital Online
Fase Perancangan Pengiriman surat yang dilakukan oleh Pegawai melibatkan CA dan Admin dijelaskan melalui activity diagram untuk surat keluar pada Gambar 13. Skema tersebut merupakan hasil penerjemahan prosedur surat keluar yang selama ini berlaku di Pusdatin, sedangkan activity diagram pada Gambar 14 merupakan prosedur surat masuk yang dilakukan oleh penerima surat. Entitas yang terlibat pada aktifitas pengiriman dan penerimaan surat diterjemahkan ke dalam diagram ERD pada Lampiran 5 sebagai dasar bagi penyusunan basisdata yang diterapkan pada subsistem Sirkulasi Surat. Rancangan basis data berupa keterkaitan antar tabel dapat dilihat pada Lampiran 6. Skema aliran data antar subsistem dijelaskan oleh DFD Level-0 pada Lampiran 7 Subsistem Key Generator tidak terhubung dengan subsistem Tanda Tangan Digital karena pengiriman kunci pribadi dan kunci publik melalui saluran yang tidak aman bukan merupakan bagian dari penelitian ini. Asumsinya adalah CA memberikan kunci pribadi dan kunci publik kepada Pegawai secara tatap muka, Lampiran 8 menjelaskan bagaimana aliran data terjadi antara CA dengan Pegawai tanpa melibatkan subsistem.
18 ADMIN
CA
PEGAWAI as SIGNATORY
Buat konsep naskah dinas
Fungsi hash naskah dinas
[pasangan kunci belum tersedia] Bangkitkan domain parameter
[pasangan kunci sudah tersedia]
Bangkitkan kunci pribadi dan kunci publik Bangkitkan sertifikat kunci publik Kirim kunci publik dan sertifikatnya
Simpan kunci publik dan sertifikatnya
Simpan identitas pemilik kunci publik
Kirim kunci pribadi dan kunci publik Bangkitkan tanda tangan digital dengan kunci pribadi Archiving file naskah dinas, tanda tangan digital, dan kunci publik (zip) Tentukan pegawai penerima surat
Kirim paket surat (zip)
Simpan paket surat (zip) dan penerimanya
Gambar 13 Activity diagram untuk skema surat keluar
19 Skema aliran data pada subsistem Lampiran 9 DFD Level-2 untuk Subsistem Tanda Tangan Digital menerapkan skema algoritma DSA dimulai dari plain text naskah dinas hingga menjadi paket surat.
Gambar 14 Activity diagram untuk skema surat masuk Operasi manipulasi basisdata pada Subsistem Sirkulasi Surat untuk manajemen data surat dengan perintah SQL dijelaskan pada Lampiran 10. Lampiran 11 DFD Level-2 untuk Keygen menunjukkan pembangkitan kunci pada algoritma DSA dengan keluaran berupa paket kunci.
20 Pertukaran paket surat dan paket kunci antar subsistem dilakukan dengan layanan transfer data melalui port FTP, sedangkan manipulasi record pada basisdata pada Sirkulasi Surat menggunakan port MySQL. Arsitektur subsistem Sirkulasi Surat diilustrasikan pada Lampiran 12 mengenai rancangan arsitektur jaringan Sistem Tanda Tangan Digital Online.
Fase Implementasi Impementasi hasil rancangan subsistem Key Generator dan Tanda Tangan Digital memanfaatkan Java cryptography architecture (JCA). JCA framework terdiri dari kumpulan application programming interface (API), tools, implementasi algoritma, mekanisme, dan protokol keamanan (Oracle 2012). Daftar class yang mendukung pengembangan sistem tanda tangan digital pada package java.security dapat dilihat pada Lampiran 13. Subsistem Sirkulasi Surat diimplementasikan dengan bahasa pemrograman PHP. Lingkungan pengembangan sistem adalah sebagai berikut: 1 Perangkat lunak: sistem operasi Windows 7 Starter, PHP, XAMPP, Java Development Kit 7, dan Netbeans IDE 7.2. 2 Perangkat keras: prosesor AMD E-450 APU 1.65 GHz, memori DDR3 6 GB, harddisk 300 GB, kartu grafis 1140 MB, papan kunci, dan tetikus.
Fase Pengujian Pengujian dilakukan terhadap pengukuran execution time terhadap proses signing, dan verifikasi; serta uji keamanan berdasarkan skenario. Pengujian terhadap fungsional perangkat lunak mengacu kepada fungsi-fungsi yang telah diimplementasikan dari hasil analisis kebutuhan Sistem Tanda Tangan Digital Online pada Lampiran 4. Pengukuran execution time dilakukan terhadap 15 dokumen surat dinas dengan jenis SP, SK, dan TOR. Uji keamanan tanda tangan digital berdasarkan skenario dilakukan terhadap paket surat hasil keluaran subsistem Tanda Tangan Digital, dan paket kunci hasil keluaran subsistem Key Generator. Paket surat diekstrak untuk kemudian isi dan nama file naskah dinas dilakukan modifikasi. Pada paket surat, modifikasi dilakukan terhadap kunci publik.
HASIL DAN PEMBAHASAN Berdasarkan uji fungsional perangkat lunak, Lampiran 14 menunjukkan bahwa hasil pengujian seluruh fungsi sesuai dengan hasil yang diharapkan. Proses pembangkitan kunci tanda, pembangkitan tanda tangan digital, dan verifikasi kunci menggunakan class pada JCA yang diilustrasikan pada Lampiran 15. Uji execution time pada proses pembangkitan kunci dilakukan sebanyak 5 kali percobaan. Nilai bilangan bulat p, q, dan g yang dibangkitkan untuk kelima percobaan adalah tetap. Hasilnya adalah kunci pribadi dan kunci publik dengan panjang 1024 bit.
21 Uji execution time pada proses signing dan verfying terhadap 15 dokumen dengan jenis naskah dinas SP, SK, dan TOR menghasilkan pengukuran waktu yang ditunjukkan pada Tabel 1. Tabel 1 Hasil pengukuran waktu signing dan verifying No
Naskah dinas
1
SP
2
SK
3
TOR
Ukuran (bytes)
Tipe
18 749 21 573 27 751 33 941 35 328 31 378 46 706 36 453 167 267 215 470 16 111 41 472 60 345 65 024 243 712
docx docx docx docx docx docx docx docx docx docx docx docx docx docx docx
Waktu (ms) Signing Verifying 28 50 95 32 24 38 100 26 80 29 17 25 69 129 30 87 3 30 2 31 2 30 1 735 2 47 4 37 1 42
Uji keamanan tanda tangan digital berdasarkan skenario pada Tabel 2 dilakukan terhadap paket surat dengan nama “195801011981031004_SP Sinkronisasi Statistik KP.zip” berukuran 10 KB. Ekstraksi paket surat yaitu: 1 SP dengan nama file “SP_sinkronisasi 2010.doc” berukuran 35.328 byte. 2 Tanda tangan digital dengan nama file “195801011981031004_SP_sinkronisasi 2010.doc_sign” berukuran 46 byte. 3 Kunci publik dengan nama file “195801011981031004_pubkey” berukuran 444 byte. Tabel 2 Hasil uji skenario terhadap paket surat Modifikasi
Tidak ada
Mengganti nama file
Mengubah isi
Ukuran (KB) 7
12
7
SHA-1 Checksum File asli Arsip ulang b63481c3c19 824f5dd993c 2f96a24f486 1e1217a28b3 319f4945c11 24526cffd21 4ec3fa 2599 b63481c3c19 5392a639e84 2f96a24f486 f8c3fd93b2b 319f4945c11 e727ac78c6b 4ec3fa cdde72 b63481c3c19 5758fc36792 2f96a24f486 d36ab8564d0 319f4945c11 3fcfbd4dc4bf 4ec3fa e1e53
Hasil yang diharapkan Tidak sah
Hasil Pesan kesalahan
Tidak sah
Pesan kesalahan
Tidak sah
Pesan kesalahan
22 Uji keamanan kunci publik berdasarkan skenario dilakukan terhadap paket kunci dengan nama “198603052009121001_certificate.zip” berukuran 4 KB. Ekstraksi paket kunci yaitu: 1 Kunci publik pegawai dengan nama file “198603052009121001_pubkey” berukuran 444 byte. 2 Sertifikat kunci publik dengan nama file “198603052009121001_cert” berukuran 46 byte. 3 Kunci publik CA dengan nama file “serverPubKey” berukuran 443 byte. Hasil uji skenario terhadap modifikasi SP ditunjukkan pada Tabel 3. Tabel 3 Hasil uji skenario terhadap paket kunci Modifikasi
Tidak ada
Mengganti nama file
Mengubah isi
Ukuran (KB) 2
2
2
SHA-1 Checksum File asli Arsip ulang c1579a7de75 2956fdbc81f 34459a82fac 2fd6b398125 6eb89ffb9be 66ad6b44558 a7cf677 506d2 c1579a7de75 6e2368153fa 34459a82fac 47cdf498761 6eb89ffb9be 389ffacdbb9 a7cf677 795b14c c1579a7de75 7c927e5124b 34459a82fac f894c21591f 6eb89ffb9be 8e6a88443ea a7cf677 73151
Hasil yang diharapkan Tidak sah
Hasil Pesan kesalahan
Tidak sah
Tidak sah
Tidak sah
Tidak sah
SIMPULAN DAN SARAN Simpulan Rancang bangun Sistem Tanda Tangan Digital Online dapat melakukan fungsi dasar pengiriman dan penerimaan surat, serta mampu memberikan layanan standar penandaan digital seperti pembangkitan kunci, pembangkitan tanda tangan digital, dan verifikasi surat dengan menggunakan algoritma DSA dan SHA-1. Penelitian ini juga menunjukkan bahwa API library pada JavaTM Security dapat memberikan layanan-layanan keamanan pada skema penandaan digital, khususnya untuk surat dinas. Saran Penelitian ini dapat dilanjutkan untuk:
Menggunakan saluran jaringan tertentu untuk mentransfer pasangan kunci yang telah dibangkitkan bagi pengguna dari key generator. Penelitian ini mengasumsikan bahwa admin keygen mengirimkan pasangan kunci ke setiap pengguna pada saluran yang bebas dari gangguan.
23
Mengembangkan protokol keamanan yang lebih baik, terutama keberadaan admin keygen sebagai arbitrator sistem. Pada penelitian ini, admin keygen diasumsikan sebagai pihak yang dipercaya oleh semua entitas untuk menjaga keunikan pasangan kunci tanpa skenario penyusupan atau pemalsuan identitas. Mengembangkan sistem tanda tangan digital yang dapat melakukan penandatanganan lebih dari satu orang dan ditujukan kepada lebih dari satu penerima.
DAFTAR PUSTAKA Ginting FSO. 2012. Analisis implementasi digital signature standard menggunakan fungsi Hash SHA-256, SHA-384 dan TIGER [skripsi]. Bogor (ID): Institut Pertanian Bogor. Menezes AJ, van Oorschot P, Vanstone S. 1996. Handbook of Applied Cryptography. New York (US): CRC Press. [NIST] National Institute of Standards and Technology. 2008. Federal information processing standards publication 180-3: secure hash standard [internet]. [diunduh 2012 Feb 5]. Tersedia pada: http://csrc.nist.gov/ publications/fips/fips180-3/fips_180-3.pdf [NIST] National Institute of Standards and Technology. 2009. Federal information processing standards publication 186-3: digital signature standard [internet]. [diunduh 2012 Feb 5]. Tersedia pada: http://csrc.nist.gov/ publications/fips/fips186-3/fips_186-3.pdf Oracle. 2012. Overview the Java SE security [internet]. [diunduh 2012 Mar 1]. Tersedia pada: http://docs.oracle.com/javase/7/docs/technotes/guides/security/ overview/jsoverview.html Situmorang K. 2006. Analisis keamanan dan kinerja algoritma digital signature algorithm (DSA) pada proses pembentukan dan verifikasi tanda tangan digital [skripsi]. Bogor (ID): Institut Pertanian Bogor. Stallings W. 2005. Cryptography and Network Security Principles and Practices. Ed ke-4. New Jersey (US): Pearson Education.
24 Lampiran 1 Penguraian pesan pada teks “abc” Word M10 M11 M12 M13 M14 M15 M16 M17 M18 M19 M110 M111 M112 M113 M114 M115
Isi 01100001011000100110001110000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000011000
Lampiran 2 Hasil message schedule pada pesan “abc” W[0]=61626380 W[1]=0 W[2]=0 W[3]=0 W[4]=0 W[5]=0 W[6]=0 W[7]=0 W[8]=0 W[9]=0 W[10]=0 W[11]=0 W[12]=0 W[13]=0 W[14]=0 W[15]=18 W[16]=c2c4c700 W[17]=0 W[18]=30 W[19]=85898e01 W[20]=0 W[21]=60 W[22]=b131c03 W[23]=30 W[24]=85898ec1 W[25]=16263806 W[26]=0
W[27]=180 W[28]=2c4c700c W[29]=f0 W[30]=93afb507 W[31]=5898e048 W[32]=8e9a9202 W[33]=600 W[34]=b131c0f0 W[35]=16263bc6 W[36]=4ebed41e W[37]=626380a1 W[38]=16263806 W[39]=18c0 W[40]=d2e138c4 W[41]=f00 W[42]=3afb5079 W[43]=898e04e5 W[44]=e2ba3c2b W[45]=60c0 W[46]=53a37cd W[47]=74458547 W[48]=da9415ed W[49]=26380a16 W[50]=626383a1 W[51]=4ebf54de W[52]=3835b44b W[53]=f600
W[54]=1e84c7a3 W[55]=98e04d98 W[56]=651d16a0 W[57]=62658ca1 W[58]=458544d6 W[59]=44584cb7 W[60]=7ba06619 W[61]=6380aea2 W[62]=ae55269 W[63]=627b49a1 W[64]=7cd45c9d W[65]=f0000 W[66]=fb50753a W[67]=ec6765e8 W[68]=ba3c2be2 W[69]=60c000 W[70]=3a37cd05 W[71]=458546f4 W[72]=b8599dd6 W[73]=380a1a26 W[74]=1e02203 W[75]=e7cc3456 W[76]=e6e60b69 W[77]=f60a00 W[78]=5795ef4f W[79]=822e0879
25 Lampiran 3 Hasil penyimpanan nilai pada peubah sementara (buffer) Iterasi t 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
a 0116FC33 8990536D A1390F08 CDD8E11B CFD499DE 3FC7CA40 993E30C1 9E8C07D4 4B6AE328 8351F929 FBDA9E89 63188FE4 4607B664 9128F695 196BEE77 20BDD62F 4E925823 82AA6728 DC64901D FD9E1D7D 1A37B0CA 33A23BFC 21283486 D541F12D C7567DC6 48413BA4 BE35FBD5 4AA84D97 8370B52E C5FBAF5D 1267B407 3B845D33 046FAA0A 2C0EBC11 21796AD4 DCBBB0CB 0F511FD8 DC63973F 4C986405 32DE1CBA FC87DEDF 970A0D5C 7F193DC5 EE1B1AAF 40F28E09 1C51E1F2 A01B846C BEAD02CA
b 67452301 0116FC33 8990536D A1390F08 CDD8E11B CFD499DE 3FC7CA40 993E30C1 9E8C07D4 4B6AE328 8351F929 FBDA9E89 63188FE4 4607B664 9128F695 196BEE77 20BDD62F 4E925823 82AA6728 DC64901D FD9E1D7D 1A37B0CA 33A23BFC 21283486 D541F12D C7567DC6 48413BA4 BE35FBD5 4AA84D97 8370B52E C5FBAF5D 1267B407 3B845D33 046FAA0A 2C0EBC11 21796AD4 DCBBB0CB 0F511FD8 DC63973F 4C986405 32DE1CBA FC87DEDF 970A0D5C 7F193DC5 EE1B1AAF 40F28E09 1C51E1F2 A01B846C
c 7BF36AE2 59D148C0 C045BF0C 626414DB 284E43C2 F3763846 B3F52677 0FF1F290 664F8C30 27A301F5 12DAB8CA 60D47E4A 7EF6A7A2 18C623F9 1181ED99 644A3DA5 C65AFB9D C82F758B D3A49608 20AA99CA 77192407 7F67875F 868DEC32 0CE88EFF 884A0D21 75507C4B B1D59F71 12104EE9 6F8D7EF5 D2AA1365 A0DC2D4B 717EEBD7 C499ED01 CEE1174C 811BEA82 4B03AF04 085E5AB5 F72EEC32 03D447F6 F718E5CF 53261901 8CB7872E FF21F7B7 25C28357 5FC64F71 FB86C6AB 503CA382 8714787C
d 98BADCFE 7BF36AE2 59D148C0 C045BF0C 626414DB 284E43C2 F3763846 B3F52677 0FF1F290 664F8C30 27A301F5 12DAB8CA 60D47E4A 7EF6A7A2 18C623F9 1181ED99 644A3DA5 C65AFB9D C82F758B D3A49608 20AA99CA 77192407 7F67875F 868DEC32 0CE88EFF 884A0D21 75507C4B B1D59F71 12104EE9 6F8D7EF5 D2AA1365 A0DC2D4B 717EEBD7 C499ED01 CEE1174C 811BEA82 4B03AF04 085E5AB5 F72EEC32 03D447F6 F718E5CF 53261901 8CB7872E FF21F7B7 25C28357 5FC64F71 FB86C6AB 503CA382
e 10325476 98BADCFE 7BF36AE2 59D148C0 C045BF0C 626414DB 284E43C2 F3763846 B3F52677 0FF1F290 664F8C30 27A301F5 12DAB8CA 60D47E4A 7EF6A7A2 18C623F9 1181ED99 644A3DA5 C65AFB9D C82F758B D3A49608 20AA99CA 77192407 7F67875F 868DEC32 0CE88EFF 884A0D21 75507C4B B1D59F71 12104EE9 6F8D7EF5 D2AA1365 A0DC2D4B 717EEBD7 C499ED01 CEE1174C 811BEA82 4B03AF04 085E5AB5 F72EEC32 03D447F6 F718E5CF 53261901 8CB7872E FF21F7B7 25C28357 5FC64F71 FB86C6AB
26 Lampiran 3 Lanjutan Iterasi t
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
a BAF39337 120731C5 641DB2CE 3847AD66 E490436D 27E9F1D8 7B71F76D 5E6456AF C846093F D262FF50 09D785FD 3F52DE5A D756C147 548C9CB2 B66C020B 6B61C9E1 19DFA7AC 101655F9 0C3DF2B4 78DD4D2B 497093C0 3F2588C2 C199F8C7 39859DE7 EDB42DE4 11793F6F 5EE76897 63F7DAB7 A079B7D9 860D21CC 5738D5E1 42541B35
b BEAD02CA BAF39337 120731C5 641DB2CE 3847AD66 E490436D 27E9F1D8 7B71F76D 5E6456AF C846093F D262FF50 09D785FD 3F52DE5A D756C147 548C9CB2 B66C020B 6B61C9E1 19DFA7AC 101655F9 0C3DF2B4 78DD4D2B 497093C0 3F2588C2 C199F8C7 39859DE7 EDB42DE4 11793F6F 5EE76897 63F7DAB7 A079B7D9 860D21CC 5738D5E1
c 2806E11B AFAB40B2 EEBCE4CD 4481CC71 99076CB3 8E11EB59 792410DB 09FA7C76 5EDC7DDB D79915AB F211824F 3498BFD4 4275E17F 8FD4B796 F5D5B051 9523272C ED9B0082 5AD87278 0677E9EB 4405957E 030F7CAD DE37534A 125C24F0 8FC96230 F0667E31 CE616779 3B6D0B79 C45E4FDB D7B9DA25 D8FDF6AD 681E6DF6 21834873
d 8714787C 2806E11B AFAB40B2 EEBCE4CD 4481CC71 99076CB3 8E11EB59 792410DB 09FA7C76 5EDC7DDB D79915AB F211824F 3498BFD4 4275E17F 8FD4B796 F5D5B051 9523272C ED9B0082 5AD87278 0677E9EB 4405957E 030F7CAD DE37534A 125C24F0 8FC96230 F0667E31 CE616779 3B6D0B79 C45E4FDB D7B9DA25 D8FDF6AD 681E6DF6
e 503CA382 8714787C 2806E11B AFAB40B2 EEBCE4CD 4481CC71 99076CB3 8E11EB59 792410DB 09FA7C76 5EDC7DDB D79915AB F211824F 3498BFD4 4275E17F 8FD4B796 F5D5B051 9523272C ED9B0082 5AD87278 0677E9EB 4405957E 030F7CAD DE37534A 125C24F0 8FC96230 F0667E31 CE616779 3B6D0B79 C45E4FDB D7B9DA25 D8FDF6AD
27 Lampiran 4 Daftar kebutuhan sistem No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Fungsi Melihat data semua pegawai Mengubah data semua pegawai Menghapus data semua pegawai Menambah data pegawai Mengubah nama dan kata sandi Melihat surat masuk semua pegawai Mnghapus surat masuk semua pegawai Melihat surat keluar semua pegawai Menghapus surat keluar semua pegawai Melihat kunci publik semua pegawai Mengubah status keabsahan kunci publik pegawai Mencari data pegawai Mencari surat masuk semua pegawai Mencari surat keluar semua pegawai Melihat dan mengunduh surat masuk Melihat dan mengunduh surat keluar Membangkitkan tanda tangan digital Memverifikasi tanda tangan digital Memverifikasi sertifikat kunci publik Mengirim paket surat ke server Membangkitkan kunci pribadi dan kunci publik Membangkitkan sertifikat kunci publik Mengirim paket kunci ke server
Kode SKPL-STTD.K-001 SKPL-STTD.K-002 SKPL-STTD.K-003 SKPL-STTD.K-004 SKPL-STTD.K-005 SKPL-STTD.K-006 SKPL-STTD.K-007 SKPL-STTD.K-008 SKPL-STTD.K-009 SKPL-STTD.K-010 SKPL-STTD.K-011 SKPL-STTD.K-012 SKPL-STTD.K-013 SKPL-STTD.K-014 SKPL-STTD.K-015 SKPL-STTD.K-016 SKPL-STTD.K-017 SKPL-STTD.K-018 SKPL-STTD.K-019 SKPL-STTD.K-020 SKPL-STTD.K-021 SKPL-STTD.K-022 SKPL-STTD.K-023
28 Lampiran 5 ERD subsistem Sirkulasi Surat
Lampiran 6 Relationship table pada basisdata subsistem Sirkulasi Surat Surat PK
id_surat signatory judul surat signature pubkey
Pegawai
Inbox PK
id
PK
FK1 FK1 FK2
id_surat nip_pengirim nip_penerima tanggal waktu read_status
FK1
PK
id
nip nama jabatan unit_kerja pangkat golongan
FK1 FK1 FK2
id_surat nip_pengirim nip_penerima tanggal waktu read_status
User PK
Outbox
id
nip username password level pubkey certificate validity
29 Lampiran 7 DFD level-0 Sistem Tanda Tangan Digital Online
Lampiran 8 DFD level-1 Sistem Tanda Tangan Digital Online
30
Lampiran 9 DFD level-2 Subsistem Tanda Tangan Digital
31
Lampiran 10 DFD level-2 subsistem Sirkulasi Surat
32
Lampiran 11 DFD level-2 subsistem Key Generator
33
34 Lampiran 12 Rancangan arsitektur jaringan Sistem Tanda Tangan Digital Online
Lampiran 13 Class yang digunakan pada API JCA Class KeyPairGenerator SecureRandom KeyPair PrivateKey PublicKey PKCS8EncodedKeySpec KeyFactory Signature X509EncodedKeySpec
Keterangan Membangkitkan pasangan kunci Membangkitkan bilangan acak Menampung nilai pasangan kunci Interface untuk kunci pribadi Interface untuk kunci publik Representasi kunci dalam format terenkripsi Mengkonversi kunci pribadi ke dalam key specification Menyediakan penerapan fungsi pada algoritma tanda tangan digital Representasi kunci publik dalam format terenkripsi
35 Lampiran 14 Hasil pengujian fungsional sistem No
Kasus uji
Nilai input Benar Salah
Hasil yang diharapkan
Hasil uji
Menampilkan semua data pegawai Data pegawai berubah Pindah ke halaman notifikasi kesalahan Data pegawai terhapus Data baru pegawai bertambah Pindah ke halaman notifikasi kesalahan Nama dan kata sandi berubah Notifikasi kesalahan dan tetap di halaman semula Menampilkan data surat masuk yang direkap menurut pengirim Surat masuk pegawai terhapus
Berhasil Berhasil Berhasil
Menampilkan data surat masuk yang direkap menurut penerima Surat keluar pegawai terhapus
Berhasil
Menampilkan nama file kunci publik dan sertifikat pegawai Mengubah status keabsahan kunci publik pegawai Menampilkan hasil pencarian data pegawai sesuai keyword Menampilkan hasil pencarian surat masuk Menampilkan hasil pencarian surat keluar Pindah ke halaman pegawai Tetap di halaman login
Berhasil
Berhail
Benar
Menampilkan rincian surat masuk dan unduhan surat Menampilkan rincian surat keluar dan unduhan surat File tanda tangan digital dalam bentuk binary filei Tanda tangan digital sah
Salah Salah Benar
Tanda tangan digital tidak sah Pesan kesalahan Kunci publik sah
Berhasil Berhasil Berhasil
Salah Salah Benar
Kunci publik tidak sah Pesan kesalahan Paket surat tersimpan di Sirkulasi Surat dan insert record pada surat masuk Binary file kunci pribadi, kunci publik, sertifikat
Berhasil Berhasil Berhasil
1 2
Lihat data semua pegawai Edit data pegawai
3 4
Hapus data pegawai Tambah data pegawai
Benar Benar Salah
5
Ubah nama dan kata sandi
Benar Salah
6
Benar
12
Lihat surat masuk semua pegawai Hapus surat masuk pegawai Lihat surat keluar pegawai Hapus surat keluar pegawai Lihat kunci publik pegawai Edit keabsahan kunci publik Cari data pegawai
13
Cari surat masuk pegawai
Benar
14
Cari surat keluar pegawai
Benar
15
Login pegawai
Benar Salah
16
Lihat dan unduh surat masuk Lihat dan unduh surat keluar Bangkitkan tanda tangan digital Verifikasi tanda tangan digital
Benar
7 8 9 10 11
17 18 19
20
Verifikasi sertifikat kunci publik
21
Kirim paket surat
22
Bangkitkan kunci pribadi dan kunci publik, dan sertifikat
Benar Benar Benar Benar Benar Benar
Benar Benar
Benar
Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil
Berhasil
Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil
Berhasil Berhasil Berhasil
Berhasil
36 Lampiran 14 Lanjutan No 24
Kasus uji Kirim paket kunci ke server
Nilai input Benar
Hasil yang diharapkan
Hasil uji
Paket kunci tersimpan di Sirkulasi Surat dan insert record pada kunci publik pegawai
Berhasil
37 Lampiran 15 Hasil pengukuran waktu pembangkitan kunci pribadi, kunci publik, dan sertifikat Percobaan
Kunci pribadi
Kunci publik
1
7e30dc5f 388a7871 906e6614 d4c00fde 295a02f1
f198c524 d33fef2c 427938d0 10fc7607 6ccc285d c6851dc0 3f41807c 3d5be210 1094b5b1 5db3011b ea34eaf9 2ae412cd 009b2add 2796d1f6 2bc9ec6d cd22dd74
b4cbd484 c5bb7ce4 dc753d98 d76af636 595ce407 9d8ef551 96ff799e 41f2c00c e1d4b0f1 b97127ca 3710d2e3 5e72e578 f2f410c4 10d7d3bf fe05adb9 bc0c0a9f
2
611621bf a1d6ae87 c81cae73 e1facc5d e5f9422c
3
143f53a9 489a6db1 7787ab51 21eadaa4 15509f6c
95eb36b8 9ca39cdd 8be49443 3b5feaf9 4e636c8f 419d92fa 39c595a4 615db1a1 c0ce8aea 437054a4 bf6b6d95 8e8b6440 5df2b02b 42118fdb d4726b5864e2d804 cc765b7f 815c2ee4 41d74a41 efe016f5 8c19db38 6099ae89 07f764b9 878a591e 86881b530624f044 f12aa8b9 8ae03fa9 2485ce75 cad34949 9c6690ba 779f403e 41a8c587 a455d19c 39e4d9df df48bb80 843465bddb06563d c241f5a4 a8ae8273 96e3e509 b3979832 863e92ab 98f77ccd f0c05186 64105830 99a35c96 9eb6bd78 fd877aed 1fd4cd6c 7a6e9c39 31ace0ae 9ff940f3 d1726d2b 4fe79f10 c546fd7c f591aeab 692ca743 c26aeb82 1f57c062 33fbb2ed 7123673f 14b84a51 5ee0f734
Sertifikat
Waktu (ms)
302c2142b6c9bc22ce04b66 d92df042f2936eb68ef28ee3 214332f9edd4ed16b84153f6 9eb8f0a7dadbf8c745
248
302c21470b29a9b6012de43 f8cbeec5c4a33f57d3c9bd4d 2142376ee472d232b566dca c672fd6fe39821aaef
19
302c2145eedd755321646c5 c461ae27124c94c9367be99 a2143058656d72e8443e564 10e47c31981b5c9d3531
95
38 Lampiran 15 Lanjutan Percobaan
Kunci pribadi
4
461d6c86 4b14c20c c2e938b8 d01a232e b45238be
5
09634ff9 23f1d89c a0c72ea2 91b08524 aced7aea
Kunci publik
Sertifikat
3eb1ba41 2a2ed43b f24e4fc3 3a1be111 713cdd95 02e692ae b9d3125312bb61b1 5b9686640a5b9174 2021646f 6140a3fb dc59f41d 4a56c969 597cd965 d6338e46 41cc511c 1e73501b 9657dfbc 9611f899 9b7c1fc6 9d209073 360d276e 02e4c15c 72911bc9 670d582f 89d00cd2 e1f13e24 1a160455 2bcc7a37 f5f216e5 7beeaa9e c1582caa f7f857e0 977686d3ab3e659a eb6b52e6 d71521d7 eb5b64a8 8104f216 7cab5832 6da5647b 55be323c 3aa2311c b486fb06 2d012d19 326830d71fd760a2 4cb4a999 5e05caa3 7ea1883a 5d7e1f40 6b9a003c 9d78e1e3 576104fd eac827f6 957cd9ab 5506fbf1 9d1833d3 f7f79613 2381f3a3 0aac46b2 a635c250 3bd52255
302c2146564fa960c985c5b 6839140eaf5bb87ba7f6d912 1476c17d9998112235274e4 e2327624c6f26efd
302c2147fcf735175921d1ac 1f14fbe5957e51985a8a6592 1475904344d3aefb4823c8a 2a23d75ea94ab8a14
Waktu (ms) 85
19
39
RIWAYAT HIDUP Penulis dilahirkan pada tanggal 4 Juli 1985 di Karawang, Jawa Barat. Penulis merupakan anak ke dua dari tiga bersaudara pasangan Abdul Somad dan Komariah. Pada Tahun 2003, penulis lulus dari SMA Negeri 1 Cikampek dan diterima di Program Studi Teknologi Informasi Kelautan, Program Diploma III Fakultas Perikanan dan Ilmu Kelautan, Institut Pertanian Bogor, melalui jalur Undangan Seleksi Masuk IPB (USMI). Penulis menyelesaikan pendidikan Diploma III pada tahun 2006 dan melanjutkan ke Program Sarjana Ilmu Komputer Penyelenggaraan Khusus IPB pada tahun 2008. Penulis dapat dihubungi melalui alamat email [email protected].