Anda di halaman 1dari 52

SISTEM TANDA TANGAN DIGITAL ONLINE UNTUK

NASKAH DINAS MENGGUNAKAN ALGORITMA


DSA (DIGITAL SIGNATURE ALGORITHM)

WALIM ABDUL SOMAD

DEPARTEMEN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA

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

Walim Abdul Somad


NIM G64086044
ABSTRAK
WALIM ABDUL SOMAD. Sistem Tanda Tangan Digital Online untuk Naskah
Dinas Menggunakan Algoritma DSA (Digital Signature Algorithm). Dibimbing
oleh HENDRA RAHMAWAN.

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.

Kata kunci: DSA, surat dinas, tanda tangan digital

ABSTRACT

WALIM ABDUL SOMAD. Online Digital Signature System for Official Letter
using DSA (Digital Signature Algorithm) Algorithm. Supervised by HENDRA
RAHMAWAN.

Digital signature is the result of a cryptographic transformation from a


message with a certain length of bits that can provide a mechanism to verify the
origin authentication, data integrity, and non-repudiation of the signatories. The
purpose of this study is to implement digital signatures on official letter using the
DSA algorithm and test the execution time for the process of key pair formation,
signature formation, and signature verification. Users of the system consists of
three entities, namely employees, admin, and the certification authority. The
development system was able to generate the private key and public key, generate
a signature in the form of a compressed file (zip), and verify the signature and the
public key along with the certificate. Functionality test of the system showed that
100% of the functions work is well. Execution time test concluded that the type
and size of the official letter was not directly related to the execution time when
the signatures were generated dan verified. Verification test of signature with
specific scenarios showed that the signature file was not resistant to the attempt of
re-extraction and re-compression.

Keywords: digital signature, DSA, official letter


SISTEM TANDA TANGAN DIGITAL ONLINE UNTUK
SURAT DINAS MENGGUNAKAN ALGORITMA
DSA (DIGITAL SIGNATURE ALGORITHM)

WALIM ABDUL SOMAD

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
Penguji:
1 DrEng Heru Sukoco, SKom MT
2 Endang Purnama Giri, Skom MKom
Judul Skripsi : Sistem Tanda Tangan Digital Online Untuk Naskah Dinas
Menggunakan Algoritma DSA (Digital Signature Algorithm)
Nama : Walim Abdul Somad
NIM : G64086044

Disetujui oleh

Hendra Rahmawan, SKom MT


Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi MKom


Ketua Departemen

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~

Hendra Rahrnawan, SKom MT

Pembimbing

Tanggal Lulus: 2 i DEC 2013


PRAKATA

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.

Bogor, Desember 2013

Walim Abdul Somad


DAFTAR ISI

DAFTAR TABEL vii


DAFTAR GAMBAR vii
DAFTAR LAMPIRAN vii
PENDAHULUAN 1
Latar Belakang 1
Perumusan Masalah 2
Tujuan Penelitian 2
Manfaat Penelitian 2
Ruang Lingkup Penelitian 2
METODE 2
Tanda Tangan Digital 5
Algoritma DSA 5
Pembangkitan kunci 6
Pembangkitan tanda tangan digital 6
Verifikasi tanda tangan digital 7
Fungsi Hash SHA-1 9
Praproses 10
Penghitungan hash 11
Fase Perencanaan 15
Identifikasi Naskah Dinas 15
Identifikasi Pengguna 15
Fase Analisis 16
Fase Perancangan 17
Fase Implementasi 20
Fase Pengujian 20
HASIL DAN PEMBAHASAN 20
SIMPULAN DAN SARAN 22
Simpulan 22
Saran 22
DAFTAR PUSTAKA 23
LAMPIRAN 24
RIWAYAT HIDUP 39
DAFTAR TABEL

1 Hasil pengukuran waktu signing dan verifying 21


2 Hasil uji skenario terhadap paket surat 21
3 Hasil uji skenario terhadap paket kunci 22

DAFTAR GAMBAR

1 Struktur organisasi Pusdatin 3


2 Alur surat masuk 3
3 Alur surat keluar 4
4 Skema tanda tangan digital pada Algoritma DSA 8
5 Proses fungsi hash SHA-1 9
6 Alur proses penambahan pesan sisipan pada SHA-1 11
7 Alur proses perhitungan SHA-1 13
8 Alur perhitungan fungsi logika f pada SHA-1 14
9 Alur penyimpanan nilai konstanta K pada SHA-1 14
10 Tahap pengembangan perangkat lunak dengan SDLC 15
11 Skema tanda tangan digital di Pusdatin 16
12 Use case diagram pengguna Sistem Tanda Tangan Digital Online 17
13 Activity diagram untuk skema surat keluar 18
14 Activity diagram untuk skema surat masuk 19

