Implementasi algoritma RSA dan Blowfish untuk enkripsi dan Dekripsi data menggunakan Delphi 7

(1)

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—ShamirAdleman) (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)