IMPLEMENTASI ALGORITMA RSA DAN BLOWFISH UNTUK ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN DELPHI 7
OLEH : RIO HAMZAH 204091002505
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM SYARIF HIDAYATULLAH JAKARTA 2011/1432 H
1
IMPLEMENTASI ALGORITMA RSA DAN BLOWFISH UNTUK ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN DELPHI 7
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer (S. Kom) Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta
Oleh :
RIO HAMZAH 204091002505
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI (UIN) SYARIF HIDAYATULLAH JAKARTA 2011 / 1432 H
2
ABSTRAK RIO HAMZAH (204091002505), Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7(Dibawah bimbingan Arini dan Herlino Nanang). Pada saat ini teknologi informasi berkembang sangat pesat, seiring dengan perkembangan teknologi, berkembang pula bahasa pemrograman dan teknologi pengamanan data. Data merupakan hal yang sangat penting setiap orang maupun perusahaan, karena terdapat hal-hal yang bersifat rahasia bagi setiap orang maupun perusahaan. Oleh karena itu diperlukan suatu teknologi yang berguna untuk menjaga keamanaan dan kerahasiaan data, teknologi tersebut adalah Kriptografi. Kriptografi merupakan ilmu yang mempelajari bagaimana supaya pesan atau dokumen kita aman, tidak bisa dibaca oleh pihak yang tidak berhak, sehingga tidak menimbulkan banyak kerugian. Dalam pembuatan aplikasi keamanan data ini, penulis menggunakan algoritma asimetris RSA (Rivest Shamir Adleman) dan algoritma simetris Blowfish. Aplikasi ini memberikan pilihan pada user untuk memilih salah satu algoritma yang digunakan untuk mengeksekusi file. Penulis menggunakan Borland Delphi 7 Enterprise Edition sebagai bahasa pemrograman, Zeosdb untuk koneksi database, MySQL 5.0 untuk membuat database, suipack untuk mempercantik tampilan aplikasi. Metode penelitian yang penulis gunakan terdiri dari studi pustaka dan studi literatur. Sedangkan metode pengembangan sistem yang penulis gunakan adalah RAD (Rapid Application Development). Hasil akhir berupa aplikasi desktop portabel, tanpa ada proses installer, dapat mengeksekusi file dalam ukuran yang besar.
Keyword : Kriptografi, RSA, Blowfish, RAD
3
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAUPUN LEMBAGA MANAPUN.
Jakarta, 29 Juli 2011
Rio Hamzah 204091002505
4
KATA PENGANTAR Assalamualaikum warahmatullahi wabarakatu Segala puji bagi Allah SWT yang telah melimpahkan hidayah, rahmah dan magfirah-Nya sehingga penulis dapat menyelesaikan pembuaqtan skripsi ini. Salawat serta salam penulis haturkan kepada Rasulullah SAW, yang telah membawa umatnya dari zaman kebodohan dan kegelapan menuju zaman yang penuh dengan cahaya hidayah Allah SWT. Penulis mengucapkan terimakasih kepada semua pihak yang memberikan bimbingan, bantuan, dan dukungan selama penyusunan dan pembuatan skripsi ini. Secara khusus saya ucapkan terimakasih kepada: 1.
Bapak DR. Syopiansyah Jaya Putra, M. Sis, selaku Dekan Fakkultas Sains dan Teknologi.
2.
Ibu Arini, ST, M. Eng dan Bapak Herlino Nanang, ST, MT selaku pembi mbing skripsi yang secara kooperatif, penuh kesabaran dan keramahan, memberi nasehat dan saran-saran berharga yang secara bijak membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
3.
Kedua orang tuaku yang sangat penulis cintai dan sayangi yang telah seki an lama membantu, memberikan arahan kepada penulis baik secara moril maupun materil dalam menjalani hidup ini.
4.
Adik sepupuku Marhamah yang menjadi inspirasi bagi penulis.
5.
Teman2ku di Perguruan Pencak Silat Beladiri Merpati Putih yang telah menyadarkan ku dari semua hal-hal negatif, Mas Sodik, Mas Asep Sukabumi, Gembit, Damar, Gandi, Riky, Ubay, Refki.
6.
Teman-teman Teknik Informatika UIN Jakarta Angkatan 2004.
7.
Teman-teman alumni SMU 104 yang tergabung dalam forum alumni IKRAR, Ka Asep, Ka Hendri, Ka Arifin, Agus Setiawan, Didi Sumardi.
Kegagalan adalah awal dari keberhasilan, sebagaimana kesalahan adalah awal dari kesempurnaan, diiringi kesabaran, keteguhan hati, ketabahan, serta menal yang kuat untuk memperjuangkan apa yang kita impikan. Itulah keseluruhan gambaran dari apa yang saya dapatkan dalam penyusunan tugas akhir ini.
5
Skripsi yang jauh dari sempurna ini telah memberikan begitu banyak manfaat dan hikmat yang bisa saya petik. Dan hal itu juga yang saya harapkan bisa diperoleh dari siapapun yang membacanya. Amiin. Billahi taufik wal hidayah, Wassalamualaikum warah matullahi wabarakatu.
Jakarta, 29 Juli 2011
Rio Hamzah
6
DAFTAR ISI Halaman Sampul ...............................................................................................................i Halaman Judul ..................................................................................................................ii Lembar Persetujuan Pembimbing .................................................................................iii Lembar Pengesahan Ujian ..............................................................................................iv Lembar Pernyataan ..........................................................................................................v Abstrak .............................................................................................................................vi Kata Pengantar ...............................................................................................................vii Daftar Isi .........................................................................................................................xiv Daftar Gambar ................................................................................................................ix Daftar Tabel ...................................................................................................................xiii Bab 1 Pendahuluan ...........................................................................................................1 1.1 Latar Belakang ..............................................................................................................1 1.2 Perumusan Masalah ......................................................................................................2 1.3 Batasan Masalah ...........................................................................................................3 1.4 Tujuan Penelitian ..........................................................................................................3 1.5 Manfaat Penelitian ........................................................................................................4 1.6 Metode Penelitian .........................................................................................................5 1.7 Sistematika Penulisan ...................................................................................................6 Bab II Landasan Teori .....................................................................................................8 2.1 Keamanan dan Kerahasiaan Data .................................................................................8 2.1.1 Privacy ...............................................................................................................10 2.1.2 Integrity ..............................................................................................................10
7
2.1.3 Authenticity ........................................................................................................10 2.1.4 Non Repudiation .................................................................................................11 2.2 Kriptografi ..................................................................................................................11 2.2.1 Terminologi ........................................................................................................11 2.2.2 Algoritma Kriptografi ........................................................................................13 2.2.2.1 Kunci Simetris ........................................................................................13 2.2.2.2 Kunci Asimetris ......................................................................................14 2.2.3 Dasar Matematis .................................................................................................15 2.2.4 Rivest Shamir Adleman(RSA) ...........................................................................17 2.2.4.1 Kelebihan RSA ......................................................................................21 2.2.4.2 Flowchart Enkripsi RSA ........................................................................21 2.2.4.3 Flowchart Dekripsi RSA ........................................................................22 2.2.5 Keamanan Algoritma .........................................................................................23 2.2.6 Blowfish .............................................................................................................24 2.2.6.1 Enkripsi Algoritma Blowfish .................................................................26 2.2.6.2 Flowchart Enkripsi Blowfish .................................................................29 2.2.6.3 Dekripsi Algoritma Blowfish .................................................................30 2.2.6.4 Flowchart Dekripsi Blowfish .................................................................32 2.3 Algoritma Pemrograman .............................................................................................34
8
2.3.1 Pseudocode ........................................................................................................34 2.3.2 Flowchart ...........................................................................................................35 2.3.3 State Transition Diagram ...................................................................................36 2.4 Model Perangkat Lunak ..............................................................................................38 2.4.1 Model Protype ....................................................................................................38 2.4.2 Model Sekuensial Linear ...................................................................................39 2.4.3 Model Rapid Application Development(RAD) ……………………………...39 2.5 Pengenalan Bahasa Pemorgraman Delphi versi 7 ……………………………….....40 2.5.1 Kegunaan Delphi 7 ............................................................................................40 2.5.2 Keunggulan Delphi 7 .........................................................................................41 2.5.3 Graphic User Interface(GUI) .............................................................................41 2.5.4 Object Oriented Programming(OOP) ................................................................44 2.5.4.1 Unsur OOP .............................................................................................42 2.5.4.2 Delphi 7 dan OOP ..................................................................................43 2.5.5 Instalasi Delphi 7 ...............................................................................................46 2.6 Client Server ...............................................................................................................54 2.6.1 User ....................................................................................................................54 2.6.2 Client ..................................................................................................................54 2.6.3 Server .................................................................................................................55 2.6.4 Pengertian Client Server ....................................................................................55 2.6.5 Perbedaan Tipe Client Server ............................................................................57 2.6.6 Kombinasi Client Server ...................................................................................58 2.6.7 Studi Literatur ...................................................................................................60
9
Bab III Metodologi Penelitian .......................................................................................65 3.1 Metode Pengumpulan Data .........................................................................65 3.1.1 Studi Pustaka ......................................................................................65 3.1.2 Studi Literatur .....................................................................................65 3.2 Metode Pengembangan Sistem ....................................................................70 3.3 Siklus Penerapan RAD .................................................................................72 Bab IV Analisa dan Pembahasan ..................................................................................74 4.1 Fase Menetukan Syarat-Syarat dan Informasi .............................................74 4.1.1 Tujuan Informasi .................................................................................74 4.1.2 Studi Kelayakan ..................................................................................75 4.1.3 Kelengkapan Hardware .......................................................................74 4.1.4 Kelengkapan Software ........................................................................75 4.1.5 Mendefinisikan Masalah .....................................................................75 4.2 Fase Perancangan .........................................................................................76 4.2.1 Flowchart Diagram .............................................................................77 4.2.2 Perancangan Antar Muka ....................................................................78 4.3 Fase Konstruksi ............................................................................................83 4.3.1 Instalasi Program ................................................................................83 4.3.2 Bagian-bagian Suipack .......................................................................85 4.3.3 Menjalankan Aplikasi Enkripsi ...........................................................90 4.3.3 Tampilan Aplikasi Client Server ........................................................93 4.3.4 Komunikasi Client Server ...................................................................95 4.4 Fase Pelaksanaan .........................................................................................97
10
4.4.1 Spesifikasi Minimum Penggunaan .....................................................97 4.4.2 Konfigurasi Client Server ...................................................................98 4.4.3 Pengujian Aplikasi ..............................................................................99 4.4.3.1 Pengujian Blackbox Mandiri ..................................................99 4.3.1.1 Pengujian File rtf dengan RSA .................................100 4.3.1.2 Pengujian File rtf dengan Blowfish ..........................101 4.3.1.3 Pengujian File rar dengan RSA .................................102 4.3.1.4 Pengujian File rar dengan Blowfish ..........................103 4.3.1.5 Pengujian File mpeg dengan RSA ............................104 4.3.1.6 Pengujian File mpeg dengan Blowfish .....................105 4.3.1.7 Pengujian File doc dengan RSA ...............................106 4.3.1.8 Pengujian File doc dengan Blowfish ........................107 4.3.1.9 Pengujian File mp4 dengan RSA ..............................108 4.3.1.10 Pengujian File mp4 dengan Blowfish .....................109 4.3.1.11 Pengujian File Gambar dengan RSA.......................110 4.3.1.12 Pengujian File Gambar dengan Blowfish ...............111 4.3.1.13 Pengujian Aplikasi Client Server ............................112 4.3.1.14 Enkripsi Teks dengan RSA pada Client Server ......114 4.3.1.15 Enkripsi Teks dengan Blowfish ..............................116 4.4.3.2 Respon Oleh User Tentang Aplikasi ..............................................119 4.4.4 Analisis Pengujian ..................................................................................119 4.4.4.1 Analisis Pengujian BlackBox Mandiri ........................................119 4.4.4.2 Analisis Hasil Respon Oleh User119
11
4.4.5 Hasil Penelitian ………………………………………………………...120 Bab V Penutup ………………………………………………………………………..122 5.1 Kesimpulan ………………………………………………………………...122 5.2 Saran ……………………………………………………………………….122 DAFTAR PUSTAKA ………………………………………………………………....123 Lampiran I Proses Konstruksi Program .......................................................................I-VII Lampiran II Source Code ......................................................................................VIII-XVI Lampiran III Angket .............................................................................................XVII XIX
12
BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi informasi pada saat ini berkembang sangat pesat. Teknologi mampu memudahkan setiap kebutuhan manusia. Manusia pun mulai bergantung kepada teknologi. Setiap permasalahan yang dialami manusia selalu dicoba dengan diselesaikan dengan menggunakan teknologi, seperti komputer. Teknologi komputer merupakan salah satu teknologi yang paling banyak digunakan dalam pengembangan informasi. Karena memiliki banyak fungsi seperti sebagai sarana komunikasi, dokumentasi, pengolahan citra images dan sebagainya. Seiring dengan perkembangan teknologi informasi, berkembang pula teknologi di bidang lainnya dalam dunia teknologi informasi, seperti teknologi kriptografi (pengamanan informasi) dan algoritma pengacakan data. Pada teknologi kriptografi banyak algoritma pengacakan data yang dikembangkan, baik algoritma Asimetris maupun algoritma Simetris. Pada algoritma Asimetris banyak algoritma pengacakan data yang dikembangkan salah satunya adalah RSA, begitu pula dengan pada algoritma Simetris banyak algoritma pengacakan data yang dikembangkan salah satunya adalah Blowfish. Penulis menggunakan algoritma RSA dengan pertimbangan algoritma RSA yang dikenal paling maju dalam bidang kriptografi public key, sedangkan algoritma Blowfish merupakan salah satu algoritma yang terbaik yang menggantikan algoritma DES. Karena pada saat itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Dengan alasan
13
yang dikemukakan oleh penemunya Schneider bahwa blowfish bebas paten dan akan berada pada domain public. Dengan pernyataan Schneier tersebut blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh lisensi (Wikipedia : 2010). Oleh karena itu pengamanan yang kuat sangat dibutuhkan agar data-data tidak jatuh ke tangan yang tidak bertanggung jawab dan yang tidak berhak atas data tersebut. Dari hal tersebut diatas maka penulis akan mengkaji : “IMPLEMENTASI ALGORITMA RSA DAN BLOWFISH UNTUK ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN DELPHI 7”.
1.2 Perumusan Masalah a. Bagaimana membuat aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7. b. Bagaimana menerapkan aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7 yang berbasis client server. c. Bagaimana mengukur waktu proses aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7.
1.3 Batasan Masalah
14
Seiring dengan kemampuan penulis yang sangat terbatas, dan untuk menghindari meluasnya permasalahan, maka pada penulisan skripsi ini hanya mencakup : a.
Penulisan ini difokuskan pada segi enkripsi dan dekripsi data dengan algoritma RSA dan Blowfish menggunakan Delphi 7 disertai penggunaan password.
b.
Data yang dienkrip dan didekrip dengan menggunakan algoritma RSA dan Blowfish adalah data dengan berbagai ukuran (dari puluhan Mega hingga ratusan Mega Bytes) dan format (doc, rtf, rar, jpg, mp4, mpeg,).
c.
Implementasi
program
yang
dibuat
dengan
menggunakan
bahasa
pemrograman Delphi 7. 1.4 Tujuan Penelitian Ada beberapa maksud dan tujuan yang diharapkan bisa tercapai dari implementasi yang dilakukan, diantaranya adalah : 1. Memahami dan mengetahui bagaimana cara membuat sebuah aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7. 2. Menghasilkan sebuah aplikasi yang lebih dinamis daripada aplikasi sebelumnya karena mampu mengeksekusi file-file yang berukuran puluhan hingga ratusan Mega Bytes.
1.5 Manfaat Penelitian
15
1.5.1 Bagi Pengguna 1.
Memberikan pengamanan data pada data yang berukuran puluhan hingga ratusan Mega Bytes
agar suatu data tersebut terjaga
keamanannya dengan algoritma RSA dan Blowfish menggunakan bahasa pemrograman Delphi 7. 2.
Sebagai referensi bagi pengguna lain yang mempunyai minat dalam mengembangkan tentang pemrograman Delphi 7 dengan memanfaatkan bidang ilmu kriptografi.
1.5.2 Bagi Penulis 1.
Membantu pemahaman tentang kriptografi terutama mengenai algoritma RSA dan Blowfish untuk enkripsi dan dekripsi data
2.
Untuk memenuhi salah satu syarat dalam menempuh gelar S1 (Srata 1) pada Fakultas Sains dan Teknologi Jurusan Teknik Informatika Universitas Islam Negeri Jakarta.
3.
Membandingkan teori-teori yang ada dengan permasalahan yang sebenarnya.
4.
Menambah
pengalaman,
memperluas
wawasan
penulis
tentang
pemrograman Delphi 7 dengan memanfaatkan algoritma RSA dan Blowfish untuk enkripsi dan dekripsi data. 1.5.3 Bagi Universitas 1. Menghasilkan perangkat lunak yang dapat juga digunakan sebagai fasilitas pendukung dalam proses belajar mengajar untuk materi kriptografi, khususnya materi algoritma asimetris dan algoritma simetris.
16
2. Dapat menjadi sumbangan karya ilmiah dalam disiplin ilmu teknologi informasi khususnya bidang kriptografi. 3. Dapat dijadikan sebagai bahan acuan bagi peneliti lain yang berminat mengkaji permasalahan atau topik yang sama. 1.6 Metode Penelitian 1.6.1
Metode Pengumpulan Informasi dan Data Metode pengumpulan data yang penulis pakai adalah : 1. Studi Pustaka Studi Pustaka adalah teknik pengumpulan data dengan menghimpun dan
menganalisis
dokumen.
Dokumen-dokumen
yang termasuk
didalamnya yaitu penelitian-penelitian terdahulu, buku, artikel dan jurnal yang berkaitan dengan objek penelitian. 3. Studi Literatur Melakukan studi perbandingan dan analisis antara aplikasi yang pernah dibuat oleh seseorang dengan aplikasi yang penulis buat. Termasuk kelebihan dan kekurangan aplikasi yang telah di buat.
1.6.2
Metode Perancangan Sistem Metode perancangan sistem yang dipakai untuk penelitian ini adalah metode Rapid Application Development (RAD). Yang termasuk kedalam tahapan metode RAD yaitu: 1. Fase Menentukan Tujuan dan Syarat-Syarat Informasi Pada tahap ini akan dilakukan Studi Feasibilitas, kelengkapan data yang
17
digunakan, dan terakhir kelengkapan hardware dan software yang digunakan. 2. Fase Perancangan Pada tahap ini perancangan Flowchart, perancangan antar muka, perancangan algoritma program kriptografi. 3. Fase Konstruksi Pada tahapan ini dilakukan instalasi software pendukung, pengembangan aplikasi yang telah dibuat menggunakan Delphi 7 untuk dijalankan pada laptop 4. Pengujian (Testing) Melakukan pengujian program aplikasi dan pengkajian.
1.7 Sistematika Penulisan Dalam penyusunan tugas akhir (skripsi) ini, uraian yang penulis sajikan terbagi dalam lima bab, yaitu: BAB 1 Pendahuluan Dalam bab ini berisi uraian tentang latar belakang masalah, perumusan masalah, batasan masalah, manfaat penelitian, manfaat penelitian, metode penelitian, sistematika penulisan.
BAB II Landasan Teori Dalam bab ini berisi tentang landasan teori yang penulis buat. Teori tersebut antara lain kriptografi, algoritma RSA dan algoritma Blowfish,
18
metode pengembangan sistem, algoritma pemrograman, model perangkat lunak, pengenalan bahasa pemrograman Delphi 7, abstrak studi literatur, pengenalan client server.
BAB III Metodologi Penelitian Dalam bab ini berisi tentang metodologi penelitian yang terdiri dari metode pengumpulan data dan pengembangan sistem yang penulis gunakan pada aplikasi yang penulis buat.
BAB IV Hasil dan Pembahasan Dalam bab ini penulis membahas aplikasi RSA (Rivest Shamir Adleman) dan Blowfish, melakukan pengujian terhadap aplikasi, penelitian terhadap hasil pengujian.
BAB V Kesimpulan dan Saran Dalam bab ini berisi tentang kesimpulan yang didapat penulis serta mengemukakan saran yang dianggap perlu.
BAB II LANDASAN TEORI 2.1 Keamanan dan Kerahasiaan Data Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi tidak akan
19
berguna lagi apabila ditengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak (Wahana Komputer : 2000). Berkaitan dengan masalah yang terjadi dan perlunya pengamanan terhadap data yang ada dalam komputer, lingkup keamanan data dari suatu sistem komputer mencakup hal-hal yang tidak saja berkaitan dengan: a. Keamanan Fisik Komputer harus diletakkan pada tempat yang dapat dikontrol, karena kemungkinan penyalahgunaan dapat terjadi (user yang tidak disiplin meninggalkan komputer dalam keadaan hidup, sehingga orang yang tidak berhak dapat menggunakan fasilitas komputer tersebut) (Wahana Komputer : 2000, 2). b. Keamanan Akses Seluruh akses terhadap sistem komputer secara administrasi harus terkontrol dan terdokumentasi, sehingga apabila ada suatu permasalahan dapat diketahui penyebabnya dan mencari solusinya (Wahana Komputer : 2000, 2). c. Keamanan File atau Data Untuk file atau data yang sensitif dan bersifat rahasia, diperlukan tingkatan akses dan bahkan dapat dibuatkan suatu kode sandi tertentu sehingga apabila file atau data tersebut dicuri, isi informasinya tidak dengan mudah didapatkan (Wahana Komputer : 2000, 2). d. Keamanan Jaringan Dengan pemanfaatan jaringan publik, data yang ditransmisikan dalm jaringan harus aman dari kemungkinan dapat diketahui isi informasinya sehingga untuk
20
informasi
yang sensitif
harus
dibuatkan
kode
sandi
tertentu
untuk
pengamanannya pada saat transmisi (Wahana Komputer : 2000, 2). Keamanan dan kerahasiaan data pada jaringan komputer saat ini menjadi isu yang sangat penting dan terus berkembang. Beberapa kasus menyangkut keamanan jaringan komputer saat ini menjadi suatu pekerjaan yang membutuhkan biaya penanganan dan pengaman yang sedemikian besar. Sistem-sistem vital seperti sistem pertahanan, sistem perbankan dan sistem-sistem setingkat itu, membutuhkan tingkat keamanan yang sedemikian tinggi, hal ini lebih disebabkan karena kemajuan bidang jaringan komputer dengan konsep open system-nya sehingga siapa pun, dimana pun, dan kapan pun, mempunyai kesempatan untuk mengakses kawasan-kawasan tersebut. Pada garis besarnya, masalah keamanan jaringan dapat dibagi menjadi empat bidang yang saling berhubungan :
2.1.1 Privacy Ketika sebuah pesan atau inforamsi dirasa sensitif atau nilai dari informasi itu menjadi tinggi maka informasi tersebut sifatnya rahasia dan perlu mendapatkan perlindungan. Apalagi kalau informasi tersebut merupakan hak akses seseorang yang tidak sembarang orang bisa menggunakannya (Wahana Komputer : 2000, 33). 2.1.2 Integrity Integritas data diperlukan untuk menjamin bahwa data yang dikirim harus benar-benar data asli yang dikirim oleh orang atau user yang benar-benar mengirimnya pula. Selain itu integritas harus dapat memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mendapatkan perubahan dari saat ia dibuat sampai
21
saat ia dibuka. Adapun metode yang dipakai untuk menjaga data yang dikirim utuh dan asli seperti apa adanya, maka banyak orang yang menggunakan model enkripsi (Wahana Komputer : 2000, 34). 2.1.3 Authenticity Salah satu isu yang terkait dengan kerahasiaan dan keamanan data adalah Authenticity (keaslian). Isu ini sangat mendasar sekali, karena untuk membuktikan asli atau tidaknya dokumen atau pesan yang dipakai oleh sekelompok orang dalam berinteraksi, sehingga orang diluar kelompok tidak dapat berpura-pura sebagai anggota kelompok (Wahana Komputer : 2000, 36).
2.1.4 Non Repudiation Dalam jaringan baik itu jaringan komputer maupun internet, seseorang yang bertindak sebagai user harus bisa memberikan laporan atau fakta-fakta mengenai penggunaan layanan yang dipakai, sehingga ia tidak dapt menyangkal bahwa ia telah benar-benar menggunakan atau melakukan akses terhadap jaringan. Apalagi kalau seorang telah terlibat dengan orangn lain dalam komunitas, baik itu mengirimkan dokumen atau pun kegiatan yang lain, maka kondisi seperti ini sangat diperlukan pembuktian tak tersangkal. Sebab apabila nanti terjadi kekeliruan, maka dapat dipertanggungjawabkan (Wahana Komputer : 2000, 40). 2.2 Kriptografi 2.2.1 Terminologi
22
Kriptografi (cryptografi) merupakan ilmu dan seni untuk menjaga pesan agar aman. Kriptografi (cryptografi) berasal dari bahasa Yunani yaitu ―Crypto” berarti “secret” (rahasia) dan “graphy” praktisi
kriptografi
disebut
berarti “writing” (tulisan). Para pelaku atau
cryptographers.
Sebuah
algoritma
kriptografi
(cryptography algoritm), disebut cipher, merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi. Biasanya kedua persamaan matematik (untuk enkripsi dan dekripsi) tersebut memiliki hubungan matematis yang cukup erat. Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext) adalah enkripsi (encryption). Ciphertext adalah pesan yang tidak dapat dibaca dengan mudah. Menurut ISO 7498-2, terminologi yang lebih tepat digunakan adalah “encipher”. Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption). Menurut ISO 7498-2, terminologi yang lebih tepat untuk proses ini adalah “decipher”. Cryptanalysis adalah seni dan ilmu untuk memecahkan ciphertext tanpa bantuan kunci. Cryptanalyst adalah pelaku atau praktisi yang menjalankan cryptanalysis. Cryptology merupakan gabungan dari Cryptography dan Cryptanalysis. Untuk mengenkripsi dan mendekripsi data. Kriptografi menggunakan suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi data. Sedangkan kunci (key) merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data.
23
Algoritma kriptografi modern tidak lagi mengandalkan keamanannya pada kerahasiaan algoritma tetapi kerahasiaan kunci. Plaintext yang sama bila disandikan dengan kunci yang berbeda akan menghasilkan Ciphertext yang berbeda pula. Dengan demikian algoritma kriptografi dapat bersifat umum dan boleh diketahui oleh siapa saja, akan tetapi tanpa pengetahuan tentang kunci (key), data tersandi tetap saja tidak dapat terpecahkan. Sistem kriptografi atau Cryptosistem adalah sebuah algoritma kriptografi ditambah semua kemungkinan plaintext, ciphertext, key.
2.2.2 Algoritma Kriptografi Algoritma kriptografi pertama kali dikembangkan untuk mengizinkan organisasi tertentu ditunjuk untuk mengakses suatu informasi. Algoritma kriptografi ini telah mengalami perkembangan sehingga hasilnya lebih memuaskan, misalnya pada algoritma RSA, Blowfish, IDEA, AES, DES dan lainnya. Algoritma kriptografi terdiri dari algoritma enkripsi (E) dan algoritma dekripsi (D). Algoritma enkripsi menggunakan kunci enkripsi (KE), sedangkan algoritma dekripsi menggunakan kunci dekripsi (KD) (Wahana Komputer : 2000, 97). Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua golongan, yaitu : 2.2.2.1 Kunci Simetris Kunci Simetris adalah jenis kriptografi yang paling umum digunakan untuk membuat pesan yang disandikan sama dengan kunci untuk membuka
24
pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Contoh algoritma kunci simetris adalah Blowfish (Andri Kristanto : 2003). Proses enkripsi-dekripsi algoritma kriptografi kunci simetris dapat dilihat pada gambar berikut ini :
Plaintext enkripsi
ciphertext
kunci enkripsi (K)
dekripsi
plaintext
kunci dekripsi (K)
Gambar 2.1 Proses Enkripsi dan Dekripsi Kunci Simetris Algoritma kriptografi simetris dibagi menjadi dua kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok). 2.2.2.2 Kunci Asimetris Kunci Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang satunya lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan, data meupun informasi, sedangkan hanya satu 25
orang saja yang memiliki rahasia tertentu dalam hal ini kunci privat untuk melakukan pendekripsi terhadap sandi yang dikirim untuknya. Contohnya algoritma yang kuat dari kunci asimetris adalah RSA (Rivest Shamir Adleman) (Andri Kristanto : 2003).
Proses enkripsi-dekripsi algoritma kunci asimetris dapat dilihat pada gambar berikut ini : Plaintext
enkripsi
ciphertext
kunci enkripsi (K1)
dekripsi
plaintext
kunci dekripsi (K2)
Gambar 2.2 Proses Enkripsi dan Dekripsi kunci Asimetris Pada algoritma kunci publik (public key), semua orang dapat mengenkripsi data dengan memakai kunci publik (public key) penerima yang telah diketahui secara umum. Akan tetapi data yang telah terenkripsi tersebut hanya dapat didekripsi dengan menggunakan kunci pribadi (private key) yang hanya diketahui oleh penerima. 2.2.3 Dasar Matematis Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu himpunan berisi elemen plaintext dan himpunan berisi ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara dua himpunan tersebut. Bila himpunan plaintext dinotasikan dengan P dan himpunan
26
ciphertext dinotasikan dengan C, sedangkan fungsi enkripsi dengan E dan fungsi dekripsi dengan D, maka proses enkripsi dan dekripsi dapat dinyatakan dalam notasi matematis dengan :
E(P)=C dan D(C)=P Karena proses enkripsi dan dekripsi bertujuan memperoleh kembali data asal, maka: D(E)=P Relasi antar himpunan plaintext dengan himpunan ciphertext harus merupakan fungsi korespondensi satu-satu (one to one relation). Hal ini merupakan keharusan untuk mencegah terjadinya ambigu dalam dekripsi yaitu satu elemen ciphertext menyatakan lebih dari satu elemen plaintext. Pada metode kriptografi simetris atau konvensional digunakan satu buah kunci. Bila kunci dinotasikan dengan ’K’ maka proses enkripsi-dekripsi metode kriptografi simetris dapat dinotasikan dengan : Ek(P)=C Dk(C)=P Dan keseluruhan sistem dinyatakan sebagai: Dk(Ek(P))=P Pada metode kriptografi asimetris digunakan kunci umum untuk enkripsi dan kunci pribadi untuk dekripsi. Bila kunci umum dinotasikan dengan ’PK’ dan kunci pribadi dinotasikan dengan ’Sk’, maka proses enkripsi-dekripsi metode kriptografi asimetris dapat dinotasikan dengan :
27
Epk(P)=c dan Dsk(C)=P
Dan keseluruhan sistem dinyatakan sebagai: Dsk(Epk(P))=P 2.2.4 Rivest Shamir Adleman (RSA) RSA (Rivest Shamir Adleman) adalah sebuah algoritma pada enkripsi publik key. RSA merupakan salah satu metode enkripsi yang paling banyak digunakan. Metode mengambil dua bilangan secara acak yang akan dijadikan kunci sehingga didapat dua kunci yaitu kunci publik dan kunci private. Algortima RSA dijabarkan pada tahun 1977 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest—Shamir—Adleman) (Wahana Komputer : 2000, 82).
Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai U.S. Patent 4405829. Paten tersebut berlaku hingga 21 September 2000. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika Serikat tidak dapat mematenkannya (Wikipedia Indonesia).
Proses enkripsi dan dekripsi untuk plaintext blok M dan ciphertext blok C dapat digambarkan sebagai berikut :
28
C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n
Kedua belah pihak (pengirim dan penerima) harus mengetahui nilai dari n. Pengirim mengetahui nilai e dan hanya menerima yang tahu nilai d . Jadi, dapat disimpulkan bahwa kunci publik dari algoritma ini adalah KU = {e,n} dan kunci pribadinya adalah KR = {d,n}. Untuk penentuan kunci ini juga tidaklah bebas, harus melalui rumus tertentu. Secara lengkap, langkah-langkahyang dilakukan di dalam algoritma RSA adalah sebagai berikut :
1.
Pilih 2 bilangan p dan q
2.
Cari n = pq
3.
Hitung (n) = (p-1)(q-1), sebagai euler’s totient function
4.
Pilih kunci publik e secara acak sehingga e adalah bilangan prima dari GCD (e, Φ(n)) =1, yang didapat dengan menggunakan algoritma euclidean.
5.
Hitung kunci pribadi dengan kombinasi linier dari e dari Φ(n) berdasarkan algoritma euclidean yang diperoleh dari langkah ke empat sehingga mendapatkan bentuk akhir d = d+Φ(n)
6.
Untuk mengenkripsi plaintext M , 0 ≤ M ≤ n-1, dilakukan perhitungan C = Me (mod n)
Untuk mengetahui dengan lebih jelas prinsip kerja algoritma RSA ini, kita terapkan langkah-langkah tersebut di dalm contoh berikut:
29
Penentuan kunci publik dan kunci pribadi :
1.
Pilih 2 bilangan prima p = 29 dan q = 31
2.
Cari n = pq = 29 x 31 = 899
3.
Hitung Φ(n) = (p-1)(q-1) = (29-1)(31-1) = 840
4.
GCD (e, Φ(n)) = 1
840 = (13)64+8 13 = (8)1+5 8 = (5)1+3 5 = (3)1+2 3 = (2)1+1 2 = (1)2+0 GDC(13,840) =1 Jadi e = 13 telah memenuhi syarat, karena GCD (e, Φ(n))=1 5.
Kombinasi linier dari 13 dan 840 adalah : 1 = λ Φ (n) – e.d 1 = 3 – 2(1) 1 = 3 – (5-(3)) = (3) 2 – (5)1 1 = (8 – (5)1) 2 – (5) 1 = (8) 2 – (5) 3 1 = (8) 2 – (13 – (8)1)3 = (8)5 – (13)3
30
1 = (840 – (13)64) 5 – (13) 3 = (840) 5 – (13) 323 Plaintext M = 123, 0 ≤ m ≤ n-1
6.
enkripsi plaintext M : C = Me (mod n) = 123 13 mod 899
= 402
7.
dekripsi ciphertext C : M = Cd (mod n) = 402 517 (mod 899)
= 123
Dari hasil yang dperoleh terlihat bahwa pesan yang telah dienkripsi tersebut dapat didekripsi kembali menjadi pesan yang asli.
Dalam memecahkan algoritma RSA ini, seorang cryptanalyst dapat melakukan pendekatan sebagai berikut :
a) Brute force : mencoba semua kemungkinan kunci pribadi b) Mencoba mencari faktor p dan q, sehingga dapat dihitugn (n). Dengan mengetahui (n), maka dapat ditentukan faktor d. c) Menentukan (n) secara langsung tanpa menentukan p da q. Hal ini juga dapat menetukan hasil perhitungan dari faktor d. d) Menentukan d secara langsung, tanpa menetukan (n).
31
Contoh Enkripsi dan Dekripsi pada teks :
Plaintext : Pesan Rahasia
P->¢ e->Ì s->è a->Ä n->Þ
ID PLN Sahrial : I->B D->Ä P->¢ L-ÔÄ S->¨ a-> Ä h-> Ò r->æ i-> Ô a-> Ä l->Ú 01-1165-4445-1
0->b 1->d - \ 1->d 1->d 6->n 5-> l 4-> j
Ciphertext:
:
¢ÌèÄÞB¦ÄÒÄèÔÄ__¦ÌØÌÞÔÞÐBB†ž‖B˜ìèêÄÞB¨ÌêÔÄðÄÞBv__bdt\plt\bllt\_
2.2.4.1 Kelebihan RSA Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n= p
q. Sekali n berhasil difaktorkan menjadi p dan q, maka n = (p – 1)
(q – 1) dapat dihitung. 2.2.4.2 Flowchart Enkripsi RSA Start
Input Plainteks
Plainteks -> ASCII (desimal) = m
No
m
Ci=Mi
mod
n
Cipherteks
End
Gambar 2.3 Flowchart Enkripsi RSA
32
Flowchart pada gambar 2.3 menggambarkan alur proses enkripsi pada algoritma RSA. Dimulai dari memasukkan plaintext, kemudian plaintext dalam bentuk ASCII (decimal) dikurangi nilai m, selanjutnya besarnya nilai m lebih kecil dari n dimana nilai mi=mi+1. Bila nilainya memenuhi syarat maka langkah selanjutnya dijalankan, tetapi tidak memenuhi syarat maka kembali ke langkah plaintext dalam bentuk ASCII. Langkah selanjutnya adalah menentukan nilai Ci dengan membagi nilai mi dengan nilai n, bila berhasil maka plaintext berubah menjadi ciphertext dan alur proses selesai dilakukan.
2.2.4.3 Flowchart Dekripsi RSA Start
Cipherteks
Mi
=
Ci
mod
n
M=Mi+Mi+1
M
->
ASCII
Plainteks
End
33
Gambar 2.4 Flowchart Dekripsi RSA Flowchart pada gambar 2.4 menggambarkan alur proses dekripsi pada algoritma RSA. Dimulai dengan memasukkan lalu menentukan nilai mi dengan membagi nilai Ci dengan nilai n, selanjutnya menentukan nilai m dengan cara nilai mi+mi+1, hasilnya nilai m diubah kedalam bentuk ASCII, lalu dirubah menjadi plaintext, dan alur proses selesai dilakukan. 2.2.5 Keamanan Algoritma Suatu algoritma dikatakan aman, bila tidak ada cara untuk ditemukan plaintextnya, berapa pun banyaknya ciphertext yang dimiliki cryptanalyst. Kebanyakan algoritma selalu dapat dipecahkan dengan ciphertext only attack, brute force attack (mencoba satu per satu seluruh kemungkinan kunci dan memeriksa apakah plaintext yang dihasilkannya memiliki arti yang sesuai) dan masih banyak teknik attack lainnya. Dengan peningkatan kecepatan komputasi komputer, maka keamanan algoritma kriptografi akan semakin terancam. Karena selalu terdapat kemungkinan ditemukannya cara baru untuk menembus suatu algoritma kriptografi, maka algoritma kriptografi yang dikatakan ‖cukup‖ aman bila memiliki keadaan sebagai berikut : 1.
Bila harga untuk menjebol algoritma lebih besar dari pada nilai informasi yang dibuka, maka algoritma tersebut cukup aman. Misalnya, diperlukan komputer senilai 1 juta dolar untuk menjebol algoritma yang digunakan untuk melindungi informasi senilai 100 ribu dolar, maka cukup aman.
34
2.
Bila waktu yang diperlukan untuk menjebol algoritma tersebut lebih lama dari pada lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka anda mungkin aman. Misalnya, waktu untuk menjebol sebuah kartu kredit 1 tahun, sedangkan sebelum setahun kartu tersebut sudah tidak berlaku lagi, maka anda cukup aman.
3.
Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka anda aman. Misalnya, diperlukan 100 ciphertext untuk menebak kunci yang digunakan pada algoritma x, sedangkan satu kunci hanya digunakan untuk satu pesan, maka anda cukup aman.
2.2.6 Blowfish Blowfish merupakan algoritma kunci simetrik cipher blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Pada saat itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier menyatakan bahwa blowfish bebas paten dan akan berada pada domain publik. Dengan pernyataan Schneier tersebut blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh lisensi.
Keberhasilan blowfish dalam menembus pasar telah terbukti dengan diadopsinya blowfish sebagai Open Cryptography Interface (OCI) pada kernel linux versi 2.5 keatas. Dengan diadopsinya blowfish, maka telah menyatakan bahwa dunia open source menganggap blowfish adalah salah satu algoritma yang terbaik.
35
Kesuksesan blowfish mulai memudar setelah kehadiran algoritma-algoritma dengan ukuran blok yang lebih besar, seperti AES. AES sendiri memang dirancang untuk menggantikan DES. Sehingga secara keseluruhan AES lebih unggul dari DES dan juga blowfish.
Blowfish adalah algoritma kriptografi kunci simetrik cipher blok dengan panjang blok tetap sepanjang 64 bit. Algortima tersebut juga menerapkan teknik kunci yang berukuran sembarang. Ukuran kunci yang dapat diterima oleh blowfish adalah antara 32 hingga 448 bit, dengan ukuran standar sebesar 128 bit. Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang dan pergiliran kunci yang dilakukan sebanyak 16 kali. Algoritma utama terbagi menjadi dua subalgoritma utama, yaitu bagian ekspansi kunci dan bagian enkripsi-dekripsi data.
Pengekspansian kunci dilakukan pada saat awal dengan masukan sebuah kunci dengan panjang 32 hingga 448 bit, dan keluaran adalah sebuah larik subkunci dengan total 4168 bit. Bagian enkripsi-dekripsi data terjadi dengan memanfaatkan perulangan 16 kali terhadap jaringan feistel. Setiap perulangan terdiri dari permutasi dengan masukan adalah kunci, dan substitusi data. Semua operasi dilakukan dengan memanfaatkan operasi xor dan penambahan. Operasi penambahan dilakukan terhadap empat larik lookup yang dilakukan setiap putarannya.
2.2.6.1 Enkripsi Algoritma Blowfish Blowfish adalah cipher blok 64-bit yang memiliki sebuah kunci yang panjangnya variabel. Algoritma blowfish terdiri dari dua bagian yaitu key
36
expansion dan enkripsi data. Blok diagram enkripsi algoritma Blowfish dapat dilihat pada gambar 2 . Key expansion mengkonversikan sebuah kunci sampai 448 bit ke dalam beberapa array subkey dengan total 4168 byte. Enkripsi data terdiri dari sebuah fungsi yang sederhana dengan iterasi 16 kali. Setiap round mempunyai sebuah permutasi key-dependent dan sebuah subsitusi key- dan data-dependent. Semua operasi, penjumlahan dan XOR pada word 32bit. Hanya operasi tambahan diindek empat lookup data array per round. Blowfish menggunakan sejumlah subkey yang besar. Key ini harus dihitung awal sebelum enkripsi atau dekripsi . P-array mempunyai 18 subkey 32-bit : P1, P2, P3,..............................P18 Empat S-box 32- bit mempunyai masing-masing 256 entry [1, 7] yaitu : S1,0, S1,1, S1,2, S1,3, ................S1,255 S2,0, S2,1, S2,2, S2,3, ................S2,255 S3,0, S3,1, S3,2, S3,3, ................S3,255
37
Plaintext
P1 64 bit 32 bit
32 bit
F
32 bit
P2
32 bit
32 bit
F 13 iterasi lagi
P16
F 38 P18
P17
32 bit
32 bit 64 bit
Gambar 2.5 Blok diagram Algoritma Enkripsi Blowfish
Blowfish adalah sebuah jaringan Feistel yang mempunyai 16 round. Inputnya adalah ( x ) element data 64-bit. Untuk mengenkripsi ( x ) yaitu Bagi ( x ) dalam dua bagian 32-bit menghasil ( xL ) dan ( xR ). Untuk i = 1 sampai 16 maka : xL = x L xR = F(xL)
Pi
xR
Swap (tukar) xL dan xR Swap (tukar) xL dan xR (mengulang swap yang lalu) xR = xR
P17
xL = x L
P18
Gabungkan kembali xL dan xR [1, 7] Fungsi F adalah sebagai berikut [1]: Bagi xL dalam empat kuarter 8-bit yaitu a, b, c dan d seperti gambar 3 maka : F(xL) = ((S1,a + S2,b mod 232 )
S3,c ) + S4,d mod 232
39
32 bit
8 bit a
S-Box 1
32 bit
8 bit b
S-Box 2
32 bit
8 bit c
S-Box 3
32 bit
8 bit d
S-Box 4
32 bit
32 bit
Gambar 2.6 Fungsi F (Bruce Schenier: 1996) 2.2.6.2 Flowchart Enkripsi Blowfish (1)
For 1=1 To 16
Start
XI=XI for P(i)
For N=1 To (LenFile) step 8
Fr = F(XI) Xor Xr Call GetWord(XI, ByteArray(), N) Call GetWord(Xr, ByteArray(),N+5)
(1)
Swap XI and Xr: Temp=XI XI=Xr Xr=Temp
Call EncrypBlok(XI,Xr)
Call PutWord(XI,ByteArray,N) Call PutWord(Xr,ByteArray,(), N+5)
Swap XI and Xr to undo the last swap: Temp=Xr XI=Xr Xr=Temp
Input ByteArray Into File
Xr = Xr Xor P(17)
End
XI = XI Xor P(18)
Cat : (1) Skema Blok Enkripsi
Gambar 2.7 Flowchart Enkripsi dengan Blowfish Flowchart pada gambar 2.7 menggambarkan alur proses dekripsi dengan algoritma Blowfish. Dimulai dengan menentukan nilai N sampai 8 langkah, kemudian panggil statement GetWord dimana nilainya adalah XI,
40
ByteArray, dan nilai N. Serta panggil statement GetWord dimana nilainya Xr, ByteArray, dan nilai N+5. Kemudian panggil statement encryptBlok dimana nilainya XI dan Xr. Selanjutnya panggil statement PutWord dimana nilainya XI, ByteAray dan nilai n, serta panggil statement PutWord dimana nilainya Xr, ByteArray, dan N+5. Setelah itu masukkan nilai ByteArray ke file dan proses selesai dilakukan.
2.2.6.3 Dekripsi Algoritma Blowfish Dekripsi sama
persis dengan enkripsi, kecuali Chipertext
bahwa P1, P2,…, P18 32 bit (reverse)
64 bit
digunakan pada urutan yang berbalik 32 bit [1, 7]. Blok diagram dekripsi seperti pada
P18 32 bit
gambar 4.
32 bit
F
P17 F 32 bit 13 iterasi lagi
P3 32 bit P1 32 bit
F
P2
32 bit
32 bit
32 bit 41 Plaintex 64 bit
Dengan
Gambar 2.8 Dekripsi algoritma Blowfish membalikkan 18 subkey untuk medekripsi metode algoritma Blowfish. Pertama, masalah ini nampak tidak dapat dipercaya, karena ada dua XOR operasi yang mengikuti pemakaian f-fungsi yang sebelumnya, dan hanya satu yang sebelumnya pemakaian pertama f-fungsi. Meskipun jika kita memodifikasi algoritma tersebut sehingga pemakaian subkey 2 sampai 17 menempatkan sebelum output f-fungsi yang di-XOR-kan ke sebelah kanan blok dan dilakukan ke data yang sama sebelum XOR itu, walaupun itu berarti ia sekarang berada di sebelaha kanan blok, karena XOR subkey tersebut telah dipindahkan sebelum swap (tukar) kedua belah blok tersebut (tukar separuh blok kiri dan separuh blok kanan). Kita tidak merubah suatu apapun karena informasi yang sama diXOR-kan ke separuh blok kiri antara setiap waktu, informasi ini digunakan sebagai input f-fungsi. Kenyataannya, kita mempunyai kebalikan yang pasti dari barisan dekripsi.
42
Contoh Enkripsi dan Dekripsi Blowfish pada teks : Plaintext : Rekening BRI Rio Hamzah : R->¦ e->Ì k->Ø e->Ì n->Þ i->Ô g->Ð B->† R->¦ I->‖ R->¦ i->Ô o->à 2193-745 2->f 1->d 9->t 3->h 7->p 4->j 5->l Ciphertext : ¦ÌØÌÞÔÞÐB†¦‖B¦ÔàB’ÄÜöÄÒBv__fdth\pjl
2.2.6.4 Flowchart Dekripsi dengan Blowfish
43
Start
Start
For N = 1 To (LenFile) step 8
XI = XI Xor P(I)
Call GetWord(XI, ByteArray(),N ) Call GetWord(Xr,ByteArray(),N+5)
Xr = F(XI) Xor Xr
(1) Call Decrypt Blok (XI),Xr
Call PutWord(XI,ByteArray(),N) Call PutWord(Xr,ByteArray(),N+5)
Swap XI and Xr: Temp = XI XI=Xr Xr=Temp
Swap XI and XI to undo the last swap: Temp=XI XI=Xr Xr=Temp
Xr = Xr Xor P(2)
Input Byte Array Int File
End
XI = XI Xor P(1)
Cat : Skema Blok Dekripsi
Gambar 2.9 Flowchart Dekripsi dengan Blowfish Flowchart pada gambar 2.9 menggambarkan alur proses dekripsi pada algoritma Blowfish. Dimulai dengan menentukan nilai N dari 1 sampai 8, kemudian panggil statemen GetWord dimana nilainya adalah XI, ByteArray, dan N, serta panggil statement GetWord dimana nilainya adalah Xr, ByteArray, dan N+5. Kemudian panggil statement decrypt blok dimana nilainya XI dan Xr. Langkah selanjutnya adalah panggil statement PutWord dimana nilainya adalah XI, ByteArray, dan N, serta panggil statement PutWord dimana nilainya Xr, ByteArray, dan N+5, setelah itu masukkan nilai ByteArray ke dalam file, dan proses selesai dilakukan. 2.2.6.5 Perbandingan Algoritma RSA dan Algoritma Blowfish
44
No
Perbandingan
1.
Kelebihan
Algoritma RSA Sulit
memfaktorkan
Algoritma Blowfish bilangan Memiliki tingkat keamanan
besar menjadi faktor prima
yang bervariasi Panjang kunci relatif pendek
2.
Panjang kunci
Panjang kunci lebih panjang
3.
Kunci
Mempunyai kunci enkripsi dan Mempunyai kunci enkripsi dekripsi berbeda
4.
Keamanan
Keamanan lebih terjamin karena Keamanan kurang terjamin kunci
5.
Kecepatan
dan dekripsi sama
pribadi
tidak
pernah karena
kunci
ditransmisikan
ditransmisikan
Kecepatan proses lebih cepat
Kecepatan
harus
proses
lambat
Tabel 2.1 Perbandingan Algoritma RSA dan Algoritma Blowfish Penjelasan : 1. Kelebihan dari RSA yaitu terletak pada sulitnya memfaktorkan bilangan besar menjadi faktor prima. Panjang kunci dalam bit dapat diatur, dengan semakin panjang bit maka semakin sukar untuk dipecahkan karena sulitnya memfaktorkan dua bilangan yang sangat besar tersebut, tetapi juga semakin lama pada proses dekripsinya. Sedangkan pada algoritma Blowfish memiliki tingkat keamanan yang bervariasi karena Blowfish merupakan cipher blok 64 bit yang memiliki sebuah kunci yang panjangnya bervariabel. Algoritma Blowfish terdiri dari dua bagian yaitu key expansion dan enkripsi data. 2. Panjang kunci pada RSA lebih panjang, yaitu panjang key (kunci) mencapai 1024 bit, panjang kunci dalam bit dapat diatur, dengan semakin panjang bit maka semakin sukar untuk dipecahkan karena sulit memfaktorkan dua bilangan yang sangat besar tersebut. Sedangkan panjang kunci pada Blowfish relatif pendek, yaitu panjang key (kunci) adalah variabel dan dapat menjadi sepanjang 448 bit. 3. RSA mempunyai kunci enkripsi dan dekripsi berbeda, yaitu kunci publik dan kunci privat dimana kunci publik dapat diketahui oleh umum sedangkan kunci privat tidak diketahui umum. Sedangkan pada Blowfish kunci enkripsi dan
45
lebih
dekripsi sama, yaitu key expansion dimana key expansion mengkonversikan sebuah kunci sampai 448 bit ke dalam beberapa array subkey dengan total 4168 bit. 4. Keamanan pada RSA lebih terjamin karena kunci pribadi tidak pernah ditransmisikan, yang ditransmisikan hanya kunci publik saja sehingga pihak umum tidak akan tahu kunci privat yang digunakan untuk dekripsi. Sedangkan pada Blowfish kunci harus ditransmisikan, karena untuk melakukan enkripsi dan dekripsi data harus terdiri dari sebuah fungsi dengan iterasi 16 kali. 5. Kecepatan proses pada RSA lebih cepat, hal tersebut telah dibuktikan dengan mengeksekusi file-file yang berukuran besar yaitu berukuran puluhan hingga ratusan mega bytes, dimana waktu proses mencapai
menit. Sedangkan
kecepatan pada Blowfish lebih lambat, hal tersebut telah dibuktikan dengan mengeksekusi file-file berukuran besar dimana waktu proses mencapai 9 menit. 2.3
Algoritma Pemrograman Algoritma program terdiri dari tiga macam, yaitu pseudocode , flow chart
(diagram alur), State Transition Diagram (STD). 2.3.1 Pseudocode Pseudo berarti imitasi atau mirip atau menyerupai dan kode menunjukkan dari program, berarti pseudocode adalah kode yang mirip dengan kode-kode program sebenarnya. Pseudocode menjelaskan juga tentang pemberian nilai awal dari suatu variabel, membuka dan menutup file, subscript atau tipe-tipe data yang digunakan (misalnya real, integer, boolean). 2.3.2 Diagram Alur (Flowchart) Komputer membutuhkan hal-hal yang terperinci, alat yang banyak dipakai untuk membuat algoritma adalah diagram alur atau flow chart. Diagram alur dapat menunjukkan secara jelas arus pengendalian algoritma, yakni bagaimana rangkaian pelaksanaan kegiatan. Suatu diagram alur memberikan gambaran dua dimensi
46
berupa simbol-simbol grafis. Masing-masing simbol telah ditetapkan terlebih dahulu fungsi dan artinya. Simbol-simbol tersebut dipakai untuk menunjukkan berbagai kegiatan operasi dan jalur pengendalian. Diantara simbol-simbol yang akan dipergunakan sebagai berikut :
Tabel 2.2 Simbol-Simbol Flowchart 2.3.3 State Transition Diagram (STD)
47
State Transition Diagram merupakan suatu diagram yang menggambarkan bagaimana state yang lain pada satu waktu. State Transition Diagram menggambarkan suatu state yang mempunyai kondisi dimana dapat menyebabkan perubahan satu state ke state yang lain (Hoffer, George, Valacich, 1996, hal. 364). State Transition Diagram pada dasarnya merupakan sebuah diagram yang terdiri dari state dan transisi atau perpindahan state, transisi atau perpindahan state terdiri dari kondisi dan aksi. Transisi di antara kedua keadaan pada umumnya disebabkan oleh suatu kondisi. Kondisi adalah suatu kejadian yang dapat diketahui oleh sistem. Sedangkan aksi adalah tindakan yang dilakukan oleh sistem apabila terjadi perubahan state atau merupakan reaksi dari sistem.
State 1
State 2
Gambar 2.10 Contoh Perubahan State Adapun perubahan atau simbol yang digunakan dalam diagram ini adalah: 2.3.3.1 Modul Menggunakan simbol lingkaran kecil (Gambar 2.6) yang mewakili modul yang dipanggil apabila terjadi tindakan.
48
Gambar 2.11 Notasi Modul
2.3.3.2 Tampilan Kondisi Merupakan layer yang ditampilkan menurut keadaan atau atribut, untuk memenuhi suatu tindakan pada waktu tertentu yang mewakili suatu bentuk keberadaan atau kondisi tertentu, disimbolkan dengan gambar kotak
Gambar 2.12 Notasi Tampilan 2.3.3.3 Tindakan (State Transition) Menggunakan simbol anak panah (Gambar 2.8) disertai keterangan tindakan yang dilakukan.
Gambar 2.13 Notasi Tindakan
49
2.4 Model Perangkat Lunak Untuk menyelesaikan masalah yang ada dalam sebuah perancangan perangkat lunak diperlukan model-model proses atau paradigma rekayasa perangkat lunak berdasarkan sifat aplikasi dan proyeknya, metode dan alat bantu yang dipakai, dan kontrol serta penyampaian yang dibutuhkan. Roger Pressman Menyebutkan ada beberapa model dari proses perangkat lunak, di antaranya: 2.4.1 Model Prototype Prototyping
Paradigma
dimulai
dengan
pengumpulan
kebutuhan.
Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, mendefinisikan segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan kemudian dilakukan ‖perancangan kilat‖. Perancangan kilat berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan/pemakai (contohnya pendekatan input dan format output). Prototype tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak. 2.4.2 Model Sekuensial Linear Model
sekuensial
linear
mengusulkan
sebuah
pendekatan
kepada
perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. 2.4.3 Model RAD (Rapid Application Development)
50
Rapid Application Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linear yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi ‖kecepatan tinggi‖ dari model sekuensial linear dimana perkembangan cepat dicapai dengan menggunakan model pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan ‖sistem fungsional yang utuh‖ dalam waktu periode yang sangat pendek karena dipakai terutama pada aplikasi sisten konstruksi (Sumber Kendall&Kendall, 2006: 238). Yang termasuk kedalam tahapan metode RAD yaitu: 1. Fase Menentukan Tujuan dan Syarat-Syarat Informasi Pada tahap ini akan dilakukan Studi Feasibilitas, kelengkapan data yang digunakan, dan terakhir kelengkapan hardware dan software yang digunakan. 2. Fase Perancangan Pada tahap ini perancangan Flow chart, perancangan antar muka, serta dilakukan pengkodean. 3. Fase Konstruksi Pada tahapan ini dilakukan instalasi, pengembangan aplikasi yang telah dibuat menggunakan Delphi 7 untuk membuat dan menjalankan program dalam laptop
4. Pengujian (Testing) Melakukan pengujian program aplikasi dan pengkajian.
51
2.5 Pengenalan Bahasa Pemrograman Delphi Versi 7 Delphi
adalah
suatu
bahasa
pemograman (development language) yang
digunakan untuk merancang suatu aplikasi program. 2.5.1 Kegunaan Delphi 1. Untuk membuat aplikasi windows 2. Untuk merancang aplikasi program berbasis grafis 3. Untuk membuat program berbasis jaringan (client/server) 4. Untuk merancang program .Net (berbasis internet)
2.5.2
Keunggulan Delphi
1. IDE (Integrated Development Environment) Lingkkungan pengembangan aplikasi sendiri adalah satu dari beberapa keunggulan Delphi, didalamnya terdapat menu–menu yang memudahkan kita untuk membuat suatu proyek program. 2. Proses kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi, maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah. 3. Mudah digunakan, source code Delphi yang merupakan turunan dari pascal, sehingga tidak diperlukan penyesuaian lagi. 4. Bersifat multi purhase, artinya bahasa pemrograman Delphi dapat untuk mengembangkan berbagai keperluan pengembangan aplikasi. 2.5.3
Pemrograman GUI (Graphic User Interface)
52
Pada bagian ini penulis akan memberikan contoh pemrograman GUI (graphic User Interface) pada enkripsi dan dekripsi. Graphic User Interface (GUI) dalam aplikasinya dapat terdiri atas beberapa komponen user interface yang saling berinteraksi, sehinga membentuk sebuah program aplikasi. Setelah membuka New Project Delphi 7, langkah selanjutnya adalah mendesain Project dengan menggunakan komponen palet seperti label, text box, command button, frame, radio button, IDTCPClient, dan sebagainya. Untuk membuat GUI baru klik File -> New Project-> Application.exe, sehingga muncul tampilan sebagai berikut :
Gambar 2.14 Tampilan Project Baru Setelah itu mengatur tata letak masing-masing komponen, baik string(caption), tag(name), font, color dengan menggunakan properties.
53
Gambar 2.15 Contoh Tampilan Aplikasi GUI pada Delphi 7 Berikut ini adalah contoh program GUI dengan Delphi pada enkripsi dan dekripsi. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,shellapi; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Memo2: TMemo; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
54
var Form1: TForm1;
procedure TForm1.Button1Click(Sender: TObject); var text1 : string; pos : integer; begin text1 := memo1.text; for pos := 1 to length(text1) do text1[pos] := chr(((ord(text1[pos])* 2)div 1)+ 2); memo2.text := text1; end; procedure TForm1.Button2Click(Sender: TObject); var text1 : string; pos : integer; begin text1 := memo2.text; for pos := 1 to length(text1) do text1[pos] := chr((ord(text1[pos])- 2)div 2); memo1.text := text1; end; 2.5.4 OOP (Object Oriented Programming) OOP adalah metode pemorgraman dengan membentuk sebuah aplikasi yang mendekati keadaan dunia yang sebenarnya. Hal itu bias dilakukan dengan cara mendesain object untuk menyelesaikan masalah. 2.5.4.1 Tiga Unsur OOP 1.
Encapsulation atau Pemodelan Encapsulation adalah konsep data dengan operator. Dalam konsep pemodelan data dan operasi menjadi satu kesatuan yang disebut
object.
Encapsulation
juga
disebut
dengan
penyembunyian informasi.
55
Contoh, ketika kita menyalakan sebuah tv kita tidak tahu apa yang terjadi dengan proses dan percakapan antar alat yang berhubungan dengan tv tersebut sehingga mamu menghasilkan sebuah gambar. 2.
Inheritance atau penurunan Inheritance adalah sebuah object yang dapat diturunkan menjadi object yang baru dengan tidak menghilangkan sifat asli dari object tersebut. Contoh, tv merupakan salah satu media elektronik yang digunakan
untuk
menampilkan
gambar
dengan
tujuan
memberikan informasi kepada konsumen. Secara umum tv memunyai cara kerja yang sama dengan media elektronik yang lain dalam proses penyampaian informasi, tetapi mempunyai inforamsi yang unik yang dapat membedakan elektronik yang ada. 3.
Polymorphism atau Polimorfisme Polymorphishm merupakan penggunaan berbagai macam object yang berbeda tetapi secara fungsi bergantung pada satu object sebagai induk, dengan cara pelaksanaan yang berbeda-beda. Contoh, tv dan radio adalah media elektronik yang mempunyai sistem yang sama tentang bagaimana menyebarkan suatu informasi, tetapi cara kerja dari masing-masing sistem pasti berbeda.
56
2.5.4.2 Delphi dan OOP (Object Oriented Programming) Secara default kita merancang suatu aplikasi program, mau tidak mau dan tanpa kita sadaribahwa kita telah menerapkan OOP, walauun secara teori kita kurangn memahami OOP dalam arti sebenarnya. Contoh sederhananya adalah ketika kita merancang suatu form (Tform1) baru, sadar atau tidak sebenarnya form yang kita aktifkan merupakan turunan dari Tform sebagai induknya atau kita mengaktifkan button pada form merupakan turunan dari button. Atau dalam bahasa program adalah sebagai berikut, ketika merancang suatu label di form secara otomatis Delphi akan menuliskan label tersebut dalam jendela code editor tentang turunan dari label tersebut. 2.5.5 Instalasi Delphi Penulis akan menjabarkan langkah−langkah dalam melakukan instalasi delphi 7, ada 14 tahapan dalam melakukan instalasi ada Delphi 7 yaitu sebagai berikut : Klik start Klik My Computer Klik setup.exe
57
Gambar 2.16 Autorun Delphi 7 pada saat akan instalasi
Gambar 2.17 Pemeriksaan terhadap Sistem Operasi Pada umumnya setiap akan melakukan instalasi terlebih dahulu akan melakukan pemeriksaan terhadap sistem operasi
58
Gambar 2.18 Memasukkan 14 serial number
Gambar 2.19 Statement untuk license agreement
59
Gambar 2.20 Pemilihan terhadap tipe instalasi
Gambar 2.21 Penggunaan terhadap VisiBroker
60
Gambar 2.22 Pemilihan terhadap sistem operasi yang digunakan
Gambar 2.23 Penempatan folder instalasi
61
Gambar 2.24 Proses instalasi sedang dilakukan
Gambar 2.25 Copy file untuk proses instalasi
62
Gambar 2.26 Backup file yang diperlukan untuk proses instalasi
Gambar 2.27 Proses instalasi VisiBroker
63
Gambar 2.28 Proses instalasi component VisiBroker
Gambar 2.29 Proses instalasi VisiBroker sedang berlangsung
64
Gambar 2.30 Tampilan awal Delphi 7 setelah instalasi selesai
2.6
Client Server 2.6.1 User User disini adalah end user yang mengakses client untuk mendapatkan sebuah layanan. End user bisa saja seorang manager perusahaan, professional, karyawan di sebuah perusahaan, atau pelanggan. Ada timbul sedikit kerancuan. Pelanggan dalam sebuah bisnis atau perdagangan disebut dengan client , tapi client ini adalah manusia, jangan dibingungkan dengan istilah client pada pemrosesan komputer. Dapat kita katakan sebuah user atau end user adalah ketika melakukan proses akhir menggunakan sistem client server. 2.6.2 Client
65
Client dapat berupa sebuah pemproses yang powerful atau dapat juga berupa terminal tua dengan kemampuan proses yang terbatas. Secara mendasar client adalah sebuah PC dengan sistem operasinya sendiri. Sebagian besar pemrosesan banyak dilakukan di sebuah server dimana bagian-bagian dalam lingkup pekerjaannya ditentukan oleh program komputer, inilah yang menyebabkan sistem client server berbeda dengan sistem transaksi tradisional. Sistem client server memungkinkan sebuah teknologi dan aplikasinya digunakan bersamaan.
2.6.3 Server Konektivitas adalah hal yang terpenting namun bukan satu-satunya faktor untuk mendapatkan efisiensi dan efektivitas sharing resource yang dimiliki. Dibutuhkan sebuah perangkat yang memiliki kemampuan mengontrol software, menjalankan program applikasi, dan mengakses database dengan mudah dan cepat. Untuk itulah diperlukan sebuah Server. Sebuah Server harus mendukung spesifikasi yang mendukung resource sharing seperti Network Server Operating System, Multiple User Interface, GUI ( Graphic User Interface ), dialog oriented cleint – server languange seperti SQL dan database arsitektur. Saat ini resource bisa tersebar secara spasial tidak hanya berada dalam batasan sebuah negara namun sudah antar negara yang membutuhkan interkoneksi yang tinggi. 2.6.4 Pengertian Clilent Server
66
Client-Server
adalah
arsitektur
jaringan
yang
memisahkan
client(biasanya aplikasi yang menggunakan GUI ) dengan server. Masingmasing client dapat meminta data atau informasi dari server. Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu : 1. Servis (layanan) Hubungan antara proses yang berjalan pada mesin yang
berbeda.
Pemisahan fungsi berdasarkan ide layanannya. Server sebagai provider, client sebagai konsumen. 2. Sharing resources (sumber daya) Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya. 3. Asymmetrical protocol (protokol yang tidak simetris ) Many-to-one relationship antara client dan server. Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client. 4. Transparansi lokasi Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client. 5. Mix-and-Match Perbedaan server client platforms.
67
6. Pesan berbasiskan komunikasi Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban. 7. Pemisahan interface dan implementasi Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah. Client Server System.
Gambar 2.31 Konsep Client Server
2.6.5
Perbedaan Tipe Client Server 1. File Servers File
server
vendors
mengklaim
bahwa
mereka
pertama
menemukan istilah client-server. Untuk sharing file melalui jaringan. 2. Database Servers
68
Client mengirimkan SQL requests sebagai pesan pada database server, selanjutnya hasil perintah SQL dikembalikan. Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta dan kemudian semua record dikembalikan pada client.
3. Transaction Servers (Transaksi Server) Client meminta remote procedures yang terletak pada server dengan sebuah SQL database engine. Remote procedures ini mengeksekusi sebuah grup dari SQL statement Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi. 4. Groupsware Servers Dikenal
sebagai
Computer-supported
cooperative
working
Manajemen semi-struktur informasi seperti teks, image, bulletin boards dan aliran kerja Data diatur sebagai dokumen. 5. Object Application Servers Aplikasi client/server ditulis sebagai satu set objek komunikasi Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB) Client meminta sebuah method pada remote object. 6. Web Application Servers (Aplikasi Web Servers)
69
World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web. Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP. 2.6.6
Kombinasi Client Server 1. Fixed / Kabel Server dijaringan tipe client-server disebut dengan Dedicated Server karena murni berperan sebagai server yang menyediakan fasilitas kepada workstation dan server tersebut tidak dapat berperan sebagai workstation. Keunggulan
a. Kecepatan akses lebih tinggi karena penyediaan fasilitas jaringan dan pengelolaannya dilakukan secara khusus oleh satu komputer (server) yang tidak dibebani dengan tugas lain sebagai workstation. b. Sistem keamanan dan administrasi jaringan lebih baik, karena terdapat seorang pemakai yang bertugas sebagai administrator jaringan, yang mengelola administrasi dan sistem keamanan jaringan. c. Sistem backup data lebih baik, karena pada jaringan clientserver backup dilakukan terpusat di server, yang akan membackup seluruh data yang digunakan di dalam jaringan.
Kelemahan
70
a. Biaya operasional relatif lebih mahal. b. Diperlukan adanya satu komputer khusus yang berkemampuan lebih untuk ditugaskan c. sebagai server. d. Kelangsungan jaringan sangat tergantung pada server e. secara keseluruhan jaringan akan terganggu.
Urutan kabel Straight: Putih Hijau Hijau Putih Biru Orange Putih Cokelat Cokelat Urutan kabel Cross: Putih Orange Orange Putih Hijau Putih Coklat Coklat Hijau Biru Putih Biru 2. Wireless Local Area Network (LAN), merupakan jaringan milik pribadi di dalam satu ruangan, sebuah gedung atau kampus. LAN sering kali digunakan untuk menghubungkan komputer-komputer pribadi dan workstation dalam kantor suatu perusahaan atau pabrik-pabrik untuk memakai bersama sumber daya (resource, misalnya printer) dan saling bertukar informasi. 2.6.7 Studi Literatur (Abstrak)
71
1.
Sarlika Muliati Aspek keamanan data telah menjadi aspek yang sangat penting
dari suatu sistem informasi. Kepedulian pegawai Kandepag Kota Jakarta Timur terhadap data-data kantor dan kurangnya informasi mengenai keamanan data, membuat mereka menginginkan sebuah sebuah aplikasi yang mudah untuk digunakan dan dapat membantu mereka dalam mengamankan data-data penting, seperti data kepegawaian, data umum, data keuangan dan data internal kantor lainnya. Salah satu cara menjaga keamanan dan kerahasiaan data tersebut yaitu dengan digunakannya algoritma kriptografi untuk melakukan penyandian data. Kriptografi adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen kita aman, tidak bisa dibaca oleh pihak yang tidak berhak, sehingga tidak menimbulkan banyak kerugian. Dalam pembuatan aplikasi kemanan data ini, penulis menggunakan algoritma simetris yaitu DES ( Data Encryption Standard) dan asimetris RSA (Rivest Shamir Adleman). Dengan menggabungkan dua algoritma yang berbeda ini dapat menghasilkan sebuah aplikasi keamanan data yang cukup aman dan mudah digunakan. Penulis menggunakan Visual Basic 6.0 Enterprise Editon sebagai bahasa pemrograman, Adobe Photoshop 7.0 , Macromedia Firewoks MX, dan Dreamweaver MX untuk mendesain backgorund aplikasi serta HTML Help Workshop Instal Versi 4.74.8703 untuk membuat menu bantuan aplikasi dan Clickteam
Install Creator versi 2.0.0.29
untuk membuat instalasi
72
program MeinCrypt. Metode penelitian yang penulis gunakan terdiri dari observasi, wawancara, dan metode literatur. Sedangkan metode pengembangan sistem yang penulis gunakan ialah metode Sekuensial Linier. 2.
Prilia Lestari Perkembangan dunia teknologi informasi saat ini telah menjadikan
informasi sebagai kebutuhan pokok bagi setiap orang terutama bagi sebuah instansi. Salah satu solusi pengamanan informasi yang digunakan adalah teknik pengamanan data menggunakan metode Kriptografi. Kriptografi adalah ilmu yang mempelajari bagian supaya pesan atau dokumen kita aman, tidak dapat dibaca oleh pihak yang tidak berhak. Aplikasi digital envelope merupakan aplikasi kriptografi yang menggabungkan dua metode algoritma simetris dan algoritma asimetris. Pada aplikasi ini algoritma yang digunakan adalah algoritma simetris Blowfish dan asimetris RSA (Rivest Shamir Adleman). Aplikasi digital envelope ini dapat dijadikan sebagai salah satu cara untuk mengamankan data. Aplikasi ini menggunakan bahasa pemrograman PHP dalam pembuatannya. Untuk pengembangan aplikasi penulis menggunakan metode RAD (Rapid Application Development). Hasil Akhir berupa aplikasi multifile yang berbasis web, tanpa ada proses installer, dan dapat dilakukan pada multifile secara bersamaan (multifile dibatasi sebanyak 5 file).
73
3.
Alfie Amanilla Aziz Tanda tangan digital (digital signature) adalah suatu mekanisme
otentifikasi yang memungkinkan pembuat pesan menambahkan sebuah kode yang bertindak sebagai tanda tangannya. Tanda tangan digital memungkinkan penerima informasi untuk menguji terlebih dahulu keaslian informasi yang didapat dan juga untuk meyakinkan bahwa data yang diterimanya itu dalam keadaan utuh. Skema (schema) yang dapat digunakan untuk melakukan proses tanda tangan digital terhadap suatu pesan (message) juga ada bermacam-macam. Salah satu skemanya adalah skema Ong Schnorr-Shamir. Skema Ong Schnorr Shamir merupakan skema tanda tangan digital yang berdasarkan pada persamaan linier sekuensial (sequensially linearized equiations). Skema tanda tangan digital ini menggunakan polynomial modulo n. Keamanan dari skema ini didasarkan pada kesulitan untuk memecahkan persamaan polinomial. Versi dari skema yang dideskripsikan pada pembahasan kali ini adalah berdasarkan polinomial kuadratik. Pada skema Ong Schnorr Shamir menggunakan algoritma Euclidean. Algoritma ini digunakan untuk mencari GCD dari 2 buah bilangan. Perhitungan dalam metode tanda tangan digital Ong Schnorr Shamir akan menghasilkan decimal dalam jumlah yang besar. Karenanya, bilangan-bilangan perlu dibatasi jumlah desimalnya atau dibulatkan. Penulis menggunakan metode RAD yang memiliki beberapa tahap fase, fase menentukan syarat-syarat, fase
74
perancangan,
fase
konstruksi
dan
fase
pelaksanaan
sebagai
pengembangan sistemnya serta software Microsoft Visual Basic 6.0 untuk perancangan program dan antar mukanya. Perangkat lunak menjelaskan proses kerja dari skema Ong Schnorr Shamir. Skema Ong Schnorr Shamir digunakan untuk menjaga keaslian data dan keutuhan data. Hasil penelitian menunjukkan dari 5 kali percobaan, penulis memperoleh keakuratan dalam persentase keberhasilan sebesar 100% dalam proses verifikasi.
75
BAB III METODOLOGI PENELITIAN Seperti yang telah dibahas pada bab I, dalam pembuatan aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7, ada beberapa metode yang digunakan diantaranya :
3.1 Metode Pengumpulan Data Dalam rangka menyusun skripsi ini, diperlukan data-data informasi yang relatif lengkap sebagai bahan yang dapat mendukung kebenaran materi uraian pembahasan. Oleh karena itu dilakukan pengumpulan data untuk mendapatkan informasi atau bahasa materi yang diperlukan. Adapun metode pengumpulan datadata dan informasi yang diperlukan adalah sebagai berikut : 3.1.1 Studi Pustaka Metode pustaka, yaitu pengumpulan data dan informasi dengan cara membaca buku-buku referensi, e-book dan web site. Dokumen-dokumen yang termasuk didalamnya yaitu penelitian-penelitian terdahulu, buku, artikel dan jurnal yang berkaitan dengan objek penelitian. 3.1.2 Studi Literatur Melakukan studi perbandingan dan analisis antara aplikasi yang pernah dibuat oleh seseorang dengan aplikasi yang penulis buat. Termasuk kelebihan dan kekurangan aplikasi yang telah di buat.
76
Studi Literatur Nama
Judul Skripsi
Kesimpulan
1. Sarlika Muliati (Universitas Islam Negeri Syarif Hidayatullah Jakarta: 2008)
Implementasi kriptografi dengan menggunakan Metode DES dan Kunci Publik RSA untuk keamanan data pada kandepag kota jakarta timur
1. Kriptografi dengan menggunakan kombinasi cipher simetris dan asimetris melalui metode DES dan RSA dapat memberikan pengamanan ganda terhadap kerahasiaan data dan informasi penting. 2. penggabungan dua algoritma kriptografi menyebabkan proses enkripsi menjadi panjang karena proses enkripsi dilakukan berulang-ulang sebanyak metode algoritma yang digunakan 3. Ukuran file yang dienkrip yaitu,Komp3.jgp(31kb), asal.xls(61kb),Daftar Isi.pdf(70kb), UTS TKI Sarlika7B.zip(73kb), Konseptual Broadcasting.ppt(150kb ), DES.rar(409kb), 08.mp3(1.234kb)
Implementasi digital envelope dengan menggunakan metode Blowfish dan RSA di PPPTMGB (Pusat Penelitian dan Pengembangan Teknologi
1. Menggunakan Algoritma Blowfish dan RSA 2. Aplikasi yang dibuat berbasis web. 3. Ukuran file yang besar akan mempengaruhi lama proses enkripsi dan dekripsi. 4. Ukuran file yang dienkrip yaitu, Data PC.enc(518kb), GD Geofisika.enc(838kb), Lemigas.enc(754kb), Logo
2. Prilia Lestari (Univeristas Islam Negeri Syarif Hidayatullah Jakarta: 2008)
77
Minyak dan Gas Bumi
enc.enc(76kb), Sejarah lemigas(721kb)
3. Achmad Nursoleh (Universitas Islam Negeri Syarif Hidayatullah Jakarta: 2010)
Aplikasi Email 1. Penerapan kriptografi dengan 2. menggunakan algoritma kriptografi DES, DES, RSA, dan MD5 RSA, dan MD5 untuk menjaga keamanan menggunakan data email dan tidak bahasa mudah dibaca oleh pemograman java pihak-pihak lain yang tidak berkepentingan 3. Kriptografi dengan menggunakan kombinasi algoritma kunci simetris dan asimetris (kriptografi hibrida) melalui metode DES, RSA dan MD5 dapat memberikan pengamanan ganda terhadap kerahasiaan email 4. Membuktikan bahwa email yang dikirim benar-benar dari pengirim yang sah
4.Prima Even Ramadhan (Universitas Islam Negeri Syarif Hidayatullah Jakarta:2009)
Evaluasi Kinerja Algoritma Lemvel-Ziv Store Szymanski terhadap data teks dan gambar
1. Program Implementasi yang digunakan memiliki tingkat kompresi maksimal sebesar 12 %, baik ketika melakukan kompresi terhadap file teks maupun file gambar. Untuk kasus file teks, hasil kompresi maksimal tersebut diperoleh ketika file teks tersebut terdiri dari yang karakter yang sama dengan jumlah minimal 1017 karakter.sedangkan untuk kasus file gambar,
78
hasil maksimal tersebut diperoleh untuk file gambar dengan warna monotone yang memiliki ukuran minimal 4500 bytes. 2.
Untuk kasus file teks ( khususnya microsoft word ), algoritma LZSS akan memberikan hasil kompresi yang cukup baik apabila file teks sebagian besar berisi teks. Adanya gambar akan memperburuk kinerja pengkompresian algoritma LZSS terhadap file tersebut dikerenakan dalam satu program word processing, file-file gambar biasanya disimpan dalam bentuk yang sudah di kompresi sehingga menyulitkan algoritma LZSS untuk melakukan kompresi 3. Untuk kasus file gambar, hasil optimal akan di peroleh ketika gambar dan file tersebut banyak memiliki piksel dengan warna yang sama 4. Kinerja algoritma LZSS secara umum cukup baik ketika dibandingkan dengan proses pack dan compress. Hal ini di tunjukkan dengan lebih baiknya rasio kompresi LZSS ketika digunakan untuk kompresi terhadap Centerburry Corpus dan file teks ACT
79
Tabel 3.1 Studi Literatu r
5. Alfie Aziz (Universitas Islam Negeri Syarif Hidayatullah Jakarta:2009) B
er da
Impelementasi Tanda Tangan Digital Menggunakan Metode Ong Schnorr Shamir dan Euclidean Pada Teks
sa rk an st ud i lit er at ur di
dibandingkan dengan kedua program kompresi tersebut 1. Perangkat lunak menjelaskan secara bertahap proses kerja Ong Schnorr Shamir Digital Signatur, sehingga dapat membantu pemahaman terhadap skema. 2. Skema Ong Schnorr Shamir Digital Signature dapat digunakan untuk menjaga keaslian data (authentication) dan keutuhan data (data integrity).3. Berdasarkan hasil ujicoba aplikasi, diperoleh persentasi keberhasilan sebesar 100% 3. Ukuran file yang dienkrip yaitu, Rilanda XI IPS.doc(1.38Mb), 1_41916185.jpg(6.95kb), editnia copy.jpg(3.17Mb), Surat Pernyataan.jpg(181.5kb), Surat Pernyataan.txt(756byte)
at as belum ada aplikasi kriptografi yang melakukan proses enkripsi dan dekripsi pada file yang berukuran lebih besar(> 370 MB). Penulis juga melakukan analisa terhadap aplikasi yang lain, hasilnya beberapa aplikasi masih berbasis standalone. Hal ini mempunyai kelemahan karena aplikasi tersebut hanya dapat diterapkan hanya pada sebuah PC (sebagai server saja), sedangkan aplikasi yang penulis buat sudah berbasis client server sehingga aplikasi ini memungkinkan dapat diterapkan pada banyak PC.
3.2 Metode Pengembangan Sistem Pengembangan system yang penulis lakukan menggunakan empat tahap siklus pengembangan model Rapid Application Development (RAD), yaitu fase perencanaan
80
syarat dan tujuan informasi, fase perancangan, fase konstruksi, dan fase pelaksanaan. Model RAD penulis gunakan karena melihat dari aplikasi yang dikembangkan oleh penulis merupakan yang sederhana dan tidak membutuhkan waktu yang lama, metode RAD adalah metode yang diperuntukan untuk jangka pendek sesuai dengan aplikasi yang akan dibuat. Model pengembangan yang dibuat oleh James Martin meliputi fase-fase sebagai berikut (Kendall&Kendall, 2006 : 238) Adapun penjelasan dari fase-fase pengembangan aplikasi ini sesuai dengan gambar 3.1 adalah sebagai berikut :
1.
Fase Menentukan Tujuan dan Syarat-Syarat Informasi Pada tahap ini dilakukan beberapa tahapan antara lain : 1.1 Analisis Tujuan Informasi Menjelaskan tujuan pembuatan aplikasi, sehingga para pembaca mengerti fokus penulisan. 1.2 Studi kelayakan Menjelaskan tentang manfaat dari pembuatan aplikasi 1.3 Kelengkapan hardware yang digunakan Menjelaskan hardware apa saja yang harus dipersiapkan untuk membuat aplikasi kriptografi 1.4 Kelengkapan Software yang digunakan Menjelaskan software apa saja yang dipersiapkan untuk memakai aplikasi kriptografi.
2.
Fase Perancangan Pada tahap ini dilakukan beberapa tahapan antara lain : a) Pembuatan Flowchart Diagram Agar lebih memudahkan dalam pembuatan program, maka penulis membuat diagram Flowchart yang akan menggambarkan alur program secara umum. Flowchart yang dibuat terdiri dari flowchart alur enkripsi dan dekripsi, flowchart algoritma RSA, flowchart algoritma Blowfish b) Penjelasan Antar Muka
81
Antar muka pemakai memberikan fasilitas komunikasi antar pemakai dan sistem, memberikan berbagai fasilitas informasi dan berbagai keterangan yang bertujuan untuk membantu mengarahkan alur penulisan masalah sampai ditemukan solusi. 3.
Fase Konstruksi Pada tahap ini dilakukan beberapa tahapan antara lain : a) Instalasi Program Pendukung Instalasi terhadap Borland Delphi 7 telah dilakukan pada bab 2 sub 2.5.5, pada tahapan ini dilakukan instalasi terhadap komponen pendukung yaitu Suipack. b) Menjalankan Program Aplikasi Melakukan pengecekan terhadap program tambahan yang telah diinstall dengan tujuan agar aplikasi yang telah dibuat dapat berjalan dengan baik.
4.
Fase Pelaksanaan Pada fase ini dilakukan beberapa tahapan, antara lain : a) Spesifikasi Software Yang Digunakan Menjelaskan spesifikasi minimal yang harus dimiliki oleh laptop yang akan menerapkan aplikasi ini. b) Pengujian Aplikasi Menjelaskan proses pengujian aplikasi yang bertujuan untuk melihat sejauh mana aplikasi ini dapat berjalan. Pada tahap pengujian aplikasi ini dilakukan dua tahap pengujian, yaitu : 1)
Pengujian dengan cara Blackbox Mandiri, yaitu dengan melakukan
pengujian langsung program pada software yaitu Delphi 7 guna mendapatkan validitas aplikasi ini. 2)
Respon oleh user (pengguna) tentang aplikasi, berupa angket yang
berisi pernyataan yang meminta tanggapan user setelah menggunakan aplikasi ini yang diberikan kepada 20 ( dua puluh) user yang diambil dari teman-teman kampus dan lingkungan rumah penulis. Angket ini bertujuan untuk mendapatkan tingkat validitas apabila digunakan langsung oleh
82
pengguna. Angket berupa pertanyaan yang berhubungan dengan aplikasi form dan hasil angket dapat dilihat secara lengkap pada lampiran.
c) Analisis hasil pengujian Analisis hasil pengujian untuk mengetahui apakah aplikasi yang dibangun dapat berjalan dengan baik pada PC/laptop yang memenuhi kriteria spesifikasi
minimum perangkat
lunak serta
memenuhi
syarat-syarat
pembuatan aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data pada Menggunakan Delphi 7. Pada tahap analisis hasil pengujian aplikasi ini, merupakan hasil dari tahap pengujian aplikasi yang juga dilakukan dengan dua tahap yaitu : 1) Analisis hasil pengujian dengan cara Blackbox Mandiri, yaitu menganalisis hasil pengujian yang telah didapatkan melalui pengujian langsung terhadap laptop/PC. 2) Analisis hasil respon user berupa angket yang diberikan kepada penggguna yang menghasilkan penilaian terhadap aplikasi yang dibangun dengan nilai persentase tingkat kepuasan terhapad aplikasi
3.3
Siklus Penerapan RAD untuk Membuat Aplikasi Implementasi Algoritma
RSA Dan Blowfish Untuk Enkripsi Dan Dekripsi Data Menggunakan Delphi 7. Pada Gambar 3.1 diberikan siklus RAD yang diimplementasikan untuk membuat sebuah perangkat lunak enkripsi dan dekripsi data.
83
1. Fase Perencanaan Syarat-syarat
2. Fase Perancangan
1.1 Analisis Tujuan Informasi
2.1 Flow chart Diagram
1.2 Studi kelayakan
2.2 Perancangan Antar Muka
1.3 Kelengkapan Hardware yang digunakan
2.3 Perancangan Algoritma Program
1.4 Kelengkapan Software yang digunakan
Kriptografi
1.5 Mendefinisikan Masalah
4. Fase Pelaksanaan 4.1 Spesifikasi Laptop/PC yang digunakan 4.2 Pengujian Aplikasi 4.2.1
Pengujian Black Box Mandiri
4.2.2
Respon oleh User Tentang Aplikasi
4.3 Analisis Hasil Pengujian
3. Fase Konstruksi 3.1 Instalasi Program Pendukung 3.2 Menjalankan Program Aplikasi
4.3.1 Analisis Hasil Pengujian Black Box Mandiri 4.3.2 Analisis Hasil Respon oleh User
Gambar 3.1 Siklus RAD untuk Membuat Aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data
84
BAB IV ANALISA DAN PEMBAHASAN Setelah membahas tentang teori-teori
dan konsep-konsep yang dipakai serta
metodologi yang digunakan ada bab sebelumnya, maka pada bab ini seperti yang yang telah ditulis pada bab satu, penulis akan membahas tentang Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7. Untuk pengembangan sistem, penulis menggunakan metode RAD (Rapid Application Development) yang terdiri atas fase menentukan tujuan dan syarat-syarat informasi, fase perancangan, fase konstruksi dan fase pelaksanaan sesuai dengan fasefase pengembangan Aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7. Bagaimana mengimplementasikan suatu algoritma dan tools apa yang paling mendukung implementasi tersebut, merupakan dua hal yang cukup penting dan mendasar untuk mempelajari suatu metode. 4.1
Fase Menentukan Tujuan dan Syarat-Syarat Informasi 4.1.1
Tujuan Informasi Ada tiga tujuan dikembangkannya aplikasi ini seperti yang penulis uraikan dalam BAB I, tujuan tersebut antara lain : 1.
Dimana aplikasi ini ditujukan untuk mengimplementasikan algoritma RSA dan Blowfish sehingga dapat mengetahui proses kerja dari kedua algoritma tersebut.
2.
Menghasilkan sebuah aplikasi untuk pemrograman berikutnya.
3.
Menghasilkan sebuah aplikasi yang bersifat open source dalam pengertian aplikasi ini terbuka bagi siapa saja yang ingin mengembangkan lebih jauh fungsi atau fitur aplikasi ini dikarenakan source code aplikasi ini akan penulis berikan atau lampirkan dan penulis izinkan untuk dikembangkan.
85
4.1.2
Studi Kelayakan Ada 2 studi kelayakan yang akan dijabarkan pada bagian ini yaitu,
feasibilitas ekonomi dan feasibilitas teknis, penjelasan dari kedua studi tersebut adalah sebagai berikut : 1.
Feasibilitas Ekonomi Secara ekonomi aplikasi ini layak dikembangkan karena aplikasi
yang dilakukan bersifat gratis, hanya download dari situs resminya www.borlanddelphi.com, www.mysql.com, www.xampp.com, Secara sosial aplikasi dapat membantu untuk mencerdaskan lingkungan baik kalangan mahasiswa atau pun seseorang yang tertarik pemrograman Borland Delphi 7. 2.
Feasibilitas Teknis Pengembangan aplikasi ini layak secara teknis dikarenakan untuk
mengembangkan kemampuan para programmer. 4.1.3
Kelengkapan Hardware yang digunakan 1.
Satu buah laptop untuk membuat program dengan
spesifikasi
sebagai berikut :
4.1.4
a)
Processor 2.1 GHz
b)
Memory 2 GHz
c)
Harddisk 250 GHz
d)
Mouse
Kelengkapan Software yang digunakan 1.
Borland Delphi 7
2.
Microsoft Visio 2003
3.
Sistem operasi Windows XP yang berjalan pada laptop
4.
MySQL&Xampp
5.
Suipack
6.
Tplockbock
7.
Zeosdb
86
4.1.5
Mendefinisikan Masalah Masalah yang ingin diselesaikan dengan sistem ini adalah bagaimana
mengimplementasikan kedua algoritma dan tools
apa yang mendukunh
implementasi tersebut. Pada penulisan ini, penulis akan mengimplementasikan algoritma RSA dan Blowfish menggunakan Delphi 7. Dengan demikian dari implementasi ini dapat diketahui kelebihan dari kedua algoritma tersebut.
4.2
Fase Perancangan Dalam perancangan Aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7 ini, perancangan Flowchart Diagram. 4.2.1
Flowchart Diagram Agar lebih memudahkan dalam pembuatan program, maka penulis membuat diagram flowchart yang akan menggambarkan alur program secara umum. Flowchart tersebut dapat digambarkan sebagai berikut : Start
Input Plain File Yg akan Dienkrip
Beri nama Output Cipher File yg dienkrip
Masukkan Password
Klik Button Encryp File
Periksa Hasil Enkripsi
Input Cipher File yg Didekrip
Beri nama Output Plain File yg Didekrip
Masukkan Password
Klik Button Decryp File
Periksa Hasil Dekripsi
If (berhasil)
Tidak Periksa Password
Ya End
Gambar 4.1 Flowchart program enkripsi dan dekripsi dengan Delphi 7
87
Flowchart pada gambar 4.1 mengambarkan alur proses dan urutan-urutan prosedur dalam aplikasi enkripsi dan dekripsi pada algoritma RSA. Pada aplikasi ini user diminta untuk memilih jenis file dan ukuran file yang akan dienkrip dan didekrip. Aplikasi yang penulis buat ini tidak membatasi jenis dan ukuran file yang akan dienkrip dan didekrip. Setelah memasukkan jenis file, user diminta untuk memberikan nama file setelah dilakukan proses enkripsi, begitu pula ketikan akan melakukan proses dekripsi user diminta untuk memberikan nama sebelum melakukan proses dekripsi. Hal lain untuk menjaga keamanan ketika akan melakukan proses enkripsi dan dekripsi adalah memasukkan password untuk menjaga kerahasiaan file-file yang telah dieksekusi. Password yang dimasukkan bisa berbagai jenis karakter bisa angka, bisa pula karakter. Penulis juga menekankan kepada user jangan lupa untuk mengingat password yang akan digunakan untuk melakukan proses enkripsi dan dekripsi. Hal ini penting dilakukan karena apabila password yang dimasukkan salah maka file yang telah dieksekusi tidak bisa dibuka. Jadi password yang dimasukkan untuk melakukan proses enkripsi dan dekripsi harus sama. 4.2.2
Perancangan Antarmuka Perancangan antarmuka yang dibuat penulis pada aplikasi ini terdiri dari beberapa halaman, antara lain : 1. Menu Halaman Pembuka Menu ini merupakan tampilan awal ketika membuka aplikasi enkripsi dan dekripsi dengan RSA dan Blowfish. Pada halaman ini menampilkan judul aplikasi serta beberapa menu yang dapat dipilih pengguna. Adapun menu yang terdapat pada halaman utama ini adalah RSA Text Cryptography,
Multimedia
RSA
Cryptography,
Blowfish
Text
Cryptography, Multimedia Blowfish Cyprtography
88
F ile
RSA
A l g o ri t m
B l o w f i s h A l g o ri t m
H e lp
R S A Te x t C r y p to g r a p h yR S A M u ltim e d ia B lo w fis h Te x t
B lo w fis h M u ltim e d ia
E n c r y p tio n a n d D e c r y p t Te x t U s in g R S A A lg o r itm P a ssw o rd : C le a r A ll Te x t
E n c r y p t Te x t
D e c r y p t Te x
Gambar 4.2 Rancangan Menu Halaman Pembuka Aplikasi Pada gambar 4.2 rancangan menu halaman pembuka aplikasi terdapat 3 button yaitu : Clear all text : Untuk membersihkan teks Encrypt text : Button Encrypt untuk enkripsi teks Decrypt text : Button Decrypt untuk dekripsi teks 2. Menu Multimedia Cryptography Menu ini merupakan tampilan untuk melakukan proses enkripsi dan dekripsi pada berbagai jenis file dan ukuran. Dimulai dari memasukkan jenis file sampai memasukkan password
89
F ile
R S A A l g o ri t m
B l o w f i s h A l g o ri t m
R S A M u ltim e d ia
R S A Te x t C r y p t
E n c ry p t i o n U s i n g R S A A l g o ri t m
H e lp
B lo w fis h Te x t C r y p t
B lo w fis h M u ltim e d ia
fo r M u ltim e d ia F ile
In p u t P la in M u ltim e d ia F ile : O u tp u t C ip h e r M u ltim e d ia :
P a ssw o rd
:
D e c ry p t i o n U s i n g R S A A l g o ri t m
E n c r y p t F ile
fo r M u tim e d ia F ile
In p u t C ip h e r M u ltim e d ia F ile :
O u tp u t P la in M u ltim e d ia F ile :
P a ssw o rd :
D e c r y p t F ile
Gambar 4.3 Rancangan Menu Multimedia Cryptography Pada gambar 4.3 rancangan menu multimedia cryptography terdapat 2 button yaitu : Encrypt File : Berfungsi untuk enkripsi file Decrypt File : Berfungsi ntuk dekripsi file Button kotak untuk memasukkan jenis file yang akan dieksekusi dan password untuk melindungi hasil eksekusi, input plaintext untuk meletakkan file yang telah diambil begitu pula output ciphertext untuk meletakkan file yang telah dieksekusi.
90
P a s s w o rd :
A l g o ri tm :
E n c r y p t a n d S e n d in g to S e r v e r
E x it
Gambar 4.4 Rancangan Menu Client Pada gambar 4.4 merupakan rancangan menu client, dimana terdapat 2 button yaitu : Encrypt and sending to server : berfungsi untuk mengirim hasil enkripsi ke server Exit : berfungsi untuk keluar dari aplikasi Sedangkan 2 kotak yang lain untuk meletakkan teks yang telah diambil, fitur algoritm berfungsi untuk memilih jenis algoritma yang akan digunakan untuk mengeksekusi teks, sedangkan fitur password berfungsi untuk meletakkan jenis password untuk melindungi hasil eksekusi.
91
R e fre s h
A l g o ri tm :
P a s s w o rd :
E n c ry p t Te x t
D e c ry p t Te x t
Gambar 4.5 Rancangan Menu Server Pada gambar 4.5 merupakan menu server, dimana terdapat 5 fitur yaitu : Refresh : berfungsi untuk koneksi ke server Kotak besar : berfungsi untuk meletakkan teks Algoritm : berfungsi untuk memilih jenis algoritma Password : berfungsi untuk memasukkan jenis password Encrypt text : berfungsi untuk meletakkan hasil enkripsi Decrypt text : berfungsi untuk meletakkan hasil dekripsi 4.2.3
Perancangan Algoritma Program Kriptografi Algoritma yang penulis kembangkan menggunakan 2 metode algoritma kriptografi dalam mengenkrip atau mendekrip file. Pada saat akan melakukan proses enkripsi pilih plaintext yang akan dienkrip, kemudian pilih algoritma RSA atau Blowfish yang akan digunakan mengenkrip file,
92
setelah itu masukkan password untuk melindungi hasil eksekusi file, setelah proses dilakukan plaintext berubah menjadi ciphertext. Tahapan selanjutnya adalah proses dekripsi, pada tahapan ini ciphertext yang dihasilkan pada proses enkripsi akan diubah menjadi plaintext kembali dengan cara membalik proses enkripsi. Ciphertext yang telah didekrip menggunakan algoritma RSA atau Blowfish, tidak lupa memasukkan password yang sama pada saat melakukan enkripsi tadi, setelah
selesai
maka
ciphertext
akan
menjadi
plaintext.
Untuk
memperjelas gambaran proses enkripsi dan dekripsi dapat dilihat pada gambar dibawah ini Proses Enkripsi
Proses Dekripsi
Plaintext
Ciphertext
Pilih Algoritma
Pilih Algoritma
Masukkan Password
Masukkan Password
Ciphertext
Plaintext
Gambar 4.6 Perancangan Algoritma Program Kriptografi
93
4.3
Fase Konstruksi Pada tahap ini penulis mentransformasikan semua hasil rancangan, lalu diterapkan
menjadi program aplikasi yang dapat dioperasikan. Dalam melakukan proses kontrusksi penulis melalui langkah-langkah sebagai berikut: 4.3.1
Instalasi Program Sebelum memulai menulis kode program, perlu dilakukan penginstalan perangkat lunak Borland Delphi 7 terlebih dahulu. Proses instalasi telah penulis lakukan pada bab 2, sehingga hal ini dapat dilihat pada bab 2, sub bab 4.5.4. Penulis juga menambahkan software pendukung lain untuk mempercantik tampilan aplikasi, penulis menggunakan software suiepack. Pada prinsipnya komponen ini berguna untuk form asli Delphi dengan style yang berbeda semisal dengan style deep blue, mac dan lain-lain. Langkah-langkah yang harus dilakukan untuk menginstal komponen suiepack pada Delphi 7.0 sebagai berikut : 1. Buka folder penyimpanan komponen suiepack
94
Gambar 4.7 Tempat penyimpanan komponen suiepack 2. Klik ganda pada installer komponen suiepack
Gambar 4.8 Memilih komponen suiepack 3. Akan muncul proses instalasi komponen suiepack seperti
95
dibawah ini, kemudian centanglah versi Delphi yang akan diinstal, dalam hal ini adalah Delphi 7.0 Gambar 4.9 Memilih versi delphi 4. Jika proses instalasi sukses, akan muncul pesan install finished 5. Check pada component pallet, jika telah ada komponen pallet
dengan nama SuiPack beserta fitu-fiturnya, ini berarti proses install komponen SuiPack telah selesai 4.3.2
Bagian-Bagian Tentang Suipack Komponen Suipack merupakan komponen yang dipergunakan untuk
mempercantik tampilan program yang dibuat dengan menggunakan Delphi, pada prinsipnya komponen ini berguna untuk menutupi form asli Delphi dengan style yang berbeda. Ada 6 macam pilihan untuk mempercantik tampilan form pada Suipack yaitu, BlueGlass, DeepBlue, FromThemeFile, MacOS, Protein, WinXP, tampilan tersebut tampak pada gambar dibawah ini :
96
Gambar 4.10 6 macam bagian pada Suipack 1. Jika diklik satu persatu bagian pada Suipack maka tampilan form pada Delphi akan berubah, gambar berikut menunjukan form yang berubah menjadi warna biru setelah memilih bagian BlueGlass
Gambar 4.11 Tampilan form setelah memilih fitu BlueGlass
97
2. Jika memilih fitur Deepblue maka tampilan form berubah menjadi warna ungu, tampilan form tersebut tampak pada gambar dibawah ini:
Gambar 4.12Tampilan form setelah memilih fitur deepblue 3. Jika memilih fitur FromThemeFile maka tampilan form berubah menjadi warna ungu, tampilan form tersebut tampak pada gambar dibawah ini:
Gambar 4.13 Tampilan form setelah memilih fitur FromThemeFile
98
4. Jika memilih fitur MacOS maka tampilan form berubah menjadi warna ungu, tampilan form tersebut tampak pada gambar dibawah ini:
Gambar 4.14 Tampilan form berubah setelah memilih fitur MacOS 5. Jika memilih fitur Protein maka tampilan form berubah menjadi warna ungu, tampilan form tersebut tampak pada gambar dibawah ini:
Gambar 4.15 Tampilan form yang berubah setelah memilih fitur protein
99
6. Jika memilih fitur WinXP maka tampilan form berubah menjadi warna ungu, tampilan form tersebut tampak pada gambar dibawah ini:
Gambar 4.16 Tampilan form yang berubah setelah memilih fitur WinXP Ada 4 bagian pada Suipack yang dapat digunakan untuk membuat aplikasi pada Delphi, 4 bagian tersebut antara lain: Suipack, Suipack DB, Suipack Dialog, Suipack Utils. Masing-masing bagian tersebut mempunyai fitur yang berbeda, keempat bagian tersebut akan penulis jabarkan satu persatu: 1.
Suipack, terdapat 33 fitur yang digunakan untuk membuat aplikasi pada delphi, umumnya fitur-fitur tersebut digunakan untuk membuat aplikasi
2.
Suipack DB, terdapat 11 fitur yang digunakan untuk membuat aplikasi pada delphi, umumnya fitur-fitur tersebut digunakan untuk membuat aplikasi yang berhubungan dengan database.
3.
Suipack Dialog, terdapat 3 fitur yang digunakan untuk membuat aplikasi pada delphi, umumnya fitur tersebut digunakan untuk membuat aplikasi yang disertai dengan penggunaan password.
4.
Suipack Utils, terdapat 5 fitur yang digunakan untuk membuat aplikasi pada delphi, umumnya fitur tersebut digunakan untuk membuat aplikasi 100
Pengujian dengan dienkripsi dari aplikasi lain tidak bisa dilakukan karena aplikasi ini melakukan pengujian dengan program yang berbasis delphi saja. 4.3.3
Menjalankan Aplikasi Enkripsi Setelah aplikasi menu dan kode program selesai dibuat, maka program dieksekusi sehingga terlihat hasilnya seperti pada gambar berikut ini :
Gambar 4.17 Aplikasi yang telah dieksekusi
101
Gambar 4.18 Tampilan Untuk Memilih Menu RSA Algoritm
Gambar 4.19 Tampilan Untuk Memilih Menu Blowfish Algoritm
102
Gambar 4.20 Tampilan Untuk Memilih Menu Help
Gambar 4.21 Tampilan Biodata Penulis
103
4.3.3
Tampilan Aplikasi Client Server Selain aplikasi Implementasi penulis juga membuat aplikasi enkripsi yang
berbasis client server dengan tujuan aplikasi ini dapat diterapkan pada banyak PC/laptop. Untuk menjalankan aplikasi perlu dilakukan setting aplikasi terhadap aplikasi client dan aplikasi server. Setting yang dilakukan antara lain terhadap HostServer, Database Host, dan Password. Hal itu diterapkan apabila aplikasi ini digunakan pada 2 PC atau lebih, tetapi apabila aplikasi ini hanya digunakan pada 1 PC/laptop saja maka yang perlu dilakukan hanya setting pada bagian password. Disinilah letak kelebihan aplikasi penulis dibandingkan dengan aplikasi sebelumnya yang berbasis standalone, tampilan tersebut antara lain :
Gambar 4.22 Tampilan sisi client
104
Gambar 4. 23 Tampilan sisi server
Gamba r 4.24 Tampilan sisi server dengan pengaturan
105
Gambar 4.25 Tampilan client dengan pengaturan 4.3.4
Komunikasi Client Server Client-Server merupakan arsitektur jaringan yang memisahkan client
dengan server. Masing-masing client dapat meminta data atau informasi dari server, begitu pula sebaliknya server dapat memberikan respon apabila ada request dari client. Pada gambar dibawah ini akan ditunjukan komunikasi client-server dimana aplikasi client menggunakan 2 algoritma yaitu RSA dan Blowfish, user dapat memilih diantara kedua algoritma tersebut untuk mengenkrip teks yang besarnya tak hingga, kemudian user memasukkan password untuk keamanan hasil eksekusi. Setelah itu aplikasi mengeksekusi teks lalu dikirim kan ke server, agar server terkoneksi dengan client maka user mengklik refresh/connect to server. Hasil eksekusi teks tadi dapat dilihat pada tabel database yang terdapat pada
106
server. Disinilah terjadi komunikasi antara client dengan server, komunikasi client-server tersebut dapat dilihat pada gambar dibawah ini.
Gambar 4.26 Aplikasi client mengeksekusi teks
Gambar 4.27 Aplikasi Server berhasil menerima kiriman dari client
107
Pada gambar diatas terlihat bahwa komunikasi client-server terlaksana dengan baik, client berhasil mengeksekusi teks lalu mengirimkan ke server. Setelah berhasil dieksekusi server menunjukkan database yang telah diterima dari client. 4.4
Fase Pelaksanaan Pada fase pelaksanaan ini sesuai dengan sub bagian 4.2 pengujian aplikasi, penulis melakukan pengujian aplikasi secara Black box mandiri dan secara Black box oleh User. Untuk pengujian Black box penulis menganalisis spesifikasi laptop yang digunakan untuk menerapkan aplikasi ini, setelah melakukan ujicoba untuk mengetahui apakah aplikasi dapat bekerja dengan baik, penulis meminta tanggapan pada user untuk aplikasi yang penulis buat ini. 4.4.1
Spesifikasi Minimum Penggunaan Laptop yang dapat digunakan untuk menjalankan aplikasi ini memiliki spesifikasi minimal sebagai berikut : 1.
Memiliki Processor Intel Pentium IV 1.6 GHz
2.
Memiliki memory minimal 256 Mb untuk proses instalasi aplikasi
3.
Harddisk dengan free space minimal 500 Mb
4.
VGA card 4 Mb
5.
Monitor dengan resolusi 1024 x 768 pixel
6.
Keyboard dan Mouse Adapun perangkat lunak (software) yang digunakan untuk
menjalankan aplikasi ini adalah lingkungan sistem operasi MS Windows 97, MS Windows 2000, Windows XP. 4.4.2
Konfigurasi Client Server
108
Konfigurasi client server ada 2 bagian yaitu : 1.
Wireless Suatu jaringan wireless (wireless network) memungkinkan orang-
orang untuk berkomunikasi, mengakses aplikasi dan informasi tanpa menggunakan kabel. Ini menyediakan kebebasan pergerakan dan kemampuan untuk meluaskan aplikasi pada bagian-bagian bangunan berbeda, kota, atau hampir seluruh dunia. WLAN mewakili wireless local area network seperti universitas atau perpustakaan, untuk membentuk suatu jaringan atau koneksi ke Internet. Untuk saat ini yang penulis terapkan yaitu WLAN di universitas. 2.
Kabel(fixed) Penulis menggunakan kabel UTP untuk koneksi antar laptop,
sedangkan untuk konektor penulis menggunakan RJ 45. Untuk IP address, subnet mask, dan default gateway akan penulis jabarkan sebagai berikut : IP address
: 172.27.11.204 (server)
Subnet mask
: 255.255.255.0
Default gateway : 172.27.11.1 IP address
: 172.27.11.205 (client)
Subnet mask
: 255.255.255.0
Default gateway : 172.27.11.1 4.4.3 Pengujian Aplikasi Setelah mengeksekusi program aplikasi maka dilakukan pengujian aplikasi. Pengujian aplikasi yang telah dibuat bertujuan untuk melihat jalannya
109
program, validitas, dan mengetahui tingkat kepuasan pengguna pada aplikasi ini, oleh karena itu pengujian dilakukan dengan dua tahap yaitu dengan pengujian secara Blackbox mandiri dan hasil respon oleh user (pengguna). 4.4.3.1 Pengujian Blackbox Mandiri Pengujan aplikasi secara Blackbox mandiri yaitu pengujian yang dilakukan secara langsung pada laptop/PC yang memiliki syarat minimal untuk menjalankan aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7. Pengujian dilakukan dengan 2 algoritma yaitu RSA dan Blowfish. Berikut hasil pengujian aplikasi pada berbagai file dari berbagai ukuran yaitu: Enkripsi dan Dekripsi File dengan RSA dan Blowfish 1. File dengan format rtf berukuran 370 MB 2. File dengan format rar berukuran 64 MB 3. File dengan format mpeg berukuran 37 MB 4. File dengan format doc berukuran 7 MB 5. File dengan format jpg berukuran 3.5 MB 6. File dengan format mp4 berukuran 15 MB 4.4.3.1.1 Enkripsi File rtf dengan RSA
110
Gambar 4.28 File yang dienkrip dengan RSA berukuran 370 MB dengan format rtf
Gambar 4.29 File yang didekrip dengan RSA berukuran 370 MB dengan format rtf 4.4.3.1.2 Enkripsi File rtf dengan Blowfish
111
Gambar 4.30 File yang dienkrip dengan Blowfish berukuran 370 MB dengan format rtf
Gambar 4.31 File yang didekrip dengan Blowfish berukuran 370 MB dengan format rtf 4.4.3.1.3 Enkripsi File rar dengan RSA
112
Gambar 4.32 File yang dienkrip dengan RSA berukuran 64 MB dengan format rar
Gambar 4.33 File yang didekrip dengan RSA berukuran 64 MB dengan format rar 4.4.3.1.4 Enkripsi File rar dengan Blowfish
113
Gambar 4.34 File yang dienkrip dengan Blowfish berukuran 64 MB dengan format rar
Gambar 4.35 File yang didekrip dengan Blowfish berukuran 64 MB dengan format rar 4.4.3.1.5 Enkripsi File mpeg dengan RSA
114
Gambar 4.36 File yang dienkrip dengan RSA berukuran 37 MB dengan format mpeg
Gambar 4.37 File yang didekrip dengan RSA berukuran 37 MB dengan format mpeg 4.4.3.1.6 Enkripsi File mpeg dengan Blowfish
115
Gambar 4.38 File yang dienkrip dengan Blowfish berukuran 37 MB dengan format mpeg
Gambar 4.39 File yang didekrip dengan Blowfish berukuran 37 MB dengan format mpeg 4.4.3.1.7 Enkripsi File doc dengan RSA
116
Gambar 4.40 File yang dienkrip dengan RSA berukuran 7 MB dengan format document
Gambar 4.41 File yang didekrip dengan RSA berukuran 7 MB dengan format document 4.4.3.1.8 Enkripsi File doc dengan Blowfish
117
Gambar 4.42 File yang dienkrip dengan Blowfish berukuran 7 MB dengan format document
Gambar 4.43 File yang didekrip dengan Blowfish berukuran 7 MB dengan format document 4.4.3.1.9 Enkripsi File mp4 dengan RSA
118
Gambar 4.44 File yang dienkrip dengan RSA berukuran 15 MB dengan format mp4
Gamabr 4.45 File yang didekrip dengan RSA berukuran 15 MB dengan format mp4 4.4.3.1.10 Enkripsi File mp4 dengan Blowfish
119
Gambar 4.46 File yang dienkrip dengan Blowfish berukuran 15 MB dengan format mp4
Gambar 4.47 File yang didekrip dengan Blowfish berukuran 15 MB dengan format mp4 4.4.3.1.11 Enkripsi Gambar dengan RSA
120
Gambar 4.48 Gambar yang dienkrip dengan RSA berukuran 3.581 Kb dengan format jpg
Gambar 4.49 Gambar yang didekrip dengan Blowfish berukuran 3.581 Kb dengan format jpg 4.4.3.1.12 Enkripsi Gambar dengan Blowfish
121
Gambar 4.50 Gambar yang dienkrip dengan Blowfish berukuran 3.581 Kb dengan format jpg
Gambar 4.51 Gambar yang didekrip dengan Blowfish berukuran 3.581 Kb dengan format jpg 4.4.3.1.13 Pengujian aplikasi berbasis client server
122
Gambar 4.52 Hasil pengujian terhadap aplikasi client
Gambar 4.53 Hasil pengujian terhadap aplikasi server yang diterima dari client
123
Pengujian yang penulis lakukan terhadap aplikasi client server merupakan pengujian yang dilakukan terhadap 1 laptop. Karena keterbatasan alat-alat yang dimiliki penulis maka penulis melakukan ujicoba pada 1 laptop saja. Terbukti hasil ujicoba berjalan dengan baik. Kedepan aplikasi client server ini dapat diterapkan diruangan dengan banyak PC
4.4.1.14
Enkripsi teks dengan RSA pada client sever
Gambar 4.54 Teks yang dienkrip dengan RSA berukuran 1 Mb
124
Gambar 4.55 Teks yang dienkrip dengan RSA berukuran 2 Mb
Gambar 4.56 Teks yang dienkrip dengan Blowfish berukuran 1,5 Mb
125
Gambar 4.57 Teks yang dienkrip dengan RSA berukuran 2,5 Mb 4.4.1.14 Enkripsi teks dengan Blowfish pada client server
Gambar 4.58 Teks yang dienkrip dengan Blowfish berukuran 1 Mb
126
Gambar 4.59 Pengujian terhadap aplikasi client dengan text unlimited Aplikasi client server ini juga dapat digunakan untuk enkripsi dan dekripsi pada teks yang unlimited sehingga berapa pun banyaknya teks akan dapat dieksekusi oleh aplikasi.
Gambar 4.60 Laptop yang dijadikan Client
127
Gambar 4.61 Notebook yang dijadikan server
Gambar 4.62 Pelaksanaan pengujian aplikasi client server
128
Gambar 4.63 Hasil pengujian di client 4.4.3.2 Respon oleh User Tentang Aplikasi Respon oleh User tentang aplikasi yaitu berupa angket yang berisi pertanyaan yang meminta tanggapan user setelah menggunakan aplikasi ini yang diberikan kepada 20 (dua puluh) user yang diambil dari lingkungan kampus penulis. Angket ini bertujuan untuk mendapatkan tingkat
validitas
apabila
digunakan
langsung
oleh
pengguna. Angket berupa pertanyaan yang berhubungan dengan aplikasi. Form dan hasil angket dapat dilihat secara lengkap pada Lampiran. 4.4.4
Analisis Hasil Pengujian 4.4.4.1 Analisis Hasil Pengujian Blackbox Mandiri
129
Berdasarkan hasil pengujian yang dilakukan secara Blackbox Mandiri dan ditunjukkan oleh gambar pada sub bab 4.4.3.1, maka dapat disimpulkan bahwa aplikasi berjalan dengan baik pada PC/laptop. Program dapat dikompilasi dengan baik,tidak ada error yang terjadi ketika program dijalankan. 4.4.4.2 Analisis Hasil Respon oleh User Analisis hasil respon user berupa angket kepada pengguna, menghasilkan penilaian terhadap aplikasi yang dibangun. Dari angket yang di berikan kepada pengguna nilai persentase tingkat kepuasan terhadap aplikasi cukup baik. Ini dapat disimpulkan berdasarkan hasil angket respon user pada pertanyaan no 2, 3, 4 dan 7. Masing-masing dengan penjelasan seperti dibawah ini : 4.4.5 Hasil Penelitian Proses penelitian dilakukan untuk mengetahui keakuratan dari program aplikasi yang dibuat. Hasil penelitian dari file teks dan gambar yang telah diuji dapat dilihat pada tabel berikut :
No 1. 2. 3.
Subjek File Uji Skripsi Hamzah_2.rtf (370 Mb) Kumpulan Skripsi.rar (64 Mb) G_30 SPKI.mpeg
Subjek File verifikasi Skripsi Hamzah.rtf (370 Mb) Kumpulan Skripsi.rar (64 Mb) G_30 SPKI.mpeg
RSA Algoritm 6 menit
Blowfish Algoritm 9 menit
30 detik
1 menit
1 menit
1 menit
130
4. 5. 6.
(37 Mb) Laporan PKL.doc (7 Mb) Leni&Guru2.jgp (3.581 Kb) Bee_Gees.mp4 (15 Mb)
(37 Mb) Laporan PKL (7 Mb) Leni&Guru2.jpg (3.581 Kb) Bee_gees.mp4 (15 Mb)
10 detik
15 detik
3 detik
5 detik
12 detik
19 detik
Tabel 4.1 Tabel Hasil pengujian terhadap berbagai file Dari tabel diatas dapat dilihat bahwa keakuratan dalam pengujian pada teks dan gambar sistem dapat memverifikasi dengan baik. No
Subjek File Uji
RSA Algoritm
Blowfish Algoritm
1.
Laporan Mirwan.doc
1 detik
1 detik
3 detik
3 detik
2 detik
2 detik
2 detik
4 detik
(1 MB) 2.
Laporan Analisis.rtf (2 Mb)
3.
Proposal.doc (1,5 Mb)
4.
Reporting kantor.doc (2,5 Mb)
Tabel 4.2 Tabel Hasil pengujian teks client server
131
BAB V PENUTUP 5.1 Kesimpulan Dalam bab penutup ini, kesimpulan yang penulis peroleh dari pembahasan materi pada bab-bab sebelumnya, yaitu: 1.
Berdasarkan hasil pengujian algoritma kriptografi RSA dan Blowfish, terbukti secara proses bahwa algoritma RSA lebih cepat dibandingkan dengan algoritma Blowfish, hal ini dapat dilihat pada tabel 4.1.
2.
Ukuran file yang besar akan mempengaruhi lama proses enkripsi dan dekripsi, hal ini dapat dilihat pada tael 4.1.
3.
Aplikasi Implementasi Algoritma RSA dan Blowfish Untuk Enkripsi dan Dekripsi Data Menggunakan Delphi 7 dapat digunakan untuk menjaga keaslian data (authentication) dan keutuhan data (data integrity), hal ini dapat dilihat pada tabel 4.1.
5.2 Saran 1.
Bila aplikasi client server ingin diterapkan pada skala yang lebih besar hal ini dapat dilakukan dengan menambah alat-alat yang mendukung untuk aplikasi client server antara lain kabel UTP yang dibuat dengan urutan kabel cross, PC/laptop, pengujian telah penulis lakukan dan hal tersebut dapat dilihat pada hal 109-111.
2.
Gunakan metode Kriptografi yang sesuai dengan kebutuhan sistem yang akan digunakan.
132
133