8
BAB II
TINJAUAN PUSTAKA
2.1
Dokumen Digital
Dokumen adalah sebuah tulisan yang memuat data dan informasi. Biasanya, dokumen ditulis di kertas dan informasinya ditulis memakai tinta baik memakai tangan atau memakai media elektronik (seperti printer). Dokumen merupakan suatu sarana transformasi informasi dari satu orang ke orang lain atau dari suatu kelompok ke kelompok lain. Dokumen meliputi berbagai kegiatan yang diawali dengan bagaimana suatu dokumen dibuat, dikendalikan, diproduksi, disimpan, didistribusikan, dan digandakan. Dokumen sangat penting, baik dalam kehidupan sehari-hari, organisasi, maupun bisnis.[1]
Dokumen digital merupakan setiap informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital, elektromagnetik, optikal, atau sejenisnya, yang dapat dilihat, ditampilkan dan didengar melalui komputer atau sistem elektronik tetapi tidak terbatas pada tulisan, suara atau gambar, peta, rancangan, foto atau sejenisnya, huruf, tanda, angka, kode akses, simbol yang memiliki makna atau arti atau dapat dipahami oleh orang yang mampu memahaminya.
Dokumen digital dapat dihasilkan dengan menggunakan aplikasi pengolah kata (word processor) seperti Microsoft Word, Notepad atau OpenOffice untuk menghasilkan sebuah berkas komputer dengan ekstension yang berbeda-beda sesuai dengan aplikasi pengolah kata yang digunakan.
Universitas Sumatera Utara
9
2.1.1 Pengolahan Dokumen Digital
Untuk mengolah suatu dokumen digital, dibutuhkan perangkat lunak (software) khusus yang sering disebut dengan perangkat lunak pengolah kata (Word Processor). Perangkat lunak pengolah kata adalah suatu aplikasi komputer yang digunakan untuk menyusun, menyunting, memformat dan mencetak segala jenis bahan yang dapat dicetak. Adapun contoh dari perangkat lunak pengolah kata yang sering digunakan adalah Microsoft Word, OpenOffice Writer, Adobe Acrobat dan Foxit PDF Creator.
1. Microsoft Word
Microsoft Word
atau sering disebut dengan
Microsoft Office Word
adalah
perangkat lunak pengolah kata (word processor) yang diproduksi oleh Microsoft. Perangkat lunak ini pertama diterbitkan pada tahun 1983 dengan nama Multi-Tool Word untuk Xenix. Seiring dengan perkembangan zaman, versi-versi lain kemudian dikembangkan untuk berbagai sistem operasi, misalnya DOS (1983), Apple Macintosh (1984), SCO UNIX, OS/2, dan Microsoft Windows (1989). Perangkat lunak ini kemudian berubah nama menjadi Microsoft Office Word setelah menjadi bagian dari Microsoft Office System 2003 dan 2007.
Konsep yang digunakan oleh Microsoft Office Word adalah WYSIWYG (What You See Is What You Get). WYSIWYG merupakan sebuah konsep sistem dimana konten yang sedang disunting akan terlihat sama persis dengan hasil keluaran akhir, yang mungkin berupa dokumen yang dicetak, halaman web, slide presentasi, atau bahkan sebuah animasi bergerak.
Microsoft Office Word merupakan perangkat lunak pengolah kata pertama yang mampu menampilkan tulisan cetak miring atau cetak tebal pada IBM PC sementara perangkat lunak pengolah kata lain hanya menampilkan teks dengan kode markup dan warna untuk menandai pemformatan cetak tebal atau miring.
Universitas Sumatera Utara
10
2. OpenOffice.org Writer
OpenOffice.org Writer adalah salah satu komponen dalam OpenOffice.org yang berfungsi untuk mengedit dokumen adapun dokumen format yang bisa digunakan adalah .doc .odt .rtf dan dapat dikonversi dalam bentuk .pdf dengan sekali klik.
OpenOffice.org Writer memiliki fitur pengolah kata modern seperti AutoCorrect, AutoComplete, AutoFormat, Styles and Formatting, Text Frames, Linking, Tables of Contents, Indexing, Bibliographical References, Illustrations dan Tables.
Perangkat lunak ini sangat mudah digunakan untuk membuat memo cepat, sangat stabil dan mampu untuk membuat dokumen dengan banyak halaman serta banyak gambar dan judul heading. Selain itu, kelebihannya adalah pengaturan formating untuk bullet and number yang sangat mudah (diatur terintegrasi melalui satu toolbar).
3. Foxit PDF Creator
Foxit PDF Creator merupakan sebuah perangkat lunak pengolah kata yang cepat dan mudah dalam membuat dokumen digital dengan format PDF dan mampu mengubah dokumen digital dengan format DOC, XLS, PPT, TXT, E-MAIL atau HTML ke format PDF.
Foxit PDF Creator menyediakan cara cepat dan dapat diandalkan untuk membuat dokumen PDF sehingga membantu penggunanya untuk menghasilkan file PDF yang akurat dalam waktu yang singkat dengan tetap mempertahankan tata letak asli dokumen digital yang dikonversi.
Dengan kemampuan pencarian yang kuat dan kinerjanya yang tinggi, Foxit PDF Creator mampu menampilkan dan mengolah PDF dalam ukuran yang kecil, dalam waktu yang cepat dan tingkat akurasi yang tinggi menjadi format yang diinginkan pengguna.
Universitas Sumatera Utara
11
4. Adobe Acrobat
Adobe Acrobat merupakan sebuah perangkat lunak pengolah kata yang dapat mengkonversi suatu dokumen digital menjadi sebuah file dalam format PDF.
Dokumen digital yang dihasilkan oleh adobe acrobat dapat ditampilkan pada sebuah web browser dengan tampilan dan isi yang sama dengan dokumen aslinya. Adobe Acrobat menyediakan tools keamanan untuk membatasi akses terhadap file hasil konversi, misalnya mencegah orang lain untuk melakukan pencetakan atau pengubahan terhadap dokumen digital. Adobe Acrobat berbeda dengan Acrobat Reader, dimana adobe reader
hanya dapat membaca
file
PDF tanpa dapat
mengkoversi suatu file ke format PDF.
2.1.2 Format Dokumen Digital Dokumen digital memiliki beberapa format
sesuai dengan perangkat lunak
pengolahan yang digunakan untuk menghasilkan dokumen digital tersebut. Adapun beberapa jenis format dokumen digital yang sering dijumpai pada komputer adalah DOC, RTF dan PDF.
1. RTF (Rich Text Format)
Rich Text Format (RTF) adalah sebuah format dokumen yang dibuat oleh Microsoft, yang dibuat berdasarkan spesifikasi Document Content Architecture (DCA) yang dibuat oleh IBM untuk System Network Architecture (SNA). Format dokumen ini, dapat digunakan untuk mentransfer dokumen teks terformat antar aplikasi, baik itu di dalam satu platform atau platform yang berbeda seperti IBM PC dan Macintosh. Meskipun termasuk ke dalam kelas dokumen teks terformat, format RTF ini tetap menggunakan standar pengkodean ANSI, ASCII, PC-8, Macintosh, Unicode atau IBM PC Character Set untuk mengontrol representasi dan pemformatan dari sebuah dokumen, baik itu ketika ditampilkan di layar ataupun ketika dicetak di atas kertas.
Universitas Sumatera Utara
12
Meskipun hanya berisi teks biasa, format ini dapat mendukung grafik dan tabel dalam sebuah dokumen, meski jika dalam dokumen terdapat gambar, ukurannya jauh lebih besar jika dibandingkan dengan format biner seperti format dokumen biner semacam Microsoft Word (*.doc) atau StarOffice Writer (*.sxw). Adapun bentuk tampilan dari file RTF yang diolah menggunakan Microsoft Word seperti terlihat pada Gambar 2.1.
Universitas Sumatera Utara
13
Gambar 2.1 Contoh File RTF
Universitas Sumatera Utara
14
2. DOC (Document)
DOC (document) merupakan jenis file untuk dokumen yang dibuat dengan perangkat lunak pengolah kata seperti Microsoft Word, Open Office Writer atau Abiword. Format file ini sangat populer dari dulu sampai sekarang dan sudah menjadi standard bagi format dokumen digital. Adapun contoh file DOC yang diolah menggunakan Microsoft Word seperti terlihat pada Gambar 2.2.
Gambar 2.2 Contoh File Doc
Universitas Sumatera Utara
15
3. PDF (Portable Document Format)
PDF (Portable Document Format) adalah sebuah format berkas yang dibuat oleh Adobe System pada tahun 1993 untuk keperluan pertukaran dokumen digital. Format PDF digunakan untuk merepresentasikan dokumen dua dimensi yang meliputi teks, huruf, citra dan grafik vektor dua dimensi.
Antarmuka dokumen PDF pada umumnya tersusun atas kombinasi teks, grafik vektor, dan grafik raster. Grafik vektor digunakan untuk menampilkan ilustrasi yang terbentuk dari garis dan kurva, sedangkan grafik raster digunakan untuk menampilkan foto dan citra. Pada perbaikan format selanjutnya, dokumen PDF juga mampu mendukung hyperlink, forms, javascript, dan berbagai kemampuan lain yang dapat didukung dengan melakukan penambahan plugin. Dokumen PDF versi 1.6 telah memiliki kemampuan untuk menampilkan grafik tiga dimensi interaktif.
Berkas PDF dapat dibuat secara spesifik agar dapat diakses oleh orang-orang dengan cacat/keterbatasan fisik. Format berkas PDF dapat dilengkapi dengan label (tag) XML, teks ekuivalen, perbesaran visual teks (magnifier), penambahan fasilitas audio/suara, dan sebagainya. Berkas PDF dapat disandikan sehingga untuk dapat membuka atau mengeditnya diperlukan katakunci tertentu. Penyandian berkas PDF dilakukan dalam dua tingkat, yakni 40-bit dan 128-bit dengan menggunakan sistem sandi kompleks RC4 dan MD5. Berkas PDF juga dapat diberi pembatasan DRM untuk membatasi aktivitas penggandaan, penyuntingan, maupun pencetakan berkas tersebut. Adapun contoh file PDF yang diolah menggunakan Foxit Reader seperti terlihat pada Gambar 2.3.
Universitas Sumatera Utara
16
Gambar 2.3 Contoh File PDF
Universitas Sumatera Utara
17
2.2
Digital Signature
Digital signature adalah suatu teknik kriptografi yang betujuan untuk menjamin kepemilikan suatu data. Ada tiga alasan yang mendasari penggunaan digital signature, yaitu
authentication,
integrity
dan
non-repudiation.
Keaslian
pengirim
(authentication) yang berkaitan dengan masalah kebenaran identitas pengirim. Keaslian
informasi (integrity)
berkaitan dengan
keutuhan
informasi.
Anti
penyangkalan (non-repudiation) mengandung arti agar pengirim tidak dapat menyangkal tentang isi informasi yang dikirim. Steganografi adalah seni dan teknik menyembunyikan informasi ke dalam suatu media agar tidak diketahui oleh seseorang kecuali penerima.[6]
2.2.1 Tujuan Digital Signature
Secara umum, tujuan dari penandatanganan suatu dokumen dengan menggunakan tanda tangan digital adalah sebagai berikut : 1. Bukti Sebuah tanda tangan digital mengotentikasikan suatu dokumen dengan mengidentifikasikan penandatangan dengan dokumen yang ditandatangani. 2. Formalitas Penandatanganan suatu dokumen ‘memaksa’ pihak yang menandatangani untuk mengakui pentingnya dokumen tersebut. 3. Persetujuan Dalam beberapa kondisi yang disebutkan dalam hukum, sebuah tanda tangan digital menyatakan persetujuan pihak yang menandatangani terhadap isi dari dokumen yang ditandatangani. 4. Efisiensi Sebuah tanda tangan digital pada sebuah dokumen dapat digunakan sebagai klarifikasi pada suatu transaksi dan menghindari akibat-akibat yang tersirat di luar apa yang telah dituliskan.
Universitas Sumatera Utara
18
Untuk mencapai tujuan dari penandatanganan
suatu dokumen tersebut, ,
sebuah tanda tangan digital harus mempunyai atribut-atribut sebagai berikut: 1. Otentikasi Penanda tangan Sebuah tanda tangan digital harus dapat mengidentifikasikan siapa yang menandatangani dokumen tersebut dan susah untuk ditiru orang lain. 2. Otentikasi Dokumen Sebuah tanda tangan digital harus dapat mengidentifikasikan apa yang ditandatangani, membuatnya tidak mungkin dipalsukan ataupun diubah (baik dokumen yang ditandatangani maupun tandatangannya).
Otentikasi penandatangan dan dokumen adalah alat untuk menghindari pemalsuan dan merupakan suatu penerapan konsep “nonrepudiation” dalam bidang keamanan informasi.
2.2.2 Prinsip Kerja Digital Signature
Digital Signature dibuat dengan menggunakan teknik kriptografi, suatu cabang dari matematika terapan yang menangani tentang pengubahan suatu informasi menjadi bentuk lain yang tidak dapat dimengerti dan dikembalikan seperti semula.
Tanda tangan digital menggunakan “public key cryptography” (kriptografi kunci publik), dimana algoritmanya menggunakan dua buah kunci, yang pertama adalah kunci untuk membentuk tanda tangan digital atau mengubah data ke bentuk lain yang tidak dapat dimengerti, dan kunci kedua digunakan untuk verifikasi tanda tangan digital ataupun mengembalikan pesan ke bentuk semula. Konsep ini juga dikenal sebagai “assymmetric cryptosystem” (sistem kriptografi non simetris).
Sistem kriptografi ini menggunakan kunci privat yang hanya diketahui oleh penandatangan dan digunakan untuk membentuk tanda tangan digital, serta kunci publik yang digunakan untuk verifikasi tanda tangan digital. Jika beberapa orang ingin memverifikasi suatu tanda tangan digital yang dikeluarkan oleh seseorang, maka kunci publik tersebut harus disebarkan ke orang-orang tersebut. Kunci privat dan kunci publik
ini sesungguhnya secara matematis ‘berhubungan’ (memenuhi
Universitas Sumatera Utara
19
persamaan-persamaan dan kaidah-kaidah tertentu). Walaupun demikian, kunci privat tidak dapat ditemukan menggunakan informasi yang didapat dari kunci publik.
Proses lain yang tak kalah penting adalah “fungsi hash”, digunakan untuk membentuk sekaligus memverifikasi tanda tangan digital. Fungsi hash adalah sebuah algoritma yang membentuk representasi digital atau semacam “sidik jari” dalam bentuk “nilai hash” (hash value) dan biasanya jauh lebih kecil dari dokumen aslinya dan unik hanya berlaku untuk dokumen tersebut. Perubahan sekecil apapun pada suatu dokumen akan mengakibatkan perubahan pada “nilai hash” yang berkorelasi dengan dokumen tersebut. Fungsi hash yang demikian disebut juga “fungsi hash satu arah”, karena suatu nilai hash tidak dapat digunakan untuk membentuk kembali dokumen aslinya.
Oleh karenanya, fungsi hash dapat digunakan untuk membentuk tanda tangan digital. Fungsi hash ini akan menghasilkan “sidik jari” dari suatu dokumen (sehingga unik hanya berlaku untuk dokumen tersebut) yang ukurannya jauh lebih kecil daripada dokumen aslinya serta dapat mendeteksi apabila dokumen tersebut telah diubah dari bentuk aslinya.
Penggunaan tanda tangan digital memerlukan dua proses, yaitu dari pihak penandatangan serta dari pihak penerima. Secara rinci kedua proses tersebut dapat dijelaskan sebagai berikut: 1. Pembentukan tanda tangan digital menggunakan nilai hash yang dihasilkan dari dokumen serta kunci privat yang telah didefinisikan sebelumnya. Untuk menjamin keamanan nilai hash maka seharusnya terdapat kemungkinan yang sangat kecil bahwa tanda tangan digital yang sama dapat dihasilkan dari dua dokumen serta kunci privat yang berbeda. 2. Verifikasi tanda tangan digital adalah proses pengecekan tanda tangan digital dengan mereferensikan ke dokumen asli dan kunci publik yang telah diberikan, dengan cara demikian dapat ditentukan apakah tanda tangan digital dibuat untuk dokumen yang sama menggunakan kunci privat yang berkorespondensi dengan kunci publik.
Universitas Sumatera Utara
20
Untuk menandatangani sebuah dokumen atau informasi lain, penandatangan pertama-tama membatasi secara tepat bagian-bagian mana yang akan ditandatangani. Informasi yang dibatasi tersebut dinamakan “message”. Kemudian aplikasi tanda tangan digital akan membentuk nilai hash menjadi tanda tangan digital menggunakan kunci privat. Tanda tangan digital yang terbentuk adalah unik baik untuk message dan juga kunci privat.
Umumnya, sebuah tanda tangan digital disertakan pada dokumennya dan juga disimpan dengan dokumen tersebut juga. Bagaimanapun, tanda tangan digital juga dapat dikirim maupun disimpan sebagai dokumen terpisah, sepanjang masih dapat diasosiasikan dengan dokumennya. Karena tanda tangan digital bersifat unik pada dokumennya, maka pemisahan tanda tangan digital seperti itu merupakan hal yang tidak perlu dilakukan.
Proses pembentukan dan verifikasi tanda tangan digital memenuhi unsur-unsur paling penting yang diharapkan dalam suatu tujuan legal, yaitu: 1. Otentikasi Penandatangan Jika pasangan kunci publik dan kunci privat berasosiasi dengan pemilik sah yang telah
didefinisikan,
maka
tanda
tangan
digital
akan
dapat
menghubungkan/mengasosiasikan dokumen dengan penandatangan. Tanda tangan digital tidak dapat dipalsukan, kecuali penandatangan kehilangan kontrol dari kunci privat miliknya. 2. Otentikasi Dokumen Tanda tangan digital juga mengidentikkan dokumen yang ditandatangani dengan tingkat kepastian dan ketepatan yang jauh lebih tinggi daripada tanda tangan di atas kertas. 3. Penegasan Membuat tanda tangan digital memerlukan penggunaan kunci privat dari penandatangan. Tindakan ini dapat menegaskan bahwa penandatangan setuju dan bertanggung jawab terhadap isi dokumen. 4. Efisiensi Proses pembentukan dan verifikasi tanda tangan digital menyediakan tingkat kepastian yang tinggi bahwa tanda tangan yang ada merupakan tanda tangan sah
Universitas Sumatera Utara
21
dan asli dari pemilik kunci privat. Dengan tanda tangan digital , tidak perlu ada verifikasi dengan melihat secara teliti (membandingkan) antara tanda tangan yang terdapat di dokumen dengan contoh tanda tangan aslinya seperti yang biasa dilakukan dalam pengecekan tanda tangan secara manual.
2.3
Undeniable Signature
Undeniable
Signature
ialah
skema
tanda
tangan digital
di
mana
untuk
memverifikasi tanda tangan digital diperlukan persetujuan pemberi tanda tangan, biasanya proses verifikasi berlangsung dengan sepengetahuan pemberi tanda tangan. Skema tersebut disebut juga non-self-athenticating signature schemes. Jika sebuah tanda tangan digital hanya dapat diverifikasi dengan persetujuan pemberi tanda tangan, pemberi tanda tangan tersebut mungkin saja menolak ketika diminta untuk mengotentifikasi dokumen yang ia tanda tangani. Undeniable Signature dapat memecahkan masalah seperti ini dengan
menggunakan
sebuah
protokol yang disebut disavowal protocol pada skema tanda tangan digital. Skema undeniable signature pertama kali diusulkan oleh David Chaum dan Hans van Antwerpen dalam makalah mereka.[9]
Skema
undeniable
signature
diimplementasikan dengan
menggunakan
kriptografi kunci publik dengan berbasiskan masalah logaritma diskrit. Bagian penandatanganan dari skema
ini
mirip dengan algoritma
lain
yang
juga
menggunakan logaritma diskrit. Hanya saja pada proses verifikasi mengalami modifikasi. Proses verifikasi dilakukan dengan menggunakan protokol tanya-jawab di mana
pihak
yang
ingin memverifikasi pesan atau dokumen mengirimkan
pertanyaan kepada pemberi tanda tangan dan melihat jawaban yang diberikan untuk memverifikasi tanda tangan pada dokumen atau pesan yang ia terima. Proses penyangkalan juga berlangsung mirip dengan proses verifikasi.
Penerima mengirimkan pertanyaannya dan respons dari pengirim pesan menunjukkan bahwa tanda tangan yang terdapat pada dokumen tersebut bukanlah tanda tangannya. Kemungkinan bahwa pemberi tanda tangan berhasil menipu pemverifikasi
tanda
tangan baik pada
proses
verifikasi
maupun
proses
Universitas Sumatera Utara
22
penyangkalan ialah sebesar 1/p di mana p adalah bilangan prima yang digunakan sebagai kunci privat pemberi tanda tangan. Rata-rata panjang kunci privat ialah 768 bit, oleh karena itu kemungkinan bahwa pemberi tanda tangan dapat melakukan penyangkalan bernilai sangat kecil sekali.
Undeniable signature memiliki dua buah fitur utama : 1. Verifikasi tanda tangan berlangsung secara interaktif. Pemberi tanda tangan dapat membatasi siapa yang dapat memverifikasi tanda tangannya. 2. Protokol penyangkalan (disaproval protocol), yaitu sebuah protokol untuk menyatakan bahwa tanda tangan digital yang diberikan merupakan tanda tangan yang palsu.
Fitur pertama mengimplikasikan bahwa pemberi tanda
tangan
dapat
membatasi proses verifikasi sehingga hanya dapat dilakukan oleh orang-orang yang memiliki otoritas untuk membaca pesan atau dokumen yang ia tanda tangani.
Akibatnya jika pesan atau dokumen tersebut terbaca oleh pihak lain yang tidak memiliki otoritas, maka pihak ketiga tadi tidak dapat melakukan verifikasi terhadap dokumen itu.
Akan tetapi akibat adanya fitur pertama tersebut, pemberi tanda tangan bisa jadi mengingkari tanda tangan yang sebenarnya valid. Untuk mencegah hal tersebut
maka
digunakanlah properti
yang
kedua,
sebuah
metode
untuk
membuktikan bahwa sebuah tanda tangan digital adalah tanda tangan digital yang palsu.
Secara umum undeniable Signature memiliki tiga buah karakteristik utama yaitu: 1. Tanda tangan digital hanya dapat di verifikasi dengan kerja sama pemberi tanda tangan, namun tetap memiliki kapabilitas anti-penyangkalan. 2. Pemverifikasi tidak dapat mengecek validitas sebuah tanda tangan digital sendiri.
Universitas Sumatera Utara
23
3. Jika pemberi tanda tangan tidak bersedia untuk bekerja sama dalam memverifikasi pesan atau ia tidak dapat dimintai kerjasamanya maka penerima pesan juga tidak dapat memverifikasi pesan yang ia terima.
Kegunaan lain dari undeniable signature yaitu pada kasus perusahaan perangkat
lunak
yang menggunakan tanda tangan digital sebagai sarana untuk
mengotentifikasi bahwa produk perangkat lunak yang mereka buat hanya dapat digunakan oleh pelanggan yang benar-benar berhak untuk menggunakannya. Misalnya hanya pelanggan yang telah membayar.
Telah banyak terdapat skema undeniable signature yang diusulkan. Di antaranya ialah MOVA undeniable signature yang diusulkan oleh Jean Monnerat dan Serge Vaudenay, convertible undeniable signature yang memiliki varian yang cukup banyak, ID-Based undeniable signature, RSA-based undeniable signature, group undeniable signature yang dajukan oleh Lyuu dan Wu, lalu ada pula anonymous undeniable signature dengan berbagai pengembangannya.
Dari sekian banyak skema undeniable signature, diambil tiga buah skema yang
cukup
menarik untuk dibahas yaitu confirmer signature scheme, fair
anonymous undeniable signature dan group undeniable signature.
2.4
Algoritma Chaum’s Blind Signature
Algoritma Chaum’s Blind Signature adalah penandatanganan pesan yang dibuat oleh si pengirim pesan, dan ditandatangani oleh penerima pesan. Pada Blind Signature, pesan ditandatangani si penandatangan tanpa mengetahui isi pesan yang akan ditandatangani terlebih dahulu.
Mekanisme Blind Signature adalah sebagai berikut: 1.
Pihak pengirim pesan membangkitkan faktor blinding secara acak terhadap dokumen yang bersangkutan, kemudian mengirimkan dokumen yang telah disamarkan tersebut ke pihak penerima.
2.
Pihak penerima menerima pesan dan langsung menandatanganinya.
Universitas Sumatera Utara
24
Pengirim pesan mengeluarkan faktor blinding dari dokumen sehingga yang tertinggal pada dokumen tersebut adalah isi pesan yang sebenarnya dan tanda tangan penerima pesan. Sebenarnya mekanisme ini dapat dimanfaatkan oleh pihak-pihak tertentu untuk kepentingan sepihak yang mungkin dapat merugikan si pemberi tanda tangan, misalnya untuk menandatangani bukti bahwa si pemberi tanda tangan berhutang kepada seseorang, dan sebagainya. Karena itu untuk mencegah dampak negatif yang ditimbulkan dari adanya Blind Signature ini adalah dengan menerapkan konsep probabilitas, yaitu dengan mengambil sampel dokumen. Jika sampel dokumen yang dipilih berisi pesan yang wajar menurut penerima pesan, maka pesan lainnya dianggap sama wajarnya. Mekanismenya adalah sebagai berikut: 1. Pengirim mengirimkan
n
pesan yang telah disisipkan faktor
blinding di
dalamnya kepada penerima, kemudian penerima memilih pesan sejumlah n-1. 2. Penerima meminta faktor blinding dari sejumlah n-1 dokumen yang dipilihnya ke pengirim. 3. Penerima dapat membuka pesan tersebut setelah menghilangkan faktor blinding.
Setelah memastikan bahwa isi n-1 pesan benar menurut pandangan penerima, kemudian seluruh dokumen ditandatangani oleh penerima pesan. Dengan adanya mekanisme baru seperti ini kemungkinan pengirim pesan untuk melakukan kecurangan kecil, yaitu 1 banding n, karena pengirim tidak pernah tahu pesan mana yang dipilih oleh penerima.[8]
Dengan skema Blind Signature, seseorang dapat mendapatkan tanda tangan pada sebuah pesan dari si penandatangan yang tidak mengetahui isi pesan dan tidak dapat mengekstrak pesan. Skema Blind Signature mempunyai properti blindness dan untraceability,
untuk
menjamin
kerahasiaan
pengirim
dan
menghilangkan
keterhubungan antara pesan dengan tanda tangan. Karena itu Blind Signature biasanya digunakan untuk memfasilitasi kerahasiaan pengguna sistem.
Berdasarkan prinsip yang dimilikinya, Blind Signature dapat digunakan di aplikasi seperti Sistem Cash Payment dan Sistem Voting Elektronik. Misalnya pada Sistem Voting setiap kotak suara harus disahkan oleh pihak yang berwenang terhadap
Universitas Sumatera Utara
25
pemilihan sebelum diperhitungkan. Di luar sistem pihak ini seharusnya mengecek apakah pemilih memang memenuhi syarat sebagai pemilih dan tidak memilih lebih dari satu kali dengan memasukkan ke kotak suara yang lain. Dalam hal ini penghitung suara tidak mengetahui bahwa subjek S dipilih pemilih mana saja, atau bahkan apakah subjek S dipilih oleh pemilih P. Informasi keterhubungan seperti ini tidak ada sehingga tidak mungkin menelusuri kotak suara tersebut (unblinded).
Bentuk pesan yang telah mengalami blinding pada Blind Signature adalah sebagai berikut: M’ = B(M, R) Keterangan: M = pesan semula R = kunci blinding yang dipilih M’ = pesan setelah dikenakan fungsi Blinding
Penandatangan mengembalikan pesan S’ untuk di unblind oleh pengguna, pengguna melakukan komputasi terhadap tanda tangan S pada pesan awal M dengan menggunakan fungsi Unblinding U dengan menerima S’ dan R sebagai input. S’ adalah tanda tangan dari si penandatangan pada pesan M’.
Sedangkan fungsi Blinding dan Unblinding pada skema Blind Signature adalah sebagai berikut : 1. Fungsi Blinding: B(M, R) = RE M (mod N) 2. Fungsi Unblinding: U(S’, R) = R-1 S’(mod N) RSA-Signature adalah modifikasi skema RSA yang di ajukan oleh Chaum. Algoritma RSA hasil modifikasi yang untuk seterusnya disebut sebagai skema Chaum yang untuk seterusnya sebagai berikut: SE = M (mod N) Keterangan:
Universitas Sumatera Utara
26
E
= eksponen publik
N
= p.q
p, q = bilangan prima yang relatif besar M
= pesan yang ditandatangani
S
= tanda tangan RSA dari pesan M
Proses
blinding pada Blinding Signature membutuhkan komputasi untuk
mengantisipasi seluruh kemungkinan jenis tanda tangan. Untuk sebuah jenis kurang lebih ada sekitar lebih dari satu tanda tangan yang harus diantisipasi. Untuk itu dicetuskan skema Blind Unanticipated Signature. Skema ini membutuhkan komputasi sejumlah tertentu saja selama blinding untuk mengantisipasi berbagai kemungkinan tanda tangan yang diberikan pengguna yang berjumlah tak terhingga.
2.5
Flowchart (Bagan Alir)
Flowchart merupakan bagan alir program yang sifatnya terperinci tentang langkahlangkah proses didalam program dari awal sampai akhir. Flowchart digunakan sebagai alat bantu pengembangan sistem yang menjelaskan aliran proses yang terjadi pada perancangan sebuah sistem. Adapun simbol-simbol flowchart seperti pada Tabel 2.1
Universitas Sumatera Utara
27
Tabel 2.1 Simbol-Simbol Flowchart No 1
Simbol
2
Keterangan Simbol ini digunakan untuk memulai dan mengakhiri program Simbol ini digunakan untuk melakukan input dan output suatu program
3
Simbol ini digunakan untuk melakukan perulangan dalam keputusan
4
Simbol ini digunakan untuk menguji pilihan untuk mengambil keputusan Simbol ini digunakan melanjutkan flowchart pada halaman berikutnya sebagai penghubung Simbol ini digunakan untuk penghubung melanjutkan program dalam satu halaman atau halaman berikutnya Simbol ini digunakan untuk menunjuk arah program
5
6
7
2.6
Use Case Diagram
Use Case Diagram adalah diagram yang menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar dan menjelaskan sistem secara fungsional yang terlihat user. Biasanya dibuat pada awal pengembangan. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem.[3]
Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam
Universitas Sumatera Utara
28
dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Use case diagram dapat digunakan selama proses analisis untuk menangkap requirements sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Selama tahap desain, use case diagram berperan untuk menetapkan perilaku (behavior) sistem saat diimplementasikan. Dalam sebuah model mungkin terdapat satu atau beberapa use case diagram. Kebutuhan atau requirements sistem adalah fungsionalitas apa yang harus disediakan oleh sistem kemudian didokumentasikan pada model use case yang menggambarkan fungsi sistem yang diharapkan (use case), dan yang mengelilinginya (actor), serta hubungan antara actor dengan use case (use case diagram) itu sendiri.
Adapun beberapa notasi yang digunakan dalam sebuah use case diagram adalah sebagai berikut :
1. Actor Actor adalah sebuah entitas manusia atau mesin yang erinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Adapun bentuk dari notasi actor dalam use case diagram seperti terlihat pada Gambar 2.4.
Gambar 2.4 Notasi Actor
Universitas Sumatera Utara
29
2. Case Case digunakan untuk menggambarkan deskripsi yang melibatkan actor. Adapun bentuk dari notasi case dalam use case diagram seperti terlihat pada Gambar 2.5.
Gambar 2.5 Notasi Case
3. Extend Extend merupakan relasi yang digunakan jika use case yang satu mirip dengan use case yang lain. Adapun bentuk dari notasi extend dalam use case diagram seperti terlihat pada Gambar 2.6. <<Extend>> Gambar 2.6 Notasi Extend
4. Include Include merupakan relasi jika terdapat perilaku yang mirip dengan beberapa use case. Adapun bentuk notasi include dalam use case diagram seperti terlihat pada Gambar 2.7. <
> Gambar 2.7 Notasi Include
2.7
Activity Diagram
Activity
Diagram
(diagram
aktivitas)
merupakan
diagram flowchart
yang
disempurnakan. Diagram aktivitas menggambarkan operasi pada suatu Obyek atau proses pada sebuah organisasi. Kelebihan diagram aktivitas dibandingkan dengan diagram flowchart adalah adanya dukungan konkurensi (pelaksanaan aktivitas secara bersamaan), pengiriman pesan dan swimlane (pelaku/penanggung jawab aktivitas). Diagram aktivitas sangat berguna ketika ingin menggambarkan perilaku paralel atau menjelaskan bagaimana perilaku dalam berbagai use case berinteraksi.[3]
Universitas Sumatera Utara
30
Diagram aktivitas diawali dengan lingkaran hitam, dan diakhiri dengan lingkaran hitam bertepi putih. Aktivitas digambarkan dengan kotak persegi panjang bersudut lengkung. Setiap aktivitas dihubungkan dengan panah dari awal hingga akhir diagram aktivitas.
Sama halnya dengan diagram flowchart, diagram aktivitas pun memiliki simbol yang sama untuk menggambarkan keputusan. Keputusan digambarkan dengan intan, namun detugsa akhir kondisi yang menyertai keputusan diletakkan diluar simbol intan. Diagram aktivitas dapat menggambarkan konkurensi, yaitu satu atau lebih aktivitas yang berjalan secara bersamaan. Konkurensi diawali dengan sebuah garis tebal horizontal yang menjadi tempat keluarnya garis aktivitas. Konkurensi juga diakhiri dengan garis tebal horizontal. Adapun simbol-simbol yang digunakan dalam diagram aktivitas seperti terlihat pada Tabel 2.2.
Tabel 2.2 Simbol-Simbol Diagram Aktivitas Simbol
Keterangan Titik Awal atau permulaan. Titik Akhir atau akhir dari aktivitas. Decision, atau pilihan untuk mengambil keputusan. Arah tanda panah alur proses. Aktivitas yang dilakukan oleh aktor.
2.8
Algoritma
Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan
Universitas Sumatera Utara
31
catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.[4]
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
1.
Divide and Conquer Paradigma untuk membagi suatu permasalahan besar menjadi permasalahanpermasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
Universitas Sumatera Utara
32
2.
Dynamic programming Paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal dan mengandung beberapa bagian permasalahan yang tumpang tindih. Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
3.
Greedy Algorithm Greedy Algorithm mirip dengan sebuah pemrograman dinamik, bedanya jawaban dari sub masalah tidak perlu diketahui dalam setiap tahap dan menggunakan pilihan apa yang dilihat terbaik pada saat itu.
Universitas Sumatera Utara