Dengan ini saya menyatakan bahwa skripsi berjudul Sistem Tanda Tangan
Digital Online untuk Naskah Dinas Menggunakan Algoritma DSA (Digital
Signature Algorithm) adalah benar karya saya dengan arahan dari komisi
pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi
mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan
maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan
dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Desember 2013
Tanda tangan digital adalah hasil transformasi kriptografi dari suatu pesan
dengan panjang bit tertentu yang mampu menyediakan mekanisme untuk
memverifikasi otentikasi asal, integritas data, dan non-repudiasi dari penanda
tangan. Tujuan penelitian ini adalah mengimplementasikan tanda tangan digital
pada surat dinas menggunakan algoritma DSA serta melakukan uji execution time
terhadap proses pembentukan pasangan kunci, pembentukan tanda tangan, dan
verifikasi tanda tangan. Pengguna sistem terdiri dari tiga entitas, yaitu pegawai,
admin, dan certification authority. Sistem yang dibangun mampu membangkitkan
kunci pribadi dan kunci publik, membangkitkan tanda tangan ke dalam bentuk file
terkompresi (zip), serta memverifikasi tanda tangan dan kunci publik beserta
sertifikatnya. Uji terhadap fungsionalitas sistem menunjukkan bahwa 100% fungsi
berjalan dengan baik. Uji execution time menyimpulkan bahwa jenis dan ukuran
surat dinas tidak berkaitan langsung dengan waktu eksekusi saat pembangkitan
dan verifikasi tanda tangan. Uji verifikasi tanda tangan dengan skenario tertentu
menunjukkan bahwa file tanda tangan tidak tahan terhadap usaha ekstraksi dan
kompresi ulang.
ABSTRACT
WALIM ABDUL SOMAD. Online Digital Signature System for Official Letter
using DSA (Digital Signature Algorithm) Algorithm. Supervised by HENDRA
RAHMAWAN.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer
Disetujui oleh
Diketahui oleh
Tanggal Lulus:
JudulS kr. ':: is em Tanda Tangan Digital Online Untuk Naskah Dinas
.. len&,uunakan Algoritma DSA (Digital Signature Algorithm)
Nama . 'alim Abdul Somad
NIM G6 - 6044
Disetujui oleh
G~
Pembimbing
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Januari 2013 ini ialah
keamanan informasi, dengan judul Tanda Tangan Digital Untuk Surat Dinas
Menggunakan Algoritma DSA (Digital Signature Algorithm).
Terima kasih penulis ucapkan kepada Bapak Hendra Rahmawan, SKom MT
selaku pembimbing, Bapak Endang Purnama Giri, SKom MKom selaku penguji,
serta Bapak Dr Eng Heru Sukoco, SKom MT yang telah banyak memberikan
saran kepada penulis. Di samping itu, penghargaan penulis sampaikan kepada Ibu
Ir Sri Dyah Retnowati Suseno Puteri selaku Kepala Bidang Data dan Statistik,
Pusat Data, Statistik dan Informasi, yang telah membantu selama pengumpulan
data. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, serta seluruh
keluarga, atas segala doa dan kasih sayangnya.
Semoga karya ilmiah ini bermanfaat.
DAFTAR GAMBAR
DAFTAR LAMPIRAN
Latar Belakang
Perumusan Masalah
Tujuan Penelitian
Tujuan dari penelitian ini adalah merancang perangkat lunak sistem tanda
tangan digital berbasis web di Pusdatin, serta uji execution time pada proses
pembentukan tanda tangan, verifikasi tanda tangan dan pasangan kunci.
Manfaat Penelitian
METODE
Naskah Dinas
Kepala
Pusdatin
mulai
Inisiatif
Pembuatan
konsep surat
Periksa konsep
surat
Ada
Kesalahan
Tidak ada
Konsep surat
Periksa konsep
surat
Kesalahan
Ada
Tidak ada
Menanda-
tangani surat
Penomoran
surat dan
stempel
Surat keluar
Agenda
surat
Pengiriman
surat keluar
selesai
Algoritma DSA
Pembangkitan kunci
Algoritma pembangkitan kunci menghasilkan keluaran kunci pribadi dan
kunci publik adalah sebagai berikut:
1 Tentukan bilangan prima p, sedemikian sehingga 2L-1 <p<2L .
2 Tentukan q sebagai faktor prima dari , sedemikian sehingga 2N-1 <q<2N .
3 g=h(p-1)/qmod p, dimana h<p-1 sedemikian sehingga h(p-1)/q mod p>1
4 Tentukan x, x<q. x adalah kunci pribadi.
5 Tentukan y, y=gx mod p. y adalah kunci publik.
Pembangkitan pasangan kunci membutuhkan pembangkit bilangan acak dan
bilangan prima. Pseudocode pembangkitan kunci di bawah ini menunjukkan
bahwa bilangan prima dibangkitkan oleh fungsi generate_primes(), sedangkan
bilangan acak dilakukan oleh fungsi random bit generator (RBG). Algoritma
pembangkitan bilangan tidak dibahas pada penelitian ini.
L=1024
N=160
(p,q)=generate_primes(L,N)
returned_bits=RBG(N+64)
c=int(returned_bits)
x=mod(c,(q-1))+1
e=(p-1)/q
h=rand(1,(p-1))
g=mod(exp(h,e),p)
y=mod(exp(g,x),p)
return x,y
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
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).
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
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.
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-14 .
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 i-1 i-1 i-1
Hi0 =a+H0 ; Hi1 =b+H1 ; Hi2 =c+H2 ; Hi3 =d+H3 ;
i-1
Hi4 =e+H4 . 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
1
Wt ROTL (Wt 3 Wt 8 Wt 14 Wt 16 )
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
0 t 19 60 t 79
20 t 59
20 t 39 40 t 59
K t 5 a 827999 Kt ca62c1d 6
Kt 6 ed 9 eba1 K t 8 f 1bbcdc
t 79
t 79
Fase Perencanaan
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
Fase Analisis
Gambar 12 Use case diagram pengguna Sistem Tanda Tangan Digital Online
Fase Perancangan
Buat konsep
naskah dinas
Fungsi hash
naskah dinas
[pasangan kunci
belum tersedia]
Bangkitkan kunci
pribadi dan kunci
publik
Bangkitkan
sertifikat kunci
publik
Simpan identitas
pemilik kunci publik
Bangkitkan tanda
tangan digital
dengan kunci
pribadi
Archiving file
naskah dinas,
tanda tangan
digital, dan kunci
publik (zip)
Tentukan pegawai
penerima surat
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
Fase Pengujian
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.
Simpulan
Saran
DAFTAR PUSTAKA
Lampiran 3 Lanjutan
Iterasi t a b c d e
48 BAF39337 BEAD02CA 2806E11B 8714787C 503CA382
49 120731C5 BAF39337 AFAB40B2 2806E11B 8714787C
50 641DB2CE 120731C5 EEBCE4CD AFAB40B2 2806E11B
51 3847AD66 641DB2CE 4481CC71 EEBCE4CD AFAB40B2
52 E490436D 3847AD66 99076CB3 4481CC71 EEBCE4CD
53 27E9F1D8 E490436D 8E11EB59 99076CB3 4481CC71
54 7B71F76D 27E9F1D8 792410DB 8E11EB59 99076CB3
55 5E6456AF 7B71F76D 09FA7C76 792410DB 8E11EB59
56 C846093F 5E6456AF 5EDC7DDB 09FA7C76 792410DB
57 D262FF50 C846093F D79915AB 5EDC7DDB 09FA7C76
58 09D785FD D262FF50 F211824F D79915AB 5EDC7DDB
59 3F52DE5A 09D785FD 3498BFD4 F211824F D79915AB
60 D756C147 3F52DE5A 4275E17F 3498BFD4 F211824F
61 548C9CB2 D756C147 8FD4B796 4275E17F 3498BFD4
62 B66C020B 548C9CB2 F5D5B051 8FD4B796 4275E17F
63 6B61C9E1 B66C020B 9523272C F5D5B051 8FD4B796
64 19DFA7AC 6B61C9E1 ED9B0082 9523272C F5D5B051
65 101655F9 19DFA7AC 5AD87278 ED9B0082 9523272C
66 0C3DF2B4 101655F9 0677E9EB 5AD87278 ED9B0082
67 78DD4D2B 0C3DF2B4 4405957E 0677E9EB 5AD87278
68 497093C0 78DD4D2B 030F7CAD 4405957E 0677E9EB
69 3F2588C2 497093C0 DE37534A 030F7CAD 4405957E
70 C199F8C7 3F2588C2 125C24F0 DE37534A 030F7CAD
71 39859DE7 C199F8C7 8FC96230 125C24F0 DE37534A
72 EDB42DE4 39859DE7 F0667E31 8FC96230 125C24F0
73 11793F6F EDB42DE4 CE616779 F0667E31 8FC96230
74 5EE76897 11793F6F 3B6D0B79 CE616779 F0667E31
75 63F7DAB7 5EE76897 C45E4FDB 3B6D0B79 CE616779
76 A079B7D9 63F7DAB7 D7B9DA25 C45E4FDB 3B6D0B79
77 860D21CC A079B7D9 D8FDF6AD D7B9DA25 C45E4FDB
78 5738D5E1 860D21CC 681E6DF6 D8FDF6AD D7B9DA25
79 42541B35 5738D5E1 21834873 681E6DF6 D8FDF6AD
27
PK id_surat
signatory
judul
surat
signature
pubkey
PK id PK id PK id
User
PK nip
username
password
level
pubkey
certificate
validity
29
Lampiran 14 Lanjutan
Nilai
No Kasus uji Hasil yang diharapkan Hasil uji
input
24 Kirim paket kunci ke Benar Paket kunci tersimpan di Sirkulasi Berhasil
server Surat dan insert record pada kunci
publik pegawai
37
Lampiran 15 Lanjutan
Kunci Waktu
Percobaan Kunci publik Sertifikat
pribadi (ms)
4 461d6c86 3eb1ba41 2a2ed43b 302c2146564fa960c985c5b 85
4b14c20c f24e4fc3 3a1be111 6839140eaf5bb87ba7f6d912
c2e938b8 713cdd95 02e692ae 1476c17d9998112235274e4
d01a232e b9d3125312bb61b1 e2327624c6f26efd
b45238be 5b9686640a5b9174
2021646f 6140a3fb
dc59f41d 4a56c969
597cd965 d6338e46
41cc511c 1e73501b
9657dfbc 9611f899
9b7c1fc6 9d209073
360d276e 02e4c15c
72911bc9 670d582f
89d00cd2 e1f13e24
1a160455 2bcc7a37
f5f216e5 7beeaa9e
5 09634ff9 c1582caa f7f857e0 302c2147fcf735175921d1ac 19
23f1d89c 977686d3ab3e659a 1f14fbe5957e51985a8a6592
a0c72ea2 eb6b52e6 d71521d7 1475904344d3aefb4823c8a
91b08524 eb5b64a8 8104f216 2a23d75ea94ab8a14
aced7aea 7cab5832 6da5647b
55be323c 3aa2311c
b486fb06 2d012d19
326830d71fd760a2
4cb4a999 5e05caa3
7ea1883a 5d7e1f40
6b9a003c 9d78e1e3
576104fd eac827f6
957cd9ab 5506fbf1
9d1833d3 f7f79613
2381f3a3 0aac46b2
a635c250 3bd52255
39
RIWAYAT HIDUP