BAB 2 LANDASAN TEORI
2.1
Pengenalan Kriptografi 2.1.1
Definisi dan Sejarah Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan
seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga dapat mengirimkan informasi kepada temannya secara on-line. Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak (unauthorized persons). Misalnya, informasi mengenai nomor kartu kredit, bila informasi ini jatuh kepada orang-orang yang jahat maka pemilik kartu kredit harus bersiap-siap terhadap melonjaknya tagihan kartu kreditnya. Kriptografi adalah ilmu untuk mempelajari penulisan secara rahasia dengan tujuan bahwa komunikasi dan data dapat dikodekan (encode/encrypt) dan didekodekan (decode/decrypt) kembali untuk mencegah pihak-pihak lain mengetahui isinya. Dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya hanya pihak yang berhak saja yang dapat mengetahui isi pesan sebenarnya. Sebelum tahun 1970-an, teknologi kriptografi digunakan terbatas hanya untuk tujuan militer dan diplomatik. Akan tetapi kemudian bidang bisnis dan perorangan mulai menyadari pentingnya melindungi informasi yang berharga.
7 Kriptograafi berasal dari bahassa Yunani yaitu kripto yang arrtinya terseembunyi dann grafia yaang artinya sesuatu yaang tertulis. Jadi kriptoografi meru upakan prosees transform masi suatu datta yang mem miliki maknaa ke dalam bentuk data acak yang tidak t memiliiki makna. Gunanya G unttuk menjagaa kerahasiaann data deng gan menerappkan rumus matematika m t tertentu, yanng dengan trransformasi balik, b data acak ini dappat diubah keembali ke daalam bentuk data semulaa. Sumber data yang akan a ditranssformasikan//dikodekan disebut d plaiintext. d Proses untuk meenyembunyikkan isi sesunngguhnya daari sebuah plaintext ke dalam bentu uk yang ham mpir tidak daapat dibaca tanpa t pengettahuan yang cukup dan sesuai s diseb but enkripsii. Sebuah sumber s dataa yang telahh ditransforrmasikan diisebut cipheertext. Prosees untuk meengembalikaan ciphertextt ke plaintexxt disebut deengan dekriipsi. Proses enkripsi dann dekripsi daapat dilihat pada p gambar 2.1 berikut ini.
Gam mbar 2.1 Prooses enkripsi dan dekripssi m/2007/02/krriptograpi.JP PG Sumbeer: http://sisiinfo.files.woordpress.com
Plaintextt biasanya disingkat d deengan huruff P. Plainteext dapat berupa derettan bit-bit sebuah teks file, f deretann digit-digit frekuensi suuara, atau seebuah
8 citra video. Selama data tersebut dapat diolah oleh computer, P adalah sebuah data biner, jadi dapat disimpulkan bahwa P adalah sumber yang akan dikodekan. Ciphertext disingkat dengan huruf C, merupakan sebuah data biner sama seperti P. Besar file ini kadang-kadang sama besar dengan file asli, tetapi dapat juga lebih besar dari file asli. Fungsi enkripsi disingkat dengan huruf E, yang akan memproses P untuk menghasilkan C, yang dinyatakan dengan E (P) = C Fungsi dekripsi disingkat dengan huruf D, yang akan memproses C kembali ke P, yang dinyatakan dengan D (C) = P Maka keseluruhan proses enkripsi dan dekripsi dapat dinyatakan dengan D (E(P)) = P Pertama kali kriptografi digunakan dan diberi ide oleh empat kelompok, yakni militer, korps diplomatik, diarist, dan orang yang sedang jatuh cinta. Dari keempat kelompok orang tersebut, militer telah memainkan peranan yang paling penting dan telah mengembangkan bidang ini. Di dalam organisasi militer, pesan-pesan yang telah di-encode secara tradisional diberikan kepada pekerja kode berupah rendah untuk selanjutnya dienkrip dan ditransmisikan. Tugas ini diusahakan agar tidak dilakukan oleh spesialis yang elit. Kendala kesulitan dalam peralihan yang cepat dari satu algoritma kriptografi ke algoritma lainnya disebabkan diperlukannya pelatihan orang dalam jumlah banyak. Keadaan yang bertolak-belakang ini telah membentuk model enkripsi.
9 Kriptografi mempunyai sebuah sejarah yang panjang dan menarik. Penghargaan untuk referensi non-teknis terlengkap adalah The Codebreakers oleh Kahn. Buku ini meliputi kriptografi dari penggunaannya yang pertama dan terbatas oleh bangsa Mesir 4000 tahun yang lalu, hingga abad XX di mana kriptografi memegang peranan penting sebagai akibat kedua perang dunia. Diselesaikan pada tahun 1963, buku Kahn mencakup aspek-aspek sejarah yang paling penting (pada waktu itu) pada perkembangan kriptografi. Para pengguna utama adalah mereka yang berhubungan dengan militer, pelayanan diplomatik dan pemerintahan secara umum. Kriptografi digunakan sebagai suatu alat untuk melindungi rahasia dan strategi-strategi nasional. Dalam sejarah perkembangannya, Julius Caesar dalam mengirimkan pesan yang dibawa oleh hulubalangnya, sengaja mengacak pesan tersebut sebelum diberikan kepada kurir. Hal ini dilakukan untuk menjaga kerahasiaan pesan baik bagi kurir maupun bagi musuh jika kurir tertangkap di tengah jalan oleh musuh. Apa yang dilakukan oleh Julius Caesar dianggap sebagai awal dari kriptografi. Sampai akhir perang dunia I, kriptografi merupakan disiplin ilmu matematika yang spesial. Penelitian dalam bidang ini tidak pernah sampai kepada umum, dan tidaklah mengherankan bahwa orang-orang tidak mengetahui kegunaan praktisnya. Seiring dengan terjadinya Perang Dunia II, pihak militer mulai menyadari manfaat yang besar dari penggunaan kriptografi, dan kriptanalisis. Kriptografi memungkinkan komunikasi dalam saluran yang aman (misalnya komunikasi radio gelombang panjang) dengan cara membuatnya menjadi tidak mungkin untuk dimengerti musuh. Pada akhir Perang Dunia II,
10 kriptografi telah mencapai kemajuan yang pesat. Akan tetapi, karena kriptografi telah menjadi bagian penting dalam komunikasi militer, kriptografi menjadi sesuatu yang sangat rahasia. Perkembangan komputer dan sistem komunikasi pada tahun 1960-an mengakibatkan adanya kebutuhan pihak swasta akan alat untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dengan usaha Feistel di IBM pada awal tahun 1970-an dan mencapai puncaknya pada tahun 1977 dengan pengadopsian sebagai Standar Pemrosesan Informasi pemerintah Amerika Serikat bagi enkripsi informasi rahasia, DES, Data Encryption Standard. DES adalah mekanisme kriptografi yang paling terkenal dalam sejarah. Metode ini menjadi alat standar untuk mengamankan electronic commerce bagi banyak institusi finansial di seluruh dunia. Sejarah perkembangan kriptografi dapat dilihat pada tabel 2.1 berikut. Tabel 2.1 Sejarah Perkembangan Kriptografi Sumber: http://www.informatika.org/~rinaldi/Kriptografi/20062007/Makalah1/Makalah1-020.pdf Tahun ~ 1900 A.D.
Keterangan Pertama kali digunakannya teknik transformasi cyptography di “tomb inscription”, merupakan penggunaan kriptografi yang pertama kali diketahui.
~ 475 A.D.
Sparta menggunakan kriptografi untuk komunikasi dan juga merancang alat untuk mengenkripsi (skytale) yang menghasilkan transposition cipher.
~ 350 A.D.
“Aenas The Tactician” mengeluarkan tulisan pertama mengenai keamanan komunikasi dan kriptografi.
11
~ 60 A.D.
Julius Caesar menjadi orang yang pertama kali yang diketahui menggunakan substitution cipher.
1412
“Treatise” tertua yang diketahui dalam kriptanalis yang diterbitkan oleh Alkalkas Handi (Mesir).
1917
Edward Hugh Hibern mengembangkan mesin motor yang pertama.
1971
IBM mengembangkan teknik enkripsi Lucifer.
1975
DES diumumkan (disetujui tahun 1977).
1976
Presentasi terbuka pertama tentang konsep public key oleh Diffie dan Helman.
1977
Merkle mengembangkan algoritma knapsack dan memberikan hadiah $100 bagi yang dapat memecahkan kuncinya (algoritma dengan satu kali pengulangan). Algoritma Rivest – Shamir – Aldeman (RSA) diumumkan kepada umum.
2.1.2 Pengamanan Data Sederhana Metode paling sederhana untuk pengamanan data ialah Caesar’s Shift. Metode ini akan menyusun karakter-karakter di dalam plaintext berdasarkan suatu aturan tertentu. Misalnya: P = kriptografi E (P) = C = pwnuytlwfkn di mana ciphertext diperoleh dengan geser 5 kali ke kanan terhadap plaintext. D (C) = D(E(P)) = P = kriptografi
12 di mana plaintext diperoleh dengan geser 5 kali ke kiri terhadap ciphertext. Dalam Caesar’s Shift ada beberapa sistem yang dapat digunakan.
1. Sistem Cipher Pagar (Rail-fence Cipher System) Sistem ini memiliki dua cara dalam proses ciphering-nya, yang pertama adalah membagi teks menjadi 2 bagian dan menyusunnya menjadi dua baris. Kemudian teks tersebut disusun kembali menurut urutan kolom (dari kolom sebelah kiri ke kolom sebelah kanan). Referensinya dapat dilihat pada gambar 2.2. Contoh: Plaintext: TRANSFORMASI CIPHER
Gambar 2.2 Proses Cipher Pagar menurut kolom Sumber: http://www.informatika.org/~rinaldi/Kriptografi/20062007/Makalah1/Makalah1-039.pdf
Ciphertext: TARSA INCSI FPOHR EMR Cara yang kedua adalah dengan menyusun pesan dari kolom kiri ke kanan dalam dua baris kemudian disusun kembali menjadi satu baris (dari baris paling atas ke baris paling bawah). Referensinya dapat dilihat pada gambar 2.3. Contoh:
13 Plaintext: TRANSFORMASI CIPHER
Gambar 2.3 Proses Cipher Pagar menurut baris Sumber: http://www.informatika.org/~rinaldi/Kriptografi/20062007/Makalah1/Makalah1-039.pdf
Ciphertext: TASOM SCPER NFRAI IHR 2. Sistem Cipher Lintasan (Route Cipher System) Dalam sistem ini teks diatur ke dalam suatu matriks, kemudian karakterkarakter dalam matriks disusun kembali berdasaran urutan suatu lintasan yang ditetapkan seperti lintasan kolom dan lintasan spiral. Contoh: Plaintext: ENKRIPSI UNTUK KEAMANAN DATA Disusun dalam matriks : E
N
K
R
I
P
S
I
U
N
T
U
K
K
E
A
M
A
N
A
N
D
A
T
A
Dengan lintasan kolom didapat gambar 2.4.
14 Ciphertext: EPTAN NSUMD KIKAA RUKNT INEAA E
N
K
R
I
P
S
I
U
N
T
U
K
K
E
A
M
A
N
A
N
D
A
T
A
Gambar 2.4 Proses Cipher Lintasan Kolom Sumber: http://www.informatika.org/~rinaldi/Kriptografi/20062007/Makalah1/Makalah1-039.pdf
Dengan lintasan spiral didapat gambar 2.5. Ciphertext: EPTAN DATAA ENIRK NSUMA NKUIK E
N
K
R
I
P
S
I
U
N
T
U
K
K
E
A
M
A
N
A
N
D
A
T
A
Gambar 2.5 Proses Cipher Lintasan spiral Sumber: http://www.informatika.org/~rinaldi/Kriptografi/20062007/Makalah1/Makalah1-039.pdf
Dalam sistem ini, ukuran matriks harus diketahui dan jika ada banyak karakter yang tidak memenuhi jumlah sel matriks maka sisa sel matriks yang kosong diisi dengan karakter null.
15 2.1.3
Pemakaian/Aplikasi Kriptografi sangat berguna sekali dan terdapat banyak aplikasi yang memanfaatkannya saat ini. Beberapa aplikasi yang lebih sederhana adalah sebagai berikut.
1.
Komunikasi yang aman Dengan menggunakan kriptografi dapat dilakukan komunikasi dengan aman dengan cara mengenkripsi pesan-pesan yang dikirim antar user. Orang ketiga mungkin saja dapat mengambil pesan mereka, tetapi ia harus mencari pesan sebenarnya yang terkandung di dalamnya sehingga membutuhkan waktu yang cukup lama. Setelah orang ketiga dapat memecahkan isi pesan, pesan tersebut telah tidak bermanfaat lagi.
2.
Identifikasi dan Autentikasi Identifikasi adalah proses verifikasi identitas seseorang atau sesuatu. Contoh: ketika kartu dimasukkan ke dalam mesin ATM, mesin tersebut akan meminta pengguna kartu untuk memasukkan PIN. Jika PIN yang dimasukkan benar, mesin mengidentifiasikan orang tersebut benar sebagai pemilik kartu sehingga kepadanya diberikan akses. Autentikasi mirip dengan identifikasi, karena keduanya memberikan kesempatan untuk akses ke dalam sumber daya tertentu tetapi autentikasi memiliki cakupan lebih luas karena tidak perlu mengidentifikasikan orang atau entity. Autentikasi hanya menentukan apakah orang tersebut atau entity memiliki hak terhadap apa saja yang menjadi pertanyaan.
16 3.
Secret Sharing Secret sharing memungkinkan pendistribusian satu rahasia antar sekumpulan orang yang saling percaya.
4.
Electronic Commerce Beberapa tahun terakhir ini telah berkembang bisnis yang dilakukan melalui internet. Pada saat terjadi pembelian maka komputer mengenkripsikan informasi dan mengirimnya ke dalam internet, informasi tersebut sulit dipahami oleh orang ketiga. Server web akan menerima informasi yang sudah dienkripsi kemudian melakukan dekripsi, dan melanjutkan proses penjualan tanpa ada kecurigaan bahwa nomor kartu kredit yang digunakan jatuh kepada orang yang salah. Dengan banyaknya bisnis yang dilakukan melalui internet, kebutuhan proteksi atas pemalsuan, pencurian, dan korupsi atas informasi vital menjadi sangat penting.
2.2
Jenis-Jenis Kriptografi 2.2.1
Kunci Simetris Ini adalah jenis kriptografi yang paling umum digunakan. Kunci untuk
mengenkripsi pesan sama dengan kunci untuk mendekripsi pesan yang telah terenkripsi. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut – termasuk pihak-pihak yang tidak diinginkan – dapat membuat dan membongkar rahasia ciphertext. Masalah yang paling jelas dalam hal ini bukanlah masalah pengiriman ciphertext-nya, melainkan masalah bagaimana menyampaikan kunci simetris
17 terseebut kepada pihak yangg diinginkann. Contoh allgoritma kunnci simetris yang terkeenal adalah DES D (Data Encryption E S Standard) daan RC-4.
Gam mbar 2.6 Pennggunaan Kuunci simetriss Sum mber: http://library.adisangggoro.or.id/S /Security/Traansparan%20Digisec1%220(cripto)_filles/images0002.gif
Kelebihaan kriptograffi kunci sim metri (kunci rahasia) r ini adalah keceepatan prosees enkripsi dan d dekripsii yang jauh lebih cepat dibandingkaan dengan sistem s kripttografi lainnnya. Kriptogrrafi kunci siimetri juga memiliki m kellemahan. Addapun kelem mahan dari kriptografi k k kunci simetrii adalah sebaagai berikut. 1. Masaalah distribusi kunci. Bagaimana caranya agar a kunci pembuka (uuntuk mend dekripsi) terrsebut bisa dengan d amann sampai ke penerima. Padahal P dikeetahui bahw wa jaringan internet bennar-benar tiddak aman. Jiika kunci saampai hilangg atau dapaat ditebak oleeh pihak kettiga yang tiddak bertangguungjawab, maka m kriptossistem ini su udah tidak aman a lagi. 2. Masaalah efisiensi jumlah kunci. k Jika ada pengguuna sebanyaak n, maka akan dibuttuhkan n(n-11)/2 kunci, sehingga s untuuk jumlah pengguna yanng sangat baanyak, sistem m ini tidak efisien. e Dua metoode paling umum u untukk kunci simeetris adalah block cipheer dan strea am cipher.
18 A. Block Cipher Block cipher adalah bentuk algoritma enkripsi kunci simetri yang mentransformasikan satu blok data tertentu dari plaintext (unencrypted text) ke dalam satu blok data ciphertext (encrypted text) dengan panjang yang sama. Transformasi ini berlangsung melalui penggunaan kunci rahasia yang disediakan oleh user. Dekripsi dilakukan dengan menggunakan transformasi sebaliknya terhadap blok ciphertext dengan kunci yang sama. Panjang blok tertentu disebut ukuran blok (block size). Karena blok plaintext yang berbeda dipetakan ke blok ciphertext yang berbeda (untuk memungkinkan dekripsi yang unik), suatu block cipher secara efektif menyediakan satu permutasi (korespondensi satu ke banyak) dari kumpulan pesan yang mungkin. Permutasi berpengaruh pada saat enkripsi tertentu yang sudah pasti rahasia, karena permutasi tersebut adalah fungsi dari kunci rahasia. Contoh algoritma block cipher adalah metode enkripsi DES, RC4 dan GOST.
B. Stream Cipher Stream cipher adalah jenis algoritma enkripsi simetri. Stream ciphers dapat dibuat sangat cepat, jauh lebih cepat dibandingkan dengan algoritma block cipher yang manapun. Sementara algoritma block cipher secara umum digunakan untuk unit plaintext yang besar sedangkan stream cipher digunakan untuk blok data yang lebih kecil, biasanya ukuran bit. Proses enkripsi terhadap plaintext tertentu dengan algoritma block cipher akan menghasilkan ciphertext yang sama jika kunci yang sama digunakan. Dengan stream cipher, transformasi
19 dari unit plaintext yang lebih kecil ini berbeda antara satu dengan lainnya, tergantung pada saat unit tersebut ditemukan selama proses enkripsi. Satu stream cipher menghasilkan apa yang disebut suatu keystream (suatu barisan bit yang digunakan sebagai kunci). Proses enkripsi dicapai dengan menggabungkan keystream dengan plaintext biasanya dengan operasi bitwise XOR. Pembentukan keystream dapat dibuat independen terhadap plaintext dan ciphertext, menghasilkan apa yang disebut dengan synchronous stream cipher. Hal ini dapat dibuat tergantung pada data dan enkripsinya, dalam hal mana stream cipher disebut sebagai self-synchronizing. Kebanyakan bentuk stream cipher adalah synchronous stream ciphers. Konsentrasi dalam stream ciphers pada umumnya berkaitan dengan sifatsifat teoritis yang menarik dari one-time pad. Suatu one-time pad, kadangkadang disebut Vernam cipher, menggunakan sebuah string dari bit yang dihasilkan murni secara acak (random). Keystream memiliki panjang sama dengan pesan plaintext dan string acak (random) digabungkan dengan menggunakan bitwise XOR dengan plaintext untuk menghasilkan ciphertext. Karena keystream seluruhnya adalah random, walaupun dengan sumber daya komputasi tak terbatas seseorang hanya dapat menduga plaintext jika dia melihat ciphertext. Metode cipher seperti ini disebut memberikan kerahasiaan yang sempurna (perfect secrecy), dan analisis terhadap one-time pad dipandang sebagai salah satu landasan kriptografi modern. Sementara one-time pad yang digunakan semasa perang melalui saluran diplomatik membutuhkan tingkat keamanan yang sangat tinggi. Kunci rahasia (yang hanya dapat digunakan satu kali) dianggap rahasia sepanjang pesan memperkenalkan masalah manajemen
20 kunci yang rumit. Untuk keamanan sempurna, one-time pad secara umum tidak praktis. Stream ciphers dikembangkan sebagai satu perkiraan terhadap tindakan dari one-time pad. Stream cipher modern tidak mampu menyediakan tingkat keamanan one-time pad yang memadai secara teori, tetapi setidaknya lebih praktis.
2.2.2
Kunci Asimetris Pada pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman
menemukan teknik enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris adalah pasangan kunci-kunci kriptografi yang salah satunya dipergunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia tertentu, dalam hal ini kunci privat, untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya. Dengan cara seperti ini, jika Anto mengirim pesan untuk Badu, Anto dapat merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh Badu, karena hanya Badu yang dapat melakukan dekripsi dengan kunci privatnya. Tentunya Anto harus memiliki kunci publik Badu untuk melakukan enkripsi. Anto bisa mendapatkannya dari Badu, ataupun dari pihak ketiga seperti Tari.
21
Gambar 2.7 Penggunaan Kunci Asimetris Sumber: http://library.adisanggoro.or.id/Security/Transparan%20Digisec1%20(cripto)_files/images004.gif
Teknik enkripsi asimetris ini jauh lebih lambat daripada enkripsi dengan kunci simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci asimetris. Pesannya dikirim setelah disandikan dengan kunci simetris tadi. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan penemunya yakni Rivest, Shamir dan Adleman).
2.2.3
Fungsi Hash Satu Arah Bagaimana jika Anto mengirimkan surat pembayaran kepada Badu
sebesar 1 juta rupiah, namun di tengah jalan Maman (yang ternyata berhasil membobol sandi) membubuhkan angka 0 lagi dibelakangnya sehingga menjadi 10 juta rupiah. Untuk Tari, pesan tersebut harus utuh, tidak diubah-ubah oleh siapapun, bahkan bukan hanya oleh Maman, namun juga termasuk oleh Anto, Badu dan gangguan pada transmisi pesan (noise). Hal ini dapat dilakukan dengan fungsi hash satu arah (one-way hash function), yang terkadang disebut sidik jari (fingerprint), hash, message integrity check, atau manipulation detection code.
22 Saat Anto hendak mengirimkan pesannya, dia harus membuat sidik jari dari pesan yang akan dikirim untuk Badu. Pesan (yang besarnya dapat bervariasi) yang akan di-hash disebut pre-image, sedangkan output-nya yang memiliki ukurannya tetap, disebut hash-value (nilai hash). Kemudian, melalui saluran komunikasi yang aman, dia mengirimkan sidik jarinya kepada Badu. Setelah Badu menerima pesan si Anto – tidak peduli lewat saluran komunikasi yang mana – Badu kemudian juga membuat sidik jari dari pesan yang telah diterimanya dari Anto. Kemudian Badu membandingkan sidik jari yang dibuatnya dengan sidik jari yang diterimanya dari Anto. Jika kedua sidik jari itu identik, maka Badu dapat yakin bahwa pesan itu utuh tidak diubah-ubah sejak dibuatkan sidik jari yang diterima Badu. Jika pesan pembayaran 1 juta rupiah itu diubah menjadi 10 juta rupiah, tentunya akan menghasilkan nilai hash yang berbeda.
Gambar 2.8 Fungsi hash satu arah sebagai sidik jari pesan Sumber: http://library.adisanggoro.or.id/Security/Transparan%20Digisec1%20(cripto)_files/images006.gif
Fungsi hash untuk membuat sidik jari tersebut dapat diketahui oleh siapapun, tak terkecuali, sehingga siapapun dapat memeriksa keutuhan dokumen atau pesan tertentu. Tidak ada algoritma rahasia dan umumnya tidak ada pula kunci rahasia.
23 Jaminan dari keamanan sidik jari dimulai dari kenyataan bahwa hampir tidak ada dua pre-image yang memiliki hash-value yang sama. Inilah yang disebut dengan sifat collision free dari suatu fungsi hash yang baik. Selain itu, sangat sulit untuk membuat suatu pre-image jika hanya diketahui hashvalue-nya saja. Contoh algoritma fungsi hash satu arah adalah MD-5 dan SHA. Message authentication code (MAC) adalah salah satu variasi dari fungsi hash satu arah, hanya saja selain pre-image, sebuah kunci rahasia juga menjadi input bagi fungsi MAC.
2.2.4
Tanda Tangan Digital Tanda tangan digital (digital signature) adalah suatu mekanisme
otentikasi yang memungkinkan pembuat pesan menambahkan sebuah kode yang bertindak sebagai tanda tangannya. Tanda tangan dihasilkan berdasarkan pesan yang ingin ditandatangani dan berubah-ubah sesuai dengan pesan. Tanda tangan digital dikirimkan bersama-sama dengan pesan kepada penerima. 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 tangan digital kunci publik (public key digital signature) menyediakan layanan authentication (keaslian) dan data integrity (keutuhan data). Selan itu, tanda tangan digital juga menyediakan layanan non-repudiation, yang artinya melindungi pengirim dari klaim yang menyatakan bahwa dia telah mengirim informasi padahal tidak.
24 Tanda tangan digital memberikan pelayanan yang tujuannya sama dengan tanda tangan (berupa tulisan tangan biasa). Tetapi, bagaimanapun juga, tanda tangan berupa tulisan tangan relatif lebih mudah ditiru/dipalsukan oleh orang lain. Sedangkan, tanda tangan digital hampir tidak mungkin dipalsukan, bahkan dapat berfungsi ganda, yaitu sekaligus dapat memperlihatkan sekilas isi informasi mengenai identitas yang menandatangani. Bahkan, beberapa orang lebih cenderung menggunakan tanda tangan digital daripada menggunakan enkripsi biasa. Contohnya, seseorang mungkin tidak peduli jika setiap orang mengetahui bahwa dia telah mentransfer uang sejumlah satu milyar ke rekening lain, tetapi orang tersebut pasti ingin tahu dan lebih peduli apakah teller bank tersebut benar-benar asli, benar-benar ada dan benar-benar sah. Perasaan was-was akan teller gadungan dalam sistem transaksi lewat Internet sangat wajar terjadi. Pada konsep yang telah diketahui sebelumnya, proses enkripsi informasi biasanya menggunakan kunci publik. Tetapi pada konsep tanda tangan digital, informasi justru dibubuhi tanda tangan digital (dienkripsi) dengan kunci rahasia yang dimiliki sumber. Apabila informasi tadi bisa diverifikasi (didekripsi) dengan kunci publik sumber yang telah tersebar, ini berarti bahwa informasi tersebut adalah benar-benar asli dari sumber. Konsep tanda tangan digital dapat dilihat pada gambar 2.9 berikut.
25
Gambar 2.9 Konsep tanda tangan digital Sumber: http://sisinfo.files.wordpress.com/2007/05/kriptograpi.JPG
Perhatikan illustrasi berikut. Badu memang dapat merasa yakin bahwa sidik jari yang datang bersama pesan yang diterimanya memang berkorelasi. Namun bagaimana Badu dapat merasa yakin bahwa pesan itu berasal dari Anto? Bisa saja saat dikirimkan oleh Anto melalui saluran komunikasi yang tidak aman, pesan tersebut diambil oleh Maman. Maman kemudian mengganti isi pesan tadi, dan membuat lagi sidik jari dari pesan yang baru diubahnya itu. Lalu, Maman mengirimkan lagi pesan beserta sidik jarinya itu kepada Badu, seolaholah dari Anto. Untuk mencegah pemalsuan, Anto membubuhkan tanda tangannya pada pesan tersebut. Dalam dunia elektronik, Anto membubuhkan tanda tangan digitalnya pada pesan yang akan dikirimkan untuk Badu sehingga Badu dapat merasa yakin bahwa pesan itu memang dikirim oleh Anto.
Sifat yang diinginkan dari tanda tangan digital adalah sebagai berikut. 1. Tanda tangan itu asli (otentik), tidak mudah ditulis/ditiru oleh orang lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga
26 penandatangan
tak
bisa
menyangkal
bahwa
dulu
ia
tidak
pernah
menandatanganinya. 2. Tanda tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah. 3. Tanda tangan itu dapat diperiksa dengan mudah. 4. Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan penandatangan. 5. Tanda tangan itu juga sah untuk copy dari dokumen yang sama persis.
2.3
Manajemen Kunci Kekuatan sistem kriptografi secara total bergantung pada keamanan kunci. Kunci perlu dilindungi selama fase daur hidupnya. Daur hidup kunci dimulai dari pembangkitan kunci (generation) sampai kunci tidak diperlukan lagi untuk kemudian dihancurkan (destruction). Secara garis besar, daur hidup kunci digambarkan pada Gambar 2.10 sebagai berikut.
27 Generation
Destruction
Distribution
Change
Storage
Usage
Gambar 2.10 Daur hidup kunci Sumber: http://sisinfo.files.wordpress.com/2007/08/kriptograpi.JPG Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di dalam daur hidupnya. Pada umumnya setiap kunci akhirnya diganti dengan kunci lain. Jadi, keseluruhan fase membentuk siklus (lingkaran) karena penghancuran kunci biasanya diikuti dengan penggantiannya dengan kunci baru (digambarkan dengan garis putus-putus). Manajemen kunci yang dibahas difokuskan pada algoritma kriptografi simetri karena manajemen kunci untuk algoritma kunci-publik sangat berbeda dengan algoritma simetri.
2.3.1
Pembangkitan Kunci (Key Generation) Pembangkitan kunci pada algoritma simetri jauh lebih mudah daripada
pembangkitan kunci pada algoritma kunci-publik. Karena kunci simetri umumnya rangkaian karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri. Masalah utama yang muncul pada pembangkitan kunci adalah bagaimana membuat kunci yang tidak dapat diprediksi. Metode yang dapat digunakan untuk
28 menjawab hal ini adalah dengan teknik manual (misalnya pelemparan koin/dadu), pembangkitan dari data pribadi (misalnya PIN), atau menggunakan pembangkit bilangan acak. Pada algoritma kunci-publik, pembangkitan kunci merupakan masalah tersendiri, karena pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu, pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci. Oleh karena itu, pada algoritma kunci-publik dibutuhkan program khusus untuk membangkitkan kunci. Masalah yang timbul di sini adalah kepercayaan pengguna terhadap program tersebut. Pada RSA misalnya, bila program hanya dapat membangkitkan bilangan prima yang terbatas, maka pihak lawan dapat membangkitkan sendiri bilangan-bilangan prima yang terbatas itu dan menggunakannya sebagai faktor dari salah satu parameter RSA.
2.3.2
Penyebaran Kunci (Key Distribution) Jika pengguna menggunakan kunci untuk melindungi informasi yang
disimpan di dalam storage, maka tidak ada kebutuhan untuk menyebarkan kunci. Tetapi, untuk kebutuhan komunikasi secara aman, maka diperlukan kebutuhan untuk mengirimkan kunci. Protokol pertukaran kunci dengan menggunakan algoritma kunci-publik dapat digunakan untuk mendistribusikan kunci.
29 2.3.3
Penyimpanan Kunci (Key Storage) Kunci disimpan di tempat yang aman yang tidak memungkinkan pihak
lawan mengaksesnya. Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik (misalnya disimpan di dalam lemari besi). Alternatif lain, kunci dapat disimpan di dalam smart card yang hanya dapat dibaca dengan menggunakan kode rahasia. Kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah ini. 1. Kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Konsep ini mengarah pada konsep key hierarchy, yang dalam hal ini setiap kunci di dalam hirarkhi digunakan untuk melindungi kunci di bawahnya. 2. Kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat terpisah. Jika kunci akan digunakan, maka setiap komponen direkonstruksi kembali. Untuk solusi no-2, misalkan kunci K dibagi menjadi dua komponen, K1 dan K2. Membagi dua langsung K sedemikian sehingga setengah bagian pertama menjadi K1 dan setengah bagian sisanya menjadi K2 tidak dianjurkan, karena memungkinkan pihak lawan menemukan K jika ia hanya mengetahui salah satu dari K1 dan K2. Misalkan K panjangnya 64 bit, dan lawan mengetahui K1, maka K dapat ditentukan dengan hanya 232 percobaaan untuk menemukan K2 secara exhaustive search (lebih sedikit dibandingkan 264 percobaan). Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K1 dan K2 sedemikian sehingga K = K1 ⊕ K2. Dalam hal ini, ukuran K1 dan K2 sama
30 dengan ukuran K, sehingga jika salah satu dari komponen K1 atau K2 diketahui, maka K relatif lebih sukar ditentukan.
2.3.4
Penggunaan Kunci (Key Usage) Setiap kunci digunakan sesuai tujuannya. Misalnya ada kunci yang
digunakan untuk mengenkripsi pesan, dan ada kunci yang digunakan untuk mengenkripsi kunci lainnya. Supaya setiap kunci mempunyai penggunaan yang unik, maka perlu diberi label pada setiap kunci, yang dalam hal ini label menspesifikasikan
penggunaan
kunci.
Misalnya,
label
tersebut
menspesifikasikan ‘kunci untuk mengenkripsi data’, ‘kunci untuk mengenkripsi kunci’, ‘kunci untuk pembangkitan bilangan acak’, dan sebagainya. Untuk algoritma kunci-publik, pengguna perlu memberi label untuk dua pasang kunci yang setiap pasang terdiri dari kunci publik dan kunci rahasia. Satu pasang kunci untuk enkripsi dan satu pasang lagi untuk sidik digital.
2.3.5
Perubahan Kunci (Key Change) Kunci sebaiknya diubah secara periodik dan teratur. Sistem kriptografi
harus mempunyai kemampuan untuk mengubah kunci. Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya dimata penyerang. Pada sistem EFTPOS (Electronic Funds Transfer at Point of Sale), kunci diubah setiap kali setelah selesai satu transaksi. Tidak ada aturan seberapa sering kunci seharusnya diubah. Tetapi cukup jelas dimengerti bahwa setiap kunci
31 seharusnya diubah jauh sebelum ia dapat ditemukan dengan cara exhaustive search.
2.3.6
Penghancuran Kunci (Key Destruction) Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara
yang aman. Jika kunci dicatat pada media kertas, maka cara penghancurannya misalnya menggunakan alat pemotong kertas (crosscut), membakarnya, atau menguburnya. Jika kunci disimpan di dalam media elektronik (seperti CD), maka cara penghancurannya bisa dengan menghapusnya atau menimpanya (overwritten) sedemikian sehingga tidak meninggalkan jejak yang bisa dilacak oleh penyerang. Kunci yang yang disimpan pada material lain dihancurkan sedemikian rupa sehingga ia tidak mungkin ditemukan kembali secara fisik maupun secara elektronik.
2.4
Landasan Matematis 2.4.1
Aritmatika Modular Aritmatika modular merupakan operasi matematika yang banyak
diimplementasikan pada metode kriptografi. Pada metode tanda tangan digital Ong-schnorr shamir, operasi aritmatika modular yang dipakai adalah operasi modulo biasa yang menghasilkan sisa bagi dari dua bilangan. Operasi modulo ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit pada komputer.
32 Contoh: (18526)2 mod (22) = 343212676 mod 22 = 4
2.4.2
Algoritma Euclidean untuk GCD (Greatest Common Divisor) 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. Algoritma untuk GCD adalah sebagai berikut. Function GCD(A As Double, B As Double) As Double P=A Q=B While Q <> 0 R = P Mod Q P=Q Q=R Wend GCD = P End Function
2.4.3 Pembulatan Angka 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. Aturan pembulatan yang dipakai adalah sebagai berikut. Aturan 1: Jika angka terkiri dari yang harus dihilangkan bernilai 4 atau kurang, maka angka terkanan dari yang mendahuluinya tidak berubah. Contoh pembulatan hingga 5 desimal di belakang koma adalah sebagai berikut. 1000,376421 dibulatkan menjadi 1000,37642.
33 1000,376422 dibulatkan menjadi 1000,37642. 1000,376423 dibulatkan menjadi 1000,37642. 1000,376424 dibulatkan menjadi 1000,37642. Angka yang harus dihilangkan adalah 4 (bernilai 4 atau kurang). Karenanya, angka 4 dibuang dan angka terkanan yang mendahuluinya, yaitu angka 2 tidak berubah. Aturan 2: Jika angka terkiri dari yang harus dihilangkan bernilai lebih dari 5 atau 5 diikuti oleh angka bukan nol, maka angka terkanan dari yang mendahuluinya bertambah dengan satu. Contoh pembulatan hingga 5 desimal di belakang koma adalah sebagai berikut. 1000,3764251 dibulatkan menjadi 1000,37643. Angka yang harus dihilangkan adalah 51 (bernilai 5 dan diikuti oleh angka bukan nol). Karenanya, angka 51 dibuang dan angka terkanan yang mendahuluinya, yaitu angka 2 bertambah satu menjadi 3. 1000,376426 dibulatkan menjadi 1000,37643. 1000,376427 dibulatkan menjadi 1000,37643. 1000,376428 dibulatkan menjadi 1000,37643. 1000,376429 dibulatkan menjadi 1000,37643. Angka yang harus dihilangkan adalah 9 (bernilai lebih dari 5). Karenanya, angka 9 dibuang dan angka terkanan yang mendahuluinya, yaitu angka 2 bertambah satu menjadi 3. Aturan 3 : Jika angka terkiri dari yang harus dihilangkan bernilai hanya 5 atau 5 yang diikuti oleh angka – angka nol belaka, maka angka terkanan dari yang mendahuluinya tetap jika genap, dan tambah satu jika ganjil.
34 Contoh pembulatan hingga 5 desimal di belakang koma adalah sebagai berikut. 1000,376425 dibulatkan menjadi 1000,37642. Angka yang harus dihilangkan adalah 5 (bernilai hanya 5). Karenanya, angka 5 dibuang dan angka terkanan yang mendahuluinya, yaitu angka 2 tidak berubah (karena angka 2 merupakan bilangan genap). 1000,376475 dibulatkan menjadi 1000,37648. Angka yang harus dihilangkan adalah 5 (bernilai hanya 5). Karenanya, angka 5 dibuang dan angka terkanan yang mendahuluinya, yaitu angka 7 bertambah satu menjadi 8 (karena angka 7 merupakan bilangan ganjil). Aturan pembulatan ini sesuai dengan syntax visual basic yang digunakan untuk pembulatan, yaitu ‘round’.
2.5
Ong-schnorr shamir Scheme Skema Ong-schnorr shamir merupakan salah satu skema tanda tangan digital yang terdapat dalam ilmu kriptografi. Skema tanda tangan digital Ongschnorr shamir diciptakan oleh H.Ong, C.P.Schnorr dan A.Shamir dan ditulis dalam buku mereka yang berjudul “An Efficient Signature Scheme Based on Polynomial Equations” pada halaman 208 sampai 216. Buku ini dirilis untuk publik pada tahun 1984. Selain skema tanda tangan digital, Ong-schnorr shamir juga memiliki skema subliminal channel (saluran tersembunyi). Skema ini diciptakan oleh Gustavus Simmons dan ditulis dalam bukunya yang berjudul “The Prisoner’s Problem and the Subliminal Channel” pada halaman 51 sampai halaman 67 pada
35 tahun 1984, “The Subliminal Channel and Digital Signatures” pada halaman 364 sampai halaman 378 pada tahun 1985 dan “A Secure Subliminal Channel” pada halaman 33 sampai halaman 41 pada tahun 1986. 2.5.1
Ong-schnorr shamir Digital Signature Scheme Bob mengirimkan pesan tidak terenkripsi kepada Alice dan Alice
menerima pesan dari Bob dengan baik. o Permasalahan: Apakah Alice dapat memverifikasi pesan dan tanda tangan digital Bob untuk memastikan keaslian dan keutuhan pesan? o Penyelesaian: Alice dan Bob dapat menggunakan salah satu metode digital signature dalam ilmu kriptografi, yaitu Ong-schnorr shamir Digital Signature Scheme. Berikut adalah prosedur kerja skema tanda tangan digital Ong-schnorr shamir. 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. c. k merupakan kunci privat, artinya nilai k hanya diketahui oleh pembuat pesan (Bob).
2. Hitung nilai h dengan rumus berikut. h = - (k-1)2 mod n
3. Tentukan sebuah bilangan integer acak (r). a. n dan r harus relatif prima, artinya nilai GCD(n, r) = 1.
36 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 oleh Bob) dengan rumus berikut. S1 =
*(
+ r) mod n
S2 =
*(
- r) mod n
5. Alice memverifikasi pesan dan tanda tangan digital Bob dengan menggunakan rumus berikut. S12 + h . S22 || M mod n
Skema prosedur dapat dilihat pada gambar 2.11 berikut ini.
37
Gambar 2.11 Skema prosedur Ong-schnorr shamir Digital Signature Sumber: http://paper.ijcsns.org/07_book/200902/20090238.pdf Sebagai contoh, pesan yang akan dikirimkan adalah huruf ‘A’, maka prosedur yang dilakukan dalam skema ini adalah: 1. Bob memilih n = 393541 dan k = 20. 2. Bob menghitung nilai h. h = -(k-1)2 mod n h = -(1/20)2 mod 393541 h = -0.0025 3. Bob memilih r = 16.
38 4. Hitung S1 dan S2 (digital signature dari Bob) M = Kode ASCII dari huruf 'A' = 65. S1 = 1/2 * (65/16 + 16) mod 393541 S1 = 10.03125 S2 = 20/2 * (65/16 - 16) mod 393541 S2 = -119.375 5. Alice memverifikasi pesan dan tanda tangan dari Bob. n = 393541, h = -0.0025, r = 16 M = Kode ASCII dari huruf 'A' = 65 S1 = 10.03125, S2 = -119.375 (10.03125)^2 + -0.0025 . (-119.375)^2 = 65 65 = 65 (True)
2.5.2
Ong-schnorr shamir Subliminal Channel Scheme Alice dan Bob masuk penjara. Celakanya, mereka berada dalam penjara
yang berbeda. Walter, pengawas penjara mengizinkan mereka berkomunikasi melalui surat, tetapi Walter tidak akan mengizinkan pesan dikirim dalam bentuk terenkripsi. Setiap pesan yang dikirim Bob harus dapat dibaca dan diverifikasi sumber dan keutuhannya oleh Walter. o Permasalahan: Dengan pengawasan ketat Walter, apakah Alice dan Bob dapat menciptakan sebuah jalur komunikasi tersembunyi di antara mereka berdua? o Penyelesaian: Alice dan Bob dapat menggunakan salah satu metode subliminal channel dalam ilmu kriptografi, yaitu, yaitu Ong-schnorr shamir Subliminal Channel Scheme.
39 Berikut adalah prosedur kerja skema Ong-schnorr shamir Subliminal Channel: 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. c. k merupakan kunci privat. Nilai k diketahui oleh pembuat pesan (Bob) dan pihak yang akan mendekripsi pesan samaran (Alice). 2. Hitung nilai h dengan rumus berikut. h = - (k-1)2 mod n
3. Buat pesan asli (w), pesan samaran (w') dan hitung S1 dan S2. a. Pesan samaran (w') diciptakan untuk menyamarkan pesan asli. Nilai variabel w, w’ dan n harus relatif prima (GCD(w', n) = 1 dan GCD(w,n) = 1). b. S1 dan S2 merupakan signature oleh Bob. c. Bob akan mengirimkan S1, S2 dan w' kepada Walter dan Alice. S1 =
*(
′
+ w) mod n
S2 =
*(
′
- w) mod n
4. Walter memverifikasi pesan samaran dan tanda tangan digital Bob (w') dengan menggunakan rumus berikut. w’ = S12 + h.S22 (mod n)
40 5. Alice mendekripsi pesan samaran Bob (w') dengan menggunakan rumus berikut. Alice juga dapat memverifikasi keutuhan pesan Bob dengan menggunakan rumus yang dipakai oleh Walter.
Skema prosedur dapat dilihat pada gambar 2.12 berikut ini.
Gambar 2.12 Skema prosedur Ong-schnorr shamir Subliminal Channel Sumber: http://paper.ijcsns.org/07_book/200902/20090238.pdf
41
Sebagai contoh, pesan yang akan dikirimkan adalah huruf ‘A’, maka prosedur yang dilakukan dalam skema ini adalah: 1. Bob memilih n = 393541 dan k = 20. 2. Bob menghitung nilai h. h = -(k-1)2 mod n h = -(1/20)2 mod 393541 h = -0.0025 3. Misalkan pesan asli (w) = ‘K’ dan pesan samaran (w’) = ‘H’, maka hitung S1 dan S2 (digital signature dari Bob) w = Kode ASCII dari huruf 'K' = 75 w' = Kode ASCII dari huruf 'H' = 72 S1 = 1/2 * (72/75 + 75) mod 393541 S1 = 37.98 S2 = 20/2 * (72/75 - 75) mod 393541 S2 = -740.4 4. Walter memverifikasi tanda tangan dan pesan samaran (w’) dari Bob. w' = Kode ASCII dari huruf 'H' = 72 S1 = 37.98, S2 = -740.4 w' = (37.98)^2 + -0.0025 . (-740.4)^2 72 = 72 (True) 5. Alice mendekripsi pesan samaran (w’) menjadi pesan asli(w). w' = Kode ASCII dari huruf 'H' = 72 S1 = 37.98, S(2) = -740.4
42 w = 72 / (37.98 + -740.4/20) w = 75 (Karakter dari kode ASCII 75 = 'K')
Pesan dan digital signature dari metode Ong-schnorr shamir subliminal channel dapat diverifikasi keasliannya dengan menggunakan Ong-schnorr shamir digital signature scheme. Perbedaannya hanya terletak pada metode dekripsi yang dimiliki oleh Ong-schnorr shamir subliminal channel.
2.6
Interaksi Manusia dan Komputer Menurut Shneiderman (2005, p4), Interaksi manusia dan komputer merupakan disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Interaksi manusia dan komputer ditekankan pada pembuatan antarmuka pemakai (user interface). User interface yang dibuat diusahakan sedemikian rupa sehingga seorang user dapat dengan baik dan nyaman menggunakan aplikasi perangkat lunak dibuat. Antar muka pemakai (user interface) adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai adalah agar sistem komputer dapat digunakan oleh pemakai (user interface), istilah tersebut digunakan untuk menunjuk pada kemampuan yang dimiliki oleh piranti lunak atau program aplikasi yang mudah dioperasikan dan dapat membantu menyelesaikan suatu persoalan dengan hasil yang sesuai dengan
43 keinginan pengguna, sehingga pengguna merasa nyaman mengoperasikan program tersebut.
2.6.1
Program Interaktif Suatu program yang interaktif dan baik harus bersifat user friendly.
(Scheiderman, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly. 1. Waktu belajar yang tidak lama 2. Kecepatan penyajian informasi yang tepat 3. Tingkat kesalahan pemakaian rendah 4. Penghafalan sesudah melampaui jangka waktu 5. Kepuasan pribadi
2.6.2
Pedoman Merancang User Interface Beberapa pedoman yang dianjurkan dalam merancang suatu program,
guna mendapatkan suatu program yang user friendly adalah sebagai berikut. 1. Delapan aturan emas (Eight Golden Rules) Untuk merancang sistem interaksi manusia dan komputer yang baik, harus
memperhatikan
delapan
aturan
emas
dalam
perancangan
antarmuka, seperti: strive for consistency (konsisten dalam merancang tampilan), enable frequent user to use shorcuts (memungkinkan
44 pengguna menggunakan shortcuts secara berkala), offer informative feed back (memberikan umpan balik yang informatif), design dialogs to yield closure (merancang dialog untuk menghasilkan keadaan akhir), offer simple error handling (memberikan penanganan kesalahan), permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah), support internal locus of control (mendukung pengguna menguasai sistem), dan reduce short-term memory load (mengurangi beban jangka pendek pada pengguna). 2. Teori waktu respon Waktu respon dalam sistem komputer menurut (Scheiderman, p352) adalah jumlah detik dari saat pengguna program memulai aktifitas sampai menampilkan hasilnya di layar atau printer. Pemakai lebih menyukai waktu respon yang pendek, waktu respon yang panjang mengganggu, waktu respon yang pendek menyebabkan waktu pengguna berpikir lebih pendek. Waktu respon harus sesuai dengan tugasnya, dan pemakai harus diberi tahu mengenai penundaan yang panjang.