Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
IMPLEMENTASI TANDA TANGAN DIGITAL
MENGGUNAKAN METODE ONG-SCHNORR-SHAMIR DAN
EUCLIDEAN PADA TEKS
Oleh :
Alfie Amanilla Aziz
104091002785
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta.
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2009 M / 1430 H
i
HALAMAN PERSEMBAHAN
Penulis dapat menyelesaikan skripsi ini tak lepas dari doa dan dukungan
dari banyak pihak. Maka perkenankanlah penulis untuk mengucapkan terima
kasih yang sebesar-besarnya kepada :
1. Ibunda Achyanie dan Ayahanda Abdul Aziz Thojieb, yang tidak
pernah berhenti merawat, mendoakan, dan mendukung penulis dengan
penuh kasih sayang. Terima kasih atas semua pengorbanan, usaha dan
jerih payah Ayah Bunda untuk selalu membuat penulis merasa
bahagia.
2. Adikku, Adinda Mathovani Aziza dan Rilanda Adzhani, yang selalu
penulis banggakan dan sayangi sepenuh hati.
3. Lisya Permatasari, atas semua bentuk dukungan, motivasi dan kasih
sayang yang selalu menemani hari-hari penulis.
4. Sahabat-sahabatku yang selalu setia menemani saat suka dan duka :
Santo, Robby, Alie, Fuadz, Rizky, Dauz, Ketu, Nia, Indy, Emir .
Terima kasih atas persahabatan indah yang kita miliki.
5. Teman-teman TI A 2004 : Eka, Endang, Arif, Zico, Wasis, Samsudin,
Endra, Putro, Andika, Razka, Bajay, Arif, Anggi, Rizal, dan temanku
yang lain. Terima kasih atas keceriaan, dukungan dan motivasi yang
selalu kalian tunjukkan, terutama pada saat-saat sulit yang penulis
alami, sehingga menumbuhkan semangat baru untuk penulis.
viii
6. Adik-adikku, Evan, Jaka, Rogo, Arnot, Iki, Ridwan, Farah, Tri, Tanti,
Intan, Rani, Dian, yang berbakat dalam bidangnya dan memberikan
keceriaan dan hiburan tersendiri bagi penulis.
7. Teman-teman TI dan SI seluruh angkatan.
8. Teman-temanku di Agribisnis dan MIPA.
Semoga Allah selalu melimpahkan rahmat dan karunia-Nya kepada kalian
semua dan melindungi kalian di setiap langkah.
Jakarta, November 2009
Alfie Amanilla Aziz
ix
KATA PENGANTAR
Assalamualaikum wr.wb.
Alangkah nikmat dan indahnya kehidupan ini jika kita mampu mensyukuri
karunia yang diberikan Allah kepada kita semua. Puji syukur kehadirat Ilahi
Robbi yang dengan berkah dan pertolongan-Nya maka penulis dapat
menyelesaikan laporan skripsi ini. Shalawat serta salam semoga senantiasa
tercurah kepada Rasulullah Saw yang sangat menyayangi umatnya dan telah
membawa kita kepada zaman yang terang benderang..
Skripsi yang berjudul IMPLEMENTASI TANDA TANGAN DIGITAL
MENGGUNAKAN METODE ONG-SCHNORR-SHAMIR DAN
EUCLIDEAN PADA TEKS merupakan salah satu tugas wajib mahasiswa
sebagai persyaratan untuk mengambil gelar Strata 1 (S1) pada Program Studi
Teknik Informatika Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Dalam penyusunan skripsi ini, penulis mendapat bimbingan dan bantuan
dari berbagai pihak. Oleh karena itu, perkenankanlah pada kesempatan ini penulis
mengucapkan terima kasih kepada :
1. Bapak DR. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas
Sains dan Teknologi.
2. Bapak Yusuf Durrachman, M.Sc , selaku Ketua Program Studi Teknik
Informatika, Ibu Viva Arifin, M.Kom, selaku Sekretaris Program Studi
Teknik Informatika.
vi
3. Bapak Herlino Nanang, MT dan Ibu Arini, MT, selaku dosen
pembimbing skripsi, yang secara kooperatif telah memberikan
bimbingan, bantuan dan dukungan, baik moral maupun secara teknis.
Terima kasih banyak atas kesediaan Ibu dan Bapak yang telah
meluangkan waktu, tenaga dan pikirannya untuk membimbing penulis
dalam penyusunan skripsi ini.
4. Seluruh dosen yang telah membagikan ilmunya kepada penulis dengan
sabar dan ikhlas.
5. Ibunda Achyanie dan Ayahanda Abdul Aziz Thojieb, atas kasih sayang
tulusnya sepanjang masa.
Pada kesempatan ini pula, penulsi ingin memohon maaf yang sebesar-
besarnya kepada semua pihak apabila sewaktu menjalankan skripsi ini terdapat
hal-hal yang kurang berkenan..
Penulis menyadari bahwa masih banyak kekurangan dari laporan skripsi
ini, baik dari materi maupun teknik penyajiannya, mengingat minimnya
pengetahuan dan pengalaman penulis. Untuk itu segala kritik dan saran, serta
pengembangan selanjutnya, sangat diharapkan oleh penulis. Semoga laporan
skripsi ini dapat memenuhi syarat dan bermanfaat bagi siapa saja yang
membacanya.
Wassalamualaikum wr.wb.
Jakarta, November 2009
Alfie Amanilla Aziz
vii
DAFTAR ISTILAH
digital signature : Tanda Tangan Digital, suatu mekanisme otentikasi
yang memungkinkan pembuat pesan menambahkan
sebuah kode yang bertindak sebagai tanda tangannya
euclidean : suatu algoritma untuk mencari pembagi bersama
terbesar
GCD : Greatest Common Divisor, pembagi bersama terbesar
Kriptografi : ilmu yang mempelajari tentang teknik-teknik
matematika yang berhubungan dengan aspek-aspek
keamanan informasi seperti kerahasiaan, integritas data,
serta otentikasi
Plaintext : informasi asli sebelum dienkripsi atau teks terang
Enkripsi : suatu proses transformasi plaintext menjadi ciphertext.
Ciphertext : informasi acak yang berasal dari plaintext yang telah
dimasukkan kedalam fungsi dan algoritma-algoritma
matematika
Dekripsi : suatu proses pengubahan ciphertext menjadi plaintext
RAD : Rapid Application Development, merupakan salah satu
metode pengembangan sistem yang diperkenalkan
James Martin pada tahun 1991
UML : Singkatan dari Unified Modelling Language, notasi
yang lengkap untuk membuat visualisasi modern.
xxi
DAFTAR GAMBAR
Gambar 2.1 Proses kriptografi………………………………………... 11
Gambar 2.2 Klasifikasi Kriptografi Secara Umum…………………… 16
Gambar 2.3 Proses Hash………………………………………………. 29
Gambar 2.4 Proses Tanda tangan digital……………………………… 33
Gambar 2.5 Menu Utama Visual Basic………………………………… 40
Gambar 2.6 Notasi Aktor……..……………………………………… 46
Gambar 2.7 Notasi Class……………………………………………… 46
Gambar 2.8 Notasi Use Case ………………………………………… 47
Gambar 2.9 Notasi Interaction .……………………………………….. 47
Gambar 2.10 Notasi Interface ………………………………………….. 47
Gambar 2.11 Notasi Package.................................................................... 48
Gambar 2.12 Notasi Note …….………………………………………… 48
Gambar 2.13 Notasi Dependency ………………………………………. 49
Gambar 2.14 Notasi Association................................................................ 49
Gambar 2.15 Notasi Generalization …………………………………… 49
Gambar 2.16 Notasi Realization .……………………………………… 49
Gambar 3.1 Skema Pengembangan Sistem RAD ……………………… 52
Gambar 3.2 Ilustrasi Metodologi Penelitian………………………..…… 56
Gambar 4.1 Use Case Diagram ………………………………………. 61
Gambar 4.2 Class Diagram ………………...….……………………… 62
Gambar 4.3 Sequence Diagram ………….…………………………… 63
xvi
Gambar 4.4 Activity Diagram ………………………………………… 64
Gambar 4.5 Rancangan Menu Halaman Utama Aplikasi ……………… 65
Gambar 4.6 Rancangan Menu Pembuka ……………………………… 66
Gambar 4.7 Rancangan Menu Langkah Matematik Ong-Schnorr-Shamir 66
Gambar 4.8 Rancang Menu Hash File ………………………………… 66
Gambar 4.9 Rancangan Menu Verifikasi ……………………………… 67
Gambar 4.10 Rancangan Menu Aplikasi ………….………………… 67
Gambar 4.11 Menjalankan Software Visual Basic 6.0………………… 77
Gambar 4.12 Tampilan Awal Software Visual Basic 6.0……………… 77
Gambar 4.13 Tampilan Project Baru ………………….………..……… 78
Gambar 4.14 Halaman Kerja New Project …………………….……… 79
Gambar 4.15 Contoh Pengaturan Tata letak Pada Project VB ………… 79
Gambar 4.16 Membuka VB Code dari Project Yang Telah Dirancang . 80
Gambar 4.17 Gambar tampilan VB Code …………….……………….. 80
Gambar 4.18 Tampilan Halaman Utama Aplikasi Tanda Tangan Digital 82
Gambar 4.19 Tampilan Halaman Awal Pembuka ……………………… 82
Gambar 4.20 Tampilan Halaman Hitung n dan k ………………………. 83
Gambar 4.21 Tampilan Halaman Setelah input n dan k………………. 83
Gambar 4.22 Tampilan Halaman Hash File ……….…………………… 84
Gambar 4.23 Tampilan Halaman File yang akan di Hash ……….…… 84
Gambar 4.24 Tampilan Halaman Nilai Hash yang di Tanda Tangani…... 85
Gambar 4.25 Tampilan Halaman Verifikasi Pesan……………………… 85
Gambar 4.26 Tampilan Menu Aplikasi Tanda Tangan Digital………….. 86
xvii
Gambar 4.27 Tampilan Aplikasi yang telah di Tanda Tangani………. 86
Gambar 4.28 Hasil Verifikasi 1………………………………………… 88
Gambar 4.29 Hasil Verifikasi 2………………………………………… 88
Gambar 4.30 Hasil Verifikasi 3………………………………………… 89
Gambar 4.31 Hasil Verifikasi 4………………………………………… 89
Gambar 4.32 Hasil Verifikasi 5………………………………………… 90
xviii
DAFTAR TABEL
Tabel 2.1 Representasi Desimal, Heksadesimal, dan bit ……………… 13
Tabel 2.2 Contoh tabel Cayley F2 perkalian dan penjumlahan ………… 22
Tabel 2.3 Contoh tabel Cayley F7 perkalian dan penjumlahan ….…… 22
Tabel 2.4 Beberapa algoritma Fungsi Hash …………………………… 29
Tabel 2.5 Perbandingan Metode Ong-Schnorr-Shamir Dengan Elgamal.. 36
Tabel 2.6 Jenis Aplikasi pada Kotak Dialog New Project………………. 41
Tabel 4.1 Hasil Pengujian Pada Teks……………………………………. 86
xix
DAFTAR LAMPIRAN
LAMPIRAN A SOURCE CODE PROGRAM…………….….................. 93
1. Menu Utama Aplikasi……………………………… 93
2. Menu Hash File……………………………………… 94
xx
108
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kemajuan dan perkembangan teknologi dewasa ini telah berpengaruh
pada hampir seluruh kehidupan manusia, tidak terkecuali dalam hal
berkomunikasi. Dengan adanya internet, komunikasi dapat dilakukan tanpa
adanya batasan jarak.
Penggunaan internet sangat bermacam-macam diantaranya untuk bisnis,
perdagangan, industri, dan juga pemerintahan. Pada umumnya informasi-
informasi yang dikirimkan sangatlah penting. Sehingga permasalahan akan
keamanan informasi tersebut dipertanyakan. Pertanyaan ini dapat dijawab
salah satunya dengan kriptografi kunci publik khususnya tanda tangan digital.
Tanda tangan digital (digital signature) adalah suatu mekanisme
otentikasi yang memungkinkan pembuat pesan menambahkan sebuah kode
yang bertindak sebagai tanda tangannya. Skema (scheme) yang dapat
digunakan untuk melakukan proses tanda tangan digital terhadap suatu pesan
(message) juga ada bermacam-macam. Salah satu skemanya adalah skema
Ong-Schnorr-Shamir.
Tanda tangan digital memungkinkan penerima informasi untuk menguji
terlebih dahulu keaslian informasi yang didapat dan juga untuk meyakinkan
bahwa data yang diterimanya itu dalam keadaan utuh. Oleh karena itu, tanda
1
tangan digital kunci publik (public key digital signature) menyediakan
layanan authentication (keaslian) dan data integrity (keutuhan data). Selain
itu, tanda tangan digital juga menyediakan layanan non-repudiation, yang
artinya melindungi pengirim dari sebuah klaim yang menyatakan bahwa dia
telah mengirim informasi padahal tidak.
Skema Ong-Schnorr-Shamir merupakan skema tanda tangan digital
yang berdasarkan pada persamaan linier sekuensial (sequentially linearized
equations). Skema tanda tangan digital ini menggunakan polinomial
modulo n. Keamanan dari skema ini didasarkan pada kesulitan untuk
memecahkan persamaan polinomial. Versi dari skema yang dideskripsikan
pada pembahasan kali ini adalah berdasarkan polinominal kuadratik.
Pada skema Ong-Schnorr-Shamir menggunakan algoritma Euclidean.
Algoritma ini digunakan untuk mencari GCD dari 2 buah bilangan. Jika
kedua bilangan tersebut relatif prima satu dengan lainnya maka hasil GCD-
nya harus bernilai 1 jika hasil GCD tidak bernilai 1 maka kedua bilangan
tersebut tidak saling relatif prima. Perhitungan dalam metode tanda tangan
digital Ong-Schnorr-Shamir akan menghasilkan desimal dalam jumlah yang
besar. Karenanya, bilangan-bilangan perlu dibatasi jumlah desimalnya atau
dibulatkan.
Atas dasar pemikiran tersebut, maka penulis tertarik untuk menjelaskan
secara terperinci prosedur kerja metode Ong-Schnorr-Shamir dalam
penerapannya pada tanda tangan digital. Dengan aplikasi yang penulis buat,
diharapkan dapat memberi pemahaman yang mendalam bagaimana proses
kerja tanda tangan digital menggunakan metode Ong-Schnorr-Shamir.
2
1.2 Perumusan Masalah
Berdasarkan latar belakang pemilihan judul, maka yang menjadi
permasalahan adalah :
1. Bagaimana mensimulasikan prosedur kerja Digital Signature Scheme
Ong-Schnorr-Shamir.
2. Bagaimana membuat aplikasi Digital Signature Scheme Ong-Schnorr-
Shamir.
3. Bagaimana skema Ong-Schnorr-Shamir Digital Signature dapat
digunakan untuk menjaga keaslian data (authentication) dan keutuhan
data (data integrity).
4. Bagaimana proses verifikasi Ong-Schnorr-Shamir Digital Signature.
1.3 Batasan Masalah
Karena keterbatasan waktu dan pengetahuan penulis, maka ruang
lingkup permasalahan dalam merancang perangkat lunak ini antara lain :
1. Pembangkitan bilangan acak yang akan digunakan menggunakan
PRNG (Pseudo Random Number Generator Geffe).
2. Pengecekan bilangan prima relatif menggunakan algoritma GCD
yang dikembangkan oleh Euclid.
3. Perangkat lunak akan menjelaskan prosedur kerja dari algoritma
Extended Euclidean dalam menghitung nilai inverse k.
3
4. Perangkat lunak akan menampilkan langkah-langkah proses tanda
tangan (signature) dan verifikasi (verification).\
5. Perangkat lunak tidak menjelaskan proses dari pengiriman pesan.
6. Proses verifikasi akan dijelaskan dengan menggunakan bantuan
simulasi hitung.
7. Perangkat lunak juga akan menampilkan teori-teori dasar yang
berhubungan dengan skema tanda tangan digital ini.
8. Perangkat lunak dirancang dengan menggunakan bahasa
pemrograman Visual Basic 6.0
1.4 Tujuan Penelitian
Berdasarkan uraian latar belakang masalah, maka tujuan penyusunan
skripsi yang berjudul Implementasi Tanda Tangan Digital Menggunakan
Metode Ong-Schnorr-Shamir dan Euclidean Pada Teks, ini adalah:
1. Merancang suatu perangkat lunak yang mampu untuk menjelaskan
secara terperinci prosedur kerja dari Digital Signature Scheme Ong-
Schnorr-Shamir.
2. Mengetahui tanda tangan digital yang berhasil di verifikasi.
3. Mengaplikasikan kriptografi kunci public khususnya dalam tanda
tangan digital.
4
1.5 Manfaat Penelitian
Sesuai permasalahn dan tujuan yang telah disebutkan di atas, maka
manfaat dari penyusunan skripsi ini, antara lain :
1. Membantu pemahaman tentang kriptografi terutama mengenai metode
Digital Signature Scheme dengan Ong-Schnorr-Shamir.
2. Menghasilkan perangkat lunak yang dapat juga digunakan sebagai
fasilitas pendukung dalam proses belajar mengajar untuk materi
kriptografi, khususnya materi tanda tangan digital.
3. Memberikan referensi bagi semua pihak untuk mengetahui lebih
lanjut tentang teori-teori yang berhubungan dengan Digital Signature
Scheme dan Ong-Schnorr-Shamir.
4. Memperdalam wawasan bagi penulis dan memberikan pengetahuan
dan informasi tentang penggunaan Ong-Schnorr-Shamir serta
penerapannya.
1.6 Metodologi Penelitian
Dalam rangka menyusun skripsi ini, diperlukan data-data serta
informasi yang lengkap sebagai bahan yang dapat mendukung kebenaran
materi uraian dan pembahasan, oleh karena itu sebelum menyusun skripsi ini,
dalam persiapannya terlebih dahulu dilakukan riset atau penelitian untuk
menjaring data serta informasi atau bahan materi yang diperlukan. Adapun
metodologi penelitian yang dilakukan adalah sebagai berikut
5
1.6.1 Metode Pengumpulan Data
1. Metode literatur digunakan penulis karena melihat penelitian yang
sudah ada dan juga membaca beberapa buku sebagai bahan
referensi serta mengumpulkan data dari situs internet.
2. metode studi pustaka merupakan pengumpulan data dan informasi
dengan cara membaca buku-buku referensi, e-book dan website
yang berhubungan dengan penelitian ini, seperti situs mengenai
pemrograman Visual Basic, algoritma tanda tangan digital,
kriptografi dan sebagainya.
1.6.2 Metode Pengembangan Sistem
Metode pengembangan sistem yang penulis gunakan adalah
metode RAD (Rapid Application Development) yang dikembangkan
oleh James Martin. Menurut Kendall & Kendall (2002), tahap-tahap
metode RAD meliputi :
1. Fase Menentukan Syarat-Syarat
Yaitu menentukan tujuan dan syarat-syarat informasi.
2. Fase Perancangan
Yaitu perancangan proses-proses yang akan terjadi dalam sistem
dan perancangan antar muka.
3. Fase Konstruksi
Yaitu tahap dimana dilakukan pengkodean terhadap rancangan-
rancangan yang telah didefinisikan.
6
4. Fase Pelaksanaan
Pada tahap ini dilakukan pengujian terhadap sistem.
1.7 Sistematika Penulisan
Dalam skripsi ini, pembahsan yang penulis sajikan terbagi dalam
lima bab, yang secara singkat akan diuraikan sebagai berikut :
BAB I PENDAHULUAN
Dalam bab ini terdiri dari tujuh sub bab yaitu : Latar
Belakang, Perumusan Masalah, Batasan Masalah, Tujuan,
Manfaat, Metodologi Penelitian dan Sistematika Penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori-teori yang diperlukan untuk menunjang
proses penulisan dalam sejumlah materi penunjang yang
akan digunakan dalam proses tanda tangan digital.
BAB III METODOLOGI PENELITIAN
Bab ini menguraikan metode penelitian yang digunakan
penulis,baik itu metode pengumpulan data maupun metode
pengembangan sistem.
7
BAB IV PEMBAHASAN
Pada bab ini penulis akan menjelaskan program dan
implementasinya yang menggunakan beberapa tahap dari
metode pengembangan sistem yang dipilih penulis.
BAB V PENUTUP
Bab ini merupakan penutup yang berisi kesimpulan
berkenaan dengan hasil pembahasan masalah yang
diperoleh dari penyusunan tugas akhir ini serta beberapa
saran untuk pengembangan lebih lanjut.
8
BAB II
LANDASAN TEORI
2.1 Kriptografi
Kriptografi berasal dari Bahasa Yunani, yaitu “cryptos” yang artinya
“secret” atau rahasia dan “graphein” yang artinya “writing” atau tulisan. Jadi
kriptografi berarti juga “secret writing” atau tulisan rahasia. Dalam beberapa
referensi juga ada beberapa definisi kriptografi, diantaranya :
1. Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan[3].
2. Kriptografi adalah ilmu yang mempelajari tentang teknik-teknik matematika
yang berhubungan dengan aspek-aspek keamanan informasi seperti
kerahasiaan, integritas data, serta otentikasi[2].
Secara keseluruhan dapat disimpulkan bahwa kriptografi adalah suatu
ilmu atau seni untuk merahasiakan sebuah informasi penting dengan fungsi dan
algoritma-algoritma matematika sehingga informasi tersebut tidak diketahui
oleh orang yang tidak berhak.
Kriptografi memiliki sejarah yang panjang dan mengagumkan. Informasi
mengenai sejarah kriptografi ini dapat ditemukan dalam buku karangan David
Kahn yang berjudul the codebreakers [4]. Contohnya tulisan hieroglyph yang
digunakan bangsa Mesir 4000 SM serta penggunaan kriptografi pada abad ke-
20. Buku tersebut selesai dibuat pada tahun 1963 dan banyak menceritakan
tentang sejarah kriptografi yang mayoritas digunakan dalam kalangan militer,
diplomatik, dan pemerintahan pada umumnya.
9
Beberapa istilah yang sebaiknya diketahui dalam bidang ilmu kriptografi
diantaranya sebagai berikut :
1. Plaintext adalah informasi asli sebelum dienkripsi atau teks terang.
2. Enkripsi adalah suatu proses transformasi plaintext menjadi ciphertext.
3. Ciphertext adalah informasi acak yang berasal dari plaintext yang telah
dimasukkan kedalam fungsi dan algoritma-algoritma matematika.
4. Dekripsi adalah suatu proses pengubahan ciphertext menjadi plaintext.
5. Kriptoanalisis adalah ilmu dan seni untuk memecahkan cipherteks menjadi
plainteks tanpa mengetahui kunci yang digunakan.
6. Kriptoanalis adalah orang yang melakukan kriptoanalisis.
7. Kriptologi adalah ilmu tentang kriptografi dan kriptoanalisis.
8. Sistem Kriptografi adalah kumpulan yang terdiri dari algoritma kriptografi,
semua plainteks dan cipherteks yang mungkin, dan kunci.
9. Penyadap adalah orang yang ingin mencoba mengetahui pesan selama
pesan dikirim/ditransmisikan.
Dalam teknologi informasi, telah dan sedang dikembangkan cara-cara
untuk menangkal berbagai bentuk serangan semacam penyadapan dan
pengubahan data yang dikirimkan. Salah satu cara yang ditempuh untuk
mengatasi masalah ini ialah menggunakan kriptografi yang menggunakan
transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh
pihak yang tidak berhak mengakses.
10
Transformasi ini memberikan solusi pada dua macam masalah keamanan
data, yaitu masalah privasi dan keotentikan. Privasi mengandung arti bahwa
data yang dikirimkan hanya dapat dimengerti oleh penerima yang berhak.
Sedangkan keotentikan mencegah pihak ketiga untuk mengirimkan data yang
salah atau mengubah data yang dikirimkan.
Gambar 2.1 Proses kriptografi
Algoritma kriptografi terus berkembang sesuai dengan perkembangan
teknologi komunikasi data. Sampai saat ini terdapat berbagai macam algoritma
dengan tujuan penggunaan yang berbeda. Contohnya, untuk enkripsi data,
gambar dan suara, namun tujuan utama dari masing-masing algoritma dari
kriptografi dalam Stallings [5], yaitu :
1. Kerahasiaan
Kerahasiaan data digunakan untuk menjaga isi informasi dari semua
pihak kecuali yang berhak mendapatkan informasi tersebut. Ada beberapa
cara dalam menjaga kerahasiaan informasi, mulai dari proteksi fisik seperti
penyimpanan data ditempat khusus sampai kepada algoritma matematika
yang mengubah data informasi menjadi data acak .
11
2. Integritas Data
Integritas data bertujuan untuk menjaga adanya perubahan yang tidak
diinginkan terhadap data. Untuk menjamin integritas data maka harus
mempunyai kemampuan untuk mendeteksi perubahan data oleh sekelompok
orang yang tidak berkepentingan. Perubahan data dapat berupa pemasukan
data baru, penghapusan dan penukaran data.
3. Otentikasi
Otentikasi adalah layanan yang berhubungan dengan identifikasi. Baik
mengidentifikasi pelaku maupun informasi itu sendiri. Dua pihak yang ingin
bergabung dalam sebuah komunikasi harus mengidentifikasi satu sama
lainnya. Informasi yang dikirim dalam sebuah paket harus diidentifikasi
sesuai dengan keasliannya berupa tanggal, isi data, waktu kirim, dan
sebagainya. Untuk alasan inilah aspek kriptografi biasanya dibagi menjadi
dua bagian yaitu identifikasi pelaku dan identifikasi keaslian data.
4. Nirpenyangkalan
Menghindari penyangkalan berguna untuk mencegah seorang pelaku
untuk menyangkal komitmen atau tindakan yang telah dilakukannya.
2.2 Kriptografi Modern
Perbedaan kriptografi modern dengan kriptografi klasik, yaitu pada
kriptografi modern sudah menggunakan perhitungan komputasi atau program
dalam pengoperasiannya, yang berfungsi mengamankan data baik yang
12
Dec Hexa Bit 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011
Dec Hexa Bit 12 C 1100 13 D 1101 14 E 1110 15 F 1111
ditransfer melalui jaringan komputer maupun tidak. Hal ini sangat berguna
untuk keamanan, integritas, dan keaslian data.
Pada kriptografi modern umumnya karakter-karakter yang akan
dioperasikan seperti plainteks dan kunci, maupun cipherteks dikonversikan
kedalam suatu urutan digit biner yaitu 0 dan 1, yang umumnya digunakan untuk
skema pengkodean American Standart Code for Information Interchange
(ASCII).
Berdasarkan kunci yang digunakan dalam kriptografi modern dibagi
menjadi dua, kunci simetris dan asimetris. Algoritma kriptografi kunci simetris,
yaitu : pertama stream cipher dan kedua blok cipher. Pada stream cipher
metode yang digunakan dengan sejumlah urutan dari bit dienkripsi secara bit
per bit. Untuk blok cipher, suatu urutan pembagian dibentuk dalam ukuran blok
yang diinginkan sehingga dapat dioperasikan blok per blok.
Berikut ini adalah contoh penulisan dan representasi bilangan desimal
(basis 10), heksadesimal (basis 16), dan bit (basis dua). Dapat dilihat bahwa
dengan menggunakan 4 bit akan didapatkan bilangan desimal dari 0 sampai
dengan 15, seperti berikut ini :
Tabel 2.1 Representasi Desimal, Heksadesimal, dan bit
Dec Hexa Bit 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101
13
Algoritma kunci lainnya adalah algoritma asimetris atau biasa disebut
dengan kriptografi kunci-publik, sebab kunci untuk enkripsi diumumkan kepada
publik sehingga dapat diketahui oleh siapapun, sedangkan kunci untuk
mendekripsikannya hanya diketahui oleh penerima pesan karena itu rahasia.
Oleh karena itu, kunci yang digunakan untuk enkripsi disebut kunci publik,
sedangkan kunci yang digunakan untuk dekripsi disebut kunci pribadi atau
kunci rahasia.
Skema enkripsi dan dekripsi algoritma simetris dan asimetris ini dapat
dilihat pada lampiran 1. Pada skema tersebut terlihat bahwa perbedaan antara
kedua algoritma adalah kunci yang digunakan. Algoritma simetris
menggunakan satu kunci yang sifatnya rahasia untuk enkripsi maupun dekripsi,
sedangkan algoritma asimetris menggunakan dua kunci yang sifatnya rahasia
untuk dekripsi dan umum untuk enkripsi.
Persamaan enkripsi dan dekripsi algoritma simetris dan asimetris dapat
dilihat sebagai berikut :
1. Enkripsi dan dekripsi algoritma simetris
C = E Pb ( P ) ( 2.1 )
P = D Px ( C ) ( 2.2 )
2. Enkripsi dan dekripsi algoritma asimetris
C = E Px ( P ) ( 2.1 )
P = D Pb ( C ) ( 2.2 )
Keterangan : Pb = kunci publik, Px = kunci rahasia
14
Algoritma menggunakan kunci publik pada umumnya mempunyai banyak
kelebihan dan secara umum memiliki dua karakteristik :
1. Komputasi untuk enkripsi/dekripsi pesan mudah dilakukan.
2. Secara komputasi hampir tidak mungkin menurunkan kunci privat, bila
pasangan kunci publik telah diketahui.
2.3 Kriptografi Kunci Publik
Kriptografi kunci publik merupakan bagian dari kriptografi modern yang
sering digunakan dalam hal komunikasi menggunakan alat elektronik seperti
mengirim e-mail dengan komputer. Kriptografi kunci publik dapat dianalogikan
seperti kotak surat yang terkunci dan memiliki lubang untuk memasukan surat.
Setiap orang dapat memasukkan surat kedalam kotak tersebut, tetapi hanya
pemilik kotak yang dapat membuka kotak dan membaca surat di dalamnya
karena hanya dia yang memiliki kunci.
Diffie dan Heliman merupakan pencetus dari sistem kriptografi ini sekitar
tahun 1976 [3]. Tetapi yang pertama kali merealisasikannya sekitar tahun 1977
adalah Rivest, Shamir, dan Adleman, atau lebih dikenal dengan sistem
kriptografi RSA [3]. Semenjak itu beberapa sistem kunci publik diajukan
dengan tingkat keamanan yang berbeda-beda dalam hal permasalahan
komputasinya antara lain, yaitu RSA, Markle-Hellman Knapsack, McEliece,
ElGamal, Chor-Rivest, Eliptic Curve, Ong-Schnorr-Shamir.
15
Gambar 2.2 Klasifikasi Kriptografi Secara Umum
2.4 Konsep Dasar Matematika
Konsep ini sangat diperlukan dalam mempelajari sistem maupun
komputasi kriptografi, karena merupakan teori-teori mendasar yang berguna
untuk pemahaman dari suatu kajian teori. Jika teori-teori mendasar tersebut
telah dikuasai, maka tidak akan terlalu sulit untuk memahami sistem dan
komputasi kriptografi tersebut.
2.4.1 Integer
Misalkan diberikan himpunan semua bilangan bulat (integer)
yang dinotasikan dengan Z dan N menyatakan himpunan semua
bilangan bulat positif. Untuk himpuan berhingga A, jumlah elemen pada
himpunan A dinotasikan dengan # A. Sebuah relasi ekuivalen pada A
adalah sebuah relasi binary ~ pada himpunan A, untuk setiap x, y, z є A
terdiri dari :
1. Refleksif : x ~ x
2. Simetris : jika x ~ y, maka y ~ x
3. Transitif : jika x ~ y dan y ~ z , maka x ~ z
16
Bilangan bulat pada kuliah teori bilangan merupakan konsep
mendasar dalam memahami kriptografi, khususnya pada sistem
kriptografi kunci publik. Bilangan bulat adalah bilangan yang tidak
mempunyai pecahan desimal, seperti 8, 11, 297, -30, 0.
Menurut definisi tentang elemen identitas terhadap
penjumlahan dan sifat-sifat dari bilangan bulat adalah sebagai berikut :
Definisi 2.1 :
Jika N bilangan bulat, maka n + (-n) – (-n) + n = 0. (-n) disebut
lawan dari (inverse penjumlahan dari) n, dan 0 disebut elemen identitas
terhadap penjumlahan.
Definisi 2.2 :
Sistem bilangan bulat terdiri atas himpunan Z = { ..., -3,-2,-1, 0,
1, 2, 3, ...}dengan operasi biner penjumlahan (+) dan perkalian (.).
Untuk a, b, dan c bilangan-bilangan bulat sembarang, sistem tersebut
mempunyai sifat-sifat sebagai berikut :
1. Tertutup terhadap penjumlahan dan perkalian
a, b є Z a + b є z dan a.b є z.
2. Komutatif
a + b = b + a dan a.b = b.a
3. Assosiatif
( a + b ) + c = a + ( b + c ) dan ( a .b ) . c = a . ( b . c)
4. Untuk setiap a, ada dengan tunggal elemen 0 dan Z, sedemikian
sehingga a + 0 = 0 + a = a dan a .1 = 1 .a = a.
17
Elemen identitas dari penjumlahan dan perkalian yaitu 0 dan 1.
5. Untuk setiap a, ada dengan tunggal elemen b dalam Z, sedemikian
sehingga a + b = 0, b disebut invers dari a terhadap operasi
penjumlahan yang dinotasikan dengan –a .
6. Distributif
a .( b + c ) = ( a . b ) + ( a . c ) dan (a + b ) . c = ( a . c ) + ( b . c)
2.4.2 Group Ring dan Field
Group, ring dan field merupakan elemen mendasar dari cabang
matematika yang dikenal dengan aljabar abstrak atau aljabar modern[5].
Aljabar abstrak merupakan suatu kajian yang lebih mengarah ke suatu
himpunan elemen-elemennya dapat dioperasikan secara aljabar. Operasi
yang dilakukan tergantung dari peraturan yang telah dibuat, misalnya
notasi yang telah umum dikenal, yaitu penjumlahan dan perkalian dalam
bilangan.
Adapun sifat-sifat dari group, ring dan field yang akan dijelaskan
pada sub bab 2.4.2.1 sampai dengan sub bab 2.4.2.3 bahasan
selanjutnya.
2.4.2.1 Group
Sebuah group G, dinotasikan dengan {G, *} adalah
himpunan dari elemen-elemen dengan operasi binernya ( * )
dan memenuhi beberapa aksioma berikut :
1. Tertutup : jika a dan b є G, maka a * b є G
2. Asosiatif : a *( b*c) = (a* b) * c untuk setiap a, b,
18
c є G.
3. Elemen Identitas : ada suatu elemen c є G, sehingga
a*e=e*a=a untuk setiap a є G.
4. Elemen Inverse : untuk setiap a є G ada suatu elemen
a’є G, sehingga a * a’= a’*a = c
Suatu grup dinyatakan abelian jika memenuhi kondisi
tambahan seperti di bawah ini :
5. Komutatif : a * b = b * a untuk setiap a, b є G.
Suatu grup G dikatakan siklis jika tedapat g є G
sedemikian sehingga setiap elemen G dapat ditemukan dengan
perpangkatan bilangan bulat k atau gk. Bilangan g disebut
generator dari grup tersebut, ditulis G = {g}.
2.4.2.2 Ring
Suatu ring R, dinotasikan dengan (R, +, ● ), adalah
himpunan dari elemen-elemen dengan dua operasi biner seperti
(+) dan ( ● ) serta memenuhi aksioma-aksioma berikut :
1-5. R adalah group komutatif dengan operasi penjumlahan.
Berarti bahwa, R memenuhi aksioma 1 sampai dengan
5.
6. Tertutup terhadap perkalian : jika a dan b є R, maka
a ● b є R.
7. Asosiatif terhadap perkalian : a ● ( b ●c) = (a ●b) ●c
untuk setiap a,b, c є R.
19
10. Perkalian identitas :
11.
Tidak ada pembagi 0
:
8. Distributif : a● (b + c) = a●b + a●c
untuk setiap a,b,c є R.
(a+b) ●c = a ●c + b ●c
untuk setiap a,b,c є R.
Suatu ring dikatakan komutatif jika memenuhi
kondisi tambahan berikut :
9. Komutatif terhadap perkalian : a ●b = b ●a untuk setiap a,
b є R.
Selanjutnya definisi integral domain, yakni merupakan
ring yang komutatif dan memenuhi aksioma-aksioma berikut :
Ada elemen 1 pada R,
sehingga a●1 = 1●a = a
untuk setiap a є R.
Jika a,bєR dan a ●b = 0
Maka a = 0 atau b = 0.
2.4.2.3 Field
Sebuah field F, dinotasikan dengan {F, +, ●}, adalah
sebuah himpunan dari elemen-elemen dengan dua operasi
biner yaitu (+) dan ( ● ), sehingga untuk setiap a, b, c є F
memenuhi beberapa aksioma berikut :
1-11 F adalah suatu integral domain, berarti bahwa F
memenuhi aksioma-aksioma mulai dari 1-5 dan 6-11.
12. Inverse perkalian : untuk setiap a є F, kecuali 0, ada
20
suatu elemen a-1 є F. Sehingga
a ● a-1
= (a-1
) ● a = 1.
Dari penjelasan mengenai group, Ring, dan field di atas
dapat diambil kesimpulan bahwa group merupakan bagian dari
ring dan ring merupakan bagian dari field, sehingga group
merupakan elemen terkecil dari sebuah field. Penjelasan
mengenai group, Ring, dan field dapat dilihat menggunakan
skema yang terdapat pada lampiran 2.
2.4.3 Finite Field
Lapangan berhingga (finite fields) adalah field sederhana yang
elemennya terbatas[5]. Finite field order p dapat didefinisikan dengan
menggunakan aritmatika modulo p. Dalam dunia kriptografi finite field
telah menjadi sesuatu yang penting. Sebuah bilangan dari algoritma
kriptografi sangat bergantung pada ruang lingkup dari finite field,
sebagai contoh pada algoritma kriptografi advanced encryption standard
(AES) dan elliptic curve.
Untuk suatu bilangan prima p, maka Fp adalah finite fields
berorder p dengan anggotanya adalah {0,1,2,..,p-1} serta operasi
penjumlahan dan perkalian dilakukan dalam modulus p.
Aritmatika finite fields dengan operasi penjumlahan dan
perkalian yang dilakukan dalam modulus 2 dan modulus 7 dapat dilihat
21
• 0 1
0 0 0
1 0 1
menggunakan tabel Cayley[10], seperti tabel 2.2 dan tabel 2.3 berikut
ini:
Tabel 2.2 Contoh tabel Cayley F2 perkalian dan penjumlahan
+ 0 1
0 0 1
1 1 0
Tabel 2.3 Contoh tabel Cayley F7 perkalian dan penjumlahan
+ 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6
1 1 2 3 4 5 6 0
2 2 3 4 5 6 0 1
3 3 4 5 6 0 1 2
4 4 5 6 0 1 2 3
5 5 6 0 1 2 3 4
6 6 0 1 2 3 4 5
• 0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
22
2.4.4 Bilangan Prima
Bilangan bulat positif p (p > 1) disebut bilangan prima jika
pembaginya hanya 1 dan p [5]. Sebagai contoh 101 adalah
bilangan prima karena ia hanya habis dibagi 1 dan 101. Seluruh
bilangan prima adalah ganjil, kecuali 2 yang merupakan bilangan
genap.
Teorema-teorema dan definisi berikut ini akan memperjelas
pembahasan mengenai bilangan prima.
Teorema 2.1 ( The Fundamental theorem of arithmetic) :
Setiap bilangan bulat positif yang lebih besar atau sama
dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih
bilangan prima.
Definisi 2.3 :
Bilangan bulat positif yang lebih besar dari 1 dan tidak
memunyai faktor positif kecuali 1 dan bilangan itu sendiri disebut
bilangan prima. Bilangan bulat positif yang lebih besar dari 1 dan
bukan bilangan prima disebut bilangan komposit[6].
Teorema 2.2 :
Jika n suatu bilangan komposit, maka n memiliki faktor k
dengan 1 < k ≤ √n [6].
23
Untuk menguji apakah n merupakan bilangan prima atau
komposit, cukup membagi n dengan sejumlah bilangan prima,
mulai dari 2,3,..., bilangan prima √n. Jika n habis dibagi dari salah
satu bilangan prima tersebut, maka n adalah bilangan komposit,
tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut,
maka n adalah bilangan prima.
2.4.5 Aritmatika Modulo
Misalkan a dan m adalah bilangan bulat dan m > 0. Operasi a
mod m (dibaca “a modulo m”) akan menghasilkan sisa dari
pembagian, jika a dibagi dengan m[5]. Bilangan m disebut modulus
atau modulo, dan hasil aritmatika modulo m terletak didalam
himpunan {0,1,2,..,m-1}.
Notasi yang digunakan yaitu : a mod m = r sedemikian
sehingga a = mq + r, dengan 0 ≤ r ≤ m.
Menurut [1] alasan menggunakan aritmatika modulo, yaitu :
1. Karena nilai-nilai aritmatika modulo berada dalam himpunan
berhingga ( 0 sampai modulus m-1 ), maka tidak perlu khawatir
hasil perhitungan berada di luar himpunan.
2. Karena komputasi dalam lingkup bilangan bulat, maka tidak
perlu khawatir juga akan kehilangan informasi akibat
pembulatan (round off) sebagaimana pada operasi bilangan rill.
24
2.4.6 Kekongruenan
Kekongruenan adalah suatu teknik untuk mengetahui
keterbagian dalam himpunan bilangan bulat. Definisi-definisi berikut
akan memperjelas mengenai kekongruenan.
Definisi 2.4 (Kekongruenan) :
Misalkan a, b, m adalah bilangan bulat dan m > 0, maka a ≡ b
(mod m) jika m habis membagi (a – b). Jika m tidak habis membagi
(a–b) maka ditulis a ≠ b (mod m) .
Definisi 2.5 :
Pada a ≡ r (mod m) dengan 0 ≤ r < m, maka r disebut residu
terkecil dari a modulo m. Untuk kongruen ini, {0,1,2..,m-1} disebut
himpunan residu terkecil modulo m .
2.4.7 Teorema Fermat
Teorema Fermat memiliki banyak kegunaan, diantaranya untuk
mendeteksi apakah suatu bilangan merupakan bilangan prima atau
bukan. Pierre de Fermat adalah orang yang menemukan teorema ini
pada tahun 1640 dan merupakan teorema fundamental dalam teori
bilangan.
Jika a dan p adalah bilangan bulat lebih besar dari nol, maka
faktor persekutuan terbesar dari a dan p ditulis (a,p)[5].
25
Teorema 2.3 (Teorema Fermat) :
Jika p suatu bilangan prima dan (a,p)=1, maka
ap-1 ≡ 1 (mod p) .
2.4.8 Teorema Euler
Teorema Euler merupakan kelanjutan dari teorema Fermat
karena jika dalam teorema Fermat lebih dikhususkan pada bilangan
prima, sedangkan pada teorema Euler lebih umum, yaitu untuk semua
bilangan bulat positif.
Leonhard Euler menggunakan fungsi aritmatik yang terkenal
dengan fungsi bilangan, teorema dan fungsi phi Euler ini ternyata
konsep-konsep dalam struktur-struktur aljabar seperti teori Group dan
Ring.
Definisi dan teorema mengenai Euler dapat dilihat sebagai
berikut[5] :
Definisi 2.6 (Fungsi φ Euler) :
Misalkan m suatu bilangan bulat positif, maka φ(m) menyatakan
banyaknya elemen dari himpunan residu sederhana modulo m [6].
Teorema 2.4 (teorema Euler) :
Jika m suatu bilangan bulat positif dan (a, m) = 1, maka aφ(m) ≡ 1
(mod m) [6].
26
2.4.9 Algoritma Euclidean
Algoritma Euclidean adalah suatu algoritma untuk mencari gcd
(greatest common divisor) atau pembagi bersama terbesar [5]. Euclid,
penemu dari algoritma ini, adalah seorang matematikawan yunani yang
menuliskan algoritmanya tersebut dalam bukunya yang terkenal, yaitu
Elemen[3].
Suatu positif integer c dikatakan gcd dari a dan b, jika :
1. c adalah pembagi dari a dan b.
2. Setiap pembagi dari a dan b adalah pembagi dari c.
Seperti pada persamaan berikut ini :
gcd (a, b) = max (k, sedemikian sehingga k|a dan k|b) (2.5)
Teorema 2.5 (Teorema Euclidean) :
Misalkan m dan n adalah dua buah bilangan bulat dengan syarat
n > 0. jika m dibagi dengan n maka ada dua buah bilangan bulat unik
q(quotient) dan r(remainder), э m = nq + r dengan 0 ≤ r ≤ n [1].
2.4.10 Fungsi Hash Satu-Arah
Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam
satu arah. Pesan yang telah dilakukan fungsi hash dinamakan pesan
ringkas (Message Diggest). Dua pesan yang berbeda akan selalu
menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu-
arah, H[5], adalah sebagai berikut :
27
1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja.
2.
H menghasilkan nilai hash dengan panjang tetap.
3.
H(x) mudah dihitung untuk setiap nilai x yang diberikan.
4.
Untuk setiap h yang diberikan, tidak mungkin menemukan
x
sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan
fungsi hash satu-arah.
5. Untuk setiap x yang diberikan tidak mungkin mencari y ≠ x
sedemikian sehingga H(y) = H(x).
6. Tidak mungkin (secara komputasi) mencari pasangan x dan y
sedemikian sehingga H(x) = H(y).
Keterangan :
h = Nilai hash
x dan y = Pesan
H(x) = Fungsi hash terhadap pesan x
H(y) = Fungsi hash terhadap pesan y
Koalisi atau benturan dari hash merupakan hal-hal yang
dapat terjadi dalam melakukan fungsi hash. Ada yang disebut dengan
koalisi lemah dan koalisi kuat seperti pada penjelasan sifat-sifat fungsi
hash diatas terutama pada sifat 4, 5, dan 6.
28
Gambar 2.3 Proses Hash
Beberapa rekomendasi mengenai algoritma fungsi hash dan
ciri-cirinya[1], seperti pada tabel 2.4 berikut ini :
Tabel 2.4 Beberapa algoritma Fungsi Hash
No
Algoritma
Ukuran MD
(bit)
Ukuran blok
pesan
Kolisi
1 MD2 128 128 ya
2 MD4 128 512 Hampir
3 MD5 128 512 ya
4 RIPEMD 128 512 ya
5 RIPEMD-128/256 128/256 512 tidak
6 RIPEMD-160/320 160/320 512 tidak
7 SHA-0 160 512 ya
8 SHA-1 160 512 ada cacat
9 SHA-256/224 256/224 512 tidak
10 SHA-512/384 512/384 1024 tidak
11 WHIRLPOOL 512 512 tidak
29
2.5 Authentication
Authentication (otentikasi) berasal dari Bahasa Yunani, yaitu
“authentes” yang artinya pengarang. Salah satu layanan yang paling penting
dari semua masalah keamanan informasi, yaitu otentikasi. Otentikasi adalah
suatu hal yang berhubungan dengan identifikasi, baik pelaku maupun pesan itu
sendiri.
Dua pelaku yang berkomunikasi harus melakukan otentikasi. Fungsi
untuk melakukan otentikasi ada tiga kelas[5], yaitu :
1. Message Encryption, ciphertext dari keseluruhan pesan dapat berfungsi
untuk otentikasi.
2. Message Authentication Codes (MAC), fungsi dari pesan dengan kunci
rahasia yang menghasilkan nilai dengan panjang tetap dapat juga berfungsi
untuk otentikasi.
3. Hash Function, fungsi yang memetakan pesan dengan panjang berapapun
menjadi nilai hash yang memiliki panjang tetap juga berfungsi untuk
otentikasi.
Untuk membuktikan keaslian suatu pesan dapat dilakukan dengan
teknologi watermarking dan digital signature (tanda tangan digital). Penjelasan
lebih lanjut mengenai tanda tangan digital pada sub bab 2.6.
30
2.6 Tanda Tangan Digital
Sejak bertahun-tahun tanda tangan digunakan untuk membuktikan
otentikasi pada dokumen kertas (contohnya piagam, surat, ijazah, dan
sebagainya). Tanda tangan mempunyai karakteristik sebagai berikut :
1. Tanda tangan adalah bukti yang otentik.
2. Tanda tangan tidak dapat dilupakan.
3. Tanda tangan tidak dapat dipindah untuk digunakan ulang.
4. Dokumen yang telah ditanda tangani tidak dapat diubah.
5. Tanda tangan tidak dapat disangkal.
Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk
otentikasi pada data digital, seperti pesan yang dikirim melalui saluran
komunikasi dan dokumen elektronik yang disimpan dalam memori komputer.
Tanda tangan yang ada pada data digital dinamakan tanda tangan digital. Tanda
tangan yang dimaksud bukan tanda tangan yang telah di scanner dari kertas,
melainkan suatu nilai kriptografis yang dilekatkan pada dokumen digital.
Dengan tanda tangan digital, maka integritas data dapat dijamin, dan dapat juga
digunakan untuk membuktikan asal pesan (keabsahan pengirim), dan
nirpenyangkalan [5].
Hal ini tercantum pada pasal 11 RUU ITE (Informasi dan Transaksi
Elektronik), yaitu “ tanda tangan elektronik memiliki kekuatan hukum dan
akibat hukum yang sah selama memenuhi ketentuan dalam undang-undang ini
”, ketentuan-ketentuan tersebut dimuat dalam pasal 13 RUU ITE, yang salah
31
satunya adalah tanda tangan elektronik harus menjamin integritas dari suatu
data elektronik yang dilekatinya.
Menandatangani pesan dapat dilakukan dengan salah satu dari dua
cara berikut :
1. Enkripsi pesan
Mengenkripsi pesan dengan sendirinya telah menyediakan ukuran
otentikasi. Pesan yang terenkripsi telah menyatakan pesan tersebut telah
ditandatangani.
Algoritma yang digunakan untuk mengenkripsi pesan tersebut bisa
dengan algoritma kunci private (simetris) atau kunci publik (asimetris).
Proses penandatanganan dengan algoritma kunci simetris memerlukan pihak
penengah, sedangkan kunci asimetris tidak memerlukan pihak penengah.
2. Menggunakan fungsi hash
Nilai hash dari pesan tersebut adalah kode ringkas dari pesan.
Setelah itu tanda tangan tersebut ditambahkan pada pesan. Tanda tangan
digital di dalam dokumen tersebut adalah string yang diawali oleh begin
PGP Signature dan diakhiri oleh end PGP signature.
32
Gambar 2.4 Proses tanda tangan digital
Adapun klasifikasi umum dari skema tanda tangan digital yaitu :
1. Skema Tanda Tangan Digital dengan Penambahan
Skema tanda tangan ini adalah skema yang banyak digunakan
dan juga sangat bergantung pada nilai-nilai kriptografis dari fungsi hash.
Secara definisi skema dari tanda tangan digital yang membutuhkan
pesan sebagai input untuk proses verifikasi disebut dengan digital
signature scheme with appendix (skema tanda tangan digital dengan
penambahan). Contohnya dalam skema tanda tangan DSA, ElGamal,
dan Ong-Shnorr-Shamir.
2. Skema Tanda Tangan Digital dengan Menutupi Pesan
Skema tanda tangan digital yang memungkinkan suatu pesan
yang telah ditandatangani dapat ditutupi oleh tanda tangan itu sendiri
biasa digunakan untuk pesan singkat. Secara definisi tanda tangan
digital dimana keutamaan untuk mengetahui pesan tidak dibutuhkan
33
dalam proses verifikasi. Contohnya skema tanda tangan RSA, Rabin,
dan Nyberg-Rueppel.
2.7 Ong-Schnorr-Shamir Cryptosystem
Salah seorang pakar kriptografi terkemuka di Jerman adalah Claus
Peter Schnorr. Ia merupakan professor di bidang matematika dan
informatika di Universitas Goethe di Frankfurt am Main. Schnorr adalah
pemenang hadiah Leibniz, penghargaan paling bergengsi di
bidang ilmu pengetahuan di Jerman, tahun 1993 lalu. Salah satu
program kriptografi yang dikembangkannya, yang disebut tanda tangan
Schnorr, kini digunakan secara luas, sebagai standar pengaman
transaksi virtual.
Proses otentikasi algoritma Ong-Schnorr-Shamir adalah sebagai
berikut[7] :
1. Dipilih dua bilangan prima, o dan q, q adalah factor dari bilangan prima p-1
2. Memilih a, aq ≡1 (mod p).
Kunci generasi:
Memilih bilangan acak s < q (kunci rahasia)
Perhitungan λ ≡ a – s (mod p) kunci umum
Pengguna A Pengguna B
Memikih bilangan acak r , q
Perhitungan x ≡ ar (mod p) Mengambil bilangan acak t,0<t<2v-1
34
Perhitungan y ≡ r + st (mod q)
Mengirim y ke user B Pembuktian x ≡ ayλt(mod p)
2.8 ElGamal Cryptosystem
ElGamal adalah suatu public key cryptosystem yang dibuat pada tahun
1985[7]. Algoritma ElGamal digunakan untuk melakukan enkripsi dan tanda
tangan digital. Keamanan dari algoritma ElGamal terletak pada susahnya
perhitungan logaritma yang terpisah pada GF(p) ketika p merupakan bilangan
prima yang besar. Faktorisasi utama dari logaritma yang terpisah dianjurkan
untuk diimplementasikan pada ElGamal cryptosystem.
Sistem ElGamal memilih suatu bilangan prima p dan dua bilangan acak
g dan x, g < p dan x < p, jika x adalah kunci rahasia. Bilangan acak g adalah
akar dari modulo p. Kunci public digambarka oleh y,g dan p, dengan
perhitungan y ≡ gx(mod p). Untuk mengenkripsi pesan m, 0 < m_p – 1, pertama
mengambil suatu bilangan acak k seperti gcd (k, p-1) = 1.
35
2.9 Kelebihan dan Kekurangan Dari Skema Ong-Schnorr-Shamir Dengan
Skema Elgamal
Tabel 2.5 Perbandingan Metode Ong-Schnorr-Shamir Dengan Elgamal
Metode
Kelebihan
Kekurangan
Penggunaan
Secara Umum
Ong-Schnorr-Shamir Keamanannya
berdasarkan pada
kemampuan untuk
berinteraksi dari
beberapa permasalahan
logaritma yang
berlainan. Ini
dipertimbangkan
sebagai skema tanda
tangan digital yang
paling mudah yang
terbukti aman dalam
model random oracle.
Ini efesien dan
membangun tanda
tangan yang pendek.
Algoritma terlalu
pendek yang
menyebabkan kurang
jelas pada system.
sebuah tanda tangan
digital yang dilakukan
dengan algoritma tanda
tangan Schnorr
Elgamal Metode ini cukup
efektif dengan
mendapatkan
kebutuhan dan aturan
yang jelas dan
pelanggan bisa langsung
melihat sistem yang
sebenarnya.
algoritma yang
bergantung pada
probabilitas, yang
maksudnya adalah
sebuah pesan dapat
dienkripsi menjadi
berbagai kemungkinan
ciphertext, dengan
konsekuensi enkripsi
ElGamal biasa
menghasilkan 2:1
ekspansi ukuran
plainteks dan
ciphertext.
Panjang ciphertext dua
kali panjang plainteks.
sebuah skema tanda
tangan digital yang
berbasiskan pada
kerumitan dari
komputasi logaritma
diskrit
36
2.10 Visual Basic 6.0
2.10.1 Sekilas Tentang Visual Basic 6.0
Visual Basic merupakan pengembangan dari Basic. Basic (Beginner’s
All-purpose Symbolic Instruction Code) adalah sebuah bahasa pemrograman
“kuno” yang merupakan awal dari bahasa-bahasa pemrograman tingkat tinggi
lainnya. Visual Basic 6.0 perkembangan dari versi sebelumnya dengan
beberapa penambahan komponen yang sedang tren saat ini, seperti
kemampuan pemrograman internet dengan DHTML (Dynamic HyperText
Mark Language), dan beberapa penambahan fitur database dan multimedia
yang semakin baik. Sampai saat buku ini ditulis bisa dikatakan bahwa Visual
Basic 6.0 masih merupakan pilih pertama di dalam membuat program aplikasi
yang ada di pasar perangkat lunak nasional. Hal ini disebabkan oleh
kemudahan dalam melakukan proses development dari aplikasi yang dibuat.
Sejak dikembangkan pada tahun 80-an, Visual Basic kini telah mencapai
versimya yang ke-6. Beberapa keistimewaan utama dari Visual Basic 6
diantaranya seperti :
1. Menggunakan platform pembuatan programan yang diberi nama
Developer Studio, yang memiliki tampilan dan sarana yang sama dengan
Visual C++ dan Visual J++. Dengan begitu Anda dapat berimigrasi atau
belajar cepat bahasa pemrograman lainnya dengan mudah dan cepat
tanpa harus belajar dari nol lagi.
37
2. Memiliki beberapa tambahan sarana wizard yang baru. Wizard adalah
sarana yang mempermudah dalam pembuatan aplikasi dengan
mengotomatisasi tugas-tugas tertentu.
3. Akses data lebih cepat dan andal untuk membuat aplikasi database
berkemampuan tinggi.
2.10.2 Fasilitas Visual Basic
Di dalam lingkungan Visual Basic, terdapat berbagai macam
komponen, yaitu:
1. Control Menu
Control Menu adalah menu yang digunakan terutama untuk
memanipulasi jendela Visual Basic. Dari menu ini anda dapat
mengubah ukuran, memindahkannya, atau menutup jendela.
2. Menu
Menu Visual Basic berisi semua perintah Visual Basic yang
dapat dipilih untuk melakukan tugas tertentu. Isi dari menu ini
sebagian hampir sama dengan program-program Windows pada
umumnya.
3. Toolbar
Toolbar adalah tombol-tombol (shortcut) yang mewakili suatu
perintah tertentu dari Visual Basic.
38
4. Form Window
Form Window atau jendela formadalah daerah kerja utama
tempat membuat program-program aplikasi Visual Basic.
5. Toolbox
Toolbox adalah sebuah “kotak piranti” yang mengandung
semua objek atau ‘kontrol’ yang dibutuhkan untuk membentuk suatu
program aplikasi. Kontrol adalah suatu objekyang akan menjadi
penghubung antara program aplikasi dan user-nya, dan yang
kesemuanya harus diletakkan di dalam jendela form.
6. Project Explorer
Jendela Project Explorer adalah jendela yang mengandung
semua file di dalam aplikasi Visual Basic. Setiap aplikasi dalam
Visual Basic disebut dengan istilah project (proyek), dan setiap
proyek bisa mengandung lebih dari satu file. Pada Project Explorer
ditampilkan semua file yang terdapat pada aplikasi (proyek),
misalnya form, modul, class, dan sebagainya.
7. Jendela Properties
Jendela Properties adalah jendela yang mengandung semua
informasi mengenai objek yang terdapat pada aplikasi Visual Basic.
Properti adalah sifat dari sebuah objek, misalnya seperti nama, warna,
ukuran, posisi, dan sebagainya.
39
8. Form Layout Window
Form Layout Window adalah jendela yang menggambarkan
posisi dari form yang ditampilkan pada layar monitor. Posisi form
pada Form Layout Window inilah yang merupakan petunjuk tempat
aplikasi akan ditampilkan pada layar monitor saat dijalankan.
9. Jendela Code
Jendela Code adalah salah satu jendela yang penting di dalam
Visual Basic. Jendela ini berisi kode-kode program yang merupakan
instruksi-instruksi untuk aplikasi Visual Basic yang dibuat.
Gambar 2.5 Menu Utama Visual Basic 6.0
2.10.3 Memulai Visual Basic 6.0
Untuk menggunakan program Visual Basic. Jalankan dahulu
program aplikasinya melalui menu Start, Run, dan sebagainya.
40
Setelah itu akan muncul kotak dialog tentang jenis aplikasi yang ingin
dibuat. Biasanya untuk membuat program aplikasi standar, pilihlah
Standard EXE pada tab New lalu klik Open, setelah itu akan tampil
layar kerja.
a. Membuat Aplikasi Baru
Untuk membuat aplikasi Visual Basic yang baru dapat
dilakukan dengan langkah-langkah berikut ini:
1. Pilih menu File � New Project, atau tekan tombol Ctrl + N.
2. Kotak dialog New Project akan muncul, disitu terdapat
berbagai jenis aplikasi. Beberapa pilihan yang terdapat pada
kotak dialog New Project adalah sebagai berikut :
Tabel 2.6 Jenis Aplikasi pada Kotak Dialog New Project
3. Klik OK untuk membuat aplikasi baru.
b. Letak Kode Program
Pada dasarnya, pemrograman pada Visual Basic relatif lebih
mudah, tetapi dalam konsep modular programing kode-kode
41
program diletakkan terpisah-pisah. Tidak seperti linear
programming yang kode-kode programnya dituliskan di dalam
satu tempat, pada modular programming kode-kode program
letaknya tersebar, bergantung pada komponenkomponen aplikasi
tersebut. Pada Visual Basic, kode-kode pemrograman biasanya
diletekkan pada objek-objek sebagai berikut :
1. Objek Form
Biasanya kode-kode program ini adalah kode-kode
inisialisasi yang akan dijalankan apabila Form tersebut di-load.
2. Kontrol
Kontrol dapat memiliki kode-kode programnya sendiri
yang disebut dengan event procedure atau metode dari kontrol
tersebut. Setiap kontrol tersebut memiliki event procedure lebih
dari satu, dan di dalam setiap event procedure yang dibuat bisa
membuat program-program yang berbeda-beda, bergantung
pada tindakan apa yang harus dilakukan oleh kontrol tersebut.
3. Module standard
Ini adalah termasuk salah satu objek pada Visual Basic
yang tidak tampak dan terpisah dari form, tetapi masih berada di
dalam aplikasi. Modul standar berisi kode-kode program yang
bersifat umum yang dapat dipanggil oleh objek apa saja yang
membutuhkannya.
42
2.11 Unified Modeling Language ( UML)
2.11.1 Pengertian UML
UML adalah bahasa grafis untuk mendokumentasi,
menspesifikasi, dan membangun sistem perangkat lunak. UML
adalah bahasa pemodelan untuk menspesifikasikan,
memvisualisasikan, membangun, dan mendokumentasikan artifak-
artifak dari sistem [9]. UML menggunakan notasi grafis untuk
menyatakan suatu desain. Pemodelan dengan UML berarti
menggambarkan yang ada dalam dunia nyata ke dalam bentuk yang
dapat dipahami dengan menggunakan notasi standar UML.
2.11.2 UML Diagram
UML menyediakan 9 jenis diagram yang dapat
dikelompokkan berdasarkan sifatnya, statis atau dinamis. Ke 9 jenis
diagram dalam UML, adalah sebagai berikut [10] :
1. Diagram Kelas (Bersifat Statis)
Diagram ini memperlihatkan himpunan kelas-kelas,
antarmuka antarmuka, kolaborasi-kolaborasi, serta relasi-relasi.
Diagram ini umum dijumpai pada pemodelan sistem berorientasi
objek. Meskipun bersifat statis, sering pula kelas memuat kelas-
kelas aktif.
2. Diagram Object (Bersifat Statis)
43
Diagram ini memperlihatkan objek-objek serta
relasirelasi antar objek. Diagram objek memperlihatkan
instansiasi statis dari segala sesuatu yang dijumpai dari diagram
kelas.
3. Use-Case Diagram (Bersifat Statis)
Diagram ini memperlihatkan himpunan use case dan
aktor-aktor (suatu jenis khusus dari kelas). Diagram ini terutama
sangat penting untuk mengorganisasi dan memodelkan perilaku
dari suatu sistem yang dibutuhkan serta diharapkan pengguna.
4. Sequence Diagram (Bersifat dinamis)
Diagram sequence (diagram urutan) adalah diagram
interaksi yang menekankan pada pengiriman pesan (message)
dalam suatu waktu tertentu.
5. Collaboration Diagram (Bersifat dinamis)
Diagram kolaborasi adalah diagram interaksi yang
menekankan organisasi struktural dari objek-objek yang
menerima serta mengirim pesan.
6. Statechart Diagram (Bersifat Dinamis)
Diagram state ini memperlihatkan state-state pada
sistem; memuat state, transisi, event, serta aktivitas. Diagram ini
terutama penting untuk memperlihatkan sifat dinamis dari
antarmuka (interface), kelas, kolaborasi dan terutama penting
pada pemodelan sistem-sistem yang reaktif.
44
7. Activity Diagram (Bersifat Dinamis)
Diagram aktifitas ini adalah tipe khusus dari diagram
state yang memperlihatkan aliran dari suatu aktivitas lainnya
dalam suatu sistem. Diagram ini penting terutama dalam
pemodelan fungsi-fungsi dalam suatu sistem dan memberi
tekanan pada aliran kendali antar objek.
8. Component Diagram (Bersifat Statis)
Diagram komponen ini memperlihatkan organisasi serta
ketergantungan sistem/perangkat lunak pada komponen-
komponen yang telah ada sebelumnya. Diagram ini berhubungan
dengan diagram kelas dimana komponen secara tipikal dipetakan
kedalam satu atau lebih kelas-kelas, antarmuka-antarmuka
(interface), serta kolaborasi-kolaborasi.
9. Deployment Diagram (Bersifat Statis)
Diagram ini memperlihatkan konfigurasi saat aplikasi
dijalankan. Diagram ini memuat simpul-simpul (node) beserta
komponen-komponen yang ada didalamnya. Deployment diagram
berhubungan erat dengan diagram komponen dimana deployment
diagram memuat satu atau lebih komponen-komponen.
45
2.11.3 Notasi UML
Berikut ini adalah notasi-notasi yang ada di UML: [10].
a. Aktor (Actor)
Aktor adalah seseorang atau sesuatu yang berinteraksi
dengan sistem yang sedang kita kembangkan.
Gambar 2.6 Notasi Aktor
b. Kelas (Class)
Kelas seperti juga objek adalah sesuatu yang membungkus
(encapsulate) informasi dan perilaku dalam dirinya.
Gambar 2.7 Notasi Class
c. Use Case
Use case adalah peringkat tertinggi dari fungsionalitas yang
dimiliki sistem. Dengan kata lain, use case menggambarkan
bagaimana seseorang akan menggunakan/memanfaatkan sistem.
Use case menjelaskan suatu urutan kegiatan yang dilakukan oleh
aktor dan system untuk mencapai suatu tujuan tertentu walaupun
46
menjelaskan kegiatan namun use case hanya menjelaskan apa
yang dilakukan oleh aktor dan sistem, bukan bagaimana aktor dan
sistem melakukan kegiatan tersebut.
Gambar 2.8 Notasi Use Case
d. Interaction
Interaction digunakan untuk menunjukkan baik aliran pesan
atau informasi antar objek maupun hubungan antar objek.
Gambar 2.9 Notasi Interaction
e. Interface
Interface merupakan kumpulan operasi tanpa implementasi
dari suatu class. Implementasi operasi dalam interface dijabarkan
dalam operasi dalam class.
Gambar 2.10 Notasi Interface
47
f. Package
Package adalah container atau wadah konseptual yang
digunakan untuk mengelompokkan elemen-elemen dari suatu
sistem yang sedang dibangun, sehingga bisa dibuat model yang
lebih sederhana. Tujuannya adalah untuk mempermudah
penglihatan (visibility) dari suatu model yang sedang dibangun.
Gambar 2.11 Notasi Package
g. Note
Note dibangun untuk membangun keterangan dan komentar
tambahan dari suatu elemen sehingga bias langsung terlampir
dalam mode. Note ini bisa ditempelkan kesemua elemen notasi
yang lain.
Gambar 2.12 Notasi Note
h. Dependency
Dependency merupakan relasi yang menunjukkan bahwa
perubahan pada suatu elemen memberikan pengaruh pada elemen
48
lain. Elemen yang ada di bagian tanda panah adalah elemen yang
tergantung pada elemen yang ada dibagian tanpa ada tanda panah.
Gambar 2.13 Notasi Dependency
i. Association
Association menggambarkan navigasi antar class
(navigation), berapa banyak objek lain yang bisa berhubungan
dengan satu objek (multiplicity antar class), dan apakan suatu
class menjadi bagian dari class lainnya (aggregation).
Gambar 2.14 Notasi Association
j. Generalization
Generalization menunjukkan hubungan antar elemen yang
lebih umum ke elemen yang lebih spesifik (sub class).
Gambar 2.15 Notasi Generalization
k. Realization
Realization menunjukkan hubungan bahwa elemen yang ada
di bagian tanpa panah akan merealisasikan apa yang dinyatakan
oleh elemen yang ada di bagian depan panah.
Gambar 2.16 Notasi Realization
49
BAB III
METODOLOGI PENELITIAN
Pada penyusunan skripsi ini diperlukan data-data informasi sebagai bahan
yang dapat mendukung kebenaran materi uraian pembahasan. Untuk menyelesaikan
masalah yang ada dalam sebuah perancangan perangkat lunak ada beberapa tahap
yang harus dilakukan. Dalam bab ini dijelaskan mengenai metodologi penelitian dan
metode pengembangan sistem yang digunakan penulis.
3.1 Metodologi Penelitian
3.1.1 Teknik Pengumpulan Data
1. Metode literatur digunakan penulis dengan melihat penelitian yang
sudah ada dan mencoba mengembangkannya.
2. Sedangkan metode studi pustaka dilakukan penulis dengan
melakukan pengumpulan data dan informasi dengan cara membaca
buku-buku referensi, e-book dan situs internet yang dapat dijadikan
acuan pembahasan dalam masalah ini. Adapun buku-buku dan
bahan referensi lainnya yang dipakai dalam skripsi ini dapat dilihat
pada daftar pustaka.
50
3.2 Metode Pengembangan Sistem
Proses pengembangan sistem diartikan sebagai sekumpulan aktivitas,
metode, best practice, deliverable dan tools-tools otomatis yang digunakan
stakeholder untuk mengembangkan sistem informasi dan software secara
kontinu, artinya pengembangan yang dilakukan secara bertahap dari hal-hal
yang menjadi kendala sistem sampai halhal yang menjadi kebutuhan
system[8]. Dari beberapa metode pengembangan sistem yang ada, maka
penulis menggunakan metode pengembangan sistem RAD (Rapid Application
Development). Penulis menggunakan model RAD karena melihat aplikasi
yang dikembangkan adalah aplikasi yang sederhana dan tidak membutuhkan
waktu yang lama, metode RAD adalah metode yang diperuntukkan untuk
jangka pendek sesuai dengan aplikasi yang dikembangkan. Model
pengembangan RAD diperkenalkan oleh James Martin pada tahun 1991[11].
Adapun skema model pengembangan RAD (Rapid Application
Development) dapat dilihat pada gambar 3.1[12]:
51
Gambar 3.1 Skema Pengembangan Sistem RAD
Model pengembangan RAD memiliki empat fase yaitu fase
perencanaan syarat-syarat, fase perancangan, fase konstruksi, dan fase
pelaksanaan [12]. Berikut adalah penjelasan masing-masing fase dalam
penelitian ini.
3.2.1 Fase Menentukan Syarat-Syarat
Pada tahap ini dilakukan pengidentifikasian tujuan
aplikasi atau sistem serta untuk mengidentifkasi syarat-syarat
informasi yang ditimbulkan dari tujuan-tujuan tersebut.
Apabila pengetahuan diformulasikan secara lengkap, maka
tahap implementasi dapat dimulai dengan membuat garis besar
masalah, kemudian memecahkan masalah ke dalam modul-
52
modul. Untuk memudahkan, maka harus diidentifikasikan hal-
hal sebagai berikut :
a. Mendefinisikan masalah
Masalah yang ingin diselesaikan dengan sistem ini
adalah bagaimana mengimplementasikan suatu metode
dalam komputer dan tools apa yang mendukung
implementasi tersebut. Pada penulisan ini, penulis akan
mengimplementasikan tanda tangan digital dengan
menggunakan metode Ong Schnorr shamir. Dengan
demikian dari impelementasi ini dapat diketahui mengapa
metode ini dapat menjadikan suatu tanda tangan digital.
b. Analisis kebutuhan masalah
Menganalisis kebutuhan masalah adalah menganalisis
tujuan dari sistem yang dibuat. Tujuan dari sistem ini
adalah bagaimana mengimplementasikan Ong Schnorr
shamir untuk menyelesaikan masalah tanda tangan digital
dan bagaimana kinerja metode Ong Schnorr shamir dalam
hal kekuatan suatu tanda tangan digital.
c. Tujuan informasi
Berdasarkan aturan pada analisis kebutuhan di atas,
maka penulis bertujuan untuk mengimpelementasikan
metode Ong Schnorr Samir sehingga diharapkan dapat
mengetahui proses tanda tangan digital menggunakan
53
komputer dan memperoleh nilai kekuatan enkripsi suatu
teks.
d. Syarat-syarat
Untuk mewujudkan tujuan tersebut maka dibutuhkan
beberapa syarat dalam Implementasi Principal Component
Analysis dalam tanda tangan digital, meliputi kelengkapan
data, software dan hardware.
3.2.2 Fase Perancangan
Pada tahap ini dilakukan perancangan proses yaitu
perancangan proses-proses yang akan terjadi di dalam sistem.
a. Perancangan Proses
Pada tahap perancangan ini akan dilakukan
perancangan dan evaluasi memperbaiki sistem sesuai
kebutuhan. Agar sistem yang sedang dibuat dapat
dimanfaatkan secara optimal. Penulis menggunakan UML
(Unified Modelling Language) sebagai tool perancangan
diagram proses menggunakan Microsoft Visio 2007.
b. Perancangan Basis Data
Perancangan tabel-tabel yang akan digunakan untuk
pengolahan data (input data). Dan kemudian akan
diimplementasikan database tersebut ke dalam bentuk
program. Pada aplikasi tanda tangan digital ini, penulis
54
merancang tanda tangan digital dengan metode yang
berbeda, yaitu Ong-Schnorr-Shamir.
c. Perancangan Antar Muka Pemakai (User Interface)
Antar muka pemakai memberikan fasilitas
komunikasi antar pemakai dan sistem, memberikan
berbagai fasilitas informasi dan berbagai keterangan yang
bertujuan untuk membantu mengarahkan alur penelusuran
masalah sampai ditemukannya solusi. Antar muka
dirancang sebagai gambaran pada saat pembuatan
komponen-komponen GUI pada fase konstruksi.
3.2.3 Fase Konstruksi
Pada tahap ini dilakukan instalasi ,pengaturan tata letak
komponen GUI dan pengkodean terhadap rancangan-
rancangan yang telah didefinisikan. Penulis menggunakan
software Visual Basic sebagai pembuatan antar muka dan
editor kode program.
3.2.4 Fase Pelaksanaan
Pada tahap ini dilakukan pengujian terhadap sistem
untuk mengetahui apakah program dapat berjalan dengan baik
atau tidak. Dari fase ini, juga dapat diketahui kesalahan-
kesalahan apa yang terjadi, sehingga dapat diperbaiki dalam
pengembangan selanjutnya.
55
Metode Literatur Input teks
Mendifinisi kan
Masalah
Analisis Kebutuhan
Tujuan : Membubuhkan tanda tangan digital pada suatu teks
Syarat – syarat : Visual Basic 6.0
Fase Menentukan
Syarat-Syarat
Fase
Perancangan
Proses
(Dengan UML)
Perancanga
Use Case Diagram
Class Diagram
Sequence Diagram Input
Output
n Antar Muka
Algoritma
Struktur
Data
Fase Konstruksi
Tahap Pembuatan
Program
Pengenalan Aplikasi
Pengujian Aplikasi Fase Pelaksanaan
Hasil Penelitian
Pengecekan Aplikasi
Aplikasi Tanda Tangan Digital
Gambar 3.2 Ilustrasi Metodologi Penelitian
56
BAB IV
HASIL DAN PEMBAHASAN
Setelah membahas tentang teori-teori dan konsep-konsep yang dipakai
serta metodologi yang digunakan pada bab sebelumnya, maka pada bab ini seperti
yang telah ditulis pada bab satu, penulis akan membahas tentang Implementasi
tanda tangan digital yang menggunakan metode Ong-Schnorr-Shamir.
Bagaimana mengimplementasikan suatu metode dalam komputer dan
tools apa yang paling mendukung implementasi tersebut, merupakan dua hal yang
cukup penting dan mendasar untuk mempelajari suatu metode. Hal ini juga
berlaku bagi tanda tangan digital, dengan metode Ong-Schnorr-Shamir yang akan
dipelajari karakteristiknya pada penelitian ini.
4.1 Fase Menentukan Syarat-Syarat
4.1.1 Mendefinisikan Masalah
Masalah yang ingin diselesaikan dengan sistem ini adalah
bagaimana mengimplementasikan suatu metode dalam komputer
dan tools apa yang mendukung implementasi tersebut. Pada
penulisan ini, penulis akan mengimplementasikan pembuatan tanda
tangan digital dengan menggunakan metode Ong Schnorr Shamir.
Dengan demikian dari impelementasi ini dapat diketahui mengapa
metode ini dapat membuat tanda tangan digital yang baik.
57
4.1.2 Analisis Kebutuhan Masalah
Menganalisis kebutuhan masalah adalah menganalisis
tujuan dari sistem yang dibuat. Tujuan dari sistem ini adalah
bagaimana mengimplementasikan Ong Schnorr Shamir untuk
menyelesaikan masalah tanda tangan digital dan bagaimana kinerja
metode Ong Schnorr Shamir dalam hal keakuratan untuk
melakukan tanda tangan digital. Penulis menerapkan beberapa
aturan untuk memaksimalkan pembuatan tanda tangan digital,
yaitu sebagai berikut :
1. File yang ingin ditandatangani akan dibuatkan fungsi hash satu
arah terlebih dahulu
2. Fungsi hash satu arah menggunakan MD5
3. Nilai hash yang diperoleh akan ditandatangani dan didapatkan
hasil tanda tangan digitalnya.
Pemecahan masalah yang dilakukan penulis dalam prosedur
kerja skema tanda tangan digital Ong-Schnorr-Shamir sebagai
berikut :
1. Tentukan sebuah bilangan integer besar (n) dan sebuah
bilangan integer (k).
a. n dan k harus relatif prima, artinya nilai GCD(n, k) = 1. b.
n merupakan kunci publik, artinya nilai n boleh
diketahui oleh pihak lain.
58
c. k merupakan kunci privat, artinya nilai k hanya
diketahui oleh pembuat pesan.
2. Hitung nilai h dengan rumus berikut.
3. Tentukan sebuah bilangan integer acak (r).
a. n dan r harus relatif prima, artinya nilai GCD(n, r) = 1.
b. r merupakan kunci publik, artinya nilai r boleh
diketahui oleh pihak lain.
4. Hitung S1 dan S2 terhadap pesan (M). (S1 dan S2 merupakan
signature) dengan rumus berikut.
5. Lakukan verifikasi pesan dan tanda tangan digital dengan
menggunakan rumus berikut.
4.1.3 Tujuan Informasi
Berdasarkan aturan pada analisis kebutuhan di atas, maka
penulis bertujuan untuk mengimpelementasikan metode Ong
Schnorr Shamir sehingga diharapkan dapat mengetahui proses
pembuatan tanda tangan digital menggunakan komputer dan
memperoleh nilai keakuratan yang cukup tinggi.
59
4.1.4 Syarat-Syarat
Untuk mewujudkan tujuan tersebut maka dibutuhkan
beberapa syarat dalam Implementasi Ong Schorr Shamir dalam
Pembuatan Tanda Tangan Digital, meliputi kelengkapan software
dan hardware.
Kelengkapan software yang digunakan untuk implementasi
Ong Schorr Shamir dalam pembuatan tanda tangan digital ini
adalah :
1. Visual Basic 6.0, sebagai bahasa pemrograman yang digunakan
sebagai editor dan sebagai pembuatan antar muka.
2. Sistem Operasi Windows XP yang berjalan di notebook.
4.2 Fase Perancangan
Pada tahap ini penulis memulai persiapan pembuatan aplikasi yang
terdiri atas beberapa langkah yang akan dijelaskan pada sub bab berikut.
4.2.1 Perancangan Sistem
Perancangan sistem pada aplikasi ini digunakan dengan
menggunakan Unified Modelling Language (UML) yang
digunakan untuk merancang model sebuah sistem. Perancangan
model sistem aplikasi ini digambarkan melalui Use Case Diagram,
Class Diagram, Sequence Diagram dan Activity Diagram.
4..2.1.1 Use Case Diagram
Use Case Diagram ini mendeskripsikan fungsi
sebuah sistem dari sudut pandang pengguna sistem. Pada
60
diagram ini terdapat satu buah aktor yang merupakan
pengguna sistem.
-End2
Buka File *
«uses»
Va lidasi Tanda
Tangan
-End4
*
Buka Pesan Cek Status Pesan
«uses»
-End1
*
-End3
-*End3 -End3
*
* *-End3
-End 4
*
Tulis Pesan
«uses»
Actor1
-End4
*
H ash Pesan
«uses»
*
-End4
B uat T anda T ang an
Digi ta l P ada P esan
Gambar 4.1 Use Case Diagram
Penjelasan dari use case diagram di atas adalah
sebagai berikut : aktor membuka aplikasi tanda tangan
digital dengan metode Ong Schnorr Shamir, membuka
pesan ( dapat memvalidasi tanda tangan digital atau
mencek status pesan), menulis pesan, hash pesan yang
dibuat, membuat tanda tangan digital dari hasil hash
pesan.
61
4.2.1.2 Class Diagram
Class diagram ini merupakan struktur dan deskripsi
Class yang menggambarkan keadaan suatu system
Create DigitalSignature
+input nama user
-input n, k, r
-input n, k,r random
+Mendapat tampilan nama user() +Mendapat tampilan hasil input n,k,r ()
+Memilih file()
Pengguna
Hash File -Membuka file yang akan di hash
-Ketik pesan yang akan di hash
-Menghitung Hash
+Mendapat tampilan file yang dipilih()
+Mendapat tampilan hasil hash file()
+Melihat tampilan hash file()
+Melihat tampilan create DigitalSignature()
+Melihat tampilan validasi()
+melihat tampilan cek status()
Validasi -Melakukan Validasi terhadap pesan
+Mendapat tampilan validasi pesan()
Status Pesan -Melakukan cek status pesan
+Mendapat Tampilan hasil cek status pesan()
Gambar 4.2 Class Diagram
Class Create Digital Signature mempunyai atribut
berupa input nama user, input n,k,r, input n,k,r random.
Class ini mempunyai operasi berupa mendapat tampilan
file yang dipilih dan mendapat tampilan hash file. Class
Hash File mempunyai atribut berupa membuka file yang
akan di hash, ketik pesan yang akan di hash, menghitung
hash. Class Validasi mempunyai atribut berupa melakukan
validasi terhadap pesan. Class ini mempunyai operasi
berupa mendapat tampilan hasil validasi pesan. Class status
pesan mempunyai atribut berupa melakukan cek status
pesan. Class ini mempunyai operasi berupa memberi
tampilan hasil cek status pesan.
62
4.2.1.3 Sequence Diagram
Sequence diagram ini mendokumentasikan
komunikasi atau interaksi dari class Pengguna dan figure-
figure. Keterangan dari sequence diagram di atas adalah
sebagai berikut :
User Form Hash File
Form Create DigitalSignature
Form Validasi
Form Cek Status
Memilih Pesan dan Menghitung Hash
Memberi Tampilan data Yang dipilih
Memberi Tampilan Hasil Hash File
Membuat DigitalSignature
Memberi Tampilan Hasil Tanda Tangan Digital Melakukan Validasi Pesan
Memberi Tampilan Hasil Validasi Pesan Mengecek Status Pesan
Memberi Tampilan Hasil Cek Status Pesan
Gambar 4.3 Sequence Diagram
Sequence diagram ini mendokumentasikan
komunikasi atau interaksi dari class user, form Hash File,
form Create Digital Signature, form validasi, form cek
status. Keterangan dari sequence diagram di atas adalah
sebagai berikut :
1. Aktor memilih pesan dan menghitung hash
2. Aktor menampilkan form Hash File
3. Aktor membuat digital Signature
4. Aktor menampilkan form Create Digital Signature
5. Aktor melakukan validasi pesan
6. Aktor menampilkan form Validasi
7. Aktor mengecek status pesan
8. Aktor menampilkan form Cek Status
63
4.2.1.4 Activity Diagram
Activity diagram ini mendokumentasikan alur kerja
U s e r
dalam sistem. F o r m H a s h F ile F o r m C r e a t e
D ig it a lS ig n a t u r e F o r m V a l id a s i F o r m C e k S t a t u s
M e m i l i h F i l e
M e n d a p a t T a m p il a n F i l e y a n g D i p il i h M e n g h i t u n g h a s h
M e n d a p a t T a m p i l a n H a s i l H i t u n g H a s h M e m b u a t D ig i t a l S i g n a t u r e
M e n d a p a t T a m p i l a n H a s i l T a n d a t a n g a n D ig i t a l M e l a k u k a n V a l i d a s i
M e n d a p a t T a m p i l a n H a s i l V a l i d a s i M e n g e c e k S t a t u s P e s a n
M e n d a p a t T a m p i la n H a s i l C e k S t a u s P e s a n
Gambar 4.4 Activity Diagram
Titik awal pada diagram ini adalah aktivitas memilh
file. Kemudian akan muncul form Hash File, yang
kemudian dihitung nilai hashnya, setelah itu akan mendapat
talmpilan hasil hitung hash. Nilai Hash yang diperoleh akan
digunakan untuk membuat digital signature pada form
Create Digital Signature. Dari form tersebut akan diperoleh
tampilan hasil tanda tangan digital. dari tampilan hasil
tanda tangan digital tersebut akan dilakukan validasi pada
form validasi. Dari form tersebut akan diperoleh tampilan
hasil validasi. Dari tampilan hasil validasi akan dilakukan
pengecekan status pesan pada form Cek Status. Dari form
tersebut akan mendapat tampilan hasil cek status pesan,
apakah pesan itu tersebut berasal dari pengirim yang sama.
64
4.2.2 Perancangan Antarmuka
Perancangan antar muka yang dibuat penulis pada aplikasi
ini terdiri dari beberapa halama, antara lain :
1. Menu Halaman Utama
Menu ini merupakan tampilan awal ketika
menjalankan aplikasi tanda tangan digital ini. Pada halaman ini
menampilkan judul aplikasi serta beberapa menu yang dapat dipilih
pengguna. Adapun menu yang terdapat pada halaman utama ini
adalah skema Ong-Schnorr-Shamir dan Aplikasi Tanda Tangan
Digital Ong-Schnorr-Shamir
Skema Tanda
Tangan Digital
Aplikasi Tanda Tangan Digital
Judul Aplikasi
Gambar 4.5 Rancangan Menu Halaman Utama Aplikasi
2. Menu Skema Tanda Tangan Digital
Menu ini merupakan simulasi dari penghitungan
tanda tangan digital dengan metode Ong-Schnorr-Shamir. Dimuali
dengan sebuah alur cerita, dilanjutkan dengan perhitungan
matematik dari tanda tangan digital.
65
Contoh cerita
Back Next
Gambar 4.6 Rancangan Menu Pembuka
Langkah 1 :
n =
k =
langkah 2 :
h =
teks
teks
Back Next
Gambar 4.7 Rancangan Menu langkah matematik Ong-Schnorr-Shamir
Langkah 3 :
r = teks
Langkah 4 :
Hash File
Label
Digital signature Perhitungan
Label Label
Back Next
Gambar 4.8 Rancang Menu Hash File
66
Langkah 5 :
Pesan Perhitungan :
Label
Label
Digital Signature
Label
Verifikasi
Back Next
Gambar 4.9 Rancangan Menu Verifikasi
File Edit Tanda tangan Digital Keluar
Label
Label
Reverse Tanda Tanagan Digital
Gambar 4.10 Rancangan Menu Aplikasi
67
4.2.3 Penggambaran Metode Tanda Tangan Digital Ong-Schnorr-
Shamir
4.2.3.1 Skema Tanda Tangan Digital Ong-Schnorr-Shamir
Skema tanda tangan digital dengan metode Ong-
Schnorr-Shamir terbagi menjadi:
a. Algoritma Pembuatan Tanda Tangan Digital.
b. Algoritma Verifikasi Tanda Tangan Digital.
c. Algoritma Menyimpan File Digital Signature pada
Aplikasi.
d. Algoritma Membuka File Digital Signature pada
Aplikasi.
4.2.3.1.1 Algoritma Pembuatan Tanda Tangan Digital
Algoritma yang digunakan untuk membuat
tanda tangan digital pada skema ini adalah:
1. Input nilai n dan nilai k.
a. Apabila nilai n = 0, maka munculkan pesan
kesalahan.
b. Periksa bahwa n harus minimal 8 digit.
Apabila tidak maka munculkan pesan
kesalahan.
c. Apabila nilai k = 0, maka munculkan pesan
kesalahan.
68
d. Periksa bahwa gcd(n, k) harus bernilai 1.
Apabila tidak, maka munculkan pesan
kesalahan.
2. Hitung nilai h.
H = - Round(FModulus(1 / K^2, N), 12).
a. Round(x, 12) adalah pembulatan nilai x
sebanyak 12 desimal di belakang koma.
b. FModulus(a, b) adalah fungsi yang dibuat
sendiri untuk menghasilkan nilai modulus
antara a dan b.
3. Ambil input nilai r.
a. Apabila nilai r = 0, maka munculkan pesan
kesalahan.
b. Periksa bahwa gcd(n, r) harus bernilai 1.
Apabila tidak, maka munculkan pesan
kesalahan.
4. Ambil input pesan dan hitung S1 dan S2.
a. Apabila pesan kosong, maka muculkan pesan
kesalahan.
b. Untuk i = 1 sampai panjang karakter dari
pesan, hitung S1 dan S2.
i. Set cTemp1 = karakter ke-i dari pesan.
ii. Set M = Asc(cTemp1). M adalah nilai
ascii dari karakter ke-i.
69
iii. Hitung S1 = Round(FModulus(0.5 * ((M /
R) + R), N), 12).
iv. Hitung S2 = Round(FModulus((K / 2) *
((M / R) - R), N), 12).
v. Tampilkan S1 dan S2 sebagai digital
signature dengan format “S1|S2”.
4.2.3.1.2 Algoritma Verifikasi Tanda Tangan Digital
Algoritma yang digunakan untuk melakukan
verifikasi pesan dan tanda tangan digital pada
skema ini adalah:
1. Periksa bahwa jumlah digital signature harus
sama dengan jumlah karakter pada pesan.
a. Ambil format digital signature “S1|S2”,
penggal dengan pemisah spasi dan
masukkan ke variabel array DS().
b. Jika indeks array tertinggi dari DS
dikurangi satu (digital signature diawali
dengan string “<begin_of_signature> “
dan diakhiri dengan string “
<end_of_signature>“) tidak sama dengan
panjang pesan maka verifikasi gagal dan
keluar dari algoritma verifikasi.
70
2. Set nilai nAkhir = posisi huruf spasi pertama
pada digital signature.
3. Lakukan verifikasi untuk setiap karakter pesan
dengan digital signature. Untuk nTemp = 1
sampai panjang pesan,
a. Set cTemp1 = karakter ke-nTemp dari
pesan.
b. Set M = Asc(cTemp1). M adalah nilai
ascii dari cTemp1.
c. Set nAwal = nAkhir + 1.
d. Untuk nTemp2 = nAwal sampai panjang
dari digital signature, lakukan
pemeriksaan jika karakter ke-nTemp2
dari digital signature adalah huruf spasi,
maka set nAkhir = nTemp2 dan keluar
dari looping.
e. Set cTemp1 = string dimulai dari posisi
nAwal sepanjang (nAkhir – nAwal)
karakter dari digital signature.
f. Penggal cTemp1 dengan pemisah “|” dan
masukkan ke variabel array DS.
g. Jika indeks tertinggi array DS tidak sama
dengan satu maka verifikasi gagal dan
keluar dari algoritma.
71
h. Set S1 = DS(0). Ini adalah nilai digital
signature S1.
i. Set S2 = DS(1). Ini adalah nilai digital
signature S2.
j. Set nTemp3 = Round(FModulus((S1 ̂ 2) +
(S2 ̂ 2) * h, n)).
k. Jika nTemp3 <> M maka verifikasi gagal
dan keluar dari algoritma.
4. Pesan dan digital signature telah melewati
pemeriksaan, sehingga verifikasi digital
signature sukses.
4.2.3.1.3 Algoritma Menyimpan File Digital Signature
pada Aplikasi
Algoritma yang digunakan untuk
menyimpan file digital signature pada aplikasi Ong-
Schnorr-Shamir Digital Signature Scheme adalah:
1. Periksa bahwa pesan tidak boleh kosong.
2. Periksa bahwa digital signature sudah harus
dibentuk.
3. Buka sebuah file baru (*.dsg) dengan nama file
di-input oleh user.
4. Isi baris pertama pada file dengan string “Ong-
Schnorr-Shamir Digital Signature|” digabungkan
72
dengan waktu sekarang dalam format (dd-
MMM-yyyy hh:nn:ss) digabungkan dengan
huruf “|” dan nama user yang telah di-input pada
form pembuatan digital signature.
5. Isi baris berikutnya pada file dengan nilai
variabel n digabungkan dengan huruf “|” dan
nilai variabel h digabungkan dengan huruf “|”
dan nilai variabel r.
6. Isi baris berikutnya pada file dengan string
“<begin_of_message>”.
7. Isi baris berikutnya pada file dengan pesan.
8. Isi baris berikutnya pada file dengan string
“<end_of_message>”.
9. Isi baris berikutnya pada file dengan string
“<begin_of_signature>”.
10. Isi baris berikutnya pada file dengan digital
signature.
11. Isi baris berikutnya pada file dengan string
“<end_of_signature>”.
12. Tutup file.
73
4.2.3.1.4 Algoritma Membuka File Digital Signature pada
Aplikasi
Algoritma yang digunakan untuk membuka
file digital signature pada aplikasi Ong-Schnorr-
Shamir Digital Signature Scheme adalah:
1. Buka file (*.dsg) yang dipilih oleh user.
2. Ambil isi file baris pertama dan simpan ke variabel
cTemp1. Periksa jika Left(cTemp1, 36) tidak sama
dengan “Ong-Schnorr-Shamir Digital Signature”
maka munculkan pesan kesalahan “Invalid file !”,
tutup file dan keluar dari algoritma.
3. Penggal cTemp1 dengan pemisah “|” dan simpan
ke dalam variabel array strT. Jika indeks tertinggi
array strT tidak sama dengan dua, maka
munculkan pesan kesalahan “Invalid file !”, tutup
file dan keluar dari algoritma.
4. Set strWaktu = strT(1).
5. Set strNama = strT(2).
6. Ambil isi file pada baris berikutnya dan simpan ke
variabel cTemp1.
7. Penggal cTemp1 dengan pemisah “|” dan simpan
ke dalam variabel array strT. Jika indeks tertinggi
array strT tidak sama dengan dua, maka
74
munculkan pesan kesalahan “Invalid file !”, tutup
file dan keluar dari algoritma.
8. Set N = strT(0).
9. Set H = strT(1).
10. Set R = strT(2).
11. Set K = 0.
12. Ambil isi file pada baris berikutnya dan simpan ke
variabel cTemp1. Periksa apabila cTemp1 tidak
sama dengan “<begin_of_message>”, maka
munculkan pesan kesalahan “Invalid file !”, tutup
file dan keluar dari algoritma.
13. Set strMsg = “” dan cTemp1 = “”.
14. Ambil isi pesan. Selama cTemp1 tidak sama
dengan “<end_of_message>”, lakukan algoritma
berikut:
a. Set strMsg = strMsg & IIf(strMsg <> “”,
karakter <ENTER>, “”) & cTemp1.
b. Ambil isi file pada baris berikutnya dan
simpan ke variabel cTemp1.
15. Ambil isi file pada baris berikutnya dan simpan ke
variabel cTemp1. Periksa apabila cTemp1 tidak
sama dengan “<begin_of_signature>”, maka
munculkan pesan kesalahan “Invalid file !”, tutup
file dan keluar dari algoritma.
75
16. Ambil isi file pada baris berikutnya dan simpan ke
variabel strDS. Ini adalah digital signature dari
pesan.
17. Ambil isi file pada baris berikutnya dan simpan ke
variabel cTemp1. Periksa apabila cTemp1 tidak
sama dengan “<end_of_signature>”, maka
munculkan pesan kesalahan “Invalid file !”, tutup
file dan keluar dari algoritma.
18. Tutup file.
19. Tampilkan isi variabel strMsg pada textbox pesan.
20. Tampilkan isi variabel strDS pada textbox digital
signature.
4.3 Fase Konstruksi
Pada fase ini penulis mentransformasikan semua hasil rancangan,
lalu diterapkan menjadi program aplikasi yang dapat dioperasikan.
Dalam melakukan proses konstruksi penulis melalui langkah-langkah
sebagai berikut :
4.3.1 Instalasi Program
Sebelum memulai menuliskan kode program, perlu
dilakukan penginstalan perangkat lunak Microsoft Visual Basic
6.0 terlebih dahulu.
76
4.3.2 Menjalankan software Visual Basic 6.0
Setelah software terinstal dengan benar, maka selanjutnya
adalah menjalankan Visual Basic 6.0, yaitu dengan cara Start ->
All Programs -> Microsoft Visual Basic -> Visual Basic 6.0
seperti ditunjukkan oleh gambar berikut ini :
Gambar 4.11 Menjalankan Software Visual Basic 6.0
Gambar 4.12 Tampilan Awal Software Visual Basic 6.0
77
4.3.3 Mengatur Tata Letak Komponen GUI
Graphical User Interface (GUI) dalam aplikasinya dapat
terdiri atas beberapa komponen user interface yang saling
berinteraksi, sehingga membentuk sebuah program aplikasi.
Setelah membuka New Project Visual Basic 6.0, langkah
selanjutnya adalah mendesain Project dengan menggunakan
komponen palet seperti picture box, label, text box, command
button, frame, radio button dan sebagainya. Untuk membuat
GUI baru klik File -> New Project -> Standard Exe, sehingga
muncul tampilan sebagai berikut :
Gambar 4.13 Tampilan Project Baru
Setelah itu penulis, mengatur tata letak masing-masing
komponen, baik string(caption), tag(name), font, maupun color,
dengan menggunakan property.
78
Gambar 4.14 Halaman Kerja New Project
Gambar 4.15 Contoh Pengaturan Tata letak Pada Project VB Jika
telah selesai mendesain, maka langkah berikutnya
adalah menyimpan dengan file berekstensi *.vbp. Dari sini,
Visual Basic akan secara otomatis membuat menyimpan form-
form yang telah dibuat dalam project.
79
4.3.4 Memprogram Komponen GUI
Langkah selanjutnya yang harus dilakukan adalah
menulis kode program pada vb code yang telah dibuat pada
langkah sebelumnya agar komponen dapat bekerja secara
simultan.
Gambar 4.16 Membuka VB Code dari Project Yang Telah
Dirancang
Gambar 4.17 Gambar tampilan VB Code
80
4.3.5 Menjalankan Program
Setelah Project selesai didesain dan kode selesai ditulis,
maka langkah selanjutnya adalah menjalankan program. Dengan
meng klik tombol Run.
4.4 Fase Pelaksanaan
4.4.1 Spesifikasi Minimum Penggunaan Aplikasi
Program ini direkomendasikan untuk dijalankan dengan
menggunakan perangkat keras (hardware) yang mempunyai
spesifikasi minimum sebagai berikut
1. Prosesor Intel Pentium IV 1.6 Ghz.
2. Memory 64 MB.
3. Harddisk dengan free space minimal 500 MB.
4. VGA card 4 MB.
5. Monitor dengan resolusi 1024 × 768 pixel.
6. Keyboard dan Mouse.
Adapun perangkat lunak (software) yang digunakan untuk
menjalankan aplikasi ini adalah lingkungan sistem operasi MS-
Windows-98SE atau MS-Windows NT/2000/XP.
4.4.2 Pengujian Aplikasi
Untuk melihat dan menguji output perangkat lunak, maka
dibahas beberapa contoh penerapan skema digital signature.
Contoh penerapan skema digital signature pada perangkat lunak
81
adalah sebagai berikut: (tampilan pendahuluan Ong-Schnorr-
Shamir DSS dapat dilihat pada gambar 4.1).
1. Fitur Halaman Utama Aplikasi Tanda Tangan Digital
Gambar 4.18 Tampilan Halaman Utama Aplikasi Tanda
Tangan Digital
2. Fitur Menu Ong Schnorr Shamir scheme
Gambar 4.19 Tampilan Halaman Awal Pembuka
82
Gambar 4.20 Tampilan Halaman Hitung n dan k
Gambar 4.21 Tampilan Halaman Setelah input n dan k
83
Gambar 4.22 Tampilan Halaman Hash File
Gambar 4.23 Tampilan Halaman File yang akan di Hash
84
Gambar 4.24 Tampilan Halaman Nilai Hash yang di Tanda
Tangani
Gambar 4.25 Tampilan Halaman Verifikasi Pesan
85
3. Fitur Menu Aplikasi Ong Schnorr Shamir
Gambar 4.26 Tampilan Menu Aplikasi Tanda Tangan Digital
Gambar 4.27 Tampilan Aplikasi yang telah di Tanda Tangani
86
4.4.3 Hasil Penelitian
Proses penelitian dilakukan untuk mengetahui keakuratan
dari program aplikasi yang dibuat. Penelitian tidak hanya
menerapkan pada data teks saja, tapi mencoba pada gambar.
Maupun hasil gabungan dari kedua data teks dan gambar. Hasil
penelitian dari data teks dan gambar yang telah diuji dapat dilihat
pada tabel berikut :
Tabel 4.1 Hasil Pengujian Pada Teks dan Gambar
No
Subyek Teks Uji Subyek Teks
Yang Berhasil Verifikasi
1 Rilanda Adzhani - XI IPS 1.doc
(1.38 Mb) Rilanda Adzhani - XI IPS 1.doc
(1.38 Mb)
2 1_419161851m.jpg
(6.95 Kb) 1_419161851m.jpg
(6.95 Kb)
3 editnia copy.jpg
(3.17 Mb) editnia copy.jpg
(3.17 Mb)
4 Surat Pernyataan.rtf + 60'.jpg
(181.5 Kb) Surat Pernyataan.rtf + 60'.jpg
(181.5 Kb)
5 Surat Pernyataan.txt
(756 byte) Surat Pernyataan.txt
(756 byte)
Dari tabel di atas dapat dilihat bahwa keakuratan dalam
pengujian pada teks dan gambar sistem dapat memverifikasi
dengan baik.
Persentase total keakuratan untuk semua proses verifikasi
tanda tangan adalah :
% verifikasi pesan = jumlah teks yang berhasil diverifikasi x 100 %
jumlah teks yang diuji
87
maka akan didapat persentase keberhasilan verifikasi
sebagai berikut :
% pengenalan verifikasi = 5 x 100 % = 100 %
5
Dari hasil yang diperoleh, maka dapat disimpulkan
bahwa aplikasi Tanda Tangan Digital Dengan Metode Ong-
Schnorr-Shamir ini memiliki keakuratan yang sangat baik
yaitu sebesar 100 %.
1. Hasil Verifikasi Rilanda Adzhani XI – IPS1.doc (1.38 Mb)
Gambar 4.28 Hasil Verifikasi 1
88
2. Hasil Verifikasi 1_419161851m.jpg (6.95 kb)
Gambar 4.29 Hasil Verifikasi 2
3. Hasil Verifikasi editnia copy.jpg (3.17 Mb)
Gambar 4.30 Hasil Verifikasi 3
89
4. Hasil Verifikasi Surat Pernyataan.rtf + 60'.jpg (32.5 Kb)
Gambar 4.31 Hasil Verifikasi 4
5. Hasil Verifikasi Surat Pernyataan.txt (756 Bytes)
Gambar 4.32 Hasil Verifikasi 5
90
DAFTAR PUSTAKA
[7] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi, Penerbit : Andi
Yogyakarta.
[9] Fowler, Martin. 2003. UML Distilled, Third Edition, New Jersey :
Addison Wesley Publishing.
[10] Hermawan, Julius. 2004. Analisa Desain dan Pemrograman Berorientasi
Objek Dengan UML di Visual Basic net. Yogyakarta : Andi.
[8] Holzner, Steven. 1998. Visual Basic Black Book. The Coriolis Group.
[12] Kendal, Kendal. 2003. Software Engineering : a Practitioner Approach.
Penerbit : The McGraw-Hill Companies, Inc.
[2] Menez, Alfred J., Paul C can Oorschot, dan Scott A. Vanislene. 1996.
Handbook of Applied Cryptography, Penerbit : CRC Press.
[1] Munir, Rinaldi. 2006. Kriptografi, Penerbit: Informatika Bandung.
[11] Pressman, Roger S. 2001. Software Engineering : a Practitioner
Approach. Penerbit : The McGraw-Hill Companies.
[3] Schneier Bruce. 1996. Applied Cryptography 2nd
edition : Protocol,
Algorithms, and Source code in C (cloth), Penerbit : John Willey and
Sons
[5] Stallings, William. 2005. Cryptography and Network Security Principles
and Practice, Fourth Edition, Penerbit : Prentice Hall.
[4] Stinson, Douglas. 1995. Cryptography : Theory and Practice, CRC Press.
[6] Sukarman, Herry. 2001. Teori Bilangan, Penerbit : Universitas Terbuka.
.