implementasi tanda tangan digital menggunakan …

106
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

Upload: others

Post on 03-Nov-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 2: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 3: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 4: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 5: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 6: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 7: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 8: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 9: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 10: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 11: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

DAFTAR LAMPIRAN

LAMPIRAN A SOURCE CODE PROGRAM…………….….................. 93

1. Menu Utama Aplikasi……………………………… 93

2. Menu Hash File……………………………………… 94

xx

Page 12: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 13: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 14: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 15: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 16: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 17: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 18: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 19: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 20: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 21: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 22: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 23: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 24: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 25: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 26: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 27: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 28: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 29: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 30: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 31: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 32: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 33: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

• 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

Page 34: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 35: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 36: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 37: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 38: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 39: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 40: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 41: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 42: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 43: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 44: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 45: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 46: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 47: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 48: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 49: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 50: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 51: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 52: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 53: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 54: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 55: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 56: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 57: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 58: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 59: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 60: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 61: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 62: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 63: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 64: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 65: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 66: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 67: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 68: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 69: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 70: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 71: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 72: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 73: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 74: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 75: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 76: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 77: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 78: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 79: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 80: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 81: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 82: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 83: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 84: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 85: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 86: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 87: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 88: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 89: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 90: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 91: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 92: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 93: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 94: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 95: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

Gambar 4.20 Tampilan Halaman Hitung n dan k

Gambar 4.21 Tampilan Halaman Setelah input n dan k

83

Page 96: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

Gambar 4.22 Tampilan Halaman Hash File

Gambar 4.23 Tampilan Halaman File yang akan di Hash

84

Page 97: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

Gambar 4.24 Tampilan Halaman Nilai Hash yang di Tanda

Tangani

Gambar 4.25 Tampilan Halaman Verifikasi Pesan

85

Page 98: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 99: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 100: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 101: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 102: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 103: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

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

Page 104: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

and Practice, Fourth Edition, Penerbit : Prentice Hall.

Page 105: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …

[4] Stinson, Douglas. 1995. Cryptography : Theory and Practice, CRC Press.

[6] Sukarman, Herry. 2001. Teori Bilangan, Penerbit : Universitas Terbuka.

.

Page 106: IMPLEMENTASI TANDA TANGAN DIGITAL MENGGUNAKAN …