DAFTAR LAMPIRAN

1 Penguraian pesan pada teks “abc” 24


2 Hasil message schedule pada pesan “abc” 24
3 Hasil penyimpanan nilai pada peubah sementara (buffer) 25
4 Daftar kebutuhan sistem 27
5 ERD subsistem Sirkulasi Surat 28
6 Relationship table pada basisdata subsistem Sirkulasi Surat 28
7 DFD level-0 Sistem Tanda Tangan Digital Online 29
8 DFD level-1 Sistem Tanda Tangan Digital Online 30
9 DFD level-2 Subsistem Tanda Tangan Digital 31
10 DFD level-2 subsistem Sirkulasi Surat 32
11 DFD level-2 subsistem Key Generator 33
12 Rancangan arsitektur jaringan Sistem Tanda Tangan Digital Online 34
13 Class yang digunakan pada API JCA 34
14 Hasil pengujian fungsional sistem 35
15 Hasil pengukuran waktu pembangkitan kunci pribadi, kunci publik,
dan sertifikat 37
PENDAHULUAN

Latar Belakang

Pada instansi pemerintah, khususnya Pusat Data Statistik dan Informasi


(Pusdatin) Kementerian Kelautan dan Perikanan, komunikasi kedinasan dilakukan
secara tertulis melalui surat dinas dan harus mengikuti tata naskah dinas. Tata
naskah dinas memegang peranan penting guna menciptakan komunikasi
kedinasan yang efektif dan efisien untuk mendukung pelaksanaan
penyelenggaraan pemerintahan dan pembangunan serta pelayanan publik.
Berdasarkan Permen KP No.03/2011 tentang Pedoman Umum Tata Naskah Dinas
di Lingkungan Kementerian Kelautan dan Perikanan, naskah dinas adalah
informasi tertulis sebagai alat komunikasi kedinasan yang dibuat dan/atau
dikeluarkan oleh pejabat berwenang di lingkungan instansi Kementerian Kelautan
dan Perikanan.
Tanda tangan konvensional memiliki kelemahan terkait dengan pemalsuan
identitas oleh pihak yang bertujuan untuk menyalahgunakan wewenang. Tindakan
pemalsuan pada bentuk fisik dapat berupa pemalsuan tanda tangan dan
menyalinnya kembali, sedangkan untuk hasil pemindaian dapat berupa modifikasi
citra digital terhadap isi surat maupun tanda tangan. Tantangan lainnya adalah
mobilitas pejabat selaku penanda tangan. Pada jenis surat tertentu, tanda tangan
tidak bisa diwakilkan kepada Pelaksana Harian (Plh). Tertundanya surat dinas
untuk ditandatangani pejabat akan berpengaruh terhadap efisiensi waktu program
kerja.
Tanda tangan digital adalah bentuk elektronik yang dianalogikan dengan
tanda tangan konvensional. Tanda tangan digital dapat digunakan sebagai jaminan
bahwa pengirim telah benar-benar menandatangani suratnya. Tanda tangan digital
juga dapat mendeteksi perubahan isi pada suatu pesan (NIST 2009).
Menurut Stallings (2005) tanda tangan digital harus mampu memverifikasi
pemilik tanda tangan, mampu melakukan autentikasi pemilik pesan, dan dapat
diverifikasi oleh pihak ke tiga sebagai solusi jika ada perselisihan. Berdasarkan
sifat-sifat tersebut, tanda tangan digital harus memenuhi persyaratan yaitu: berupa
susunan bit yang bergantung pada pesannya; menggunakan informasi unik dari
pengirim; harus mudah dibangkitkan, dikenali, dan diverifikasi, namun sulit untuk
dipalsukan; dan tanda tangan harus mudah di simpan dalam media penyimpanan.
Hasil penelitian Situmorang (2006) menyimpulkan bahwa DSA merupakan
algoritma tanda tangan digital yang cukup efisien dalam operasinya, DSA
memiliki kompleksitas O(n) untuk proses pembentukan dan verifikasi tanda
tangan. Tingkat ketangguhan keamanan DSA tergantung pada panjang modulus
yang dipilih. Penelitian ini akan mengembangkan sistem tanda tangan digital
untuk surat dinas menggunakan algoritma DSA dengan panjang modulus 1024
bit. Pengujian dilakukan terhadap waktu eksekusi pembangkitan dan verifikasi
tanda tangan digital, serta uji keabsahan tanda tangan digital dengan skenario.
2

