APLIKASI OTENTIKASI DOKUMEN MENGGUNAKAN
ALGORITMA GOST DIGITAL SIGNATURE
SKRIPSI
ASMAYUNITA
091402085
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
APLIKASI OTENTIKASI DOKUMEN MENGGUNAKAN
ALGORITMA GOST DIGITAL SIGNATURE
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
ASMAYUNITA 091402085
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : APLIKASI OTENTIKASI DOKUMEN
MENGGUNAKAN ALGORITMA GOST DIGITAL SIGNATURE
Kategori : SKRIPSI
Nama : ASMAYUNITA
Nomor Induk Mahasiswa : 091402085
Program Studi : SARJANA (S-1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di Medan, 02 Juli 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dani Gunawan, ST., MT
M. Andri Budiman, S.T., M.Comp.Sc., M.E.M.
NIP. 19820915201221002 NIP. 197510082008011011
Diketahui/Disetujui oleh
Program Studi Teknologi Informasi Ketua,
PERNYATAAN
APLIKASI OTENTIKASI DOKUMEN MENGGUNAKAN ALGORITMA GOST DIGITAL SIGNATURE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 02 Juli 2014
PENGHARGAAN
Puji dan syukur saya panjatkan kepada Allah SWT yang telah memberikan rahmat dan karunia-Nya sehingga saya berhasil menyelesaikan skripsi ini untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. Muhammad Zarlis dan Prof. Dr. Opim Salim Sitompul, M.Sc
selaku Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, dan semua dosen serta pegawai di Program Studi S-1 Teknologi Informasi.
2. Kepada Bapak Andri Budiman S.T., M.Comp.Sc., M.E.M dan Bapak Dani
Gunawan, ST., MT selaku pembimbing saya yang telah memberikan banyak masukan-masukan, arahan, keluangan waktu serta bimbingan yang bermanfaat untuk saya dalam menyelesaikan skripsi ini.
3. Kepada Bapak Sawaluddin, M.IT dan Bapak Baihaqi Siregar, S.T.,M.T yang
telah bersedia menjadi dosen penguji dan telah memberikan saran-saran yang baik bagi saya dalam menyelesaikan skripsi ini.
4. Teristimewa kepada Ayahanda M. Jalil dan Ibunda Asmarani yang telah
membantu saya dalam segala hal dan mendukung kebutuhan moril dan motivasi sampai saat ini. Serta seluruh keluarga saya yang telah memberikan
do’a, dukungan, dan perhatian hingga saya dapat menyelesaikan skripsi ini.
5. Sahabat saya Bang Aris, Bang Padlian, Kak Aini, Ajeng, Aya, dan yang paling
spesial Rizky Haryo yang selalu mendukung dan memberi semangat kepada saya.
6. Teman-teman seperjuangan yang selalu mendukung saya dan membantu saya
selama belajar di Program Studi Teknologi Informasi yaitu Syarah, Devi, Septi, Bagus, Buyung, Yuli, Zizi, abang-kakak senior dan seluruh teman-teman seangkatan yang tidak dapat disebutkan.
7. Bapak Urip Harahap dan Ibu Ernawati yang selalu memberi semangat.
ABSTRAK
Dokumen merupakan sebuah data teks yang memiliki sifat terbuka yaitu isinya dapat dibaca dan diubah dengan sangat mudah oleh pihak-pihak yang tidak berhak. Hal ini menyebabkan faktor keamanan dari dokumen sangat tidak terjamin. Untuk mengamankan sebuah dokumen tersebut dapat dilakukan dengan teknik kriptografi,
salah satunya adalah tanda tangan digital. Tanda tangan digital merupakan suatu cara
untuk menjamin keaslian suatu dokumen dan menjaga supaya pengirim dokumen dalam suatu waktu tidak dapat menyangkal bahwa dirinya telah mengirimkan
dokumen tersebut. oleh karena itu dengan adanya tanda tangan digital maka keaslian
pengirim danintegritas data dokumen terjamin. dengan tujuan tersebut, dirancanglah
sebuah aplikasi tanda tangan digital agar memudahkan pengguna untuk menvalidasi
data dokumen. Algoritma yang digunakan pada aplikasi ini adalah algoritma GOST
Digital Signature. Algoritma ini menggunakan fungsi hash SHA-256 yang mengubah
pesan dokumen dengan panjang sembarang menjadi pesan ringkas (message digest)
dengan panjang tetap (256 bit), sehingga jika ada satu karakter saja dari dokumen yang diubah maka kunci publik yang tersedia tidak bisa mengverifikasi dokumen. Hal ini membuktikan bahwa dokumen sudah tidak asli. Berdasarkan pengujian yang dilakukan aplikasi ini berhasil mengvalidasi dokumen dengan membandingkan
message digest dan tanda tangan digital yang dikirimkan menggunakan kunci publik
pengirim. Apabila keduanya valid maka membuktikan bahwa dokumen otentik dan pengirim adalah pengirim yang sebenarnya.
APLICATION OF DOCUMENT AUTHENTICATION WITH GOST DIGITAL SIGNATURE ALGORITHM
ABSTRACT
Document is a text data that has an extrovert which the content could be read and modified easily by every body. It causes the safety factor of the document is not very secure. In order to it, we can use cryptographic techniques, which one of a digital signature. Digital signatures are a way to ensure the authenticity of a document and keep saving it, in order to the sender could not deny that he had sent the document. therefore the presence of a digital signature so the authenticity of the sender and document data integrity is assured. with these goal, designed a digital signature application that enables users to validate the document data. The algorithm that used in this application is GOST digital signature algorithm. This algorithm uses the SHA-256 hash function that converts the document message from the length message into short message (message digest) with a fixed length (256 bits), so if there is one character only from the document that altered the available public key can not verified the document. This authenticate that the document is not original. Based on testing performed successfully validate the application of this document by comparing the message digest and digital signature that is sent using the sender's public key. If both are valid then prove that the document is authentic and the sender is the actual sender.
DAFTAR ISI
2.4.1. Parameter GOST Digital Signature 12 2.4.2. Pembentukan Sepasang Kunci 12 2.4.3. Pembentukan Tanda Tangan Digital 13 2.4.4. Verifikasi Tanda Tangan Digital 13 2.5. Penelitian Sebelumnya ... 14
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 16
3.1. Analisis Komponen Sistem ... 16
3.1.2. Pemodelan Sistem Relasi antar Proses ... 17
3.1.3. Pemodelan Sistem Proses Pembentukan Sepasang Kunci ... 17
3.1.4. Pemodelan Sistem Proses Pembentukan Tanda Tangan Digital .. 18
3.1.5. Pemodelan Sistem Proses Verifikasi Dokumen ... 18
3.2. Analisis Sistem ... 19
3.2.1. Cara Kerja GOST Digital Signature ... 19
3.2.2. Pembentukan Sepasang Kunci ... 21
3.2.3. Pembentukan Tanda Tangan Digital ... 22
3.2.4. Verifikasi Tanda Tangan Digital ... 23
3.3. Perancangan Antar Muka (Interface)... 24
3.3.1. Rancangan Halaman Pengirim ... 25
3.3.1.1. Rancangan Halaman Pembentukan Kunci ... 25
3.3.1.2. Rancangan Halaman Pembentukan Tanda Tangan ... 26
3.3.2. Rancangan Halaman Penerima ... 27
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 29
4.1. Implementasi ... 29
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak ... 29
4.1.2. Tampilan Implementasi Sistem ... 29
4.1.2.1. Pengujian Sistem pada Pengirim ... 30
4.1.2.2. Pengujian Sistem pada Penerima ... 31
4.2. Tabulasi Hasil Uji ... 33
BAB 5 KESIMPULAN DAN SARAN ... 36
5.1. Kesimpulan ... 36
5.2. Saran ... 36
DAFTAR PUSTAKA ... 37
DAFTAR TABEL
Hal
Tabel 2.1 Tabel Penelitian Terdahulu 14
Tabel 4.1 Tabel Pengujian Message Digest dengan Variasi String 34
DAFTAR GAMBAR
Hal
Gambar 2.1. Kriptografi Simetris 6
Gambar 2.2. Kriptografi Asimetris 6
Gambar 2.3. Skema Tanda Tangan Digital 8
Gambar 2.4. Contoh Penggunaan Fungsi Hash 10
Gambar 3.1. Pemodelan Sistem Keseluruhan 15
Gambar 3.2. Sistem Relasi antar Proses 16
Gambar 3.3. Proses Pembentukan Sepasang Kunci 16
Gambar 3.4. Proses Pembentukan Tanda Tangan Digital 17
Gambar 3.5. Proses Verifikasi Dokumen 18
Gambar 3.6. Flowchart GOST Digital Signature 19
Gambar 3.7. Flowchart Pembentukan Sepasang Kunci 20
Gambar 3.8. Flowchart Pembentukan Tanda Tangan Digital 22
Gambar 3.9. Flowchart Verifikasi Tanda Tangan Digital 23
Gambar 3.10. Rancangan Halaman Pembentukan Kunci 25
Gambar 3.11. Rancangan Halaman Pembentukan Tanda Tangan Digital 26
Gambar 3.12. Rancangan Halaman Verifikasi 27
Gambar 4.1. Tampilan Halaman Pembentukan Kunci 30
Gambar 4.2. Halaman Pembentukan Tanda Tangan Digital 31
Gambar 4.3. Tampilan Tanda Tangan Valid 32
Gambar 4.4. Tampilan Tanda Tangan Tidak Valid 33
ABSTRAK
Dokumen merupakan sebuah data teks yang memiliki sifat terbuka yaitu isinya dapat dibaca dan diubah dengan sangat mudah oleh pihak-pihak yang tidak berhak. Hal ini menyebabkan faktor keamanan dari dokumen sangat tidak terjamin. Untuk mengamankan sebuah dokumen tersebut dapat dilakukan dengan teknik kriptografi,
salah satunya adalah tanda tangan digital. Tanda tangan digital merupakan suatu cara
untuk menjamin keaslian suatu dokumen dan menjaga supaya pengirim dokumen dalam suatu waktu tidak dapat menyangkal bahwa dirinya telah mengirimkan
dokumen tersebut. oleh karena itu dengan adanya tanda tangan digital maka keaslian
pengirim danintegritas data dokumen terjamin. dengan tujuan tersebut, dirancanglah
sebuah aplikasi tanda tangan digital agar memudahkan pengguna untuk menvalidasi
data dokumen. Algoritma yang digunakan pada aplikasi ini adalah algoritma GOST
Digital Signature. Algoritma ini menggunakan fungsi hash SHA-256 yang mengubah
pesan dokumen dengan panjang sembarang menjadi pesan ringkas (message digest)
dengan panjang tetap (256 bit), sehingga jika ada satu karakter saja dari dokumen yang diubah maka kunci publik yang tersedia tidak bisa mengverifikasi dokumen. Hal ini membuktikan bahwa dokumen sudah tidak asli. Berdasarkan pengujian yang dilakukan aplikasi ini berhasil mengvalidasi dokumen dengan membandingkan
message digest dan tanda tangan digital yang dikirimkan menggunakan kunci publik
pengirim. Apabila keduanya valid maka membuktikan bahwa dokumen otentik dan pengirim adalah pengirim yang sebenarnya.
APLICATION OF DOCUMENT AUTHENTICATION WITH GOST DIGITAL SIGNATURE ALGORITHM
ABSTRACT
Document is a text data that has an extrovert which the content could be read and modified easily by every body. It causes the safety factor of the document is not very secure. In order to it, we can use cryptographic techniques, which one of a digital signature. Digital signatures are a way to ensure the authenticity of a document and keep saving it, in order to the sender could not deny that he had sent the document. therefore the presence of a digital signature so the authenticity of the sender and document data integrity is assured. with these goal, designed a digital signature application that enables users to validate the document data. The algorithm that used in this application is GOST digital signature algorithm. This algorithm uses the SHA-256 hash function that converts the document message from the length message into short message (message digest) with a fixed length (256 bits), so if there is one character only from the document that altered the available public key can not verified the document. This authenticate that the document is not original. Based on testing performed successfully validate the application of this document by comparing the message digest and digital signature that is sent using the sender's public key. If both are valid then prove that the document is authentic and the sender is the actual sender.
BAB 1
PENDAHULUAN
1.1.Latar Belakang
Dalam era masyarakat berbasis informasi, sebuah data digital merupakan komponen
yang sangat vital, sehingga memerlukan pengamanan yang baik saat didistribusi
ataupun saat disimpan. Akhirnya dikembangkan berbagai cara/ metode untuk
mengatasi persoalan keamanan data yang pada intinya adalah cara mengantisipasi agar
pihak-pihak yang tidak berhak, tidak mungkin dapat membaca atau bahkan merusak
data yang bukan ditujukan padanya. Salah satu cara pengamanan data tersebut adalah
dengan menerapkan kriptografi/ penyandian.
Ketika suatu algoritma kriptografi sudah dapat dipecahkan, maka diperlukan
algoritma-algoritma baru yang lebih handal agar keamanan data tetap terjaga. Hal ini
menyebabkan kriptografi tidak berhenti berkembang, salah satu contoh dari
perkembangan algoritma kriptografi tersebut adalah digital signature. Digital
signature atau tanda tangan digital bukanlah tanda tangan dari seseorang yang di-scan
atau dimasukkan ke komputer menggunakan scanner atau sejenisnya, tapi memiliki
fungsi sebagai penanda data yang memastikan bahwa data tersebut adalah data yang
sebenarnya (tidak ada yang berubah).
Dalam dunia nyata, untuk pengamanan menjamin keaslian serta legalitas suatu
dokumen digunakan tanda tangan. Tanda tangan ini merupakan suatu tanda yang
bersifat unik milik seseorang dan digunakan untuk memberikan pengesahan bahwa
orang tersebut setuju dan mengakui isi dari dokumen yang ditandatangani. Untuk
dokumenpun dibutuhkan hal semacam ini. Oleh karena itu, diciptakan suatu sistem
otentikasi yang disebut tanda tangan digital.
Tanda tangan digital merupakan suatu cara untuk menjamin keaslian suatu
dokumen elektronik dan menjaga supaya pengirim dokumen dalam suatu waktu tidak
dapat menyangkal bahwa dirinya telah mengirimkan dokumen tersebut. Sebuah tanda
bahwa pesan yang dikirim benar-benar dibuat oleh pengirim yang diketahui, dan tidak
dimanipulasi dalam perjalanan. Tanda tangan digital biasanya digunakan untuk
distribusi perangkat lunak, transaksi keuangan, dan dalam kasus lain di mana penting
untuk mendeteksi pemalsuan atau gangguan. Tanda tangan digital menggunakan
algoritma-algoritma serta teknik-teknik komputer khusus dalam penerapannya.
Tujuan dari penggunaan tanda tangan digital adalah membuktikan keaslian
identitas pengirim dari suatu pesan atau penandatangan dari suatu dokumen, dan untuk
memastikan isi yang asli dari pesan atau dokumen itu sudah dikirim tanpa perubahan.
Sejak ditemukannya oleh Diffie dan Hellman pada tahun 1973, banyak usulan
untuk merealisasikan tanda tangan digital. Pada tahun 1999 federasi Rusia
mengeluarkan standar GOST digital signature. Algoritma GOST digital signature
merupakan algoritma asimetris yang melingkupi sistem inisialisasi, penghasil kunci,
penghasil tanda tangan dan verifikasi. Pembentuk kunci publik pada algoritma ini jauh
lebih rumit sehingga algoritma ini sangat aman (Michels et al, 1996).
Sebelumnya ada beberapa penelitian yang pernah dilakukan yang berkaitan
dengan tanda tangan digital, diantaranya yaitu Implementasi Tanda Tangan Digital
Menggunakan Fungsi Hash Algoritma SHA-256 dan RSA dalam Proses Otentikasi
Data (Saipul, 2010), Studi dan Implementasi Tanda Tangan Digital dengan
Menggunakan Algoritma Elgamal (Fernando, 2009), dan Aplikasi Kriptografi untuk
Pengamanan E-dokumen dengan Metode Hybrid: Biometrik Tandatangan dan DSA
(Digital Signature Algorithm) (Wahyuni, 2011).
1.2.Rumusan Masalah
Banyaknya pencurian dan pemalsuan yang terjadi terhadap dokumen membuat sistem
keamanan jaringan perlu mengembangkan sebuah teknik sebagai penanda khusus
yang memastikan bahwa dokumen tersebut adalah dokumen yang benar dan otentik
dari pengirim. Dari uraian diatas, permasalahan yang diteliti yaitu bagaimana
membuktikan bahwasanya dokumen tersebut otentik serta menjamin integritas
dokumen bahwa dokumen yang dikirim berasal dari pengirim yang sebenarnya
3
1.3.Tujuan Penelitian
Penelitian ini bertujuan untuk membuktikan bahwasanya dokumen tersebut otentik
dari pengirim dan tidak diubah oleh pihak-pihak yang tidak bertanggung jawab
dengan menggunakan algoritma GOST Digital Signature.
1.4.Manfaat Penelitian
Sistem ini dibangun menggunakan standar GOST Digital Signature yang bermanfaat
untuk membuktikan keaslian pengirim sehingga pengirim tidak bisa menyangkal telah
mengirimkan dokumen tersebut. Dengan demikian membuktikan bahwa dokumen
yang diterima otentik dikirim dari pihak pengirim. Sedangkan fungsi hash yang
digunakan dalam algoritma ini berfungsi untuk menjaga agar dokumen tidak bisa
diubah oleh pihak yang tidak bertanggung jawab.
1.5.Batasan Masalah
Adapun batasan masalah yang diberikan pada penelitian ini adalah sebagai berikut :
1. Dokumen yang diberi tanda tangan digital hanya file Microsoft Office
(doc,xls,ppt).
2. Pengamanan dokumen hanya meliputi otentikasi pengirim dan integritas file
sebagai hasil verifikasi pada pihak penerima.
3. Tidak membahas aspek keamanan pada jalur komunikasi yaitu pada proses
transmisi dokumen lewat internet atau media pengiriman apapun dan keamanan
yang diakibatkan oleh kelalaian pengguna.
4. Tidak ada proses validasi dari pihak ketiga sebagai penjamin, yaitu infrastruktur
kunci publik manapun.
1.6.Metodologi Penelitian
Metode penelitian yang akan digunakan adalah:
1. Studi Literatur
Pada tahap ini dilakukan dengan membaca dan mempelajari buku-buku referensi,
jurnal atau sumber-sumber lain yang berkaitan dengan tugas akhir ini, baik
2. Analisis dan Perancangan Desain Sistem
Pada tahap ini akan dilakukan analisis penerapan algoritma pada aplikasi
kriptografi untuk otentikasi tanda tangan digital serta perancangan aplikasi, antara
lain menggambar flowchart, DFD, dan perancangan antarmuka (interface).
3. Implementasi Sistem
Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan aplikasi
tersebut ke dalam bahasa pemrograman.
4. Pengujian Sistem
Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah telah
memenuhi kriteria atau tidak.
5. Dokumentasi Sistem
Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi tersebut yang
BAB 2
LANDASAN TEORI
Pada bab ini, akan dibahas landasan teori mengenai teori-teori yang digunakan dan
konsep yang mendukung pembahasan, serta penjelasan mengenai metode yang
digunakan.
2.1.Pengenalan Kriptografi
Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik
matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas.
Dalam kriptografi, pesan yang mempunyai makna disebut plaintext, dan
pesan yang tidak bermakna lagi disebut ciphertext. Dua proses utama dalam
kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah transformasi plaintext
menjadi ciphertext, sedangkan transformasi sebaliknya dari cipherteks menjadi
plainteks semula disebut dekripsi. Baik enkripsi maupun dekripsi, proses
keduanya melibatkan penggunaan kunci (key).
Sistem kriptografi (yang terdiri atas algoritma kriptografi, kunci, plaintext,
dan ciphertext) dapat digolongkan menjadi dua kelompok: sistem kriptografi
simetri dan sistem kriptografi asimetris (kunci-publik). Pada sistem kriptografi
simetri yang ditunjukkan pada gambar 2.1. (Munir, 2006), kunci untuk enkripsi sama
dengan kunci untuk dekripsi. Sebelum melakukan pengiriman pesan, pengirim dan
penerima harus memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan
kunci ini harus sangat rahasia bagi pihak yang tidak berkepentingan sehingga
algoritma ini disebut juga sebagai algoritma kunci rahasia (secret-key algorithm).
Contoh algoritma kriptografi simetri diantaranya adalah DES, Blowfish,
Gambar 2.1. Kriptografi Simetris
Sedangkan pada sistem kriptografi kunci-publik seperti yang terlihat pada
gambar 2.2. (Munir, 2006), kunci untuk enkripsi tidak sama dengan kunci untuk
dekripsi. Kunci untuk enkripsi tidak rahasia, sehingga dinamakan juga kunci
publik (public key), sedangkan kunci untuk dekripsi rahasia, sehingga dinamakan
kunci privat (privat key). Pengirim pesan mengenkripsi pesan dengan
menggunakan kunci publik si penerima pesan, hanya penerima pesan yang dapat
mendekripsi pesan menjadi plainteks semula dengan menggunakan kunci
privatnya. Contoh algoritma kriptografi asimetris diantaranya adalah RSA (
Rivest-Shamir-Adleman), DSA, dan ElGamal.
Gambar 2.2. Kriptografi Asimetris
Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi
modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian
kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi
(pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang
menggunakan penyandian kunci asimetris (Sadikin, 2012).
Ada 4 (empat) aspek-aspek keamanan yang disediakan oleh kriptografi (Munir,
2006), yaitu:
1. Kerahasiaan
Kerahasiaan (Confidentiality) merupakan layanan yang digunakan untuk menjaga
7
kriptografi, layanan ini umumnya direalisasikan dengan cara menyandikan pesan
menjadi bentuk yang tidak dapat dimengerti.
2. Integritas Data
Integritas data(integrity) merupakan layanan yang menjamin bahwa pesan masih
asli/utuh atau belum pernah dimanipulasi selama pengiriman. Untuk menjaga
integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi
pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan,
penghapusan,dan pengsubsitusian data lain kedalam pesan yang sebenarnya.
3. Otentikasi
Otentikasi (Authentication) merupakan layanan yang berhubungan dengan
identifikasi. Baik mengidentifikasi benaran pihak-pihak yang berkomunikasi
(user authentication dan entity authentication) maupun mengidentifikasi
kebenaran sumber pesan (data origin authentication). Dua pihak yang saling
berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat
memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga
harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga
memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti
sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu
dikombinasikan dengan layanan otentikasi sumber pesan.
4. Anti Penyangkalan
Anti Penyangkalan (non-repudiation) merupakan layanan untuk mencegah entitas
yang berkomunikasi melakukan penyangkalan, yaitu pengiriman pesan
menyangkal melakukan pengiriman atau penerimaan pesan menyangkal telah
menerima pesan.
2.2.Tanda Tangan Digital
Tanda tangan digital adalah mekanisme otentikasi yang mengijinkan pemilik pesan
membubuhkan sebuah sandi pada pesannya yang bertindak sebagai tanda tangan.
Tanda tangan dibentuk dengan mengambil nilai hash dari pesan dan mengenkripsi
Prinsip yang digunakan dalam tanda tangan digital ini adalah dokumen yang
dikirimkan harus ditandatangani oleh pengirim dan tanda tangan bisa diperiksa oleh
penerima untuk memastikan keaslian dokumen yang dikirimkan. Fungsinya adalah
untuk melakukan validasi terhadap data yang dikirim. Tanda tangan digital
menggunakan algoritma yang disebut dengan istilah hashing algorithm. Fungsi
tersebut akan menghasilkan sebuah kombinasi karakter yang yang unik yang disebut
Message Digest. dengan cara ini pengirim bertanggungjawab terhadap isi dokumen
dan dapat di cek keaslian dokumen oleh penerima.
Keunikannya adalah jika di tengah perjalanan data mengalami modifikasi,
penghapusan maupun di sadap diam-diam oleh hacker walaupun hanya 1 karakter saja,
maka message digest yang berada pada si penerima akan berbeda dengan yang
dikirimkan pada awalnya. Keunikan lainnya adalah message digest tersebut tidak bisa
dikembalikan lagi ke dalam bentuk awal seperti sebelum disentuh dengan fungsi
algoritma, sehingga disebutlah sebagai one-way hash (Sianturi, 2008).
Fungsi utama dari tanda tangan digital pada pada aspek keamanan kriptografi
adalah non-repudiation atau anti penyangkalan dimana apabila dokumen valid maka
pengirim tidak bisa menyangkal bahwa keberadaan dokumen benar dikirim oleh
pengirim yang bersangkutan.
Suatu tanda tangan digital dapat digunakan di segala macam pesan, apakah itu
terenkripsi maupun tidak, sehingga penerima dapat memastikan identitas pengirim itu
dan pesan tiba secara utuh.
9
Cara kerja tanda tangan digital seperti yang terlihat pada gambar 2.3. (Tulu et
all, 2004) adalah sebagai berikut:
1. Si A menggunakan proses hashing algorithm untuk mengambil nilai hash dari
sebuah pesan yang terdapat dalam sebuah dokumen yang dikirim dan
menghasilkan Message Digest.
2. Setelah dilakukan hashing, Si A melakukan sign terhadap message digest dengan
menggunakan kunci privat yang hanya diketahui oleh penandatangan dan
digunakan untuk membentuk tanda tangan digital.
3. Kemudian Si A mengirimkan tanda tangan digital bersama dokumen tersebut.
4. Si B penerima pesan yang dikirimkan oleh Si A.
5. Setelah itu Si B mengverifikasi pesan yang dikirimkan oleh Si A. Pada proses
verifikasi tersebut pesan di hashing terlebih dahulu sehingga menghasilkan
message digest dan tanda tangan digital akan di unsign menggunakan kunci
publik Si A. Jika message digest dan tanda tangan digital-nya sama, maka pesan
ini adalah asli dan pesan berasal dari pengirim yang sebenarnya. Bila pesan telah
diubah oleh pihak luar, maka tanda tangan digital juga ikut berubah sehingga
kunci publik yang ada tidak akan bisa di unsign.
Proses diatas mampu membuktikan bahwasanya pesan adalah asli (message
authentication) dan orang yang mengirim adalah orang yang sebenarnya (user
authentication). Ini berarti tanda tangan digital memenuhi salah satu syarat keamanan
jaringan yaitu non-repudiation atau anti-penyanggahan.
2.3.Fungsi Hash
Fungsi hash merupakan suatu fungsi yang menerima masukan berupa string yang
panjangnya sembarang dan mengonversi masukan tersebut menjadi string yang
mempunyai panjang tetap (fixed) dan umumnya menjadi lebih kecil dari panjang
semula. Keluaran dari fungsi hash disebut juga nilai hash atau pesan-ringkas (message
digest).
Fungsi hash sering juga disebut fungsi satu arah (one way function), message
digest, fingerprint, fungsi kompresi, dan message authentication code (MAC). Fungsi
ini biasanya diperlukan bila kita menginginkan pengambilan sidik jari suatu pesan.
besar dari keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi
hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi
satu arah. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari
pesan mestinya merupakan ringkasan pesan yang masih dipahami maknanya,
sedangkan disini justru sebaliknya, malahan dengan diketahuinya sidik jari ini, justru
orang diharapkan tidak tahu pesan aslinya (Kurniawan, 2004).
Masukan Nilai Hash
Gambar 2.4. Contoh Penggunaan Fungsi Hash
Pada gambar 2.4. (Munir, 2004) memperlihatkan fungsi hash yang mengubah
suatu string dengan panjang berapapun menjadi sebuah message digest yang memiliki
panjang tetap. Fungsi hash pada dasarnya bekerja satu arah, berarti pesan asli atau
pesan semula akan diubah menjadi sebuah message digest, namun message digest
yang dihasilkan tidak dapat dikembalikan menjadi pesan asli atau pesan semula
kembali.
Fungsi hash satu arah merupakan fungsi satu arah (one way function) yang
dapat menghasilkan ciri (signature) dari data (berkas, stream). Perubahan satu bit saja
akan mengubah keluaran hash secara drastis. Fungsi hash biasanya digunakan untuk
menjamin integritas dan tanda tangan digital.
Salah satu fungsi hash yang sudah terstandardisasi dan banyak digunakan
adalah SHA (Secure Hash Algorithm) yang dikeluarkan oleh NIST (National Institute
of Standard and Technology).
11
Saat ini sudah terdapat tiga generasi dari SHA dimana dari generasi tersebut
juga terdapat beberapa varian lagi berdasarkan panjang bit yang dihasilkan. Ketiga
varian itu adalah SHA-0 (atau yang biasa disebut SHA saja), SHA-1, dan SHA-2.
Algoritma SHA-2 merupakan pengembangan dari algoritma SHA-1 yang
memuat banyak perubahan. Algoritma ini didesain oleh National Security Agency
(NSA) of United States dan dipublikasikan pada tahun 2001 oleh NIST sebagai
standar bagi pemrosesan informasi federal bagi Amerika Serikat atau yang biasa
disebut Federal Information Processing Standard (FIPS).
Algoritma SHA-2 ini terdiri dari beberapa algoritma berdasarkan panjang bit
yang digunakan/ dihasilkan sebagai nilainya yaitu SHA-224, SHA-256, SHA-384,
SHA-512. Algoritma SHA-2 ini menggunakan beberapa operasi dasar dalam teknik
kriptografi, yaitu fungsi AND, OR, XOR, SHIFT (right), dan ROTATE (right).
Sifat-Sifat Fungsi Hash Kriptografi:
a. Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit
(secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
b. Tahan preimej kedua (Second preimage resistant): bila diketahui input m1
maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan
hash(m1) = hash(m2).
c. Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan
m2 yang menyebabkan hash(m1) = hash(m2)
2.4.Algoritma GOST Digital Signature
GOST atau Gosudarstvenny Standard yang artinya standard pemerintah, adalah
algoritma kriptografi dari negara Uni Soviet dahulu (sekarang sudah terpecah menjadi
sejumlah negara dengan Rusia sebagai negara terbesar) (Munir, 2004).
Algoritma ini dikembangkan pada tahun 1970 yang merupakan sebuah
algoritma block chiper dengan panjang 64 bit, sedangkan panjang kuncinya 256 bit.
GOST dibuat oleh Soviet sebagai alternatif terhadap algoritma enkripsi standard
Amerika Serikat, DES. GOST secara struktural mirip dengan DES.
Masyarakat perbankan Prancis telah menstadardisasi RSA. National Institute
of Standardization Technology (NIST) mengusulkan suatu modifikasi ElGamal dan
mereka dan skema tanda tangan didasarkan pada kurva elips yang sampai saat ini
menjadi standar IEEE. Pada tahun 1999 federasi Rusia mengeluarkan standar tanda
tangan digital GOST Digital Signature atau sering disebut GOST 34,10-94. Algoritma
ini sangat mirip dengan Digital Signature Algorithm (DSA). GOST Digital Signature
dan algoritma tanda tangan digital lainnya memiliki tiga proses utama yaitu:
1. Pembentukan sepasang kunci (Key Pair Generation)
2. Pembentukan tanda-tangan digital (Digital Signature Generation)
3. Verifikasi tanda-tangan digital (Digital Signature Verification)
2.4.1. Parameter GOST digital signature
GOST Digital Signature merupakan sebuah standar Russia digital signature yang
dikembangkan dari DSA yang telah dimodifikasi dimana menggunakan parameter
dibawah ini (Schneier, 1996):
1. p, adalah bilangan prima dengan panjang antara 509 ≤ p ≥512 bit, atau 1020 ≤ p ≥ 1024 bit. Parameter p bersifat publik.
2. q, adalah bilangan prima dengan panjang 254 ≤ q ≥ 256 bit, dan q merupakan faktor dari p - 1. Parameter q bersifat publik.
3. a, merupakan bilangan yang lebih kecil dari p - 1 dimana mod p = 1.
Parameter a bersifat publik.
4. x, adalah bilangan acak yang lebih kecil dari q. Parameter x adalah kunci privat.
5. y = mod p, adalah kunci publik.
6. m, pesan yang akan diberi tanda tangan.
2.4.2. Pembentukan sepasang kunci
Proses pembentukan kunci pada GOST Digital Signature adalah sebagai berikut
(Schneier, 1996):
1. Pilih bilangan prima p dan q dimana (p–1) mod q = 0. 2. Hitung a dimana aq mod p = 1 dan a < p-1.
3. Tentukan kunci privat x dimana x < q.
13
y = mod p (2.1)
5. Kunci publik (p, q, a, y) dan kunci privat (p, q, a, x).
2.4.3. Pembentukan tanda tangan digital
Diketahui kunci publik (p, q, a, y) dan kunci privat (p, q, a, x) (Schneier, 1996):
1. Ubah pesan m menjadi message digest dengan fungsi Hash SHA menghasilkan
SHA (M).
2. Tentukan bilangan acak k dimana k < q.
3. Hitung tanda tangan r, dengan rumus:
r = (akmod p) mod q (2.2)
1. Hitung tanda tangan s, dengan rumus:
s = (xr + k(H(m))) mod q (2.3)
4. Kirim pesan beserta tanda tangan r dan s.
2.4.4. Verifikasi tanda tangan digital
Sebelum diverifikasi, harus dipastikan tersedia kunci publik pengirim (y), nilai p, q
dan a beserta pesan yang bertandatangan r dan s. Penerima memeriksa terlebih dahulu
apakah 0 < r < q dan 0 < s < q, kemudian hitung:
1. Hitung nilai v, dengan rumus:
v = H(m)q-2 mod q (2.4)
2. Hitung nilai Z1, dengan rumus:
Z1 = (sv) mod q (2.5)
3. Hitung nilai Z2, dengan rumus:
Z2 = ((q – r) * v) mod q (2.6)
u = ((a z1 * y z2) mod p) mod q (2.7)
5. Jika u = r, maka proses verifikasi berhasil.
2.5.Penelitian Sebelumnya
Beberapa penelitian dari peneliti sebelumnya yang menjadi bahan pembelajaran
penulis tentang tanda tangan digital.
Supriyanto (2009) menggunakan algoritma kunci publik RSA yang mampu
memberikan sistem keamanan dokumen attachment pada sebuah e-mail untuk
menghindari jebolnya keamanan yang diterapkan e-mail standard seperti PGP. Pada
penelitian ini pengujian validitas dilakukan berdasarkan elemen dokumen XML
dengan cara membandingkan “data valid” dengan perubahan data yang menghasilkan
“data invalid”.
Budiono (2011) telah melakukan penerapan tanda tangan digital untuk
otentikasi SMS-Banking. Algoritma RSA telah berhasil diimplementasikan
menggunakan teknologi tanda tangan digital untuk transaksi SMS-Banking yang
tersimulasikan dalam perangkat lunak yang telah dibangun diatas telepon seluler
sebagai client dan perangkat lunak yang dibangun diatas komputer sebagai server.
Table 2.1. Tabel penelitian terdahulu
No Judul Pengarang Tahun Kelebihan
1. Pemakaian kriptografi
kunci publik untuk proses
enkripsi dan tanda tangan
digital pada dokumen
email.
Aji Supriyanto 2009 Memberikan keamanan
otentikasi dokumen e-mail,
untuk menghindari
jebolnya atau tembusnya
keamanan yang diterapkakn
15
2. Penerapan tanda tangan
digital untuk otentikasi
SMS-Banking.
Budiono 2011 Algoritma RSA yang
berhasil diimplementasikan
pada tanda tangan digital
SMS telah terbukti dengan
kemampuan perangkat
lunak client dalam
mengoperasikan bilangan
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini, akan dibahas beberapa hal mengenai penerapan algoritma dan analisa
perancangan sistem dalam mengimplementasikan Algoritma GOST Digital Signature
dalam pembuatan tanda tangan digital sebagai otentikasi dalam pembuktian keaslian
khususnya untuk data pesan yang panjang dan sensitif.
3.1.Analisis Komponen Sistem
3.1.1. Pemodelan sistem keseluruhan
Proses ini menjelaskan pemodelan sistem keseluruhan secara sederhana yang terdapat
pada aplikasi tanda tangan digital.
Sistem
Signer Verifier
- file kunci privat, kunci publik, digital signature
- Buat sepasang kunci - Signing dokumen
- Status digital signature
- Verifikasi dokumen
Gambar 3.1. Pemodelan Sistem keseluruhan
Dari gambar 3.1. dapat dijelaskan bahwasanya user sebagai pengirim dapat
melakukan proses pembentukan sepasang kunci, dan proses pembentukan tanda
tangan digital kemudian sistem akan mengirim output berupa file kunci privat, dan
kunci publik, dan file tanda tangan digital.
Sedangkan untuk user sebagai penerima dapat melakukan proses verifikasi
dokumen dan tanda tangan digital kemudian sistem akan memberi output berupa
17
3.1.2. Pemodelan sistem relasi antar proses
Berikut ini adalah pemodelan sistem yang menampilkan setiap relasi antar proses pada
aplikasi tanda tangan digital.
1.0 Pembentukan
Kunci Signer Direktori untuk penyimpanan file kunci
Nama direktori yang ditentukan File kunci privat dan kunci publik
Kunci_private
Gambar 3.2. Sistem Relasi Antar Proses
Dari gambar 3.2. dapat dijelaskan bahwasanya aplikasi ini memiliki 3 proses
pokok untuk melayani user baik sebagai pengirim maupun penerima yaitu
pembentukan sepasang kunci, pembentukan tanda tangan digital pada dokumen, dan
verifikasi dokumen.
3.1.3. Pemodelan sistem proses pembentukan sepasang kunci
Berikut ini adalah pemodelan sistem dari proses pembentukan sepasang kunci.
1.1
Pada gambar 3.3. dapat dijelaskan, untuk mendapatkan kunci privat dan kunci
publik sistem terlebih dahulu harus membentuk bilangan prima, sub prima, kunci
privat, dan kunci publik. Kemudian nilai bilangan prima, sub prima, dan kunci privat
yang telah didapat akan disimpan didalam file yang bernama kunci privat sedangkan
untuk file kunci publik berisi nilai bilangan prima, sub prima, dan kunci publik. File
ini akan dikirimkan oleh sistem kepada pengirim untuk melakukan proses
pembentukan tanda tangan digital.
3.1.4. Pemodelan sistem proses pembentukan tanda tangan digital
Berikut ini adalah pemodelan sistem dari proses pembentukan tanda tangan digital:
2.1
Gambar 3.4. Proses Pembentukan Tanda Tangan Digital
Dari gambar 3.4. dapat dijelaskan bahwa untuk melakukan proses
pembentukan tanda tangan digital pada aplikasi tada tangan digital, pengirim harus
terlebih dahulu memasukkan file dokumen yang ingin diberi tanda tangan, dan file
kunci privat. Ketika pengirim membuat tanda tangan digital maka sistem melakukan
proses hash pada dokumen untuk menghasilkan message digest dan tanda tangan
digital yang akan dimasukkan kedalam file tanda tangan. Selanjutnya sistem
mengirim file ini kepada pengirim.
3.1.5. Pemodelan sistem proses verifikasi dokumen
19
3.1 Pilih Dokumen
Verifier
3.2 Verifikasi Dokumen
Kunci_publik
Status dokumen
Digital_signature
Gambar 3.5. Proses VerifikasiDokumen
Pada gambar 3.5. dapat dijelaskan bahwa user sebagai penerima dapat
melakukan proses verifikasi dokumen dengan memasukkan file dokumen asli, file
dokumen yang telah diberi tanda tangan digital, dan file kunci publik. Pada saat
penerima melakukan verifikasi dokumen sistem akan membandingkan message digest
yang dihasilkan pada file dokumen asli dengan message digest yang terdapat pada file
dokumen yang telah diberi tanda tangan digital. Jika sama maka sistem akan
menampilkan status dari hasil verifikasi dokumen apakah dokumen tersebut asli atau
sudah diubah.
3.2.Analisis Sistem
Pada sistem ini akan dilakukan analisis terhadap sistem dalam melakukan proses
pembentukan sepasang kunci, pembentukan tanda tangan digital dan verifikasi
dokumen untuk membuktikan otentikasi sebuah dokumen dengan menggunakan
algoritma GOST Digital Signature.
3.2.1. Cara kerja GOST Digital Signature
Berikut ini adalah flowchart proses kerja dari algoritma GOST Digital Signature
untuk otentikasi dan keamanan dari sebuah dokumen yang dapat dilihat pada gambar
Mulai
Gambar 3.6. Flowchart GOST Digital Signature
Seperti yang terlihat pada gambar 3.6. menunjukkan bahwasanya cara kerja
dari algoritma GOST Digital Signature terdiri dari 3 tahapan yaitu pembentukan
sepasang kunci, pembentukan tanda tangan digital (signing), dan verifikasi tanda
tangan digital.
Pada proses pembentukan sepasang kunci, sistem akan menghasilkan kunci
privat yag akan digunakan untuk proses pembentukan tanda tangan digital dan kunci
publik yang akan dibutuhkan pada saat verifikasi tanda tangan digital.
Pada proses pembentukan tanda tangan digital, sistem pertama sekali akan
melakukan proses hashing terhadap dokumen yang ingin diberi tanda tangan digital
sehingga menghasilkan keluaran hash yang disebut message digest. Kemudian
message digest dienkripsi menggunakan kunci privat dan menghasilkan tanda tangan
digital.
Kemudian pengirim mengirimkan dokumen yang telah diberi tanda tangan
digital dan kunci publik kepada penerima. Pada proses verifikasi, penerima akan
melakukan hashing dokumen kembali untuk mendapatkan message digest, maka
secara paralel tanda tangan digital akan didekripsi menggunakan kunci publik.
21
yang dikirimkan. Jika berbeda maka dipastikan bahwa dokumen telah diubah oleh
pihak lain. Proses terakhir adalah sistem akan menampilkan status dari dokumen
tersebut.
3.2.2. Pembentukan sepasang kunci
Proses pembentukan sepasang kunci pada algoritma GOST Digital Signature ini dapat
dilihat pada flowchart dari gambar 3.7. dimana proses ini akan menghasilkan sepasang
kunci yang akan berguna utuk melakukan proses selanjutnya.
Mulai
Gambar 3.7. Flowchart Pembentukan Sepasang Kunci
Berdasarkan gambar 3.7. pertama sekali sistem akan melakukan proses pembentukan
sepasang kunci sebagai berikut:
1. Pilih dua bilangan prima sebagai nilai p dan q. Dalam hal ini bilangan prima p
memilik panjang 1024-Bit dan bilang prima q memiliki panjang 256-Bit dimana q
merupakan pengfaktoran dari p-1.
2. Misal nilai p = 509 dan q = 127, maka nilai q memenuhi pengfaktoran p-1 dimana
127 * 4 = 509 – 1.
4. Misal a = 23, (memenuhi mod p = 1).
5. Tentukan nilai x, yang dalam hal ini x < q.
6. Misal x = 89.
7. Kemudian hitung nilai y, dengan rumus seperti pada persamaan 2.1.
8. Y = (23)89 mod 509.
9. Y = 293.
10. Dalam hal ini parameter yang boleh diketahui secara umum adalah p, q, a. Kunci
privatnya adalah x dan kunci publiknya adalah y.
3.2.3. Pembentukan tanda tangan digital
Proses pembentukan tanda tangan digital merupakan proses hashing yang dilakukan
pada dokumen untuk mendapatkan message digest yang nantinya akan di enkripsi
oleh kunci privat sehingga menghasilkan tanda tangan digital. Proses ini dapat dilihat
pada flowchart seperti yang terdapat dalam gambar 3.8. berikut.
Mulai
23
Berdasarkan gambar 3.8. sistem akan melakukan proses pembentukan tanda
tangan digital seperti berikut:
2. Hitung nilai hash dari pesan dokumen.
3. Misal nilai hash yang didapat H(m) = 4321.
4. Tentukan bilangan acak k dimana k < q.
5. Pada proses sebelumnya diketahui nilai q = 127. Maka permisalan nilai k yang
diambil adalah k = 121.
6. Hitung tanda tangan r, dengan rumus seperti pada persamaan 2.2.
7. Maka r = ((23)121 mod 509) mod 127 = 103
8. Hitung tanda tangan s, dengan rumus seperti pada persamaan 2.3.
9. Maka s = 89 * 103 + 121 (4321) mod 127 = 5
10. Kemudian kirim pesan m dan tanda tangan r dan s.
3.2.4. Verifikasi tanda tangan digital
Proses verifikasi sebuah dokumen dan tanda tangan digital dibutuhkan untuk
membuktikan keaslian dokumen yang secara langsung juga dapat membuktikan
keaslian pengirim. Proses ini dapat dilihat pada flowchart seperti yang terdapat dalam
gambar 3.9. berikut.
Berdasarkan gambar 3.9. untuk melakukan keabsahan sebuah tanda tangan
digital dan membuktikan bahwa dokumen otektik, maka dilakukan proses perhitungan
seperti berikut:
6. Hitung nilai v, dengan rumus seperti pada persamaan 2.4.
7. Maka v = 4321125 mod 127 = 85.
8. Hitung nilai Z1, dengan rumus seperti yang terdapat pada persamaan 2.5.
9. Maka z1 = (5 * 85) mod 127 = 44
10. Hitung nilai Z2, dengan rumus seperti pada persamaan 2.6.
11. Maka z2 = ((127 - 103) * 85) mod 127 = 8.
12. Dengan diperolehnya nilai z1 dan z2, selanjutnya selanjutnya bisa dilakukan
perhitungan dari nilai u.
13. Hitung nilai u, dengan rumus seperti pada persamaan 2.7.
14. Maka u = (2344 * 2938) mod 509) mod 127 = 103.
Dari hasil perhitungan tersebut diketahui bahwa nilai u = 103 dan r = 103,
dimana u = r maka dapat disimpulkan bahwa tanda tangan sah yang berarti dokumen
masih asli (tidak berubah).
3.3.Perancangan Antar Muka (interface)
Perancangan antar muka adalah rancangan tampilan yang menghubungkan pengguna
(user) dengan komputer dengan bantuan program. Salah satu syarat pembuatan antar
muka adalah berorientasi pada kemudahan dalam penggunaannya (user friendly) serta
informatif.
Aplikasi yang akan dibuat adalah aplikasi tanda tangan digital yang dapat
dijalankan oleh user sebagai pengirim dan user sebagai penerima. Aplikasi yang
terdapat pada user sebagai pengirim dirancang untuk proses pembentukan sepasang
kunci, dan pembentukan tanda tangan digital, sedangkan aplikasi untuk user sebagai
penerima dirancang untuk proses verifikasi dokumen dan tanda tangan digital.
Untuk memudahkan User dalam mengoperasikan software ini, maka
rancangan antarmuka menggunakan menu pull down pada masing-masing aplikasi
25
3.3.1. Rancangan halaman pengirim
Halaman ini terdiri dari empat menu, yaitu menu beranda, pembentukan kunci,
pembentukan tanda tangan, dan tentang.
3.3.1.1. Rancangan halaman pembentukan kunci
Berikut adalah rancangan halaman pembentukan kunci:
Gambar 3.10. Rancangan Halaman Pembentukan Kunci
Seperti yang terlihat pada gambar 3.10. rancangan dari halaman pembentukan
kunci ini berfungsi untuk melakukan proses pembentukan sepasang kunci yaitu kunci
privat dan kunci publik yang nantinya akan digunakan untuk melakukan proses
berikutnya. Berikut adalah fungsi-fungsi yang terdapat didalam halaman.
1. Button untuk melakukan pembentukan kunci.
2. Textbox ini digunakan untuk menampilkan bilangan prima p.
3. Textbox ini digunakan untuk menampilkan bilangan sub prima q.
4. Textbox ini berfungsi untuk menampilkan bilangan acak a.
5. Textbox ini adalah tempat untuk menampilkan hasil dari kunci privat yang
didapat.
6. Textbox ini berfungsi untuk menampilkan hasil dari kunci publik yang didapat.
7. Button yang berfungsi untuk menentukan tempat penyimpanan kunci privat dan
Prima, P =
Beranda Pembentukan Kunci Pembentukan Tanda Tangan Tentang
8. Button yang berfungsi untuk menyimpan kunci privat dan kunci publik kedalam
direktori.
3.3.1.2. Rancangan halaman pembentukan tanda tangan
Berikut ini adalah rancangan dari halaman pembentukan tanda tangan:
Gambar 3.11. Rancangan Halaman Pembentukan Tanda Tangan
Berdasarkan gambar 3.11. rancangan halaman ini digunakan untuk
pembentukan tanda tangan digital. Pada proses ini user membutuhkan kunci privat
yang digunakan untuk mengenkripsi dokumen yang telah di hash sehingga
menghasilkan tanda tangan digital. Adapun fungsi-fungsi yang terdapat didalam
rancangan pada halaman ini adalah seperti yang dijelaskan berikut.
1. Button yang digunakan untuk memasukkan dokumen.
2. Button yang digunakan untuk memasukkan kunci privat.
3. Button yang berfungsi untuk melakukan proses hashing pada dokumen dan
menghasilkan tanda tangan digitalr, s.
4. Textbox yang berfungsi untuk menampilkan message digest dari dokumen yang
didapat saat proses hash dilakukan. Masukkan Kunci Privat :
Tanda Tangan Digital dari Pesan :
Beranda Pembentukan Kunci Pembentukan Tanda Tangan Tentang
27
Beranda Verifikasi Tanda Tangan Digital
Browse
Verifikasi
5. Textbox yang berfungsi untuk menampilkan kunci privat.
6. Textbox yang digunakan untuk menampilkan tanda tangan r.
7. Textbox yang digunakan untuk menampilkan tanda tangan s.
3.3.2. Rancangan halaman penerima
Halaman ini terdiri dari dua menu, yaitu menu beranda, dan menu verifikasi tanda
tangan digital. Pada rancangan ini user sebagai penerima hanya bisa melakukan
proses verifikasi tanda tangan digital seperti yang terlihat pada gambar 3.12. berikut.
Gambar 3.12. Rancangan Halaman Verifikasi
Dari gambar 3.12. dapat dilihat bahwa rancangan halaman verifikasi dibangun
untuk keperluan verifikasi dokumen. Pada halaman ini dokumen yang telah diberi
tanda tangan digital akan di hash kembali untuk menghasilkan message digest. Secara
paralel tanda tangan digital akan didekripsi oleh kunci publik yang dimasukkan.
Fungsi-fungsi yang terdapat dalam rancangan halaman ini adalah seperti berikut.
1. Button yang digunakan untuk memasukkan dokumen yang telah diberi tanda
tangan digital..
2. Button yang digunakan untuk memasukkan kunci publik penanda tangan.
Masukkan File Dokumen :
Kunci Publik, Y = Message Digest =
Tempat File Kunci Publik :
Status Tanda Tangan Digital
R =
S =
Digital Signature dari Pesan :
1
2
3
3. Button yang berfungsi untuk melakukan proses hashing kembali pada dokumen
seperti yang dilakukan ketika pengiriman.
4. Textbox yang berfungsi untuk menampilkan status dari dokumen dan tanda tangan
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi
Setelah melewati tahapan pada analisis dan perancangan sistem, maka tahap
selanjutnya adalah implementasi dan pengujiann sistem. Pada bab ini akan
menjelaskan tentang proses pengimplementasian algoritma kedalam sistem dan
melakukan pengujian dengan menjalankan program yang sebagai inputan berupa file
dokumen yang hendak diberi tanda tangan.
4.1.1 Spesifikasi perangkat keras dan perangkat lunak
Spesifikasi perangkat keras padayang digunakan dalam pengujian software adalah:
1. Processor Intel® Core™ i3 CPU U380 @1.33GHz 1.33GHz
2. Memory(RAM) : 2 GB
3. Hard Disk 320 GB
Sedangkan spesifikasi perangkat lunak yang digunakan dalam pembangunan
software adalah software ini dibangun menggunakan windows 8 profesional.
4.1.2 Tampilan implementasi sistem
Untuk mengetahui apakah penelitian ini telah memenuhi tujuan penelitian yang
disampaikan pada bab 1, maka diperlukanlah pengujian terhadap software yang
dibangun dalam penelitian ini. Pada pengujian sistem terdapat dua tahapan yang
dilakukan yaitu pengujian sistem pada aplikasi yang akan digunakan oleh pengirim,
4.1.2.1. Pengujian sistem pada pengirim
1. Halaman Pembentukan Kunci
Pada halaman ini pengirim dapat melakukan proses pembentukan kunci yang
ditunjukkan pada gambar 4.1. berikut.
Gambar 4.1. Tampilan Halaman Pembentukan Kunci
Seperti yang terlihat pada gambar 4.1. pada halaman ini akan dilakukan proses
pembentukan sepasang kunci, yaitu kunci publik dan kunci privat. Pada halaman ini
sistem akan membentuk sepasang kunci ketika button Buat Kunci dipilih. Maka
sepasang kunci akan dikirimkan dalam bentuk file kedalam direktori yang dipilih oleh
pengguna.
Proses pembentukan kunci yang dilakukan menghasilkan rangkaian bilang
desimal dengan panjang tertentu. Pada halaman ini dibutuhkan parameter bilangan
prima, parameter bilangan sub prima, dan parameter a untuk menghasilkan sepasang
kunci. Sepasang kunci yang dihasilkan pada halaman ini akan dibutuhkan untuk
proses selanjutnya, yaitu proses pembentukan tanda tangan digital dan proses
verifikasi tanda tangan digital.
2. Halaman Pembentukan Tanda Tangan
Pada halaman ini pengirimdapat melakukan proses pembentukan tanda tangan seperti
31
Gambar 4.2. Halaman Pembentukan Tanda Tangan Digital
Berdasarkan gambar 4.2. halaman ini digunakan untuk melakukan proses
pembentukan tanda tangan digital. Pada halaman ini pengguna terlebih dahulu
memasukkan file dokumen yang ingin diberi tanda tangan digital dan file kunci privat
yng didapat pada proses sebelumnya, yaitu pada proses pembentukan sepasang kunci.
Pada proses ini, sistem akan melakukan proses hashing pada dokumen yang
dimasukkan ketika pengguna memilih button Buat Tanda Tangan. Proses ini akan
menghasilkan message digest yang kemudian dienkripsi oleh kunci privat sehingga
membentuk tanda tangan digital. Setelah tanda tangan digital terbentuk sistem akan
melekatkannya pada bagian kosong dari dokumen dan sistem mengirimkan dokumen
yang telah dilekatkan tanda tangan digital kedirektori penyimpanan.
4.1.2.2. Pengujian sistem pada penerima
Pada sistem ini user sebagai penerima dapat melakukan proses verifikasi dokumen
untuk membuktikan apakah dokumen tersebut masih asli atau sudah diubah oleh pihak
yang tidak bertanggung jawab.
Sistem akan melakukan proses hashing dokumen kembali untuk menghasilkan
message digest seperti yang dilakukan pada proses pembentukan tanda tangan digital,
maka secara paralel tanda tangan digital yang diterima tadi akan didekripsi oleh kunci
publik. Kemudian sistem akan menampilkan apakah dokumen tersebut asli “valid”
Gambar 4.3. Tampilan Tanda Tangan Valid
Seperti yang terlihat pada gambar 4.3. ketika penerima melakukan proses hashing
dokumen, message digest yang dihasilkan sama dengan message digest yang dikirim,
maka kunci publik yang tersedia mampu membuka tanda tangan digital yang diterima
sehingga sistem menampilkan bahwa status tanda tangan digital adalah valid atau
belum diubah.
33
Seperti yang terlihat pada gambar 4.4. pada proses ini sistem akan membandingkan
antara message digest yang didapat dari proses hashing dokumen oleh penerima
dengan message digest yang dikirim. Jika hasilnya tidak sama maka kunci publik yang
tersedia tidak akan mampu membuka tanda tangan digital. Kemudian sistem akan
menampilkan status dari hasil verifikasi tanda tangan digital bahwa tanda tangan
digital tersebut tidak valid atau dokumen telah diubah oleh pihak lain.
4.2 Tabulasi Hasil Uji
Untuk mengetahui kehandalan algoritma GOST Digital Signature dengan fungsi hash,
maka dilakukan pengujian dengan beberapa data dokumen seperti pada tabel-tabel
dibawah ini.
Tabel 4.1 Pengujian Message Digest dengan variasi string
No Pesan Message Digest (64 string)
1 a 580785745883455806500535109176332390950476803470
4184758931942843
2 Ab 798880802321992965251117038994908700843077995334
5594036415462590
3 Abc 427678479957639021212078493090913259531906797812
3672115398567729
4 Abcd 926894676886079775402508989343138812937691418981
1981530367597793
5 Abcde 104385707360216560234438687041356608395346599212
3094664852322000
6 Abcdef 460182550114652046382023842213561550105625856787
5453547673162789
7 Abcdefg 818240747990935801391151328404537798240599118216
8 Abcdefgh 124260373572514280027269386847437769098406528058
8170638623620927
9 Abcdefghi 816058986500165369441471325266029219929005979079
9395746489560667
10 Abcdefghij 701303537462754010579076213959318485669678682731
4234726562597632
Pada proses pembentukan tanda tangan digital, sistem akan melakukan pad tanda
tangan digital yang telah dihasilkan kedalam field subject pada metadata dokumen
seperti yang terlihat pada gambar 4.5. berikut.
Gambar 4.5. Hasil Tanda Tangan Digital pada Metadata Dokumen
35
Tabel 4.2. Rekapitulasi Hasil Verifikasi
No Dokumen Kunci Publik
Tanda Tangan
Digital Hasil
Verifikasi
S TS S TS S TS
1 1 0 1 0 1 0 Valid
2 1 0 1 0 0 1 Tidak Valid
3 1 0 0 1 1 0 Tidak Valid
4 1 0 0 1 0 1 Tidak Valid
5 0 1 1 0 1 0 Tidak Valid
6 0 1 1 0 0 1 Tidak Valid
7 0 1 0 1 1 0 Tidak Valid
8 0 1 0 1 0 1 Tidak Valid
Keterangan : S = sah, TS = Tidak Sah, 1 = Ya, 0 = Tidak.
Seperti yang terlihat pada tabel 4.2. dapat disimpulkan bahwa hasil verfikasi akan
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melalui proses penyelesaian skripsi yang berjudul “Otentikasi Dokumen
Menggunakan Algoritma GOST Digital Signature”, penulis menarik kesimpulan
sebagai berikut:
1. GOST Digital Signature adalah sebuah fungsi hash satu arah yang mengubah
masukan dengan panjang variabel menjadi keluaran dengan panjang tetap
yaitu 1024-bit.
2. Perangkat lunak GOST Digital Signature ini dapat melakukan pengujian
terhadap data dokumen untuk mengetahui apakah data sudah diubah atau
belum.
3. GOST Digital Signature merupakan salah satu solusi untuk menangani
persoalan otentikasi sebuah pesan.
5.2 Saran
Penulis ingin memberikan beberapa saran yang mungkin berguna untuk
pengembangan lebih lanjut yaitu :
1. Perangkat lunak dapat dikembangkan agar dapat digabungkan dengan
pembelajaran untuk metode kriptografi yang lain.
DAFTAR PUSTAKA
Budiono. 2008. Penerapan Tanda Tangan Digital untuk Otentikasi SMS-Banking.
Program Studi Teknik Informatika, Universitas Institut Teknologi Bandung,
Bandung.
Falani, A.Z. 2014. Sistem Pengaman File dengan Menggunakan Metode RSA
Kriptografi & Digital Signature. Fakultas Ilmu Komputer, Universitas
Narotama, Surabaya.
Fernando, Ricky. 2009. Studi dan Implementasi Tanda Tangan Digital dengan
Menggunakan Algoritma Elgamal. Program Studi Teknik Informatika ITB,
Bandung.
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet Dan Jaringan Komunikasi.
Informatika. Bandung.
Michels, M., Naccache, D., & Petersen, H. 1996. GOST 34.10 – A Brief Overview of
Russia’s DSA. Publish in Computers & Seccurity 15(8) : 725-732. Munir, R. 2006. Kriptografi. Informatika, Bandung.
Piper, F., Murphy, S. 2002. Cryptography A Very Short Introduction. Oxford
University Press. England.
Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta: Penerbit Andi.
Saipul. 2010. Implementasi Tanda Tangan Digital Menggunakan Fungs Hash
Algoritma SHA-256 dan RSA dalam Proses Otentikasi Data. Universitas
Ahmad Dahlan, Yogyakarta.
Schneier, B. 1996. Applied Cryptograph. Second edition, John Willey & Sons.
Sinlae, A.A.J. 2012. Analisis Kriptosistem Menggunakan Digital Signature berbasis
Algoritma SHA-512 dan RSA. Magister Sistem Informasi, Universitas Kristen
Satya Wacana, Salatiga.
Siregar, N. 2012. Strategi Otentikasi Pesan Menggunakan Digital Signature Dengan
Metode DSA (Digital Standard Algorithm). Program Studi Ilmu Komputer,
Universitas Sumatera Utara, Medan.
Stallings, W. 2005. Cryptography and Network Security Principles and Practices.
Supriyanto, Aji. 2009. Pemakaian Kriptografi Kunci Publik untuk Proses Enkripsi dan
Tanda Tangan Digital pada Dokumen E-Mail. Fakultas Teknologi Informasi,
Universitas Stikubank, Semarang.
Tulu, B., Samir, C., Deborah, L., Haiqing, L., Brian, N.H., Thomas, A.H. 2004.
Desain and Implementation of a Digital Signature Solution for a Healthcare
Enterprise. Proceeding of the Tenth Americas Conference on Information
Systems, New York.
Wahyuni, Ana. 2011. Aplikasi Kriptografi untuk Pengamanan E-Dokumen dengan
Metode Hybrid : Biometrik Tandatangan dan DSA (Digital Signature
Algorithm). Universitas Diponegoro, Semarang.
Wijaya, Victor. 2007. Tanda Tangan Digital Untuk Pesan Singkat Dengan Algoritma
RSA Menggunakan J2ME. Program Studi Teknik Informatika Institut
LISTING PROGRAM
1. Pembentukan Kunci
// Pembentukan kunci
Private void buttonBuatKunciActionPerformed(java.awt.event.ActionEvent evt)
{
GOST gost = new GOST();
PQA pqa = new PQA();
BigInteger[] pq = pqa.generation();
BigInteger P = pq[0];
BigInteger Q = pq[1];
BigInteger A = pq[2];
if (gost.syarat1a_cek_pq(P, Q))
{
if (gost.syarat1b_cek_a(P, Q, A))
{
BigInteger X = gost.syarat1c_acak_x(Q);
BigInteger Y = A.modPow(X, P);
}
}
}
private void buttonTempatKunciActionPerformed(java.awt.event.ActionEvent evt)
{
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Pilih File");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)