BAB II LANDASAN TEORI
2.1 Keamanan Data Data atau informasi merupakan suatu asset yang sangat berharga dan harus dilindungi. Informasi merupakan data yang sudah diproses dan diinterpretasikan menjadi sesuatu yang bermakna. Dan informasi dihimpun dari data yang memiliki relevansi dengan satu atau beberapa orang pada suatu waktu. Dengan adanya kemajuan dalam teknologi informasi, komunikasi dan komputer maka kemudian muncul masalah baru, yaitu masalah keamanan akan data dan informasi. Dalam hal ini akan membuka peluang bagi orang-orang yang tidak bertanggung jawab untuk menggunakannya sebagai tindak kejahatan. Dan tentunya akan merugikan pihak tertentu. Karena bila pesan yang dikirim berisi sesuatu yang bersifat rahasia sehingga pesan tersebut dibaca oleh pihak yang tidak berhak, maka bocorlah kerahasiaan pesan yang dikirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan. Aman berarti bebas dari ancaman bahaya bahwa pengirim menginginkan pesan yang akan dikirim ke penerima sampai dengan utuh tanpa ada kurang atau lebih pada pesan tersebut, artinya tidak ada manipulasi pesan selama pesan itu dalam perjalanan menuju penerima, dan harus dipastikan bahwa pesan yang diterima oleh penerima adalah pesan asli yang memang dikirim oleh pengirim tanpa ada penambahan atau pengurangan terhadap isi pesan yang memungkinkan akan merubah arti dari isi pesan tersebut. Ketika penerima telah yakin bahwa pesan yang dikirimkan tersebut memang benar berasal dari pengirim, bukan dari orang lain yang menyamar, dan pengirim juga yakin bahwa penerima pesan adalah orang yang ditujukan, maka hal tersebut adalah masalah keamanan pesan yang dinamakan otentikasi. Jika seseorang pernah menerima pesan, namun pengirim membantah bahwa pernah mengirimnya. Maka masalah keamanan tersebut disebut
8 http://digilib.mercubuana.ac.id/
9
penyangkalan (repudiation). Saat ini banyak orang yang membantah bahwa telah mengirim atau menerima pesan. Padahal pesan tersebut telah dikirim dan diterima oleh orang yang tepat. Jika pengirim membantah telah mengirim pesan, maka anda perlu membuktikan ketidak benaran tersebut (non-repudiation). Keempat masalah keamanan tersebut adalah kerahasiaan, integritas data, otentikasi, dan penyangkalan dapat diselesaikan dengan menggunakan kriptografi. Kriptografi tidak hanya menyediakan alat untuk keamanan pesan tetapi juga sekumpulan teknik yang berguna. Pentingnya informasi menyebabkan perlu dilakukan pengamanan terhadap informasi untuk menjaga keabsahan dan nilai yang dimiliki oleh informasi tersebut, agar tidak disalahgunakan oleh pihak lain yang tidak bertanggungjawab. Keamanan informasi merupakan cabang studi dari teknologi informasi yang mengkhususkan diri untuk mempelajari metode dan teknik untuk melindungi informasi dan sistem informasi dari akses, penggunaan, penyebaran, perusakan, perubahan, dan penghancuran tanpa otorisasi yang sah. Keamanan data pada komputer tidak hanya tergantung pada teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang diterapkan serta
Jika
firewall dan perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak, maka peran utama kriptografi untuk mengamankan data atau dokumen dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak bisa dibaca (Herryawan, 2010).
2.2 Ancaman Dan Aspek Keamanan Dalam Komunikasi Data Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer diberbagai sektor. Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data akan semakin meningkat. Terdapat banyak faktor yang mengancam keamanan komunikasi data. Ancaman-ancaman tersebut
menjadi
masalah terutama dengan semakin
http://digilib.mercubuana.ac.id/
10
meningkatnya komunikasi data yang bersifat rahasia. Secara garis besar, ancaman terhadap komunikasi data dapat dibagi menjadi 2 macam, yaitu: 1. Ancaman aktif mencakup kecurangan dan kejahatan terhadap komunikasi data. Dari sekian banyak faktor-faktor yang dapat mengancam keamanan dari suatu data, maka berdasarkan tekniknya, faktor-faktor tersebut dapat dikelompokkan ke dalam empat jenis ancaman, yaitu: a. Interruption Terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak. Interruption merupakan pola penyerangan terhadap sifat availability (ketersediaan data). Contohnya adalah merusak dan membuang data-data pada suatu sistem komputer, sehinggga menjadi tidak ada dan tidak berguna. b. Interception Yaitu serangan ini terjadi jika pihak ketiga berhasil mendapatkan akses informasi dari dalam sistem komunikasi. Interception merupakan pola penyerangan terhadap sifat confidentiality (kerahasiaan data). Contohnya, dengan menyadap data yang melalui jaringan public (wiretapping) atau menyalin secara tidak sah file atau program. Interception mengancam sifat kerahasiaan data. c. Modification Pada serangan ini pihak ketiga berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data). d. Fabrication Merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak yang meniru atau memalsukan suatu objek ke dalam sistem. Jadi, penyerang berhasil mengirimkan pesan menggunakan identitas orang lain. Fabrication merupakan pola penyerangang terhadap sifat authenticity. 2. Ancaman pasif mencakup kegagalan sistem, kesalahan manusia dan bencana alam.
http://digilib.mercubuana.ac.id/
11
Ancaman-ancaman tersebut diatas menjadi masalah terutama dengan semakin
meningkatnya
komunikasi
data
yang
bersifat
rahasia.
Untuk
mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha
untuk
melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Dan untuk masalah kekuatan pengamanannya tergantung pada algoritma metode enkripsi tersebut dan kunci yang digunakannya. Aspek keamanan komunikasi data terdiri dari: a. Authentication Memberi jaminan bahwa semua pelaku dalam komunikasi adalah otentik atau mereka yang dapat di-klaim. b. Integrity Aspek yang menjamin bahwa data tidak dirubah tanpa ada ijin pihak yang berwenang (authorized), menjaga keakuratan dan keutuhan data serta metode prosesnya untuk menjamin aspek integrity. c. Privacy and Confidentiality Aspek
yang
menjamin
kerahasiaan
data
atau
informasi,
memastikan bahwa informasi hanya dapat diakses oleh orang yang berwenang dan menjamin kerahasiaan data yang dikirim, diterima dan disimpan. d. Non-repudiation Adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman mengirimkan
atau atau
terciptanya membuat.
suatu
informasi
Non-repudiation
oleh
yang
menyediakan
metode untuk menjamin bahwa tidak terjadi kesalahan dalam melakukan klaim terhadap pihak yang melakukan transaksi. e. Availibility Aspek yang menjamin bahwa data akan tersedia saat dibutuhkan, memastikan user yang berhak dapat menggunakan data dan perangkat terkait.
http://digilib.mercubuana.ac.id/
12
2.3 Serangan Terhadap Kriptografi 2.3.1
Jenis-jenis Serangan Serangan
(“serangan
kriptanalisis”)
terhadap
kriptografi
dapat
dikelompokkan dengan beberapa cara: 1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu: a. Serangan pasif (passive attack) Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain:
wiretapping: penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambungan perangkat keras.
electromagnetic eavesdropping: penyadap mencegat data yang ditrasnmisikan melalui saluran wireless, misalnya radio dan microwave.
acoustic eavesdropping: menangkap gelombang suara yang dihasilkan oleh suara manusia.
b. Serangan aktif (active attack) Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian cipherteks,
mengubah
cipherteks,
menyisipkan
potongan
cipherteks palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. 2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu: a. Ciphertext-only attack
http://digilib.mercubuana.ac.id/
13
Ini adalah jenis serangan yang paling umum namun paling sulit, karena informasi
yang tersedia hanyalah
cipherteks
saja.
Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi,
membuat
terkaan
berdasarkan
informasi
yang
diketahui,dan sebagainya. b. Known-plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. c. Chosen-plaintext attack Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks-plainteks yang lebih mengarahkan penemuan kunci. d. Chosen-ciphertext attack Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi. e. Chosen-text attack Ini adalah jenis serangan yang merupakan kombinasi chosenplaintext attack dan chosen-chiphertext attack. 3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi empat, yaitu: a. Exhaustive attack atau brute force attack Ini adalah serangan untuk mengungkap plainteks atau kunci dengan menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang bersesuaian. b. Analytical attack
http://digilib.mercubuana.ac.id/
14
Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan kunci tetapi menganalisis kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci. c. Related-key attack Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit. d. Rubber-hose cryptanalysis Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan. 2.3.2
Kompleksitas Serangan Kompleksitas serangan dapat diukur dengan beberapa cara, yaitu:
1. Kompleksitas data (data complexity) Jumlah data (plainteks dan cipherteks) yang dibutuhkan sebagai masukan untuk serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks serangan tersebut, yang berarti semakin bagus sistem kriptografi tersebut. 2. Kompleksitas waktu (time complexity) Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang dibutuhkn untuk melakukan serangan, berarti semakin bagus kriptografi tersebut. 3. Kompleksitas ruang memori (space/storage complexity)
http://digilib.mercubuana.ac.id/
15
Jumlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang dibutuhkan untuk melakukan serangan, berarti semakin bagus sistem kriptografi tersebut.
2.4 Kriptografi 2.4.1 Pengertian Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Kriptografi merupakan seni menyembunyikan informasi yang hendak disampaikan ke pihak lain. Kriptografi adalah perpaduan dari matematika dan ilmu komputer yang dikembangkan pada teori informasi dan keamanan informasi. Sesuai dengan definisinya, kriptografi memiliki tujuan untuk menjaga kerahasiaan (confidentiality) dan memastikan bahwa pesan yang akan tiba ke penerima adalah asli, tidak direkayasa di perjalanan. Masalah keamanan informasi tersebut dinamakan otentikasi. (William Stallings, 2011) Saat ini kriptografi lebih dari sekedar privacy, tetapi juga untuk tujuan data integrity, authentication, dan nonrepudiation. (Rifki Sadikin, 2012) Dalam sebuah algoritma kriptografi, terdapat tiga unsur yaitu: 1. Enkripsi, yaitu proses mengubah plaintext menjadi ciphertext. 2. Dekripsi, yaitu proses mengubah ciphertext menjadi plaintext. 3. Kunci, merupakan kunci yang digunakan untuk proses enkripsi maupun dekripsi. Menurut Rifki Sadikin (2012), menyatakan bahwa: Kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Dalam kamus Bahasa Inggris Oxford diberikan pengertian sebagai berikut:
http://digilib.mercubuana.ac.id/
16
“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunakan huruf dan karakter diluar bentuk aslinya, atau dengan metodemetode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yamg ditulis dengan cara seperti ini” Kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryphtography” itu sendiri sudah menyiratkan sebuah seni). (Rifki Sadikin, 2012) Di dalam kriptografi terdapat berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui antara lain: a. Pesan, Plainteks, dan cipherteks Pesan (message) Adalah data atau informasi yang dapat dibaca atau dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dsb) atau yang disimpan di dalam media perekaman (kertas, storage, dsb). Pesan yang disimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara/bunyi (voice), dan video. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut
cipherteks
(ciphertext)
atau
kriptogram
(cryptogram).
Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima bisa dibaca. (Rinaldi Munir) b. Pengirim dan penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas disini dapat berupa orang, kertu kredit, dan sebagainya. Pengirim tentu menginginkan pesan dapat dikirim secara aman, yaitu ia yakin bahwa pihak lain tidak dapat membaca isi pesan yang ia kirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.
http://digilib.mercubuana.ac.id/
17
c. Enkripsi dan dekripsi Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption). Sedangkan proses mengembalikan cipherteks menjadi plainteks dinamakan dekripsi (decryption). Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pesan yang tersimpan. d. Cipher dan kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemenelemen antara dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka: E(P) = C → fungsi enkripsi E memetakan P ke C D(C) = P → fungsi dekripsi D memetakan C ke P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka persamaan: D(E(P)) = P harus benar. Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Jika menggunakan kunci K, maka fungsi enkripsi dan dekripsi ditulis sebagai berikut: EK(P)=C dan DK(C)=P Dan kedua fungsi tersebut memenuhi: DK(EK(P))=P Keterangan:
http://digilib.mercubuana.ac.id/
18
E = Enkripsi D = Dekripsi P = Plaintext C = Ciphertext K = Kunci Jika pesan “P” dienkripsikan dengan “E” menggunakan suatu kunci “K” maka menghasilkan “C”. Sedangkan pada proses dekripsi, pesan “C” tersebut didekripsikan dengan “D” menggunakan kunci “K” sehingga menghasilkan pesan “P” yang sama seperti pesan semula. Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai skema diperlihatkan pada Gambar.
Gambar 2.1 Skema enkripsi dan dekripsi dengan menggunakan kunci Sumber: (Kromodimoeljo, 2009, p5) 2.4.2
Tujuan Kriptografi Tujuan kritografi adalah melindungi data dari ancaman yang disengaja
atau tidak disengaja. Aspek–aspek keamanan data dalam kriptografi adalah sebagai berikut: 1. Kerahasiaan (confidentiality) Layanan yang diguanakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi tersebut.
Ada
beberapa
pendekatan
untuk
menjaga
menjaga
kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. 2. Integritas data (data integrity).
http://digilib.mercubuana.ac.id/
19
Layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan sebenarnya. 3. Otentikasi (authentication) Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan
(data
origin
authentication).
Dua
pihak
yang
saling
berkomunikasi harus dapat mengontentikasi satu sama lain sehingga ia dapat memastikan sumber pesan tersebut. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. 4. Nirpenyangkalan (non-repudiation) Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan,
yaitu
pengirim
pesan
menyangkal
melakukan
pengiriman atau penerima pesan menyangkal telah menerima pesan tersebut.
2.4.3 Manfaat Kriptografi Karena sangat menjamin keamanan pengguna, kriptografi sangat bermanfaat untuk menyembunyikan dan mengamankan data pengguna. Alasan pengguna untuk menyembunyikan data bisa berbagai macam. Salah satunya, ada yang membutuhkan kriptografi untuk alasan privasi dan kepentingan rahasia
http://digilib.mercubuana.ac.id/
20
pengguna. Sehingga dengan adanya kriptografi ini, pengguna tidak perlu cemas ataupun takut jika privasinya akan terbongkar. Selain untuk alasan privasi, kriptografi juga digunakan untuk alasan autentikasi di mana penerima pesan dapat memastikan bahwa pesan/informasi yang didapat tidak mengalami perubahan dan dikirimkan oleh orang yang diinginkan. Sehingga penerima pesan tidak perlu khawatir jika pesan yang dikirimkan merupakan pesan palsu yang dikirimkan oleh orang lain yang mengatasnamakan pengirim yang diinginkan. Tidak ada yang bisa mengirimkan pesan selain orang yang diinginkan. Dengan demikian, hal ini sangat memudahkan kita untuk berkoordinasi bersama sekalipun terdapat kehadiran mata-mata musuh. Inilah yang digunakan di dalam militer oleh para pengenkripsi untuk mengirim pesan agar tidak disadap oleh pihak lain. Dibalik kelebihan-kelebihan kriptografi itu, kriptografi tidak menjamin 100% keamanan data/pesan tertentu. Masih ada kemungkinan di mana para hacker yang mencoba-coba membobol password dengan memasukkan kata kunci acak. Sekalipun memakan waktu yang sangat lama karena password yang dienkripsi bisa lebih dari 100 digit, tetapi kemungkinan bocor masih tetap ada. 2.4.4
Sejarah Kriptografi Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan
rahasia ini dapat dilacak kembali ke 300 tahun SM saat digunakan oleh bangsa mesir. Sejarah penulisan rahasia tertua dapat ditemukan pada peradaban Mesir kuno, yakni tahun 3000 SM. Bangsa Mesir menggunakan ukiran rahasia yang disebut dengan hieroglyphics untuk menyampaikan pesan kepada orang-orang yang berhak. Jenis tulisan ini bukanlah bentuk standar untuk menulis pesan. Hierollyphcs diturunkan dari bahasa yunani hieroglyphica yang berarti ukiran rahasia. Hierollyphcs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan.
http://digilib.mercubuana.ac.id/
21
Gambar 2.2 Tulisan hieroglyph Sumber: (Ariyus, 2008, p13) Awal tahun 400 SM bangsa Spartan di Yunani memanfaatkan kriptografi di bidang militer dengan menggunakan alat yang disebut scytale, yakni pita panjang berbahan daun papyrus yang dibaca dengan cara digulungkan ke sebatang silinder. Sedangkan peradaban Cina dan Jepang menemukan kriptografi pada abad 15 M.
Gambar 2.3 Tulisan scytale Sumber: http://www.kajianpustaka.com/ Secara historis ada empat kelompok yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer, kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Diantara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.
http://digilib.mercubuana.ac.id/
22
Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa (Number of the Beast) di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografik (yaitu dienkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi. Di
India,
kriptografi
digunakan
oleh
pencinta
(lovers)
untuk
berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan cipher. Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia, Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode (Munir, 2006). Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. Mesin yang menggunakan beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia ke-2 (Churchhouse, 2004). Sekitar 50 SM, ketika Julius Caesar, Kaisar Roma, ingin mengirimkan satu pesan rahasia kepada seorang Jendral dimedan perang. Pesan tersebut harus dikirimkan melalui kurir, tetapi karena pesan tersebut mengandung informasi yang bersifat rahasia maka Julius Caesar tidak ingin pesan tersebut sampai dibuka dan dibaca ditengah jalan. Julius Caesar memikirkan bagaimana cara mengatasinya yaitu dengan cara mengacak pesan tersebut menjadi suatu pesan yang tidak dapat dipahami oleh siapa pun kecuali Jendralnya tersebut. Tentunya jendral tersebut telah diberitahu bagaimana cara membaca pesan tersebut. Julius Caesar menggunakan cipher subtitusi untuk mengirim pesan tersebut kepada jendralnya. Pada cipher ini, huruf – huruf alfabet disubtitusikan dengan huruf – huruf yang lain pada alfabet yang sama, karena hanya satu alfabet yang
http://digilib.mercubuana.ac.id/
23
digunakan, cipher ini merupakan subtitusi monoalfabetik. Cipher semacam ini mencakup pergeseran alfabet dengan 3 huruf dan mensubtitusikan huruf tersebut. Subtitusi ini dikenal dengan C3 (untuk Caesar menggeser 3 tempat). Secara umum sistem cipher Caesar dapat ditulis sebagai berikut: Zi = Cn(Pi) Dimana Zi adalah karakter-karakter ciphertext, Cn adalah transformasi substitusi alfabetik, n adalah jumlah huruf yang digeser dan Pi adalah karakterkarakter plaintext. Disk mempunyai peranan penting dalam kriptografi sekitar 500 tahun yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk memiliki alfabet di sekelilingnya dan dengan memutar satu disk berhubungan dengan yang lainnya. Peradaban Islam juga menemukan cryptanalysis karena penguasaannya terhadap matematika, statistik, dan linguistik. Karena setiap orang muslim harus menambah pengetahuannya, mereka mempelajari peradaban terdahulu dan mengkodekan tulisan-tulisannya ke huruf-huruf Arab. Bahkan teknik kriptanalisis dipaparkan untuk pertama kalinya pada abad 9 M oleh seorang ilmuwan bernama Abu Yusuf Ya’qub ibn ‘Ishaq as-Shabbah al Kindi atau dikenal dengan Al-Kindi yang menulis kitab tentang seni memecahkan kode. Kitabnya berjudul Risalah fi Istikhraj al-Mu’amma (Manuskrip untuk memecahkan pesan-pesan Kriptografi). Terinspirasi dari perulangan huruf dalam Al-Qur’an, Al-Kindi menemukan teknik analisis frekuensi, yakni teknik untuk memecahkan ciphertext berdasarkan frekuensi kemunculan karakter pada sebuah pesan (Wirdasari, 2008).
http://digilib.mercubuana.ac.id/
24
Gambar 2.4 Risalah fi Istikhraj al-Mu’amma Sumber: http://www.kajianpustaka.com/ Pada tahun 815, Caliph al-Mamun mendirikan House of Wisdom di Baghdad yang merupakan titik pusat dari usaha-usaha translasi. Pada abad ke-9, filsuf Arab al-Kindi menulis risalat (ditemukan kembali tahun 1987) yang berjudul “A Manuscript on Deciphering Cryptographic Message”. Pada 1790, Thomas Jefferson mengembangkan alat enkripsi dengan menggunakan tumpukan yang terdiri dari 26 disk yang dapat diputar secara individual. Pesan dirakit dengan memutar setiap disk ke hufur yang tepat dibawah batang berjajar yang menjalankan panjang tumpukan disk. Kemudian, batang berjajar diputar dengan sudut tertentu, A, dan huruf-huruf dibawah batang adalah pesan yang terenkripsi. Penerima akan menjajarkan karakter-karakter cipher dibawah batang berjajar, memutar batang kembali dengan sudut A dan membaca pesan plaintext. Sistem disk digunakan secara luas selama perang sipil US. Federal Signal Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan oleh Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkodekan sinyal-sinyal bendera disetiap tempat. Sistem Unix menggunakan cipher substitusi yang disebut ROT 13 yang menggeser alfabet sebanyak 13 tempat. Mesin kriptografi mekanik yang disebut Hegelin Machine dibuat pada tahun 1920 oleh Boris Hegelin di Scockholm, Swedia. Di US, mesin Hegelin dikenal sebagai M209, pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US
http://digilib.mercubuana.ac.id/
25
MI-8 yang dikenal sebagai “Black Chamber”. MI-8 menjebol kode-kode sejumlah negara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi negosiasi dengan jepang karena MI-8 telah memberikan rencana negosiasi jepang yang telah disadap oleh sekretaris negara US. Departemen negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaannya, Yardley menerbitkan buku The American Black Chamber, yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya, pihak jepang menginstal kode-kode baru. Karena keahliannya dalam bidang ini, maka Yardley dikenal sebagai “Bapak Kriptografi Amerika”. Japanese Purple Machine Mengikuti peninggalan Yardley, William F.Friedman melanjutkan usaha cryptanalysis untuk tentara US. Tim Friedman berhasil menjebol cipher diplomatik Jepang yang baru. Rekan Yardley di Angkatan Laut US adalah Laurence Stafford. Stafford mengepalai tim yang memecahkan kode angkatan laut Purple Machine Jepang selama PD II. Kelompok pemecah kode ini bekerja di ruang bawah tanah yang gelap pada pusat distrik Naval di Pearl Harbour. Komandan Joseph J.Rochefort memimpin kelompok ini pada musim semi 1942 saat cryptanalysis-nya menyadap dan mendekodekan pesan terkode Jepang. Pesan ini mengatakan akan ada serangan Jepang pada sebuah lokasi yang dikenal dengan AF. Rochefort yakin bahwa AF adalah pulau Midway. Midway adalah basis US kunci yang memproyeksikan kekuatan US di pasifik tengah. Rochefort tidak dapat meyakinkan atasannya bahwa AF adalah pulau Midway. Sebagai tipu daya, Rochefort meminta personel Midway untuk mengirim pesan bahwa Midway memiliki masalah air. Pesannya dikirim dengan kode yang jelas dan lemah yang diyakini akan disadap dan dipecahkan oleh Jepang. Kemudian pada 22 Mei, agen rahasia Angkatan Laut Jepang mengirim pesan yang dibaca oleh US bahwa AF mempunyai masalah air. Sebagai hasil dari usaha jenius dalam memecahkan kode ini, laksamana Chester W.Nimitz mengotorisasi strategi untuk mengirimkan armada US untuk mengejutkan armada
http://digilib.mercubuana.ac.id/
26
Jepang di Midway. Usaha yang hebat ini berdampak pada gema kemenangan US yang merupakan titik balik di perang Pasifik.
Gambar 2.5 Japanese Purple Machine Sumber: http://ciphermachines.com/ The German Enigma Machine Militer Jerman menggunakan mesin cipher substitusi polialfabetik disebut Enigma sebagai sistem pengkodean utama selama PD II. Enigma menggunakan rotor mekanis untuk pengkodean dan pendekodean. Seorang Belanda, Hugo Koch mengembangkan mesin ini pada 1919, dan diproduksi untuk pasar komersial pada 1923 oleh Arthur Scherbius. Scherbius mendapatkan hal paten pada mesin Enigma untuk perusahaan Berlin Chiffriermasschinen Aktiengesellschaft. Pakar cryptanalysis Polandia, Marian Rejewski, bekerja bersama Perancis dari 1928 sampai 1938, berhasil memecahkan pengkabelan sistem 3 rotor yang digunakan Jerman saat itu dan menciptakan berkas kartu yang dapat mengantisipasi 6 kali 17,576 kemungkinan posisi rotor. Jerman mengubah indikator sistem dan jumlah
http://digilib.mercubuana.ac.id/
27
rotor menjadi 6 pada 1938, sehingga meningkatkan kesulitan untuk memecahkan cipher
Enigma.
Dalam
kerjanya
pada
1938,
Polandia
dan
Perancis
mengkonstruksi mesin prototipe yang disebut “The Bombe” untuk memecahkan cipher Enigma. Namanya diturunkan dari bunyi detikan yang dihasilkan oleh mesin. Usaha memecahkan cipher Enigma diambil alih oleh Inggris di Bletchley Park Inggris dan dipimpin oleh banyak ilmuwan terkemuka termasuk Alan Turing. Prototipe Bombe Turing muncul pada 1940, dan Bombe berkecepatan tinggi dikembangkan oleh Inggris dan Amerika pada 1943. Perkembangan komputer dan sistem komunikasi pada tahun 60an berdampak pada permintaan dari sektor-sektor privat sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel pada IBM di awal tahun 70an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal US untuk mengenkripsi informasi yang unclassified. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah. Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan New Directions in Cryptography. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru dan jenius untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun penulis tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik dan tanda tangan, yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah matematika yang sulit untuk kriptografi menggiatkan kembali usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80an menunjukkan peningkatan luas di area ini, sistem RSA masih aman. Kelas lain yang merupakan rancangan kunci publik praktis ditemukan oleh ElGamal pada 1985. Rancangan ini juga berdasar pada masalah logaritma diskret.
http://digilib.mercubuana.ac.id/
28
Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada 1991 standar internasional pertama untuk tanda tangan digital (ISO/IEC 9796) diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah US mengadopsi Digital Signature Standard, sebuah mekanisme yang berdasar pada rancangan kunci publik ElGamal.
Gambar 2.6 The German Enigma Machine Sumber: http://www.bbc.co.uk/
2.5 Keamanan Algoritma Kriptografi Lard Knudsen mengelompokkan hasil kriptanalis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan: 1. Pemecahan total (total break). Kriptanalis menemukan kunci K sedemikian sehingga dekripsi DK(C) = P. 2. Deduksi (penarikan kesimpulan) global (global deduction). Kriptanalis menemukan algoritma alternatif , A, yang ekivalen dengan D K(C) tetapi tidak mengetahui kunci K.
http://digilib.mercubuana.ac.id/
29
3. Deduksi lokal (instance/local deduction). Kriptanalis menemukan plainteks dari cipherteks yang disadap. Deduksi informasi (information deduction). Kriptanalis menemukan beberapa informasi perihal kunci atau plainteks. Misalnya kriptanalis mengetahui beberapa kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya. Sebuah algoritma dikatakan aman mutlak tanpa syarat (unconditionally secure) bila cipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plainteks. (Munir, 2006)
2.6 Algoritma Kriptografi Klasik Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik, adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistem kriptografi simetris dan digunakan jauh sebelum kriptografi kunci publik ditemukan. Kriptogarfi klasik memiliki beberapa ciri: 1. Berbasis karakter. 2. Menggunakan pena dan kertas saja, belum ada komputer. 3. Termasuk ke dalam kriptografi kunci simetris. Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi. 2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem kode.
http://digilib.mercubuana.ac.id/
30
Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu: 1. Cipher substitusi (substitution cipher) Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Algoritma substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi , Julius Caesar (sehingga dinamakan juga caesar cipher), untuk mengirimkan pesan yang dikirimkan kepada gubernurnya. Caranya adalah dengan mengganti (menyulih atau mensubstitusi) setiap karakter dengan karakter lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan akjad. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k = 3). pi :
A
B
C
D
E
F
G
H
I
J
L
M
ci:
D
E
F
G
H
I
J
K
L
M N O
P
pi :
N O P Q
R
S
T
U V W
X
Y
Z
ci:
Q
U V W
X
A
B
C
R
S
T
Y
Z
K
Tabel 2.1 Cipher Substitusi Contoh Pesan: AWASI ASTERIX DAN TEMANNYA OBELIX disamarkan (enkripsi) menjadi: DZDVL DVWHULA GDQ WHPDQQBA REHOLA Penerima pesan mendekripsi cipherteks dengan menggunakan table substitusi, sehingga cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA Dapat dikembalikan menjadi plainteks semula: AWASI ASTERIX DAN TEMANNYA OBELIX
http://digilib.mercubuana.ac.id/
31
Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher menyandikan plainteks pi menjadi ci dengan aturan: ci = E(pi) = (pi + 3) mod 26
(1)
dan dekripsi cipherteks ci menjadi pi dengan aturan: pi = D(ci) = (ci - 3) mod 26
(2)
Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan dekripsi), fungsi enkripsi adalah: ci = E(pi) = (pi + k) mod 26
(3)
dan fungsi dekripsi adalah: pi = D(ci) = (ci - k) mod 26
(4)
Catatan: 1) Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah). 2) Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k = 37 kongruen dengan 11 dalam modulo 26, atau 37 ≡ 11 (mod 26). 3) Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka caesar cipher kadang-kadang dinamakan juga additive cipher. Untuk mengenkripsi/dekripsi pesan yang disusun oleh karakterkarakter teks (ASCII, 256 karakter), maka persamaan 3 dan 4 ditulis: ci = E(pi) = (pi + k) mod 256
(3)
pi = D(ci) = (ci - k) mod 26
(4)
2. Cipher transposisi (transposition cipher) Pada cipher transposisi, huruf-huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling)
http://digilib.mercubuana.ac.id/
32
karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karkater tersebut. (Munir, 2006) Contoh Pesan: DEPARTEMEN TEKNIK INFORMATIKA UMB Untuk mengenkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter (kunci k – 6): DEPART EMENTE KNIKIN FORMAT IKAUMB Maka cipherteksnya dibaca secara vertical menjadi: DEKFIEMNOKPEIRAANKMURTIAMTENTB Untuk mendekripsi pesan, kita membagi panjang cipherteks dengan kunci. Pada contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5. Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, untuk contoh ini, kita menulis cipherteks dalam baris-baris selebar 5 karakter menjadi: DEKFI EMNOK PEIRA ANKMU RTIAM TENTB Dengan membaca setiap kolom kita memperoleh pesan semula: DEPARTEMEN TEKNIK INFORMATIKA UMB Variasi dari metode transposisi lainnya ditunjukkan pada Contoh 5 dan Contoh 6.
http://digilib.mercubuana.ac.id/
33
Salah satu teknik enkripsi menggunakan kunci simetri adalah teknik subtitusi, yaitu mengganti setiap karakter Plaintext dengan karakter lain. Terdapat empat cara dalam menggunakan teknik subtitusi, yaitu: 1. Monoalphabet, dimana setiap karakter Ciphertext mengganti satu macam karakter Plaintext tertentu. 2. Polialphabet, dimana setiap karakter Ciphertext mengganti lebih dari satu macam karakter Plaintext. 3. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter Plaintext. 4. Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari satu karakter Plaintext. (Alferd J. Menezes, 1996)
2.7 Algoritma Kriptografi Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi 2 macam, yaitu kriptografi simetri (symetric cryptography) dan kriptografi asimetri (asymetric cryptography). 1. Algoritma kunci rahasia (symetric cryptography): menggunakan satu kunci untuk enkripsi dan dekripsi. 2. Algoritma kunci publik (asymetric cryptography): menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. 2.7.1 Algoritma Simetris Algoritma simetris adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan efesiensi yang terjadi pada pembangkit
http://digilib.mercubuana.ac.id/
34
kunci. Karena prosesnya relative cepat maka algoritma ini tepat untuk digunakan pada sistem komunikasi digital secara real time seperti GSM. Kriptografi simetris merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk dalam sistem kriptografi simetris. Tujuan dari aplikasi kriptografi simetris adalah melindungi kerahasiaan data yang dikirim melalui saluran yang tidak aman dan melindungi kerahasiaan data yang disimpan pada media yang tidak aman. Kelebihan dari algoritma simetris ini adalah proses enkripsi dan dekripsi membutuhkan waktu yang singkat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan dari algoritma simetris ini adalah terletak pada pengiriman kunci. Seperti yang telah dibahas, proses enkripsi dan dekripsi menggunakan kunci yang sama sehingga kerahasiaan kunci tersebut harus dijaga. Contoh: Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob. Alice menggunakan kunci xƠ yang sebelumnya telah disepakati antara Alice dan Bob. Untuk mengirim pesan e xƠ (x) kepada Bob, dia akan deskripsi teks kode yang diterima dengan kunci yang sama dengan yang digunakan untuk memperoleh akses ke pesan yang diterima. Begitu juga sebaliknya.
Gambar 2.7 Proses enkripsi dan dekripsi algoritma simetris Sumber: http://www.laits.utexas.edu/
http://digilib.mercubuana.ac.id/
35
2.7.2 Algoritma Asimetris Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan satu lagi dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Untuk memperoleh atribut ini, algoritma dirancang pada mekanisme yang sulit untuk dipecahkan secara matematika. Dalam algoritma asimetris kunci enkripsi dibuka, sehingga siapapun yang ingin berkomunikasi dapat menggunakannya. Tetapi untuk kunci dekripsinya hanya satu pihak saja yang mempunyai kunci tersebut. Oleh karena itu, kunci yang digunakan untuk enkripsi disebut kunci publik, sedangkan kunci yang digunakan untuk dekripsi disebut kunci pribadi atau kunci rahasia. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).
Gambar 2.8 Proses enkripsi dan dekripsi algoritma asimetris Sumber: http://www.laits.utexas.edu/ Dalam algoritma asimetris ini memiliki banyak kelebihan dan kekurangan diantaranya: Kelebihan algoritma asimetris: 1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus
http://digilib.mercubuana.ac.id/
36
terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetris. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetris. 4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan. Kelemahan algoritma asimetris: 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetris, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks). 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci publik yang terbukti aman. Kebanyakan algoritma
mendasarkan
keamanan
pada
sulitnya
memecahkan
persoalan-persoalan aritmetik yang menjadi dasar pembangkit kunci. Kriptografi kunci publik juga tidak aman dari serangan man-in-themiddle attack. Orang di ”tengah” mengintersepsi komunikasi lalu berpura-pura sebagai salah satu pihak yang berkomunikasi untuk mengetahui informasi rahasia. 2.8 Algoritma Konversi Biner Agoritma konversi biner adalah Pengembangan algoritma caesar cipher dengan memanfaatkan pergerakan jam, menit, detik, mili detik, micro detik sebagai n/karakter. (Muhammad Rifqi, 2013).
http://digilib.mercubuana.ac.id/
37
A B C D E F G H I J K L M N O P Q R S T U V
1101010010110 1011010010110 1101101001010 1010110010110 1101011001010 1011011001010 1010100110110 1101010011010 1011010011010 1010110011010 1101010100110 1011010100110 1101101010010 1010110100110 1101011010010 1011011010010 1010101100110 1101010110010 1011010110010 1010110110010 1100101010110 1001101010110
W X Y Z 0 1 2 3 4 5 6 7 8 9 * % ^ + / .
1100110101010 1001011010110 1100101101010 1001101101010 1010011011010 1101001010110 1011001010110 1101100101010 1010011010110 1101001101010 1011001101010 1010010110110 1101001011010 1011001011010 1001011011010 1010010010010 1001001001010 1001010010010 1001010110110 1001001010010 1100101011010
Tabel 2.2 Konversi Biner 13 digit Sumber: (Muhammad Rifqi, 2013) 2.9 Pengenalan Delphi Delphi bukan merupakan suatu bahasa pemrograman (development language), tetapi merupakan perangkat lunak yang digunakan untuk merancang suatu aplikasi program. Delphi termasuk dalam pemrograman bahasa tingkat tinggi (high level language). Maksud dari bahasa tingkat tinggi yaitu perintahperintah programnya menggunakan bahasa yang mudah dipahami oleh manusia. Bahasa pemrograman delphi disebut bahasa prosedural artinya mengikuti urutan tertentu. Dalam membuat aplikasi perintah-perintah, Delphi menggunakan lingkungan pemrograman visual.
http://digilib.mercubuana.ac.id/
38
Delphi merupakan generasi penerus dari Turbo Pascal. Pemrograman Delphi dirancang untuk beroperasi dibawah sistem operasi Windows. Program ini mempunyai beberapa keunggulan, yaitu produktivitas, kualitas, pengembangan perangkat lunak, kecepatan kompiler, pola desain yang menarik serta diperkuat dengan bahasa perograman yang terstruktur dalam struktur bahasa pemrograman Object Pascal. 2.10
Sejarah Delphi Asal usul Pascal bermula dari rancangan Algol, bahasa tingkat tinggi
pertama yang mudah dibaca, terstruktur dan mendefinisikan syntax secara sistematis. Pada akhir tahun 1960-an, beberapa usulan evolusi penerus algol dikembangkan. Salah satu yang paling sukses adalah Pascal, ditemukan oleh Prof Niklaus Wirth. Wirth mempublikasikan temuan asli Pascal pada tahun 1971. Mulai diimplementasikan di tahun 1973 dengan beberapa modifikasi. Banyak fitur pascal yang berasal dari bahasa sebelumnya. Pascal menambahkan kemampuan untuk mendefinsikan tipe data baru secara lebih sederhana dari yang pernah ada, juga mendukung struktur data dinamis. Bahasa ini dirancang untuk menjadi alat pembelajaran bagi siswa pada kelas pemrograman. Pada tahun 1975, Wirth dan Jensen memproduksi buku referensi Pascal terakhir “Pascal User Manual and Report”. Wirth berhenti bekerja pada Pascal pada tahun 1977 untuk menciptakan sebuah bahasa baru, Modula – penerus Pascal. Dengan dirilisnya Turbo Pascal 1.0 pada November 1983, Borland mulai perjalanannya dengan lingkungan pengembangan dan perangkatnya. Untuk menciptakan Turbo Pascal 1.0 Borland melisensikan kompilator inti pascal yang cepat dan murah, yang ditulis oleh Anders Hejlsberg. Turbo Pascal memperkenalkan
suatu
Lingkungan
pengembangan
terintegrasi/Integrated
Development Environment (IDE) dimana anda dapat mengedit code, menjalankan compiler, melihat kesalahan dan melompat kembali ke baris yang mengalami kesalahan. Kompiler turbo pascal telah menjadi salah satu compiler terlaris sepanjang waktu, dan membuat bahasa ini sangat popular pada platform PC.
http://digilib.mercubuana.ac.id/
39
Gambar 2.9 Anders Hejlsberg Sumber: http://www.itwriting.com/ Pada tahun 1995 Pascal kembali dengan memperkenalkan lingkungan aplikasi bernama Delphi – mengubah pascal menjadi sebuah bahasa pemrograman visual. Keputusan yang strategis dengan membuat perangkat database dan konektivitas sentral dari produk pascal. 2.10.1 Permulaan Delphi Setelah merilis Turbo Pascal 1, Anders Hejlsberg bergabung dengan perusahaan sebagai seorang karyawan dan arsitek untuk semua versi dari kompiler Turbo Pascal dan tiga versi pertama dari Delphi. Sebagai kepala arsitek di Borland, Hejlsberg diam-diam merubah Turbo Pascal menjadi
bahasa
pengembangan aplikasi berorientasi obyek, lengkap dengan lingkungan yang benar-benar visual dan fitur akses database yang luar biasa.
http://digilib.mercubuana.ac.id/
40
2.10.2 Mengapa diberi nama “Delphi” Seperti yang dijelaskan dalam Museum artikel Borland, proyek dengan codename Delphi muncul pada pertengahan 1993. Mengapa Delphi? Sangat sederhana: “Jika Anda ingin berbicara dengan Oracle, pergilah ke Delphi”. Ketika tiba saatnya untuk memilih nama produknya, setelah sebuah artikel di ‘Windows Tech Journal’ tentang sebuah produk yang akan mengubah hidup programmer, nama terakhir yang diusulkan adalah AppBuilder. Sejak Novell merilis Visual AppBuilder, orang-orang Borland perlu mengambil nama lain, tetapi menjadi semacam komedi: semakin keras orang-orang berusaha untuk mengabaikan “Delphi” sebagai nama produk, semakin banyak nama tersebut mendapat dukungan. Setelah disebut-sebut sebagai “pembunuh VB” Delphi tetap menjadi produk landasan untuk Borland. 2.10.3 Perkembangan Delphi Borland Delphi Borland Delphi merupakan program aplikasi database yang berbasis Object Pascal dari Borland. Selain itu, Delphi juga memberikan fasilitas pembuatan aplikasi visual. Delphi merupakan pilihan dalam pembuatan aplikasi visual karena memberikan produktivitas yang tinggi. Berikut beberapa pengembangan aplikasi Delphi dari waktu ke waktu: Borland Delphi I Delphi 1 dirilis pada tahun 1995 untuk 16-bit Windows 3.1 dan merupakan contoh awal dari apa yang kemudian dikenal sebagai perangkat Rapid Application Development (RAD). Delphi 1 adalah penerus Turbo Pascal dan Borland Pascal, sangat cepat sedikit kode asli kompiler 16-bit dengan memiliki Integrated development environment (IDE) dan toolkit antarmuka pengguna grafis untuk DOS (Borland Pascal ditambah Windows IDE dan kode generasi Windows juga). Seperti Turbo Pascal, kode pada Delphi ditulis dalam dialek bahasa pemrograman Pascal yang dikenal sebagai Object Pascal .
http://digilib.mercubuana.ac.id/
41
Borland Delphi II Delphi 2, dirilis pada tahun 1996, dikembangkan untuk platform Windows 32-bit yang sepenuhnya mendukung teknologi Windows 95, pengmebangan database grid, automasi OLE, mendukung tipe data variant dan long string. Delphi versi ini termasuk Delphi 1 digabung bersama-sama untuk menciptakan aplikasi Windows 16-bit. Borland Delphi III Delphi
3,
dirilis
pada
tahun
1997,
merupakan
Delphi
klasik.
Dikembangkan untuk platform Windows 32 bit. Delphi 3 dinyatakan sebagai tools yang sangat komprehensif untuk pengembangan pemrograman visual dan client/server Borland Delphi IV Borland Delphi 4 dirilis pada tahun 1998 . Borland Delphi V Borland Delphi 5 dirilis pada tahun 1999 . Kylix Pada tahun 2001 sebuah versi Linux dari Delphi bernama Kylix dirilis. Untuk mendapatkan produk keluar dengan cepat dan relatif murah, mereka membuat IDE lebih menggunakan Wine libraries daripada Linux system libraries (glibc). Biaya pengembangan versi asli glibc Kylix, dikombinasikan dengan kurangnya adopsi Linux di kalangan programmer pada saat itu, menyebabkan penjualan tidak seuai apa yang diharapkan, dan Kylix setelah versi 3 diam-diam ditinggalkan. Ini adalah kali pertama menambahkan dukungan Linux terhadap produk Delphi. Borland Delphi 6 Ini dibuat dalam upaya untuk mendukung pengembangan lintas platform antara Linux dan Windows, dan sebuah platform alternatif yang menyeberang ke
http://digilib.mercubuana.ac.id/
42
Visual Component Library (VCL) dikenal sebagai CLX pada saat merilis Delphi 6. Ini adalah upaya kedua untuk menambahkan dukungan Linux dengan keluarga produk Delphi (lihat Kylix di atas).
Borland Delphi 7 Delphi 7, dirilis pada bulan Agustus 2002, menjadi versi standar yang digunakan oleh pengembang Delphi lebih dari versi tunggal lainnya. Ini adalah salah satu keberhasilan IDE yang diciptakan oleh Borland karena kecepatan, stabilitas dan persyaratan minimum pada hardware dan masih aktif digunakan sampai saat ini (2015). Delphi 7 menambahkan dukungan untuk Windows Theme XP, dan menambahkan lebih banyak dukungan untuk membangun aplikasi Web. Ini juga merupakan versi terakhir dari Delphi yang dapat digunakan tanpa aktivasi. Borland Delphi 8 Delphi 8, dirilis pada tanggal 22 Desember 2003, hanya merilis yang memungkinkan para pengembang untuk mengkompilasi kode Delphi Object Pascal ke .Net (dot NET). Borland melakukan migrasi untuk memindahkan platform Delphi ke arah pemrograman .NeT (dot NET) dengan menelurkan produk Borland Delphi 8.0 for .NET. Delphi 8 sangat dikritik karena memiliki kualitas rendah dan fakta yang tidak mungkin lagi untuk membuat aplikasi asli (*.exe). Ketidakmampuan untuk menghasilkan aplikasi asli (*.exe) hanya berlaku untuk rilis ini, kemudian kemampuan ini ditambahkan kembali ke rilis berikutnya (Delphi 2005). Borland Delphi 2005 Versi berikutnya, Delphi 2005 (disebut juga Delphi 9 atau Borland Developer Studio 3.0), termasuk di dalamnya Win32 dan pengembangan .NET dalam IDE tunggal, Borland mengulangi komitmen untuk pengembang Win32. Delphi 2005 meliputi desain manipulasi waktu dari data langsung pada database.
http://digilib.mercubuana.ac.id/
43
Kemampuan untuk mengkompilasi aplikasi asli windows (*. exe) ditambahkan kembali ke Delphi 2005 setelah dihapus dalam Delphi 8. Borland Delphi 2006 Pada akhir 2005 hadir Delphi 2006 (disebut juga Delphi 10, Borland Developer Studio 4.0) dirilis dan merupakan gabungan pengembangan C # dan Delphi.NET, Delphi Win32 dan C++ ke dalam IDE tunggal. Ini jauh lebih stabil daripada Delphi 8 atau Delphi 2005 dan bahkan lebih ditingkatkan dengan merilis service pack dan beberapa hotfix. Codegear Delphi 2007 Delphi 2007 (Delphi 11), versi pertama oleh CodeGear yang merupakan perusahaan mandiri dari Borland dirilis pada tanggal 16 Maret 2007 sebagai bagian dari produk CodeGear RAD Studio 2007. Fitur baru termasuk dukungan untuk Microsoft yaitu, membangun perangkat tambahan ke Visual Component Library untuk Windows Vista, tapi penjualan C# Builder merosot dalam rilis ini tidak setinggi yang diharapkan dikarenakan pada saat yang sama Visual Studio juga menawarkan C#.
Gambar 2.10 Code Gear from Borland Sumber: http://news.swebee.com Borland CodeGear dijual kepada Embarcadero Technologies pada tahun 2008. Embarcadero adalah mempertahankan pembagian CodeGear diciptakan oleh Borland untuk mengidentifikasi alat dan persembahan database, dan
http://digilib.mercubuana.ac.id/
44
Embarcadero telah memutuskan untuk mengidentifikasi alat-alat sendiri database di bawah moniker DatabaseGear. Embarcadero Delphi 2009 Delphi 2009 (Delphi 12, dengan nama kode Tiburon), menambahkan banyak fitur baru seperti pengerjaan ulang sepenuhnya VCL dan RTL untuk dukungan Unicode, dan menambahkan generik dan metode anonim untuk pengembangan Win32. Sebuah produk baru dengan nama Delphi Prism ditawarkan untuk pembangunan .NET yang merupakan plugin Visual Studio.
Gambar 2.11 Logo Embarcadero Delphi Sumber: http://edn.embarcadero.com Embarcadero Delphi 2010 Delphi 2010 (alias Delphi 14, dengan nama kode Weaver, seri nomor 13 dilewati), dirilis pada tanggal 25 Agustus 2009 dan merupakan rilisan Unicode kedua Delphi. Versi ini sudah mencakup kompiler baru sistem run-time type information (RTTI), bisa untuk Windows 7 direct2D, layar sentuh (touchscreen) dan gerakan, sebuah kode formatter, visualizers debugger dan juga pilihan untuk memiliki palet komponen gaya lama dalam IDE. Sistem baru pada RTTI membuat file executable jauh lebih besar dari versi sebelumnya. Embarcadero Delphi XE Versi terbaru dari Delphi, Delphi XE (alias Delphi 2011 dengan nama kode Fulcrum), dirilis pada tanggal 30 Agustus 2010.
http://digilib.mercubuana.ac.id/
45
2.10.4 Kegunaan Delphi 1. Untuk membuat aplikasi pada Windows. 2. Untuk merancang aplikasi berbasis grafis. 3. Untuk membuat program berbasis jaringan (client/server). 4. Untuk merancang program .Net (berbasis internet). 2.10.5 Keunggulan Delphi 1. Memiliki IDE (integrated Development Environment) atau lingkungan pengembangan terintegrasi yang didalamnya terdapat menu-menu yang memudahkan programmer untuk membuat sebuah program aplikasi. 2. Proses kompilasi cepat, pada saat program dijalankan, secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah. 3. Mudah digunakan, karena source code Delphi merupakan turunan dari bahasa pemrograman Pascal. 4. Bersifat multi purpose, artinya bahasa pemrograman Delphi dapat digunakan untuk mengembangkan berbagai keperluan pengembangan aplikasi. 5. Dapat mengkompilasi menjadi single executable, memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning. Sepintas sebuah program aplikasi yang dapat dibuat dengan menggunakan Delphi hanya terdiri dari file project dan sebuah unit. Namun kenyataannya terdapat beberapa file yang dibentuk pada saat membangun sebuah program aplikasi. Berikut ini merupakan file-file penyusun project yang terdapat pada program Delphi, yaitu: 1) File Project (.dpr ) dan file Unit (.pas ) Sebuah program Delphi terbangun dari modul-modul source code yang disebut unit. Delphi menggunakan sebuah file projek (.dpr) untuk menyimpan program utama. File sumber untuk unit biasanya berisi sebagian besar kode di dalam aplikasi, file ini ditandai dengan ekstensi
http://digilib.mercubuana.ac.id/
46
(.pas). Setiap aplikasi atau projek terdiri atas file projek tunggal atau lebih dalam file unit. 2) File Form (.dfm) File form adalah file biner yang dibuat oleh Delphi untuk menyimpan informasi yang berkaitan dengan form. 3) File Resource (.res) File resource merupakan file biner yang berisi sebuah ikon yang digunakan oleh project. File ini secara terus menerus di-update atau diubah oleh Delphi sehingga file ini tidak bisa diubah oleh pemakai. Dengan
menambahkan
file
resource
pada
aplikasi
dan
menghubungkan dengan file project dapat menggunakan editor resource, misalnya editor untuk membuat file resource. 4) File Project Options (.dof ) dan File Desktop Settings (.dsk) File project options merupakan file yang berisi options-options dari suatu project yang dinyatakan melalui perintah options dari menu Project. Sedang file desktop setting berisi option-option yang dinyatakan melalui perintah Environment Options dari menu Tools. Perbedaan di antara kedua jenis file tersebut adalah bahwa file project options dimiliki oleh setiap project sedangkan file desktop setting dipakai untuk lingkungan Delphi. Apabila ada kerusakan pada kedua jenis file tersebut dapat mengganggu proses kompilasi. Prosedur yang dapat kita tempuh untuk menangani gangguan tersebut adalah dengan menghapus kedua jenis file tersebut yaitu .dof dan .dsk karena kedua file tersebut akan terbentuk secara otomatis pada saat menyimpan project. 5) File Backup (.~dp, . ~df, . ~pa) File-file dengan ekstensi di atas merupakan file backup dari suatu project, form dan unit. Ketiga jenis file tersebut akan terbentuk pada saat proses penyimpanan untuk yang kedua kalinya. Kerena ketiga file tersebut berjenis backup (cadangan) maka ketiga jenis file tersebut berisi salinan terakhir dari file-file utama sebelum disimpan lebih lanjut.
http://digilib.mercubuana.ac.id/
47
6) File jenis lain File-file dengan ekstensi lain yang dapat ditemukan dalam folder tempat penyimpanan program aplikasi selain yang memiliki ekstensi yang telah disebutkan pada umumnya adalah file-file yang dibentuk oleh compiler dan beberapa file Windows yang digunakan Delphi. Filefile tersebut adalah: a) File Executable (.exe ) File ini dibentuk oleh compiler dan merupakan file esekusi (executable) dari program aplikasi. File ini berdiri sendiri dan hanya memerlukan file library di DLL , VBX dan lain-lain. b) File unit Object (.dcu) File ini merupakan file unit (.pas) yang telah dikompilasi oleh compiler yang akan dihubungkan dengan file esekusi. c) File Dinamic Link Library (.dll). File ini dibentuk oleh compiler apabila kita merancang .dll sendiri. d) File Help. File ini merupakan file Windows dan merupakan file help standar yang dapat dipakai diprogram aplikasi Delphi. e) File Image (.wmf, .bmp , .ico). File-file ini merupakan file Windows dari aplikasi selain Delphi yang dapat digunakan untuk mendukung program aplikasi yang kita rancang tampak lebih menarik.
2.10.6 Struktur Data dan Algoritma Delphi Istilah struktur data dan algoritma biasa hadir tidak terpisahkan. Jika kita membicarakan struktur data maka tidak bisa lepas dari algoritma. Struktur data adalah pengaturan data di dalam memori komputer atau terkadang di dalam disk dengan tujuan agar data dapat diakses secara efisien. Yang termasuk dalam struktur data antara lain yatu senarai berantai, antrian, tumpukan dan pohon biner. Adapun yang dimaksud algoritma yaitu suatu langkah atau prosedur yang
http://digilib.mercubuana.ac.id/
48
ditujukan untuk memanipulasi data. Sebagai contoh, algoritma diperlukan untuk memasukan data ke dalam suatu struktu data atau untuk mecari suatu data yang tersimpan dalam struktur data. (Abdul Kadir, 2011)
Gambar 2.12 Struktur Data Sumber : Abdul Kadir (2011: 2) Algoritma sendiri mempunyai tiga struktur dasar, yaitu: 1. Sekuensial 2. Seleksi 3. pengulangan Struktur sekuensial menyatakan langkah-langkah yang berurutan. Urutan dalam langkah menentukan urutan eksekusi. Contoh berikut menunjukkan algoritma untuk menukarkan isi A dan isi B: XA menyatakan X diisi dengan isi A AB menyatakan A diisi dengan isi B BX menyatakan B diisi dengan isi X Pada contoh diatas, bila urutan diubah maka hasilnya tidak akan berupa penukaran isi A dan isi B. Struktur data yang kedua adalah seleksi. Kegunaanya adalah untuk memilih tindakan didasarkan oleh suatu kondisi. Misalnya, suatu nilai A dan nilai B akan dipertukarkan hanya kalau memenuhi A > B (baca: A lebih besar daripada B). Hal ini dinyatakan dengan IF seperti berikut:
http://digilib.mercubuana.ac.id/
49
IF
A>B XA AB BX
END-IF Pada contoh diatas hanya akan diproses kalau A > B bernilai benar. Algoritma di atas bisa dibaca sebagai “tukarkan A dan B kalau A > B”. Kalau A tidak lebih besar daripada B maka tidak akan terjadi penukaran isi A dan B. Struktur ketiga berupa pengulangan yang kegunaanya untuk mengulang suatu tindakan beberapa kali. Bentuk pertama pengulangan berupada FOR. Contoh: Jum 0 FOR I 1 To N Jum Jum + 1 END-FOR Bentuk pengulangan yang kedua berupa WHILE. Contoh FOR di atas kalau ditulis dengan WHILE menjadi seperti berikut: Jum 0 I1 WHILE I <= N Jum Jum + 1 II+1 END-WHILE Notasi lain yang sering digambarkan dalam algoritma yaitu untuk menyatakan elemen array. Array adalah kumpulan data yang sejenis. Contohnya seperti dalam gambar berikut:
http://digilib.mercubuana.ac.id/
50
Gambar 2.13 Array berisi sekumpulan data Sumber : Abdul Kadir (2011: 6) Contoh algoritma yang melibatkan array dapat dilihat berikut ini: Jum 0 FOR I 1 To 8 Jum Jum + A[I] END-FOR Contoh di atas digunakan untuk menjumlahkan kedelapan elemen array A. jadi algoritma di atas identik dengan: A[1] + A[2] + A[3] + A[4] + A[5] + A[6] + A[7] + A[8] Array pada contoh di atas adalah array berdimensi satu. Adapun array berdimensi dua berbentuk tabel yang mengandung baris dan kolom.
Gambar 2.14 Array berdimensi dua berbentuk tabel Sumber : Abdul Kadir (2011: 7)
http://digilib.mercubuana.ac.id/
51
2.11
Barcode Barcode adalah kumpulan garis dalam dimensi tertentu yang dapat
mewakili data atau informasi tertentu. Biasanya sering kita temukan pada barangbarang komersial untuk menyatakan jenis barang tersebut, sehingga kasir tidak perlu repot-repot untuk mengisi jenis barang apa, namun hanya menempelkan barcode pada barcode reader. 2.11.1 Anatomi Barcode
Gambar 2.15 Anatomy of a Barcode Sumber: http://www.advancedlabelsnw.com/ Secara anatomi, barcode memiliki beberapa bagian:
Number system character, dimana mengkarakteristikan jenis-jenis khusus barcode, biasanya direpresentasikan dengan angka 0 dimana angka 0 merupakan sebuah sistem bilangan barcode yang universal.
Manufactured code biasanya terdiri dari 5 buah angka. Manufactured code merupakan bilangan khusus yang dilindungi dan diciptakan oleh Uniform Code Concil (UCC).
Product code biasanya terdiri dari 5 buah angka. Biasanya ditetapkan oleh perusahaaan masing-masing
http://digilib.mercubuana.ac.id/
52
Check digit merupakan satu angka terakhir yang digunakan untuk melakukan validasi terhadap kode manufaktur (manufactured code) dan kode produk (product code). Cara mendapatkan angka Check digit adalah: o Jumlahkan semua digit-digit yang ganjil (0 + 2 + 4 + 6 + 8 + 0 = 20). o Kalikan hasil penjumlahan pada langkah sebelumnya dengan 3 (20 x 3 = 60). o Jumlahkan dengan semua bilangan genap (1 + 3 + 5 + 7 + 9 + 60 (hasil sebelumnya) = 85), tidak termasuk check digit karena itu akan dicari. o Lalu check digit = 85 mod 10 = 5.
Diantara keempat tipe angka diatas, terdapat pemisah yang dinamakan guard bar. Antara number system character dengan manufacture code terdapat batang pembatas pertama yang bila dienkripsi menjadi “bar-space-bar” atau “101”. Setelah itu, ditengah-tengah terdapat pembatas juga terdapatat batang pembatas yang bila dienkripsi menjadi “space-bar-space-bar-space” atau “01010”. 2.11.2 Sejarah Barcode Tahun 1932, Wallace Flint membuat sistem pemeriksaan barang perusahaan retail. Lalu munculah teknologi barcode, yang dikenalkan oleh perusahaan retail yang diikuti oleh perusahaan industri. Lalu, pada tahun 1948 pemilik toko makanan lokal meminta Drexel Institute of Technology di Philadelphia untuk membuat sistem pembacaan otomatis untuk informasi produk selama checkout. Beberapa lulusan Drexel bergabung untuk mencari solusi, dimana lulusanlulusannya itu bernama Bernard Silver dan Norman Joseph Woodland. Woodland memberi saran untuk menggunakan tinta yang sensitif terhadap ultraviolet namun ditolak karena mahal. Akhirnya pada tanggal 7 Oktober 1952 mereka
http://digilib.mercubuana.ac.id/
53
mendapatkan hak paten dari hasil penelitan mereka. Lalu pada tahun 1966 barcode pertamakali dipakai secara komersial. 2.12
Bentuk Barcode Bentuk barcode terdiri dari dua macam yaitu 1D (Linier barcode) dan 2D:
Barcode satu dimensi (Linier barcode) biasanya digunakan pada produk-produk yang biasanya memuat jenis barang tersebut.
Barcode
dua
dimensi
(2D)
merupakan
barcode
yang
dikembangkan dari barcode satu dimensi yang memiliki beberapa keuntungan yaitu:
Informasi yang disimpan lebih banyak.
Dapat disimpan pada ruang yang lebih kecil daripada barcode 1D.
2.13
QR Code QR code merupakan salah satu tipe barcode 2D dimana merupakan
pengembangan dari matrix barcode yang memiliki kelebihan lebih banyak menampung informasi dan memiliki kecepatan yang besar dalam pembacaan informasinya (enkripsi).
http://digilib.mercubuana.ac.id/
54
2.13.1 Anatomi QR Code
Gambar 2.16 Anatomy of a QR Code Sumber: http://www.urbanmediainc.com/qr-codes/ Beberapa penjelasan anatomi QR Code Menurut Nisa Dian Rachmadi (2013) antara lain:
Finder Pattern Pola yang mendeteksi posisi dari QR code. Dengan penyusunan pola ini pada ketiga sudut kotak sehingga dapat dideteksi dari 360º.
Alignment pattern Suatu pola untuk mengkoreksi distori pada QR Code. Hal ini efektif dapat mengatasi distorsi non linier. Koordinat pada alignment pattern dapat diindentifikasi untuk membentuk suatu simbol.
Timing Pattern Suatu pola untuk mengidentifikasi pusat yang tersusun atas pola hitam putih yang tersusun secara berurutan.
Quite zone Suatu ruang batas dalam pembacaan QR Code. Quite zone dapat mempermudah terdeteksinya suatu simbol.
http://digilib.mercubuana.ac.id/
55
Area data Data disimpan di area data (Hijau). Data akan dikodekan menjadi bilangan biner ‘1’ dan ‘0’ ke dalam sel hitam dan putih.
2.13.2 Sejarah QR Code Pada tahun 1960, dimana jepang memasuki masa pertumbuhan ekonomi yang tinggi, kasir pada supermarket-supermarket di jepang mengalami keluhan. Mereka mengalami mati rasa pada pergelangan tangan mereka dan berharap seandainya beban mereka lebih ringan. Setelah itu, dibentuklah sebuah tim yang hanya terdiri dari dua orang saja dimana salah satunya Masahiro Hara untuk mengembangkan QR Code. Melihat kebelakang, pembuatan barcode 2D bertujuan agar barcode tersebut dapat menampung informasi lebih banyak. Maka dari itu, tantangan terbesar mereka adalah membuat kode yang dapat dibaca dengan mudah dan cepat.
2.14
Tinjauan Studi Agar penelitian ini dapat dipertanggung jawabkan secara akademis, maka
penulis akan menampilkan beberapa penelitian terdahulu yang terkait dengan keamanan pengiriman pesan rahasia dengan teknik kriptografi dengan cara yang berbeda-beda, yaitu: 1. Muhammad Rifqi dalam penelitiannya tentang pengiriman pesan rahasia dengan cara menggabungkan teknik steganografi dan kriptografi dengan menggunakan algoritma Caesar Cipher. Hasil yang didapat dari penelitian tersebut adalah sebelum pesan rahasia disisipkan dalam image pesan rahasia tersebut dikonversikan dengan menggunakan algoritma Caesar Cipher dengan memanfaatkan pergerakan jam, menit, detik, mili detik, micro detik sebagai n/karakter (Muhammad Rifqi, 2013).
http://digilib.mercubuana.ac.id/
56
Jam, menit, detik, mikro detik, mili detik dibagi dengan modulus 26. 26 adalah jumlah abjad dari A sampai Z, setelah pesan rahasia dikonversikan, lalu dirubah menjadi binner. Langkah berikutnya image yang sudah ditentukan dikonversikan menjadi binner, lalu binner hasil pesan rahasia tersebut satu persatu disisipkan kedalam binner image. Untuk melakukan dekripsi diperlukan public key dan private key, dengan algoritma yang dibuat probabilitas pihak ketiga dalam mencoba untuk menyingkap pesan rahasia yang disampaikan sama dengan n x 605. Kelemahan dalam aplikasi yang dibuat adalah image yang dijadikan objeknya berupa bitmap belum pada format bentuk lainnya seperti jpeg, avi, dan lain sebagainya. Pengembangan lebih lanjut dari penelitian ini media image bisa dalam bentuk selain bitmat (bmp). 2. Saharman dalam penelitiannya tentang pengiriman pesan rahasia menggunakan model enkripsi. Hasil yang didapat dari penelitian tersebut adalah pesan rahasia yang dikonversikan dengan menggunakan algoritma Caesar Cipher dengan memanfaatkan biner 13 bit yang digunakan untuk enkripsi data. (Saharman, 2015). Pesan rahasia dikonversikan ke dalam bentuk biner 13 bit, lalu hasil enkripsi dikirimkan ke penerima. Untuk melakukan dekripsi diperlukan key, dengan algoritma yang telah dibuat maka pihak ketiga yang mencoba untuk membobolnya akan kesulitan. Kelemahan dalam aplikasi yang dibuat adalah program hanya dapat mengenkripsi data hanya bertipe teks. Pengembangan lebih lanjut dari penelitian ini media yang akan dienkripsi dapat berupa gambar.
http://digilib.mercubuana.ac.id/