Implementasi algoritma RSA dan Blowfish untuk enkripsi dan Dekripsi data menggunakan Delphi 7
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
(2)
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
(3)
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.
(4)
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
(5)
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.
(6)
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
(7)
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
(8)
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 FlowchartDekripsi 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 FlowchartEnkripsi Blowfish ...29
2.2.6.3 Dekripsi Algoritma Blowfish ...30
2.2.6.4 FlowchartDekripsi Blowfish ...32
(9)
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
(10)
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
(11)
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 BlackBoxMandiri ...119 4.4.4.2 Analisis Hasil Respon Oleh User119
(12)
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
(13)
BAB 1 PENDAHULUAN 1.1Latar 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
(14)
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.
(15)
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.
(16)
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.3Bagi 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.
(17)
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
(18)
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,
(19)
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
(20)
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
(21)
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
(22)
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
(23)
Kriptografi (cryptografi) merupakan ilmu dan seni untuk menjaga pesan agar
aman. Kriptografi (cryptografi) berasal dari bahasa Yunani yaitu ―Crypto” berarti
“secret” (rahasia) dan “graphy” berarti “writing” (tulisan). Para pelaku atau praktisi kriptografi disebut 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.
(24)
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.2Algoritma 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.1Kunci Simetris
Kunci Simetris adalah jenis kriptografi yang paling umum digunakan
(25)
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 ciphertext plaintext
kunci enkripsi (K) 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.2Kunci 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
(26)
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 ciphertext plaintext
kunci enkripsi (K1) 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.3Dasar 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
(27)
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 :
(28)
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 :
(29)
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:
(30)
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
(31)
1 = (840 – (13)64) 5 – (13) 3 = (840) 5 – (13) 323
6. Plaintext M = 123, 0 ≤ m ≤ n-1
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.
(32)
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.2Flowchart Enkripsi RSA
Start
Input Plainteks
Plainteks -> ASCII (desimal) = m
m<n Length mi=mi+1
Ci=Mi mod n
Cipherteks
End
Yes
No
Gambar 2.3 Flowchart Enkripsi RSA
(33)
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.3Flowchart Dekripsi RSA
Start
Cipherteks
Mi = Ci mod n
M=Mi+Mi+1
M -> ASCII
Plainteks
(34)
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.5Keamanan 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.
(35)
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.6Blowfish
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.
(36)
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 sub-algoritma 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 sub-kunci 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.1Enkripsi Algoritma Blowfish
Blowfish adalah cipher blok 64-bit yang memiliki sebuah kunci yang panjangnya variabel. Algoritma blowfish terdiri dari dua bagian yaitu key
(37)
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 32-bit. 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
(38)
Plaintext
F
F
13 iterasi lagi
F
P1
P2
P16
64 bit
32 bit 32 bit
32 bit
(39)
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 = xL Pi
xR = F(xL) xR
Swap (tukar) xL dan xR
Swap (tukar) xL dan xR (mengulang swap yang lalu)
xR = xR P17
xL = xL 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
32 bit 32 bit
(40)
Gambar 2.6 Fungsi F (Bruce Schenier: 1996)
2.2.6.2 Flowchart Enkripsi Blowfish
Start
For N=1 To (LenFile) step 8
Call GetWord(XI, ByteArray(), N) Call GetWord(Xr, ByteArray(),N+5)
Call EncrypBlok(XI,Xr)
Call PutWord(XI,ByteArray,N) Call PutWord(Xr,ByteArray,(), N+5)
Input ByteArray Into File
End
For 1=1 To 16
XI=XI for P(i)
Fr = F(XI) Xor Xr
Swap XI and Xr: Temp=XI
XI=Xr Xr=Temp
Swap XI and Xr to undo the last swap:
Temp=Xr XI=Xr Xr=Temp
Xr = Xr Xor P(17)
XI = XI Xor P(18)
(1)
(1)
Cat : (1) Skema Blok Enkripsi
Gambar 2.7 Flowchart Enkripsi denganBlowfish
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,
a b 32 bit 32 bit c S-Box 2 S-Box 1 S-Box 3 S-Box 4 8 bit d 8 bit 8 bit 8 bit 32 bit 32 bit 32 bit 32 bit
(41)
41 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.3Dekripsi Algoritma Blowfish
Dekripsi sama persis dengan enkripsi, kecuali bahwa P1, P2,…, P18 digunakan pada urutan yang berbalik
(reverse) [1, 7]. Blok diagram
dekripsi seperti pada gambar 4. 32 bit 32 bit 32 bit 32 bit 32 bit 32 bit Chipertext F F
13 iterasi lagi
F P18
32 bit 64 bit 32 bit
32 bit 32 bit P17 P3 P1 P2
(42)
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 di-XOR-kan ke separuh blok kiri antara setiap waktu, informasi ini digunakan sebagai input f-fungsi. Kenyataannya, kita mempunyai kebalikan yang pasti dari barisan dekripsi.
(43)
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
(44)
Start
For N = 1 To (LenFile) step 8
Call GetWord(XI, ByteArray(),N ) Call GetWord(Xr,ByteArray(),N+5)
Call Decrypt Blok (XI),Xr
Call PutWord(XI,ByteArray(),N) Call PutWord(Xr,ByteArray(),N+5)
Input Byte Array Int File
End
(1)
Cat : Skema Blok Dekripsi
Start
XI = XI Xor P(I)
Xr = F(XI) Xor Xr
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)
XI = XI Xor P(1)
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.
(45)
No Perbandingan Algoritma RSA Algoritma Blowfish 1. Kelebihan Sulit memfaktorkan bilangan
besar menjadi faktor prima
Memiliki tingkat keamanan yang bervariasi
2. Panjang kunci Panjang kunci lebih panjang Panjang kunci relatif pendek 3. Kunci Mempunyai kunci enkripsi dan
dekripsi berbeda
Mempunyai kunci enkripsi dan dekripsi sama
4. Keamanan Keamanan lebih terjamin karena kunci pribadi tidak pernah ditransmisikan
Keamanan kurang terjamin karena kunci harus ditransmisikan
5. Kecepatan Kecepatan proses lebih cepat Kecepatan proses lebih 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
(46)
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
(47)
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
(48)
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.
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.
State 1
(49)
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.
(50)
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.
(51)
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)
(52)
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)
(53)
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
(54)
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;
(55)
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
(56)
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.
(57)
2.5.4.2Delphi 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
(58)
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
(59)
Gambar 2.18 Memasukkan 14 serial number
(60)
Gambar 2.20 Pemilihan terhadap tipe instalasi
(61)
Gambar 2.22 Pemilihan terhadap sistem operasi yang digunakan
(62)
Gambar 2.24 Proses instalasi sedang dilakukan
(63)
Gambar 2.26 Backup file yang diperlukan untuk proses instalasi
(64)
Gambar 2.28 Proses instalasi component VisiBroker
(65)
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.
(66)
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.
(67)
Client-Server adalah arsitektur jaringan yang memisahkan
client(biasanya aplikasi yang menggunakan GUI ) dengan server.
Masing-masing 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
(68)
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.
(69)
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.
(70)
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
client-server backup dilakukan terpusat di client-server, yang akan membackup seluruh data yang digunakan di dalam jaringan.
(71)
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.
(72)
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
(73)
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
(74)
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
(75)
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.
(76)
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 data-data 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.2Studi 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.
(77)
Studi Literatur
Nama Judul Skripsi Kesimpulan
1. Sarlika Muliati
(Universitas Islam Negeri Syarif Hidayatullah Jakarta: 2008)
2. Prilia Lestari
(Univeristas Islam Negeri Syarif Hidayatullah Jakarta: 2008) Implementasi kriptografi dengan menggunakan Metode DES dan Kunci Publik RSA untuk keamanan data pada kandepag kota jakarta timur Implementasi digital envelope dengan menggunakan metode Blowfish dan RSA di PPPTMGB (Pusat Penelitian dan
Pengembangan Teknologi
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) 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
(78)
3. Achmad Nursoleh (Universitas Islam Negeri Syarif Hidayatullah Jakarta: 2010)
4.Prima Even Ramadhan (Universitas Islam Negeri Syarif Hidayatullah Jakarta:2009)
Minyak dan Gas Bumi
Aplikasi Email dengan
kriptografi DES, RSA, dan MD5 menggunakan bahasa pemograman java Evaluasi Kinerja Algoritma Lemvel-Ziv Store Szymanski terhadap data teks dan gambar
enc.enc(76kb), Sejarah lemigas(721kb)
1. Penerapan kriptografi 2. menggunakan algoritma
DES, RSA, dan MD5 untuk menjaga keamanan data email dan tidak mudah dibaca oleh 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 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,
(79)
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
(80)
Tabel 3.1 Studi Literatu r B er da sa rk an st ud i lit er at ur di 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
5. Alfie Aziz
(Universitas Islam Negeri Syarif Hidayatullah Jakarta:2009) Impelementasi Tanda Tangan Digital Menggunakan Metode Ong Schnorr Shamir dan Euclidean Pada Teks 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)
(1)
Gambar 4.61 Notebook yang dijadikan server
(2)
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
(3)
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.2Analisis 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.5Hasil 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 Subjek File Uji Subjek File verifikasi RSA Algoritm Blowfish Algoritm 1. Skripsi Hamzah_2.rtf
(370 Mb)
Skripsi Hamzah.rtf (370 Mb)
6 menit 9 menit 2. Kumpulan Skripsi.rar Kumpulan Skripsi.rar 30 detik 1 menit
(4)
(37 Mb) (37 Mb) 4. Laporan PKL.doc
(7 Mb)
Laporan PKL (7 Mb)
10 detik 15 detik 5. Leni&Guru2.jgp
(3.581 Kb)
Leni&Guru2.jpg (3.581 Kb)
3 detik 5 detik 6. Bee_Gees.mp4
(15 Mb) Bee_gees.mp4 (15 Mb) 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 MB)
1 detik 1 detik
2. Laporan Analisis.rtf (2 Mb)
3 detik 3 detik
3. Proposal.doc (1,5 Mb)
2 detik 2 detik
4. Reporting kantor.doc (2,5 Mb)
2 detik 4 detik
(5)
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.
(6)