Perumusan Masalah

Berdasarkan latar belakang yang disajikan di atas dapat diambil suatu


rumusan masalah yaitu sebagai berikut:
1 Bagaimana merancang sistem tanda tangan digital pada naskah dinas secara
online di lingkungan Pusdatin.
2 Bagaimana menguji kinerja sistem tanda tangan digital terhadap keutuhan isi
naskah dinas, autentikasi, dan non-repudiasi pengirim surat.

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

Penelitian ini diharapkan mampu menerapkan skema tanda tangan digital


pada instansi pemerintah dengan cara menyisipkan tanda tangan digital yang
tahan terhadap usaha pengubahan integritas pesan, dan autentikasi surat.

Ruang Lingkup Penelitian

Ruang lingkup penelitian ini yaitu:


1 Jenis naskah dinas yang digunakan adalah surat perintah (SP), surat keputusan
(SK), dan term of reference (TOR) di lingkup Pusdatin, Kementerian Kelautan
dan Perikanan.
2 Teknik penandaan digital menggunakan algoritma DSA, dengan fungsi hash
SHA-1.
3 Naskah dinas hanya dapat ditandatangani oleh satu penanda tangan.

METODE

Naskah Dinas

Pusdatin merupakan unit kerja di bawah Sekretariat Jenderal, dan dipimpin


oleh seorang kepala setingkat eselon II seperti ditunjukkan pada Gambar 1.
Kepala Pusdatin bertanggung jawab kepada Sekretaris Jenderal KKP. Satu tingkat
dibawahnya adalah Kepala Bidang/Bagian, yaitu jabatan struktural eselon III.
Masing-masing bidang/bagian memiliki bawahan yaitu kepala subbidang/
subbagian, jabatan ini merupakan jabatan struktural eselon IV. Setiap eselon IV
membawahi staf langsung yang disebut sebagai pelaksana. Bagian Tata Usaha
merupakan unit kerja yang mengelola persuratan di Pusdatin.
3

Kepala
Pusdatin

Bidang Bidang Sistem Bidang Data Bagian Tata


Komunikasi Informasi dan Statistik Usaha

Gambar 1 Struktur organisasi Pusdatin


Berdasarkan hasil perolehan informasi mengenai alur surat di Pusdatin serta
penelusuran pustaka mengenai peraturan perundang-undangan mengenai tata
naskah dinas, terdapat dua alur surat yaitu alur surat masuk dan alur surat keluar.
Gambar 2 menjelaskan bahwa setiap surat masuk akan ditindaklanjuti oleh
Kepala Pusdatin melalui lembar disposisi, yaitu sampul yang ditambahkan pada
bagian depan surat berisi arahan tindak lanjut dari Kepala Pusdatin kepada
bawahannya.

Gambar 2 Alur surat masuk

Alur surat keluar yang diilustrasikan pada Gambar 3 menunjukkan bahwa


dalam pembuatan konsep surat, kepala bidang/bagian akan memberikan
persetujuan berupa paraf terhadap konsep surat yang dibuat oleh staf jika sudah
dianggap memenuhi syarat kebahasaan maupun maknanya.
4

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

Gambar 3 Alur surat keluar


5

Tanda Tangan Digital

Menurut Menezes et al. (1996) skema tanda tangan digital diklasifikasikan


ke dalam dua kelompok, yaitu:
1 Skema tanda tangan digital dengan apendiks, membutuhkan pesan asli sebagai
input untuk algoritma verifikasi. Contoh algoritma yang termasuk dalam
kelompok ini adalah DSA, ElGamal, dan Schnorr.
2 Skema tanda tangan dengan pemulihan pesan, tidak membutuhkan pesan asli
sebagai input untuk algoritma verifikasi. Dalam hal ini, pesan asli dipulihkan
dari tanda tangan itu sendiri. Contoh dari skema ini adalah RSA, Rabin, dan
Nyberg-Rueppel.
Pada penelitian sebelumnya (Ginting 2012) membandingkan kinerja untuk
masing-masing hasil pengujian DSS (DSA, RSA, dan ECDSA) dengan ketiga
fungsi hash berbeda. Berdasarkan penelitian tersebut algoritma DSA memiliki
rata-rata waktu signing dan verifying terbaik di antara algoritma RSA dan ECDSA.
Salah satu faktor penentunya adalah logaritma, dan fungsi hash yang digunakan.

