LAPORAN TUGAS AKHIR
TEKNIK KEAMANAN DATA MENGGUNAKAN
KRIPTOGRAFI DENGAN ALGORITMA VERNAM CHIPER
DAN STEGANOGRAFI DENGAN METODE END OF FILE
(EOF)
Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Teknik Informatika S-1 pada Fakultas Ilmu Komputer
Universitas Dian Nuswantoro Disusun oleh:
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Program Studi : Teknik Informatika ( S-1 )
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
SEMARANG
PERSETUJUAN LAPORAN TUGAS AKHIR
Nama Pelaksana : Eko Hari Rachmawanto NIM : A11.2006.02767
Program Studi : Teknik Informatika Fakultas : Ilmu Komputer
Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi
dengan Metode End of File (EoF)
Tugas Akhir ini telah diperiksa dan disetujui,
Semarang, 14 April 2010
Menyetujui : Pembimbing
M. Arief Soelaeman, M. Kom
Mengtahui :
Dekan Fakultas Ilmu Komputer
PENGESAHAN DEWAN PENGUJI
Nama : Eko Hari Rachmawanto
NIM : A11.2006.02767
Program Studi : Teknik Informatika Fakultas : Ilmu Komputer
Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan Metode End of File (EoF)
Tugas akhir ini telah diujikan dan dipertahankan dihadapan Dewan Penguji pada Sidang Tugas Akhir bulan 14 April 2010. Menurut pandangan kami, tugas akhir ini memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S. Kom)
Semarang, 14 April 2010 Dewan Penguji
Slamet Sudaryanto, M.Kom Edi Faisal, M.Kom
Anggota Anggota
PERNYATAAN KEASLIAN TUGAS AKHIR
Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah ini, saya :
Nama : Eko Hari Rachmawanto NIM : A11.2006.02767
Menyatakan bahwa karya ilmiah saya yang berjudul :
TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI
DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI DENGAN METODE END OF FILE (EOF)
Merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing-masing telah saya jelaskan sumbernya). Apabila di kemudian hari, karya disinyalir bukan merupakan karya asli saya, yang disertai dengan bukti-bukti yang cukup, maka saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut. Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang
Pada tanggal : 13 April 2010 Yang menyatakan
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah ini, saya :
Nama : Eko Hari Rachmawanto NIM : A11.2006.02767
Demi mengembangkan Ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Dian Nuswantoro Hak Bebas Royalti Non-Ekskusif (non-exclusif Royalti-Free Right) atas karya ilmiah saya yang berjudul :
TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI
DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI DENGAN METODE END OF FILE (EOF)
beserta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti Non-Ekseklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mengcopy ulang (memperbanyak), menggunakan, mengelolanya dalam bentuk pangkalan data (database), mendistribusikannya dan menampilkan/mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis/pencipta.
Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Semarang Pada tanggal : 13 April 2010 Yang menyatakan
UCAPAN TERIMA KASIH
Dengan memanjatkan puji syukur kehadirat Allah, Tuhan yang Maha Pengasih dan Maha Penyayang yang telah melimpahkan segala rahmat-Nya kepada penulis sehingga laporan Tugas Akhir dengan judul “Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan Metode End of File (EoF)” dapat penulis selesaikan sesuai dengan rencana karena dukungan dari berbagai pihak yang tidak ternilai besarnya. Oleh karena itu penulis menyampaikan terima kasih kepada :
1. Dr. Ir. Edi Noersasongko, M.Kom, selaku Rektor Universitas Dian Nuswantoro Semarang.
2. Dr.Eng.Yuliman Purwanto,M.Eng, selaku Dekan Fakultas Ilmu Komputer Universitas Dian Nuswantoro Semarang.
3. Ayu Pertiwi, S. Kom.,M.T, selaku Ka.Progdi Teknik Informatika
4. M. Arief Soelaeman, M.Kom, selaku pembimbing tugas akhir yang memberikan semangat, dukungan, membantu pemunculan ide penelitian, memberikan informasi referensi yang penulis butuhkan dan bimbingan yang berkaitan dengan penelitian penulis.
5. Dosen-dosen pengampu pada Fakultas Ilmu Komputer Teknik Informatika Universitas Dian Nuswantoro Semarang yang telah memberikan ilmu dan pengalamannya masing-masing, sehingga penulis dapat mengimplementasikan ilmu yang telah disampaikan.
6. Teman-teman seperjuangan angkatan 2006, yang telah memberikan semangat dan dukungan dalam penyelesaian Tugas Akhir ini.
Semoga Tuhan Yang Maha Esa memberikan balasan yang lebih besar kepada beliau-beliau, dan pada akhirnya penulis berharap bahwa penulisan laporan tugas akhir ini dapat bermanfaat dan berguna sebagaimana fungsinya.
ABSTRAK
Seiring dengan perkembangan zaman, kebutuhan manusia meningkat, terutama kebutuhan akan informasi. Oleh sebab itu, pengiriman dan penyimpanan data memerlukan suatu proses yang mampu menjamin keamanan dan keutuhan dari data tersebut.
Untuk menjamin keamanan dan keutuhan dari suatu data, dibutuhkan suatu proses penyandian. Enkripsi dilakukan ketika data akan dikirim. Proses ini
akan mengubah suatu data asal menjadi data rahasia yang tidak dapat dibaca. Sementara itu, proses dekripsi dilakukan oleh penerima data yang dikirim tersebut. Data rahasia yang diterima akan diubah kembali menjadi data asal.
Dengan cara penyandian tadi, data asli tidak akan terbaca oleh pihak yang tidak berkepentingan, melainkan hanya oleh penerima yang memiliki kunci
dekripsi. Didorong oleh kegunaan yang penting tadi, teknik (algoritma)
penyandian telah berkembang sejak zaman dahulu kala. Mulai dari era sebelum masehi, hingga sekarang algoritma penyandian ini selalu berkembang.
File merupakan salah satu media yang digunakan sebagai penympanan data pada era komputer sekarang ini. Banyak orang mengirim atau menerima file sebagai komunikasi jarak jauh.
Salah satu usaha untuk mengamankan file yaitu dengan mengimplementasikan kriptografi untuk penyandian data, contohnya adalah
algoritma Vernam Cipher. Sebagai contoh sistem kriptografi simetri, algoritma ini
cukup mampu untuk mengamankan informasi termasuk file. Sehingga algoritma ini dapat digunakan untuk mengamankan file.
Dalam hal ketajaman dalam keamanan, diperlukan teknik penyembunyian file ke dalam file lain yang sering kita sebut dengan steganografi. Hal ini untuk
mengurangi kecurigaan pihak yang tidak berkepentingan untuk mengolah file. Pada hal ini digunakan teknik penyembunyian file dengan metode End of File
supaya tidak terlihat secara jelas.
Dengan berdasar pada algoritma Vernam Cipher dan End of File, maka
dibuatlah program aplikasi kriptosistem yang digunakan untuk melakukan
pengamanan file sehingga hanya orang-orang tertentu saja yang dapat mengolah file.
Kata kunci: file, penyandian, kriptosistem, steganografi, algoritma, Vernam Cipher, End of File.
DAFTAR ISI
HALAMAN SAMPUL DALAM ... i
HALAMAN PERSETUJUAN ... ii
HALAMAN PENGESAHAN ... iii
HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR ... iv
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ... v
HALAMAN UCAPAN TERIMA KASIH ... vi
HALAMAN ABSTRAK ... vii
HALAMAN DAFTAR ISI... viii
HALAMAN DAFTAR TABEL ... xii
HALAMAN DAFTAR GAMBAR ... xiii
BAB I PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Batasan Masalah ... 3
1.4 Tujuan Penelitian ... 3
BAB II TINJAUAN PUSTAKA
2.1. Data dan Informasi ... 5
2.2. Pengertian File ... 5
2.3 Kode ASCII ... 6
2.4 Operator Logika ... 10
2.4.1 Operator XOR (Exclusive OR) ... 11
2.5 Kriptografi ... 11
2.5.1 Gambaran Umum Kriptografi ... 11
2.5.2 Tujuan Kriptografi ... 14
2.6 Pola-pola Penyerangan Data ... 15
2.7 Enkripsi dan Dekripsi ... 16
2.8 Algoritma Kriptografi ... 17
2.9 Algoritma Kriptografi Modern ... 21
2.9.1 Algoritma Subtitusi ... 22
2.9.2 Algoritma Transposisi ... 23
2.9.3 Book Key Chiper ... 23
2.9.4 Vernam Chiper ... 24
2.10 Jenis Serangan terhadap Chiper Aliran ... 27
2.11 Steganografi ... 28
2.12 Metode Steganografi ... 30
2.12.2 Metode Steganografi pada Gambar ... 33
2.12.3 Metode Steganografi pada Suara ... 34
2.12.4 Metode End of File (EoF) ... 36
2.13 Microsoft Visual Basic 6.0 ... 36
2.14 Unified Modelling Language (UML) ... 40
BAB III METODOLOGI PENELITIAN 3.1 Metode Pengumpulan Data ... 45
3.2 Metode Pengembangan Sistem ... 45
3.3 Fase-fase Pengembangan Sistem ... 46
3.4 Kekurangan dan Kelebihan Pengembangan Sistem ... 48
3.4.1 Kekurangan RAD ... 48
3.4.2 Kelebihan RAD ... 49
3.5 Kondisi Pengembangan Sistem ... 49
3.5.1 Kondisi yang Sesuai dengan RAD ... 49
3.5.2 Kondisi yang Tidak Sesuai dengan RAD ... 50
BAB IV PERANCANGAN DAN HASIL IMPLEMENTASI 4.1 Analisa Kebutuhan Aplikasi ... 51
4.2 Prosedur Persiapan Pembuatan Aplikasi ... 52
4.4 Desain Input Output (I/O) ... 60
4.4.1 Desain I/O Submenu Stego... 62
4.4.2 Desain I/O Submenu Unstego ... 62
4.4.3 Desain I/O Submenu About Us ... 63
4.5 Implementasi ... 63
4.6 Analisa Percobaan ... 65
4.7 Pengujian Program (Testing) ... 68
4.7.1 Pengujian GUI / Black Box Testing ... 69
4.7.2 Pengujian White Box Testing ... 69
4.8 Kuesioner ... 72
BAB V PENUTUP 5.1 Kesimpulan ... 75
5.2 Saran ... 75
DAFTAR PUSTAKA ... 76
DAFTAR TABEL
Tabel 2.1 Kode ASCII ... 7
Tabel 2.2 Tabel Operator Logika ... 10
Tabel 2.3 Tabel Nilai Kebenaran Operator XOR ... 11
Tabel 4.1 Skenario Use Case Proses Kripto dan Stego ... 53
Tabel 4.2 Skenario Use Case Proses Unkripto dan Unstego... 55
Tabel 4.3 Daftar Aspek Pengujian ... 67
Tabel 4.4 Ringkasan Hasil Pengujian ... 67
Tabel 4.5 Tabel Kuesioner ... 73
DAFTAR GAMBAR
Gambar 2.1 Struktur File ... 6
Gambar 2.2 Skenario Komunikasi Dasar Kriptografi ... 17
Gambar 2.3 Ilustrasi Kinerja Proses Enkripsi Konvensional ... 19
Gambar 2.4 Klasifikasi Kriptografi ... 21
Gambar 2.5 Tampilan Tool Box ... 37
Gambar 2.6 Tool Textbox ... 37
Gambar 2.7 Tool Combobox ... 38
Gambar 2.8 Tool Command ... 38
Gambar 2.9 Tampilan Properties ... 39
Gambar 2.10 Tampilan Window Code Editor ... 39
Gambar 2.11 Notasi Actor ... 40
Gambar 2.12 Notasi Class ... 41
Gambar 2.13 Notasi Use Case ... 41
Gambar 2.14 Notasi Package ... 43
Gambar 2.15 Notasi Note ... 43
Gambar 2.16 Notasi Dependency ... 43
Gambar 2.17 Notasi Association ... 44
Gambar 2.18 Notasi Generalization ... 44
Gambar 2.19 Notasi Realization ... 44
Gambar 4.1 Use Case Kripto dan Stego ... 55
Gambar 4.2 Class Diagram Kripto dan Stego ... 55
Gambar 4.3 Activity Diagram Kripto dan Stego ... 56
Gambar 4.4 Activity Diagram Unkripto dan Unstego ... 57
Gambar 4.5 Activity Diagram Enkripsi dan Dekripsi ... 57
Gambar 4.6 Activity Diagram Stego pada File ... 58
Gambar 4.7 Activity Diagram Unstego pada File ... 58
Gambar 4.8 Sequence Diagram Kripto dan Stego ... 59
Gambar 4.9 Sequence Diagram Unkripto dan Unstego ... 60
Gambar 4.10 Storyboard Menu Utama ... 61
Gambar 4.11 Storyboard Submenu Stego ... 62
Gambar 4.12 Storyboard Submenu Unstego ... 62
Gambar 4.13 Storyboard Submenu About Us ... 63
Gambar 4.14 Tampilan Awal Program ... 64
Gambar 4.15 Tampilan Menu Stego ... 64
Gambar 4.16 Tampilan Menu Unstego ... 65
Gambar 4.17 Tampilan Message Box About Us ... 65
Gambar 4.18 Menu Stego File ... 66
Gambar 4.19 Tampilan MessageBox Setelah Selesai Stego ... 67
Gambar 4.20 Menu Unstego File ... 67
Gambar 4.21 Tampilan MessageBox Setelah Selesai Unstego ... 68
BAB I
PENDAHULUAN
1.1 Latar Belakang
Teknologi komunikasi dan informasi berkembang dengan pesat dan memberikan pengaruh besar bagi kehidupan manusia. Seiring dengan perkembangan teknologi sekarang ini yang semakin pesat maka proses pengiriman data dapat dilakukan dengan mudah dan melalui berbagai macam media yang telah ada antara lain, melalui media internet dengan menggunakan fasilitas e-mail, melalui transfer data antar perangkat mobile
(handphone, PDA dan flashdisk) maupun dengan teknologi radio
frequency (bluethooth, IrDA, GPRS) hingga dengan menggunakan
jaringan komputer. [1]
Perkembangan yang pesat dalam proses pengiriman data membawa dampak yang besar, yaitu masalah keamanan data yang di kirim. Untuk itu, tidak mungkin mengirim data melalui media-media tersebut secara polos (plain), melainkan harus dilakukan proses
pengamanan untuk data yang akan di kirim, salah satunya dilakukan dengan cara melakukan enkripsi pada sebuah file.
Kriptografi dapat menjadi jawaban dari masalah tersebut. Sebagai
ilmu yang telah diaplikasikan untuk pengamanan data, kriptografi dapat
digunakan untuk mengamankan data-data penting pada sebuah file. Data yang terkandung dalam file disandikan atau dienkripsi untuk diubah menjadi simbol tertentu sehingga hanya orang tertentu saja yang dapat mengetahui isi dari data tersebut.
Dalam perkembangan ilmu kritografi masa sekarang ini, telah
banyak tercipta algoritma-algoritma yang dapat digunakan untuk mengubah data asli (plain text) menjadi simbol tertentu (chiper text). Salah
dalam algoritma kriptografi modern dan merupakan algoritma stream chiper.
Namun pada era sekarang ini masih di rasa kurang dalam pengamanan data menggunakan kriptografi. Setelah file tersebut di enkripsi, kita perlu melakukan penyembunyian file ke dalam file lain
supaya pihak yang bukan berkepentingan tidak begitu curiga dalam melihat file tersebut. Langkah seperti ini sering disebut dengan
Steganografi.
Steganografi merupakan salah satu cara yang sangat efektif untuk
mengurangi rasa curiga dari pihak-pihak lain (selain pengirim dan penerima yang sah). Kebanyakan algoritma steganografi menggunakan
sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file.
Dalam perkembangan ilmu steganografi sekarang ini, terdapat
berbagai macam metode yang dapat digunakan untuk menyembunyikan file tersebut. Salah satu contohnya adalah metode End of File (EoF).
Ada sedikit perbedaan antara steganografi dengan kriptografi.
Pada steganografi, penyembunyian atau penyamaran pesan ini dibuat
sedemikian rupa sehingga pihak lain tidak mengetahui bahwa ada pesan lain di dalam pesan yang dikirim. Pesan inti tersebut tetap dipertahankan, hanya dalam penyampaiannya dikaburkan atau disembunyikan dengan berbagai cara. Hanya pihak penerima yang sah saja yang dapat mengetahui pesan lain tersebut.
Sedang pada kriptografi, karakter pesan diubah atau diacak
menjadi bentuk lain yang tidak bermakna. Pesan yang disampaikan dalam
kriptografi menjadi mencurigakan karena ketidakbermaknaannya tersebut.
Sedang pesan dalam steganografi, terlihat seperti pesan biasa sehingga
kecil kemungkinan untuk dicurigai. Namun demikian, bukan berarti tidak ada kekurangan pada steganografi ini. Kelemahan pada steganografi ini
Ada persamaan diantara steganografi dan kriptografi ini yaitu
keduanya digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
Berdasar pada analisa dari masalah tersebut, maka penulis mengusulkan judul penelitian “Teknik Keamanan Data Menggunakan
Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan
Metode End of File (EoF)” sebagai bahan pertimbangan dalam proses pengamanan data sehingga diharapkan tidak terjadi pencurian atau penyadapan data.
1.2 Rumusan Masalah
Rumusan masalah yang muncul dari latar belakang yang telah di sajikan di atas adalah sebagai berikut :
1. Bagaimana efek perubahan file antara sebelum dan sesudah proses ? 2. Bagaimana pengaruh ukuran data terhadap ukuran media file ?
1.3 Batasan Masalah
Dalam penelitian ini, agar tidak menyimpang dari maksud dan tujuan dari penyusunan tugas akhir ini, maka penulis menitikberatkan pada cara implementasi dari algoritma Vernam Chiper pada Kriptografi
ditambahkan metode End of File pada Steganografi. Aplikasi yang
dihasilkan hanya digunakan untuk membantu menggambarkan proses enkripsi kemudian di sisipkan pada file lain dan dekripsi untuk pengamanan file. Adapun aplikasi tersebut dibangun dengan menggunakan software Microsoft Visual Basic 6.0.
1.4 Tujuan Penelitian
mengimplementasikan algoritma Vernam Chiper pada Kriptografi
ditambahkan metode End of File pada Steganografi untuk penyandian
berupa enkripsi dan dekripsi data dalam pengamanan file.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dalam penelitian ini adalah : 1. Manfaat bagi Universitas
Sebagai usaha untuk mengamankan sebuah file yang merupakan data penting dimana hanya orang tertentu saja yang berhak mengetahui.
2. Manfaat bagi Akademik
Sebagai bahan acuan bagi akademik untuk dijadikan tolak ukur pemahaman dan penguasaan tentang teori yang telah diberikan di bangku kuliah.
3. Manfaat bagi Penulis
a. Penulis dapat menerapkan ilmu yang telah diperoleh selama kuliah. b. Memberi bekal pengetahuan yang dapat dipergunakan untuk
BAB II
TINJAUAN PUSTAKA
2.1 Data dan Informasi
Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu pengolahan. Data bisa berwujud suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa ataupun simbol-simbol lainnya yang bisa kita gunakan sebagai bahan untuk melihat lingkungan, objek, kejadian ataupun suatu konsep. [2]
Data merupakan besaran yang menyampaikan suatu arti. Data komputer disimpan sebagai barisan muatan (listrik) yang diatur dalam satu pola sehingga merepresentasikan sebuah informasi. Dengan kata lain data menunjuk pada bentuk informasi (pola elektris). Data bukan merupakan informasi itu sendiri.
Sedang informasi merupakan hasil pengolahan dari sebuah model, formasi, organisasi ataupun suatu perubahan bentuk dari data yang memiliki nilai tertentu dan bisa digunakan untuk menambah pengetahuan bagi yang menerimanya. Informasi juga bisa disebut sebagai hasil pengolahan atau pemrosesan data.
2.2 Pengertian File
File atau Berkas adalah sekumpulan data (informasi) yang berhubungan yang diberi nama dan tersimpan di dalam media penyimpanan sekunder (secondary storage). File memiliki ekstensi.
java. Pada UNIX bahkan dikenal ada file yang memiliki lebih dari satu ekstensi, contohnya : tar.Z, tar.gz. [1]
Struktur pada file terdiri dari 2 bagian yaitu header file dan isi
file. Pada header file terdapat kode biner maupun kode ASCII yang
berisikan tentang fungsi utama pada file. Pada isi file terdapat isi dari file yang telah terbentuk baik berupa text, lagu, video, dll. Di bawah ini
merupakan gambar struktur file yang ada pada semua file.[3]
Gambar 2.1 : Struktur File
2.3 Kode ASCII
Beberapa aplikasi menggunakan data yang bukan hanya bilangan tetapi juga huruf dari alfabet dan karakter khusus lainnya. Data semacam ini disebut dengan data alfanumerik dan mungkin dapat ditunjukkan dengan kode numerik. Jika bilangan-bilangan dimasukkan dalam data, maka bilangan-bilangan tersebut juga dapat ditunjukkan dengan kode khusus.
Sistem American Standard Code for Information Interchange (ASCII): ASCII dan EBCDIC merupakan cikal bakal dari set karakter lainnya. ASCII merupakan set karakter yang paling umum digunakan hingga sekarang. Set karakter ASCII terdiri dari 128 – (27) buah karakter yang masing-masing memiliki lebar 7-bit atau gabungan tujuh angka 0 dan 1, dari 0000000 sampai dengan 1111111. Mengapa 7-bit? Karena komputer pada awalnya memiliki ukuran memori yang sangat terbatas, dan 128 karakter dianggap memadai untuk menampung semua huruf Latin dengan tanda bacanya, dan beberapa karakter kontrol. ASCII telah dibakukan oleh ANSI (American National Standards Institute) menjadi standar ANSI X3.4-1986. Adapun kode-kode pada sistem-sistem tersebut di atas dapat dilihat pada tabel di bawah ini:
97 61 01100001 a 225 E1 11100001 Β
dan FALSE atau 1 dan 0. Simbol-simbol operator logika tersebut dapat dilihat pada tabel yang ada di bawah ini :
Tabel 2.2 : Tabel Operator Logika
Operator Keterangan
Not Tidak
And Dan
Or Atau
Xor Exclusive Or
2.4.1 Operator XOR (Exclusive Or)
Operator biner XOR banyak digunakan dalam perhitungan biner untuk algoritma kriptografi tertentu. Notasi matematis untuk operator XOR adalah . Operator XOR merupakan operator yang digunakan untuk dua buah ekspresi. Operator XOR akan menghasilkan nilai true atau 1 jika kedua ekpresi memiliki nilai yang berbeda. Operator xor akan menghasilkan nilai 0 atau 0 jika kedua espresi bernilai sama.
Tabel 2.3 : Tabel Nilai Kebenaran Operator XOR
Ekspresi1 Ekspresi2 Ekspresi 1 XOr Ekspresi2
0 0 0
0 1 1
1 0 1
1 1 0
2.5 Kriptografi
2.5.1 Gambaran Umum Kriptografi
Ilmu Kriptografi sebenarnya sudah mulai dipelajari manusia sejak tahun 400 SM, yaitu pada zaman Yunani kuno. Dari catatan bahwa “Penyandian Transposisi” merupakan sistem kriptografi pertama yang digunakan atau dimanfaatkan. Bidang ilmu ini terus berkembang seiring dengan kemajuan peradaban manusia, dan memegang peranan penting dalam strategi peperangan yang terjadi dalam sejarah manusia, mulai dari sistem kriptografi “Caesar Chiper” ang terkenal pada zaman Romawi kuno, “Playfair Cipher” yang digunakan Inggris dan “ADFVGX Cipher” yang digunakan Jerman pada Perang Dunia I hingga algoritma-algoritma kriptografi rotor yang populer pada Perang Dunia II , seperti Sigaba / M-134 (Amerika Serikat), Typex ( Inggris ), Purple (Jepang), dan mesin kriptografi legendaris Enigma (Jerman). Sejarah telah dipenuhi oleh contoh-contoh orang yang berusaha merahasiakan informasi rahasia mereka dari orang lain.
Seiring dengan perkembangan zaman, kebutuhan akan metode yang lebih canggih tidak dapat dihindari. Sekarang, dengan adanya era informasi, kebutuhan itu menjadi lebih penting lagi. Dengan adanya fasilitas internet, maka permintaan akan pelayanan informasi semakin meningkat dengan seiringnya perkembangan teknologi. Pertukaran data yang sensitif seperti nomor account kartu kredit, sudah sering dilakukan dan menjadi hal yang biasa di dalam dunia internet. Karena itu, melindungi data sudah menjadi hal penting yang sangat kruisal di dalam hidup.
Ada tiga istilah yang berkaitan dengan proteksi data yaitu kriptografi, kriptologi, dan kriptanalisis. Arti ketiganya kurang lebih sama. Secara teknis, kriptologi adalah ilmu yang mempelajari tentang komunikasi pada jalur yang tidak aman beserta masalah-masalah yang berhubungan dengan itu.
ini, orang-orang tidak mengetahui bagaimana tulisan tersebut disembunyikan dan tidak mengetahui bagaimana cara membaca maupun menerjemahkan tulisan tersebut. William Stallings mendefinisikan kriptografi sebagai “the art and science of keeping messages secure” [4].
Kriptografi berbasis pada algoritma pengkodean data informasi yang mendukung kebutuhan dari dua aspek keamanan informasi, yaitu
secrecy (perlindungan terhadap kerahasiaan data informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi
yang tidak diinginkan.
Kriptografi menjadi dasar bagi keamanan komputer dan jaringan karena merupakan sarana bagi distribusi data dan informasi. Sehingga data dan informasi tersebut harus diamankan agar hanya orang-orang yang berhak mengaksesnya yang dapat mengetahui maupun menggunakan data tersebut. Salah satu cara yang paling banyak digunakan dalam mengamankan data adalah dengan kriptografi. Data-data tersebut diamankan dengan sedemikian rupa oleh pengirim sehingga orang lain tidak dapat mengenali data tersebut.
Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).
C = E (M), dimana : M = pesan asli E = proses enkripsi
C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli kembali.
M = D (C)
Umumnya, selain menggunakan fungsi tertentu dalam melakukan enkripsi dan dekripsi, seringkali fungsi itu diberi parameter tambahan yang disebut dengan istilah kunci.
2.5.2 Tujuan Kriptografi
Dalam teknologi informasi, telah dan sedang dikembangkan cara untuk menangkal berbagai bentuk serangan semacam penyadapan dan pengubahan data yang dikirimkan. Salah satu cara yang ditempuh mengatasi masalah ini ialah dengan menggunakan kriptografi yang menggunakan transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak yang tidak berhak mengakses.
Transformasi ini memberikan solusi pada dua macam masalah keamanan data, yaitu masalah privasi (privacy) dan keotentikan
(authenticatioan). Privaci mengandung arti bahwa data yang dikirimkan
hanya dapat dimengerti informasinya oleh penerima yang sah atau berhak. Sedangkan keotentikan mencegah pihak ketiga untuk mengirimkan data yang salah atau mengubah data yang dikirimkan.
Kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan. Ada 4 syarat yang perlu dipenuhi, yaitu:
a. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan.
b. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain. c. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang
dia terima tidak dimodifikasi saat dalam proses transmisi data.
2.6 Pola-pola Penyerangan Data
Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor. Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat diterangkan sebagai berikut [5]:
a. Interruption
Interception terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak B. Interruption merupakan pola
penyerangan terhadap sifat availability (ketersediaan data).
b. Interception
Serangan ini terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan. Interception merupakan pola penyerangan terhadap sifat confidentiality(kerahasiaan data).
c. Modification
Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat
integrity (keaslian) data.
d. Fabrication
Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain. Fabrication
merupakan pola penyerangan terhadap sifat authenticity.
melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Untuk masalah kekuatan pengamanannya tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya.
2.7 Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi chiperteks disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2)
sedangkan proses mengembalikan chiperteks mejadi plainteks disebut dekripsi (decryption) atau dechiphering (standard ISO 7498-2).[6]
Enkripsi adalah transformasi data dalam bentuk yang tidak dapat terbaca dengan sebuah kunci tertentu. Tujuannya adalah untuk meyakinkan privasi dengan menyembunyikan informasi dari orang-orang yang tidak ditujukan, bahkan mereka yang memiliki akses ke data terenkripsi. Sedangkan dekripsi merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.
Enkripsi dilakukan pada saat pengiriman dengan cara mengubah data asli menjadi data rahasia, sedangkan dekripsi dilakukan pada saat penerimaan dengan cara mengubah data rahasia menjadi data asli. Jadi data yang dikirimkan selama proses pengiriman adalah data rahasia, sehingga data asli tidak dapat diketahui oleh pihak yang tidak berkepentingan. Data asli hanya dapat diketahui oleh penerima dengan menggunakan kunci rahasia.
A Encrypt Decrypt B
C
Plaintext Ciphertext Plaintext Encryption
Key
Decryption Key
Gambar 2.2 : Skenario Komunikasi Dasar Kriptografi
Di dalam skenario komunikasi dasar, seperti yang diperlihatkan pada Gambar 2.1, terdapat dua belah pihak, sebut saja A dan B, yang ingin berkomunikasi satu sama lain.
Kemudian pihak ketiga, C, adalah seorang eavesdropper (orang
yang mengakses informasi rahasia tanpa izin). Ketika A ingin mengirimkan informasi, yang disebut plaintext, kepada B, dia
mengenkripsi plaintext tersebut dengan menggunakan metode yang telah
dirancang oleh B. Biasanya, metode enkripsi diketahui oleh si
eavesdropper, dalam hal ini adalah C. Yang membuat pesan tersebut tetap
bersifat rahasia adalah key-nya. Ketika B menerima pesan yang telah
dienkripsi, yang disebut dengan ciphertext, dia mengubahnya kembali
menjadi plaintext dengan menggunakan key dekripsi.
2.8 Algoritma Kriptografi
Cryptographic system atau cryptosystem adalah suatu fasilitas
diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan [7]. Kriptosistem terdiri dari sebuah algoritma, plaintext, chipertext dan
kunci-kunci. Secara umum, kriptosistem digolongkan menjadi 2 buah, yaitu: 1. Kriptosistem simetri
2. Kriptosistem asimetri
Dalam kriptosystem simetri, algoritma yang digunakan hanya membutuhkan satu kunci untuk proses enkripsi dan dekripsi. Sedang dalam kriptografi asimetri, algoritma yang digunakan membutuhkan dua kunci yang berbeda dalam proses enkripsi dan dekripsi pesan. Kriptosistem dengan menggunakan symmetric cryptography kadang
disebut sebagai Secret-key cryptography merupakan bentuk kryptografi
yang lebih tradisional, dimana sebuah kunci tunggal dapat digunakan untuk mengenkrip dan mendekrip pesan. Secret-key cryptography tidak
hanya berkaitan dengan enkripsi tetapi juga berkaitan dengan otentikasi, disebut juga message authentication codes.
Masalah utama yang dihadapi secret-key cryptography adalah
membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada
orang lain yang mengetahuinya. Ini membutuhkan metode dimana dua pihak dapat berkomunikasi tanpa takut akan disadap. Kelebihan secret-key cryptography dari public-key cryptography adalah lebih cepat. Teknik
yang paling umum dalam secret-key cryptography adalah block ciphers, stream ciphers, dan message authentication codes. Berdasarkan jenis
kunci yang digunakannya, algoritma kriptografi dikelompokan menjadi dua bagian, yaitu :
a. Symmetric Algorithm
Symmetric algorithm atau disebut juga secret key algorithm adalah
Pada sebagian besar symmetric algorithm kunci enkripsi dan kunci
dekripsi adalah sama. Symmetric algorithm memerlukan kesepakatan
antara pengirim dan penerima pesan pada suatu kunci sebelum dapat berkomunikasi secara aman. Keamanan symmetric algorithm tergantung
pada rahasia kunci. Pemecahan kunci berarti memungkinkan setiap orang dapat mengenkripsi dan mendekripsi pesan dengan mudah. Symmetric algorithm dapat dikelompokkan menjadi dua jenis, yaitu stream cipher
dan block cipher. Stream cipher beroperasi bit per bit (atau byte per byte)
pada satu waktu. Sedangkan block cipher beroperasi per
kelompokkelompok bit yang disebut blok (block) pada satu waktu.
b. Asymmetric Algorithm
Asymmetric algorithm atau disebut juga public key algorithm
didesain agar memudahkan dalam distribusi kunci yang digunakan untuk enkripsi dan dekripsi. Kunci dekripsi pada public key algorithm secara
praktis tidak dapat dihitung dari kunci enkripsi. Algoritma ini disebut “public key” karena kunci dapat dibuat menjadi publik. Setiap orang dapat
menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya orang yang memiliki kunci dekripsi yang dapat mendekripsi pesan tersebut. Pada sistem ini kunci enkripsi sering disebut kunci publik (public key), dan kunci dekripsi disebut kunci rahasia (private key).
Metode kriptosystem simetri disebut juga dengan enkripsi simetri atau enkripsi konvensional. Gambar di bawah ini mengilustrasikan kinerja dari proses enkripsi konvensional.
Proses enkripsi terdiri dari sebuah algoritma dan sebuah kunci. Kunci adalah sebuah nilai yang terlepas dari pesan asli (plaintext) dan mengontrol algoritma yang dipakai. Penerapan algoritma akan menghasilkan output yang berbeda sesuai dengan kunci yang digunakan. Mengubah kunci berarti mengubah output dari algoritma yang dipakai.
Setelah chipertext dihasilkan, chipertext tersebut dapat diubah kembali menjad pesan asli dengan algoritma dekripsi dan dengan kunci yang sama seperti yang digunakan pada saat enkripsi.
Keamanan dari enkripsi konvensional ini terdiri dari beberapa faktor. Pertama, algoritma enkripsi harus benar-benar teruji, sehingga tidak dimungkinkan untuk mendekripsi sebuah pesan hanya dalam bentuk
ciphertext. Kedua, keamanan enkripsi konvensional juga ditentukan oleh
kerahasiaan kunci yang digunakan, bukan kerahasiaan algoritma yang digunakan. Jadi, kita juga harus yakin bahwa dekripsi tidak dimungkinkan hanya dengan mengetaui ciphertext dan algoritma yang digunakan tanpa
mengetahui kunci yang digunakan.
Bentuk umum enkripsi konvensional dapat dilihat dari contoh berikut. User A akan mengenkripsi plaintext X=[x1,X2,…,Xm] (m elemen dari X merupakan huruf dari alphabet pesan) dengan kunci K=[K1,K2,…,Kj]. Dengan pesan X dan kunci K tersebut, akan dihasilkan chipertext Y=[Y1,Y2,…,Yn]. Maka kita dapat menuliskan rumus :
Y=Ek(X)
Selanjutnya, chipertext tersebut dikirimkan ke user B. User B akan mendekripsi chipertext tersebut agar menjadi pesan asli dengan algoritma dekripsi dan kunci yang sama seperti yang digunakan pada saat enkripsi. Hal ini dapat dirumuskan sebagai berikut:
X=Dk(Y)
Gambar 2.4 : Klasifikasi Kriptografi
Kriptografi dibagi dalam dua bagian, yaitu cipher modern dan klasikal. Mode klasikal biasanya menggunakan mode karakter, sehingga kemampuan dari mode ini terbatas karena keterbatasan jumlah karakter.
Sedang pada kriptografi modern, pada proses enkripsi dan dekripsi menggunakan rangkaian bit dalam bentuk biner, 0 dan 1. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi ciphertext dalam bentuk rangkaian bit, begitu pula sebaliknya.
Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Algoritma kriptografi yang beroperasi dalam mode bit dapat dikelompokkan menjadi dua kategori :
a. Cipher Aliran (Stream Cipher)
Merupakan algoritma kriptografi yang beroperasi pada plaintext atau cipher text dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau didekripsikan bit per bit.Yang termasuk dalam kelompoh cipher aliran adalah algoritma vernam cipher.
b. Cipher Block(Block Cipher)
sebelumnya. misalnya panjang blok adalah 64 bit, maka algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian.
(1 karakter= 8 bit dalam pengkodean ASCII)
2.9.1 Algoritma Subtitusi
Caesar cipher adalah cipher substitusi sederhana yang mencakup
pergeseran alfabet 3 posisi ke kanan. Caesar cipher merupakan subset dari cipher polialfabetik Vigenere. Pada Caesar cipher karakter-karakter pesan dan pengulangan kunci dijumlahkan bersama, modulo 26. Dalam penjumlahan modulo 26, huruf-huruf A-Z dari alfabet masing-masing memberikan nilai 0 sampai 25.
Caesar Cipher diperkenalkan oleh Julius Caesar yang mengubah huruf-huruf dalam plaintext dengan huruf-huruf lain yang dilakukan secara konsisten.
Contoh:
Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z Chipper : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Sehingga, ketika pesan yang akan dikirim (plaintext) berbunyi “universitas” maka ditulis (ciphertext) dengan ”XQLYHUVLWDV JXQDGDUPD”. Si Penerima pesan tentu harus mengetahui kode pembacaannya (yang diberikan oleh si Pengirim) atau ia mengotak-atik sendiri kode-kode itu.
Algoritma di atas adalah setiap huruf plaintext p, akan disubstitusi menjadi huruf ciphertext c dengan formula: C=E(3, p) = (p + 3) mod 26, atau secara umum algoritma Caesar adalah :
C = E(k, p) = (p + k) mod 26 di mana k, diambil dari rentang 0 (huruf A) sampai 25 (huruf Z). Algoritma dekripsi menjadi:
Tipe cipher ini dapat diserang menggunakan analisis frekuensi. Dalam frekuensi analisis, digunakan karakteristik frekuensi yang tampak dalam penggunaan huruf-huruf alfabet pada bahasa tertentu. Tipe cryptanalysis ini dimungkinkan karena Caesar cipher adalah
monoalfabetik cipher atau cipher substitusi sederhana, dimana karakter ciphertext disubstitusi untuk setiap karakter plaintext. Serangan ini dapat
diatasi dengan menggunakan substitusi polialfabetik. Substitusi polialfabetik dicapai melalui penggunaan beberapa cipher substitusi. Namun substitusi ini dapat diserang dengan penemuan periode, saat substitusi berulang kembali.
2.9.2 Algoritma Transposisi
Pada cipher ini, huruf-huruf plaintext dipermutasi. Sebagai contoh,
huruf-huruf plaintext A T T A C K A T D A W N dapat dipermutasi menjadi D C K A A W N A T A T T. Cipher transposisi kolumnar adalah cipher dimana plaintext ditulis secara horisontal pada kertas dan dibaca
secara vertikal. Cipher transposisi dapat diserang melalui analisis
frekuensi, namun cipher menyembunyikan properti statistik dari pasangan
huruf-huruf, seperti IS dan TOO.
2.9.3 Book Key Cipher
Cipher ini menggunakan teks dari sebuah sumber (misalnya buku) untuk mengenkripsi plaintext. Kunci, diketahui oleh pengirim dan penerima yang dimaksud, dapat berupa halaman dan jumlah baris dari teks pada buku. Teks ini adalah karakter yang sesuai untuk karakter dengan
plaintext, dan penjumlahan modulo 26 dijalankan untuk memperngaruhi
enkripsi. Running key cipher mengeliminasi periodisitas, namun masih
dapat diserang dengan memanfaatkan redundansi pada kunci.
a. Gambaran Umum
Vernam cipher merupakan algoritma kriptografi yang ditemukan oleh Mayor J. Maugborne dan G. Vernam. Algoritma ini merupakan algoritma berjenis symmetric key yang artinya bahwa kunci yang
digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher dimana cipher berasal dari hasil XOR antara bit plaintext dan bit key. Algoritma Vernam cipher diadopsi dari one-time pad cipher, dimana dalam hal ini karakter diganti dengan bit (0 atau 1). Dengan kata lain, Vernam Cipher merupakan versi lain dari one-time pad cipher.
Dalam proses enkripsi,cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci, seperti terlihat pada rumus di bawah ini :
c1 = (p1 + k1) mod 2 …… 2.1
Dimana :
c1 = cipher teks p1 = plainteks k1 = kunci
Sedangkan dalam proses dekripsi, untuk mendapatkan kembali plainteks, diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci :
p1 =( c1 - k1 )mod 2 …… 2.2
operasi penjumlahan modulp 2 identik dengan operasi bit dengan operator XOR, maka persamaan 2.1 dapat ditulis secara sederhana sebagai berikut:
c1 = p1 XOR k1 …… 2.3
Sedangkan pada proses pendekripsian dituliskan: p1 = c1 XOR k1 …… 2.4
Dalam operator logika XOR, hasil akan T (benar) apabila salah satu dari kedua operand (tetapi tidak keduanya) bernilai T atau 1. Atau dengan kata lain, apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah satu operand bernilai 1.
Contoh :
X: 00111010 10101011 Y: 10100100 01010101 Hasil : 10011110 11111110
Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan menghasilkan 0. Contoh :
X : 01010101 10101010 Y : 01010101 10101010 Hasil :00000000 00000000
b. Proses Enkripsi dan Dekripsi
Perhitungan di atas merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi, yaitu suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu dan dapat pula diperoleh kembali dari pesan sandi dengan menggunakan operator XOR pada kunci yang sama.
1. Karakter-karakter yang terdapat pada plainteks dan kunci merupakan karakter ASCII. Maka, ubah plainteks dan kunci menjadi bilangan biner :
ASCII Biner
Vernam 01010110 01100101 01110010 01101110 01100001 01101101
Cipher 01000011 01101000 01101001 01110000 01100101 01110010
2. Lalu, kedua bilangan biner itu kita XOR-kan menurut persamaan 2.3 :
Hasil dari XOR tersebut adalah : “00010101 00001100 00000010 00000110 00000100 00011111”. Rangkaian bilangan bit ini merupakan bit cipherteks dalam bentuk biner. Untuk mengetahui nilai SCII dari cipherteks tersebut, maka kita perlu konversikan rangkaian biner tersebut ke bilangan ASCII sesuai dengan tabel 2.1. Dengan berdasar pada tabel tersebut, maka dapat kita lihat bahwa rangkaian bit dari cipherteks tersebut mempunyai nilai ASCII :
Proses dekripsi dalam algoritma Vernam Cipher merupakan kebalikan dari proses enkripsi. Cipherteks dari hasil enkripsi di-XOR-kan dengan kunci yang sama. Misalnya dengan mengambil contoh sebelumnya, dimana cipherteks : “§ ☽ ☻ ☿ ♂ ╹” dan kunci : “Cipher”. Maka langkah pendekripsiannya adalah sebagai berikut :
1. Ubah karakter ASCII dari cipherteks dan kunci ke dalam rangkaian biner :
§ ☽ ☻ ☿ ♂
╹
2. Lalu, kedua rangkaian biner itu kita XOR-kan dengan berdasar pada persamaan 2.4 :
Maka didapat rangkaian bit plainteks “01010110 01100101 01110010 01101110 01100001 01101101”. Dengan berdasar pada tabel 2.1, maka kita dapat mengubah rangkaian bit menjadi bilangan ASCII, yaitu menjadi : “Vernam”. Terbukti plain teks pada hasil dekripsi adalah sama dengan plainteks pada proses enkripsi.
2.10 Jenis Serangan terhadap Cipher Aliran
Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran
adalah:
1. Known-plaintext attack
Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks
(C) yang berkoresponden, maka ia dapat menemukan bagian
bit-aliran-kunci (K) yang berkoresponden dengan meng-XOR-kan bit-bit
plainteks dan cipherteks:
P C = P (P K) = (P P) K = 0 K = K
2. Ciphertext-only attack
Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1
dan C2) yang dienkripsi dengan bit-aliran-kunci yang sama. Ia
meng-XOR-kan kedua cipherteks tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:
ASCII Biner
§ ☽ ☻ ☿ ♂ ╹ 00010101 00001100 00000010 00000110 00000100 00011111
Cipher 01000011 01101000 01101001 01110000 01100101 01110010
C1 C2= (P1 K ) (P2 K) = (P1 P2 ) (K K)
= (P1 P2 ) 0
= (P1 P2 )
P1 dan P2 dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah
satu plainteks dengan cipherteksnya untuk memperoleh bit-aliran-kunci K yang berkoresponden:
P1 C1= P1 (P1 K) = K
Pesan dari dua serangan di atas adalah: pengguna cipher aliran
harus mempunyai bit-aliran-kunci yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-aliran-kunci tidak memungkinkan kriptanalis dapat mendeduksi bagian sisanya.
2.11 Steganografi
Steganografi berasal dari bahasa Yunani yaitu Steganós yang berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara keseluruhan artinya adalah tulisan yang disebunyikan. Secara umum steganografi merupakan seni atau ilmu yang digunakan untuk menyembunyikan pesan rahasia dengan segala cara sehingga selain orang yang dituju, orang lain tidak akan menyadari keberadaan dari pesan rahasia tersebut.
Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer. Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).
yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garis-garis yang kelihatan.
Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam file-file lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.
Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan diantaranya:
Format image : bitmap (bmp), gif, pcx, jpeg, dll. Format audio : wav, voc, mp3, dll.
Format lain : teks file, html, pdf, dll.
Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya.
2.12 Metode Steganografi
Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih sebelumnya.
Terdapat banyak metode yang digunakan dalam melakukan penyembunyian data kedalam data lainnya. Berikut adalah penjelasan mengenai beberapa metode yang banyak digunakan dalam steganografi.
2.12.1 Metode Steganografi pada teks a. Metode Spasi Terbuka
digunakan dengan memakai ASCII (AmericanStandard Character Interchange) format. Bender et al memberikan tiga metode untuk
mengungkap white space dalam proses penyembunyian. Spasi terbuka antar kalimat akan menghasilkan nilai "0" apabila hanya terdapat sebuah spasi yang ditambahkan diantara kalimat tersebut. Dengan menambahkan dua spasi akan menghasilkan nilai "1". Metode ini dapat berhasil, tetapi membutuhkan data dalam jumlah besar untuk menyembunyikan sebuah informasi kecil. Dan juga terdapat banyak software word-processing yang akan secara otomatis membetulkan spasi antara kalimat, sehingga metode ini seringkali gagal. Metode spasi end-of-line (EOL) mengutarakan white space pada akhir dari masing-masing baris. Data disembunyikan menggunakan jumlah spasi yang telah ditentukan sebelumnya dari akhir untuk masing- masing kalimat. Sebagai contoh dua spasi akan menyembunyikan satu bit, empat spasi akan menyembunyikan dua bit dan delapan spasi akan menghasilkan tiga bit dan seterusnya. Tehnik ini lebih baik dibandingkan metode spasi terbuka antar kalimat, karena dengan meningkatkan jumlah spasi akan dapat menyembunyikan lebih banyak data. Salah satu kekurangan dari tehnik ini adalah dapat hilangnya informasi tersembunyi jika hard copy data yang diberikan
Sehingga "01" diinterpretasikan sebagai "1" dan "10" diinterpretasikan sebagai "0". Dimana "00" dan "11" akan dianggap sebagai null bit string.[6]
b. Metode Syntactic
Metode Syntactic sebagaimana yang telah di sarankan oleh Bender et al, mengutarakan penggunaan punktuasi dan struktur text untuk menyembunyikan informasi tanpa secara signifikan mengubah arti dari pesan pembawa. Sebagai contoh terdapat dua frase "bread, butter, and milk" dan "bread, butter and milk" secara gramatikal benar tetapi berbeda dalam penggunaan koma.
Salah satu dapat digunakan secara alternatif dalam pesan text guna mengintepretasikan nilai "1" apabila salah satu metode dipakai dan nilai "0" untuk metode lain yang dipakai.
c. Metode Semantic
2.12.2 Metode Steganografi pada Gambar
Sudah banyak metode yang digunakan untuk menyembunyikan pesan di dalam sebuah image tanpa mengubah tampilan image, sehingga pesan yang disembunyikan tidak akan terlihat. Berikut akan dibahas beberapa metode umum yang digunakan pada image steganography.
a. Least Significant Bit Insertion (LSB)
b. Algorithms and Transformation
Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).
c. Redundant Pattern Encoding
Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar.
d. Spread Spectrum method
Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypt) melalui gambar (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image (gambar).
2.12.3 Metode Steganografi pada suara
a. Low Bit coding
Cara ini lazim digunakan dalam teknik digital steganografi yaitu mengganti LSB input setiap samplingnya dengan data yang dikodekan. Dengan metode ini keuntungan yang didapatkan adalah ukuran pesan yang disispkan relative besar, namun berdampak pada hasil audio yang berkualitas kurang dengan banyaknya noise.
b. Phase coding
Metode kedua yang digunakan ini adalah merekayasa fasa dari sinyal masukan. Teori yang digunakan adalah dengan mensubstitusi awal fasa dari tiap awal segment dengan fasa yang telah dibuat sedemikian rupa dan merepresentasikan pesan yang disembunyikan. Fasa dari tiap awal segment ini dibuat sedemikian rupa sehingga setiap segmen masih memiliki hubungan yang berujung pada kualitas suara yang tetap terjaga. Teknik ini menghasilkan keluaran yang jauh lebih baik daripada metode pertama namun dikompensasikan dengan kerumitan dalam realisasinya.
c. Spread Spectrum
Metode yang ketiga adalah penyebaran spektrum. Dengan metode ini pesan dikodekan dan disebar ke setiap spectrum frekuensi yang memungkinkan. Maka dari itu akan sangat sulit bagi yang akan mencoba memecahkannya kecuali ia memiliki akses terhadap data tersebut atau dapat merekonstruksi sinyal random yang digunakan untuk menyebarkan pesan pada range frekuensi.
d. Echo Hiding
yaitu besar amplitude awal, tingkat penurunan atenuasi, dan offset. Dengan adanya offset dari echo dan sinyal asli maka echo akan tercampur dengan sinyal aslinya, karena sistem pendengaran manusia yang tidak memisahkan antara echo dan sinyal asli. Keempat metode di atas memiliki kesamaan yaitu menggunakan kelemahan dari sistem pendengaran manusia. Maka dari itu teknik steganografi dalam MP3 juga akan menggunakan kelemahan ini untuk menyembunyikan pesan.
2.12.4 Metode End of File (EoF)
Teknik yang digunakan pada digital watermarking beragam
tetapi secara umum teknik ini menggunakan redundant bits sebagai tempat
menyembunyikan pesan pada saat dilakukan kompresi data, dan kemudian menggunakan kelemahan indera manusia yang tidak sensitive sehingga pesan tersebut tidak ada perbedaan yang terlihat atau yang terdengar. Teknik EOF atau End Of File merupakan salah satu teknik yang digunakan dalam steganografi. Teknik ini menggunakan cara dengan menyisipkan data pada akhir file. Teknik ini dapat digunakan untuk menyisipkan data yang ukurannya sesuai dengan kebutuhan. Ukuran file yang telah disisipkan data sama dengan ukuran file sebelum disisipkan data ditambah dengan ukuran data yang disisipkan ke dalam file tersebut. Teknik inilah yang akan digunakan penulis dalam penelitian ini. Dalam teknik ini, data disisipkan pada akhir file dengan diberi tanda khusus sebagai pengenal start dari data tersebut dan pengenal akhir dari data tersebut.
2.13Microsoft Visual Basic 6.0
dengan bahasa pemrograman Basic (Quick Basic), dikarenakan Visual Basic 6.0 adalah pengembangan dari Basic.
Visual Basic 6.0 terdapat dalam 3 versi perangkat lunak yang diproduksi oleh Microsoft yaitu Microsoft Visual Basic 6.0 Professional, Microsoft Visual Basic 6.0 Enterprise Edition, dan Microsoft Visual Studio 6.0. Di dalam perancangan kali ini yang digunakan adalah Microsoft Visual Basic 6.0 Enterprise Edition.[8]
a. Tool Box
Dalam penggunaan software Microsoft Visual Basic, terdapat beberapa tool yang akan digunakan untuk perancangan program.Window yang berisi tombol-tombol kontrol yang akan dipergunakan dalam membuat sebuah form, komponen-komponen yang terdapat pada kontrol dapat ditambah dan dikurangi sesuai dengan kebutuhan program, penambahan dan pengurangan komponen yang dilakukan seiring dengan pemambahan atau pengurangan pada project components dan project references.
Gambar 2.5 : Tampilan Tool Box
1) Textbox
Tool textbox digunakan untuk menginputkan teks dari kunciboard. Dalam perancangan ini, tool textbox akan digunakan untuk memasukkan plaintext yang nantinya akan dienkripsi.
2) Combo Box
Tool combobox digunakan untuk pemilihan terhadap beberapa option yang telah ditentukan dalam perancangan ini, tool combo box digunakan untuk memilih data tertentu yang berkaitan dengan naskah ujian.
Gambar 2.7 : Tool Combobox
3) Button
Tool button digunakan sebagai trigger untuk melaksanakan suatu
aksi tertentu, biasanya berbentuk perintah. Dalam perancangan ini, tool button digunakan sebagai trigger dalam melakukan proses enkripsi atau
enkripsi pesan.
Gambar 2.8 : Tool Command
Gambar 2.9 : Tampilan Properties
b. Code Editor
Window yang dipergunakan untuk menuliskan program, setiap kontrol dalam form dapat memiliki fungsi tertentu. Fungsi tersebut diwujudkan dalam deret perintah, perintah perintah ini yang di tuliskan kedalam window code editor. VB menyediakan auto list untuk memberikan nilai yang terdapat pada suatu kontol, sehingga mengurangi kesalahan penulisan program. Cara menggunakannya adalah dengan mengklik ganda kontrol yang ada.
2.14 Unified Modelling Language (UML)
Unified Modelling Language adalah bahasa standar yang digunakan untuk menjelaskan dan memvisualisasikan artifak dari proses analisis dan dasain berorientasi objek. UML menyediakan standar pada notasi dan diagram yang bisa digunakan untuk memodelkan suatu sistem. UML dikembangkan oleh 3 orang pendekar „berorientasi objek‟, yaitu Grady Booch, Jim Rumbaugh dan Ivar Jacobson.[9]
Namun karena UML hanya merupakan bahasa untuk pemodelan maka UML bukanlah rujukan bagaimana melakukan analisis dan desain berorientasi objek. Untuk mengetahui bagaiamana melakukan analisis dan desain berorientasi secara baik, sudah terdapat beberapa metodologi yang bisa diikuti, seperti Metode Booch, Metode Coad and Yourdan, Metode Jacobson, Metode Rumbaugh, Metode Wirfs-Brock, atau mengikuti metode pengembangan sistem Rational Unified Process.
a. Actor
Gambar 2.11 : Notasi Actor
b. Class
Gambar 2.12 : Notasi Class
Class merupakan pembentuk utama dari sistem berorientasi objek karena class menunjukkan kumpulan objek yang mempunyai atribut dan operasi yang sama. Class digunakan untuk mengimplementasikan interface.
Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. Class dapat untuk merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.
Notasi class benbentuk persegi panjang berisikan 3 bagian yaitu persegi paling atas untuk nama class, persegi di tengah untuk atribut dan persegi paling bawah untuk operasi.
Operasi menunjukkan sesuatu yang bisa dilakukan oleh objek dan menggunakan kata kerja. Atribut digunakan untuk menyimpan informasi. Nama atribut menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi yang terkandung di dalamnya.
c. Use Case
Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem, bukan bagaimana actor dan sistem melakukan kegiatan tersebut.
Di dalam use case terdapat teks untuk menjelaskan urutan kegiatan yang disebut use case specification yang terdiri dari :
- Nama Use case : mencantumkan nama dari use case yang bersangkutan. Sebaiknya diawali dengan kata kerja untuk menunjukkan suatu aktivitas.
- Deskripsi singkat (Brief Description) : menjelaskan secara singkat
dalam 1 atau 2 kalimat tentang tujuan dari use case.
- Aliran normal (Basic Flow) : adalah jantung dari use case yang
menjelaskan tentang interaksi antara actor dan sistem dalam kondisi normal, yaitu segala sesuatu berjalan dengan lancar tanpa ada halangan atau hambatan dalam mencapai tujuan dari use case. - Aliran alternatif (Alternate Flow) : merupakan pelengkap dari
basic flow karena tidak ada yang sempurna dalam setiap kali use
case berlangsung. Dalam hal ini dijelaskan bahwa apa yang akan terjadi bila suatu halangan atau hambatan terjadi sewaktu use case berlangsung.
- Special Requirement : berisi kebutuhan lain yang belum tercakup dalam aliran normal dan alternatif. Secara tegas dibedakan bahwa
basic flow dan alternate flow menangani kebutuhan fungsional,
misalnya kecepatan transaksi maksimum berapa cepat dan berapa lama, kapasitas akses yaitu jumlah user yang akan mengakses dalam waktu bersamaan.
- Pre-Condition : menjelaskan persyaratan yang harus dipenuhi sebelum use case bisa dimulai.
d. Package
Gambar 2.14 : Notasi Package
Package adalah kontainer atau wadah konseptual yang digunakan untuk mengelompokkan elemen-elemen dari sistem yang sedang dibangun sehingga bisa dibuwat model yang lebih sederhana. Tujuannya adalah untuk mempermudah penglihatan dari model yang sedang dibangun.
e. Note
Gambar 2.15 : Notasi Note
Note digunakan untuk memberikan keterangan dan komentar tambahan dari suatu elemen sehingga bisa langsung terlampir dalam model. Note ini bisa ditempelkan ke semua elemen notasi yang lain.
f. Dependency
Gambar 2.16 : Notasi Dependency
Dependency merupakan relasi yang menunjukkan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain. Elemen yang ada di bagian tanda panah adalah elemen yang tergantung pada elemen yang ada di bagian tanpa tanda panah.
Terdapat 2 stereotype dari dependency, yaitu Include dan
garis tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada di garis dengan panah). Extend menunjukkan bahwa suatu bagian dari elemen di garis tanpa panah bisa di sisipkan ke dalam elemen yang ada di garis dengan panah.
g. Association
Gambar 2.17 : Notasi Associaton
Assocition menggambarkan navigasi antar kelas, berapa banyak objek lain yang bisa berhubungan dengan satu objek dan apakah suatu kelas menjadi bagian dari kelas lainnya.
h. Generalization
Gambar 2.18 : Notasi Generalization
Generalization menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik. Dengan menggunakan notasi generalization ini konsep inheritance dari prinsip hierarki
dimodelkan.
i. Realization
Gambar 2.19 : Notasi Realization
BAB III
METODE PENELITIAN
3.1 Metode Pengumpulan Data
Data yang dikumpulkan dalam penelitian ini merupakan data sekunder. Data diperoleh dari telaah pustaka dan dokumen yang didapat penulis dari pustaka yang mendukung, informasi dari internet, buku-buku dan artikel dari jurnal.
3.2 Metode Pengembangan Sistem
Agar mempermudah dalam pengembangan sistem, maka penulis membangun sebuah sistem yang akan membantu dalam menggambarkan proses penyelesaian masalah. Metode yang sesuai dalam pengembangan sistem ini adalah metode Rapid Aplication Development (RAD).
RAD adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen.
Ada beberapa alasan di dalam memilih metode RAD ini antara lain adalah sebagai berikut :
a. Alasan yang Buruk
- Apabila menggunakan RAD, hanya untuk menghemat biaya pengembangan suatu sistem. Hal ini disebabkan karena dengan menggunakan metode RAD membutuhkan suatu tim yang mengerti betul mengenai manajemen biaya. Apabila tidak, maka biaya yang dikeluarkan akan semakin besar.