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
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
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.
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
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
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
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
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
12
4.4.5 Hasil Penelitian ………...120
Bab V Penutup ………..122
5.1 Kesimpulan ………...122
5.2 Saran ……….122
DAFTAR PUSTAKA ………....123
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.
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.
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
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
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
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
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
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).
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)
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
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
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
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
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).
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)
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 = (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->æ
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
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 :
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.
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
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 P18
Plaintext
F
F
13 iterasi lagi
F
P1
P2
P16
P17 64 bit
32 bit 32 bit
32 bit
Gambar 2.5 Blok diagram Algoritma Enkripsi Blowfish
Blowfish adalah sebuah jaringan Feistel yang mempunyai 16 round. Inputnya adalah ( x ) element data 64-bit. Untuk mengenkripsi ( x ) yaitu
Bagi ( x ) dalam dua bagian 32-bit menghasil ( xL ) dan ( xR ).
Untuk i = 1 sampai 16 maka : xL = 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)
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,
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
42 Dengan
Gambar 2.8 Dekripsi algoritma Blowfish
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
Input Byte Array Int File
End
(1)
Cat : Skema Blok Dekripsi
Start
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.
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.
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
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
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.
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
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
procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private
{ Private declarations } public
var
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
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
Gambar 2.18 Memasukkan 14 serial number
60 Gambar 2.20 Pemilihan terhadap tipe instalasi
Gambar 2.22 Pemilihan terhadap sistem operasi yang digunakan
62 Gambar 2.24 Proses instalasi sedang dilakukan
Gambar 2.26 Backup file yang diperlukan untuk proses instalasi
64 Gambar 2.28 Proses instalasi component VisiBroker
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.
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.
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.
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:
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
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
perancangan, fase konstruksi dan fase pelaksanaan sebagai pengembangan sistemnya serta software Microsoft Visual Basic 6.0
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
Studi Literatur
Nama Judul Skripsi Kesimpulan
1. Sarlika Muliati
2. Aplikasi yang dibuat berbasis web.
78
1. Penerapan kriptografi 2. menggunakan algoritma
DES, RSA, dan MD5 untuk menjaga keamanan data email dan tidak mudah dibaca oleh kompresi terhadap file
teks maupun file
gambar. Untuk kasus file
teks, hasil kompresi maksimal tersebut diperoleh ketika file teks