Algoritma DSA

Algoritma DSA adalah suatu skema tanda tangan digital yang


memanfaatkan operasi aritmatika modulus nilai tertentu terhadap bilangan bulat
prima berukuran lebih dari atau sama dengan 1024 bit. Letak keamanan algoritma
DSA adalah pada ukuran bilangannya, sehingga secara komputasi matematika
sulit untuk menemukan bilangan tersebut. Algoritma DSA merupakan varian dari
algoritma penandaan Schnorr dan ElGamal.
Secara garis besar, algoritma DSA terdiri dari algoritma pembangkitan tanda
tangan digital, dan algoritma verifikasi tanda tangan digital. Algoritma
pembangkitan bilangan acak menggunakan pseudo random number generator
tidak termasuk pada lingkup penelitian ini.
Menurut NIST (2009) algoritma DSA memiliki parameter sebagai berikut:
p: suatu bilangan prima modulus, dimana 2L-1 <p<2L , L adalah panjang bit dari
p. Nilai L antara 1024 sampai dengan 3072 bit.
q: sebuah bilangan prima pembagi (p-1), dimana 2N-1 <q<2N , N adalah panjang
bit dari q. Nilai N antara 160 sampai dengan 256.
g: pembangkit bilangan dari subgrup orde q mod p, sedemikian sehingga 1<g<p.
x: kunci pribadi; x merupakan bilangan bulat yang dibangkitkan secara
pseudorandom, sedemikian sehingga 0<x<q , nilai x berada pada rentang
[1,q-1].
y: kunci publik, dimana y=gx mod .
k: bilangan yang unik untuk setiap pesan; merupakan bilangan bulat yang
dibangkitkan secara random maupun pseudorandom, sedemikian sehingga
0<k<q, nilai k berada pada rentang [1,q-1].
Pasangan nilai L dan N (panjang bit p dan q) menentukan kekuatan
keamanan algoritma penandaan digital untuk rentang waktu yang diharapkan.
Pasangan nilai (L, N) yang direkomendasikan yaitu: (1024, 160), (2048, 224),
(2048, 256), dan (3072, 256).
6

Pembangkitan bilangan domain parameter p, q, dan g dapat dilakukan oleh


TTP atau entitas lain yang dipercaya oleh semua pihak. Penelitian ini
menggunakan pasangan (L, N) adalah (1024, 160), sedangkan nilai p, q, dan g
dibangkitkan oleh TTP.

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

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<k<q
2 Hitung r= gk mod p mod q
3 Hitung s=(k-1 (SHA1(m)+xr)) mod q
4 Tanda dari m adalah sepasang (r,s)
Fungsi SHA1(m) merupakan fungsi satu arah yang mengubah suatu pesan
dengan panjang tertentu menjadi nilai baru dengan panjang tetap. Pseudocode
pembangkitan tanda tangan digital dengan masukan bilangan (p, q, g, x, m) adalah
sebagai berikut:
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<r<q, dan 0<s<q; jika tidak, maka tolak tanda tangan digital
3 Hitung w=s-1 mod q, dan H(m)
4 Hitung u1 =(SHA1(m)*w) mod q
5 Hitung u2 =(rw) mod q
6 Hitung v= (gu1 *yu2 ) mod p mod q
7 Terima tanda, jika dan hanya jika v=r
Verifikasi tanda tangan digital dilakukan oleh pihak penerima atau verifier
yang telah mendapatkan pesan (m), kunci publik(y), tanda tangan digital (r,s),
pasangan bilangan prima (p,q), dan bilangan acak (g). Semua nilai tersebut akan
menjadi input pada proses ini yang dijelaskan pada pseudocode verifikasi tanda
tangan digital sebagai berikut:

If((r>q and r<0)==TRUE)then


return ERROR
If((s>q and s<0)==TRUE) then
return ERROR
s1=inverse(s,q)
w=mod(s1,q)
message_digest=SHA1(m)
u1=mod(message_digest*w, q)
u2=mod(r*w, q)
gy=exp(g,u1)*exp(y,u2)
v=mod(mod(gy, p), q)
if(v==r) then
return TRUE
else
return FALSE
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-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

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

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

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 [pasangan kunci


parameter
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


Ukuran Waktu (ms)
No Naskah dinas Tipe
(bytes) Signing Verifying
1 SP 18 749 docx 28 50
21 573 docx 95 32
27 751 docx 24 38
33 941 docx 100 26
35 328 docx 80 29
2 SK 31 378 docx 17 25
46 706 docx 69 129
36 453 docx 30 87
167 267 docx 3 30
215 470 docx 2 31
3 TOR 16 111 docx 2 30
41 472 docx 1 735
60 345 docx 2 47
65 024 docx 4 37
243 712 docx 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


Ukuran SHA-1 Checksum Hasil yang
Modifikasi Hasil
(KB) File asli Arsip ulang diharapkan
b63481c3c19 824f5dd993c Tidak sah Pesan
2f96a24f486 1e1217a28b3 kesalahan
Tidak ada 7
319f4945c11 24526cffd21
4ec3fa 2599
b63481c3c19 5392a639e84 Tidak sah Pesan
Mengganti 2f96a24f486 f8c3fd93b2b kesalahan
12
nama file 319f4945c11 e727ac78c6b
4ec3fa cdde72
b63481c3c19 5758fc36792 Tidak sah Pesan
2f96a24f486 d36ab8564d0 kesalahan
Mengubah isi 7
319f4945c11 3fcfbd4dc4bf
4ec3fa e1e53
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


Ukuran SHA-1 Checksum Hasil yang
Modifikasi Hasil
(KB) File asli Arsip ulang diharapkan
c1579a7de75 2956fdbc81f Tidak sah Pesan
34459a82fac 2fd6b398125 kesalahan
Tidak ada 2
6eb89ffb9be 66ad6b44558
a7cf677 506d2
c1579a7de75 6e2368153fa Tidak sah Tidak sah
Mengganti 34459a82fac 47cdf498761
2
nama file 6eb89ffb9be 389ffacdbb9
a7cf677 795b14c
c1579a7de75 7c927e5124b Tidak sah Tidak sah
34459a82fac f894c21591f
Mengubah isi 2
6eb89ffb9be 8e6a88443ea
a7cf677 73151

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 Isi
M10 01100001011000100110001110000000
M11 00000000000000000000000000000000
M12 00000000000000000000000000000000
M13 00000000000000000000000000000000
M14 00000000000000000000000000000000
M15 00000000000000000000000000000000
M16 00000000000000000000000000000000
M17 00000000000000000000000000000000
M18 00000000000000000000000000000000
M19 00000000000000000000000000000000
M110 00000000000000000000000000000000
M111 00000000000000000000000000000000
M112 00000000000000000000000000000000
M113 00000000000000000000000000000000
M114 00000000000000000000000000000000
M115 00000000000000000000000000011000

Lampiran 2 Hasil message schedule pada pesan “abc”


W[0]=61626380 W[27]=180 W[54]=1e84c7a3
W[1]=0 W[28]=2c4c700c W[55]=98e04d98
W[2]=0 W[29]=f0 W[56]=651d16a0
W[3]=0 W[30]=93afb507 W[57]=62658ca1
W[4]=0 W[31]=5898e048 W[58]=458544d6
W[5]=0 W[32]=8e9a9202 W[59]=44584cb7
W[6]=0 W[33]=600 W[60]=7ba06619
W[7]=0 W[34]=b131c0f0 W[61]=6380aea2
W[8]=0 W[35]=16263bc6 W[62]=ae55269
W[9]=0 W[36]=4ebed41e W[63]=627b49a1
W[10]=0 W[37]=626380a1 W[64]=7cd45c9d
W[11]=0 W[38]=16263806 W[65]=f0000
W[12]=0 W[39]=18c0 W[66]=fb50753a
W[13]=0 W[40]=d2e138c4 W[67]=ec6765e8
W[14]=0 W[41]=f00 W[68]=ba3c2be2
W[15]=18 W[42]=3afb5079 W[69]=60c000
W[16]=c2c4c700 W[43]=898e04e5 W[70]=3a37cd05
W[17]=0 W[44]=e2ba3c2b W[71]=458546f4
W[18]=30 W[45]=60c0 W[72]=b8599dd6
W[19]=85898e01 W[46]=53a37cd W[73]=380a1a26
W[20]=0 W[47]=74458547 W[74]=1e02203
W[21]=60 W[48]=da9415ed W[75]=e7cc3456
W[22]=b131c03 W[49]=26380a16 W[76]=e6e60b69
W[23]=30 W[50]=626383a1 W[77]=f60a00
W[24]=85898ec1 W[51]=4ebf54de W[78]=5795ef4f
W[25]=16263806 W[52]=3835b44b W[79]=822e0879
W[26]=0 W[53]=f600
25

Lampiran 3 Hasil penyimpanan nilai pada peubah sementara (buffer)


Iterasi t a b c d e
0 0116FC33 67452301 7BF36AE2 98BADCFE 10325476
1 8990536D 0116FC33 59D148C0 7BF36AE2 98BADCFE
2 A1390F08 8990536D C045BF0C 59D148C0 7BF36AE2
3 CDD8E11B A1390F08 626414DB C045BF0C 59D148C0
4 CFD499DE CDD8E11B 284E43C2 626414DB C045BF0C
5 3FC7CA40 CFD499DE F3763846 284E43C2 626414DB
6 993E30C1 3FC7CA40 B3F52677 F3763846 284E43C2
7 9E8C07D4 993E30C1 0FF1F290 B3F52677 F3763846
8 4B6AE328 9E8C07D4 664F8C30 0FF1F290 B3F52677
9 8351F929 4B6AE328 27A301F5 664F8C30 0FF1F290
10 FBDA9E89 8351F929 12DAB8CA 27A301F5 664F8C30
11 63188FE4 FBDA9E89 60D47E4A 12DAB8CA 27A301F5
12 4607B664 63188FE4 7EF6A7A2 60D47E4A 12DAB8CA
13 9128F695 4607B664 18C623F9 7EF6A7A2 60D47E4A
14 196BEE77 9128F695 1181ED99 18C623F9 7EF6A7A2
15 20BDD62F 196BEE77 644A3DA5 1181ED99 18C623F9
16 4E925823 20BDD62F C65AFB9D 644A3DA5 1181ED99
17 82AA6728 4E925823 C82F758B C65AFB9D 644A3DA5
18 DC64901D 82AA6728 D3A49608 C82F758B C65AFB9D
19 FD9E1D7D DC64901D 20AA99CA D3A49608 C82F758B
20 1A37B0CA FD9E1D7D 77192407 20AA99CA D3A49608
21 33A23BFC 1A37B0CA 7F67875F 77192407 20AA99CA
22 21283486 33A23BFC 868DEC32 7F67875F 77192407
23 D541F12D 21283486 0CE88EFF 868DEC32 7F67875F
24 C7567DC6 D541F12D 884A0D21 0CE88EFF 868DEC32
25 48413BA4 C7567DC6 75507C4B 884A0D21 0CE88EFF
26 BE35FBD5 48413BA4 B1D59F71 75507C4B 884A0D21
27 4AA84D97 BE35FBD5 12104EE9 B1D59F71 75507C4B
28 8370B52E 4AA84D97 6F8D7EF5 12104EE9 B1D59F71
29 C5FBAF5D 8370B52E D2AA1365 6F8D7EF5 12104EE9
30 1267B407 C5FBAF5D A0DC2D4B D2AA1365 6F8D7EF5
31 3B845D33 1267B407 717EEBD7 A0DC2D4B D2AA1365
32 046FAA0A 3B845D33 C499ED01 717EEBD7 A0DC2D4B
33 2C0EBC11 046FAA0A CEE1174C C499ED01 717EEBD7
34 21796AD4 2C0EBC11 811BEA82 CEE1174C C499ED01
35 DCBBB0CB 21796AD4 4B03AF04 811BEA82 CEE1174C
36 0F511FD8 DCBBB0CB 085E5AB5 4B03AF04 811BEA82
37 DC63973F 0F511FD8 F72EEC32 085E5AB5 4B03AF04
38 4C986405 DC63973F 03D447F6 F72EEC32 085E5AB5
39 32DE1CBA 4C986405 F718E5CF 03D447F6 F72EEC32
40 FC87DEDF 32DE1CBA 53261901 F718E5CF 03D447F6
41 970A0D5C FC87DEDF 8CB7872E 53261901 F718E5CF
42 7F193DC5 970A0D5C FF21F7B7 8CB7872E 53261901
43 EE1B1AAF 7F193DC5 25C28357 FF21F7B7 8CB7872E
44 40F28E09 EE1B1AAF 5FC64F71 25C28357 FF21F7B7
45 1C51E1F2 40F28E09 FB86C6AB 5FC64F71 25C28357
46 A01B846C 1C51E1F2 503CA382 FB86C6AB 5FC64F71
47 BEAD02CA A01B846C 8714787C 503CA382 FB86C6AB
26

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

Lampiran 4 Daftar kebutuhan sistem


No Fungsi Kode
1 Melihat data semua pegawai SKPL-STTD.K-001
2 Mengubah data semua pegawai SKPL-STTD.K-002
3 Menghapus data semua pegawai SKPL-STTD.K-003
4 Menambah data pegawai SKPL-STTD.K-004
5 Mengubah nama dan kata sandi SKPL-STTD.K-005
6 Melihat surat masuk semua pegawai SKPL-STTD.K-006
7 Mnghapus surat masuk semua pegawai SKPL-STTD.K-007
8 Melihat surat keluar semua pegawai SKPL-STTD.K-008
9 Menghapus surat keluar semua pegawai SKPL-STTD.K-009
10 Melihat kunci publik semua pegawai SKPL-STTD.K-010
11 Mengubah status keabsahan kunci publik pegawai SKPL-STTD.K-011
12 Mencari data pegawai SKPL-STTD.K-012
13 Mencari surat masuk semua pegawai SKPL-STTD.K-013
14 Mencari surat keluar semua pegawai SKPL-STTD.K-014
15 Melihat dan mengunduh surat masuk SKPL-STTD.K-015
16 Melihat dan mengunduh surat keluar SKPL-STTD.K-016
17 Membangkitkan tanda tangan digital SKPL-STTD.K-017
18 Memverifikasi tanda tangan digital SKPL-STTD.K-018
19 Memverifikasi sertifikat kunci publik SKPL-STTD.K-019
20 Mengirim paket surat ke server SKPL-STTD.K-020
21 Membangkitkan kunci pribadi dan kunci publik SKPL-STTD.K-021
22 Membangkitkan sertifikat kunci publik SKPL-STTD.K-022
23 Mengirim paket kunci ke server 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

Inbox Pegawai Outbox

PK id PK id PK id

FK1 id_surat FK1 nip FK1 id_surat


FK1 nip_pengirim nama FK1 nip_pengirim
FK2 nip_penerima jabatan FK2 nip_penerima
tanggal unit_kerja tanggal
waktu pangkat waktu
read_status golongan read_status

User

PK nip

username
password
level
pubkey
certificate
validity
29

Lampiran 7 DFD level-0 Sistem Tanda Tangan Digital Online


30

Lampiran 8 DFD level-1 Sistem Tanda Tangan Digital Online


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 Keterangan
KeyPairGenerator Membangkitkan pasangan kunci
SecureRandom Membangkitkan bilangan acak
KeyPair Menampung nilai pasangan kunci
PrivateKey Interface untuk kunci pribadi
PublicKey Interface untuk kunci publik
PKCS8EncodedKeySpec Representasi kunci dalam format terenkripsi
KeyFactory Mengkonversi kunci pribadi ke dalam key
specification
Signature Menyediakan penerapan fungsi pada algoritma tanda
tangan digital
X509EncodedKeySpec Representasi kunci publik dalam format terenkripsi
35

Lampiran 14 Hasil pengujian fungsional sistem


Nilai
No Kasus uji Hasil yang diharapkan Hasil uji
input
1 Lihat data semua pegawai - Menampilkan semua data pegawai Berhasil
2 Edit data pegawai Benar Data pegawai berubah Berhasil
Salah Pindah ke halaman notifikasi Berhasil
kesalahan
3 Hapus data pegawai Benar Data pegawai terhapus Berhasil
4 Tambah data pegawai Benar Data baru pegawai bertambah Berhasil
Salah Pindah ke halaman notifikasi Berhasil
kesalahan
5 Ubah nama dan kata sandi Benar Nama dan kata sandi berubah Berhasil
Salah Notifikasi kesalahan dan tetap di Berhasil
halaman semula
6 Lihat surat masuk semua Benar Menampilkan data surat masuk yang Berhasil
pegawai direkap menurut pengirim
7 Hapus surat masuk Benar Surat masuk pegawai terhapus Berhasil
pegawai
8 Lihat surat keluar Benar Menampilkan data surat masuk yang Berhasil
pegawai direkap menurut penerima
9 Hapus surat keluar Benar Surat keluar pegawai terhapus Berhasil
pegawai
10 Lihat kunci publik Benar Menampilkan nama file kunci publik Berhasil
pegawai dan sertifikat pegawai
11 Edit keabsahan kunci Benar Mengubah status keabsahan kunci Berhasil
publik publik pegawai
12 Cari data pegawai Benar Menampilkan hasil pencarian data Berhasil
pegawai sesuai keyword
13 Cari surat masuk pegawai Benar Menampilkan hasil pencarian surat Berhasil
masuk
14 Cari surat keluar pegawai Benar Menampilkan hasil pencarian surat Berhasil
keluar
15 Login pegawai Benar Pindah ke halaman pegawai Berhasil
Salah Tetap di halaman login Berhasil
16 Lihat dan unduh surat Benar Menampilkan rincian surat masuk dan Berhail
masuk unduhan surat
17 Lihat dan unduh surat Benar Menampilkan rincian surat keluar dan Berhasil
keluar unduhan surat
18 Bangkitkan tanda tangan Benar File tanda tangan digital dalam bentuk Berhasil
digital binary filei
19 Verifikasi tanda tangan Benar Tanda tangan digital sah Berhasil
digital
Salah Tanda tangan digital tidak sah Berhasil
Salah Pesan kesalahan Berhasil
20 Verifikasi sertifikat kunci Benar Kunci publik sah Berhasil
publik
Salah Kunci publik tidak sah Berhasil
Salah Pesan kesalahan Berhasil
21 Kirim paket surat Benar Paket surat tersimpan di Sirkulasi Berhasil
Surat dan insert record pada surat
masuk
22 Bangkitkan kunci pribadi Benar Binary file kunci pribadi, kunci publik, Berhasil
dan kunci publik, dan sertifikat
sertifikat
36

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 Hasil pengukuran waktu pembangkitan kunci pribadi, kunci publik,


dan sertifikat
Kunci Waktu
Percobaan Kunci publik Sertifikat
pribadi (ms)
1 7e30dc5f f198c524 b4cbd484 302c2142b6c9bc22ce04b66 248
388a7871 d33fef2c c5bb7ce4 d92df042f2936eb68ef28ee3
906e6614 427938d0 dc753d98 214332f9edd4ed16b84153f6
d4c00fde 10fc7607 d76af636 9eb8f0a7dadbf8c745
6ccc285d 595ce407
295a02f1
c6851dc0 9d8ef551
3f41807c 96ff799e
3d5be210 41f2c00c
1094b5b1 e1d4b0f1
5db3011b b97127ca
ea34eaf9 3710d2e3
2ae412cd 5e72e578
009b2add f2f410c4
2796d1f6 10d7d3bf
2bc9ec6d fe05adb9
cd22dd74 bc0c0a9f
2 611621bf 95eb36b8 9ca39cdd 302c21470b29a9b6012de43 19
a1d6ae87 8be49443 3b5feaf9 f8cbeec5c4a33f57d3c9bd4d
c81cae73 4e636c8f 419d92fa 2142376ee472d232b566dca
e1facc5d 39c595a4 615db1a1 c672fd6fe39821aaef
e5f9422c c0ce8aea 437054a4
bf6b6d95 8e8b6440
5df2b02b 42118fdb
d4726b5864e2d804
cc765b7f 815c2ee4
41d74a41 efe016f5
8c19db38 6099ae89
07f764b9 878a591e
86881b530624f044
f12aa8b9 8ae03fa9
2485ce75 cad34949
9c6690ba 779f403e
3 143f53a9 41a8c587 a455d19c 302c2145eedd755321646c5 95
489a6db1 39e4d9df df48bb80 c461ae27124c94c9367be99
7787ab51 843465bddb06563d a2143058656d72e8443e564
21eadaa4 c241f5a4 a8ae8273 10e47c31981b5c9d3531
15509f6c 96e3e509 b3979832
863e92ab 98f77ccd
f0c05186 64105830
99a35c96 9eb6bd78
fd877aed 1fd4cd6c
7a6e9c39 31ace0ae
9ff940f3 d1726d2b
4fe79f10 c546fd7c
f591aeab 692ca743
c26aeb82 1f57c062
33fbb2ed 7123673f
14b84a51 5ee0f734
38

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

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 walimabdul@gmail.com.

Anda mungkin juga menyukai