Aplikasi Keamanan Pengiriman Data pada Jaringan Local Area Network (LAN) Berbasis Algoritma Kriptografi Kombinasi Blowfish dan Twofish
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
NOVAN DWIANTO
10103848
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
(2)
iii Assalaamu’alaikum Wr.Wb.
Segala puji dan syukur penyusun panjatkan kehadirat Allah SWT karena berkat rahmat dan karunia-Nya penyusun dapat menyelesaikan Skripsi yang diberi judul ““APLIKASI KEAMANAN PENGIRIMAN DATA PADA JARINGAN LOCAL AREA NETWORK (LAN) BERBASIS ALGORITMA KRIPTOGRAFI KOMBINASI BLOWFISH DAN TWOFISH”.Banyak uluran tangan, bantuan dan bimbingan yang penulis terima dari berbagai pihak sejak dari tahap permulaan sampai tahap penyelesaian penyusunan Skripsi ini, oleh karena itu penulis menyampaikan rasa terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua (Bapak & Ibu) yang telah memberikan dukungan baik secara materi maupun spiritual
2. Yth. Bapak Dr. Ir. Eddy Suryanto Soegoto, M.Sc, selaku Rektor Universitas Komputer Indonesia.
3. Yth. Bapak Prof.Dr.Ir. H. Ukun Sastraprawira, M,Sc, Selaku Dekan Fakultas Teknik Dan Ilmu Komputer Universitas Komputer Indonesia. 4. Yth. Ibu Mira Kania Sabaraiah,S.T, M.T, Selaku Ketua Jurusan Teknik
Informatika Universitas Komputer Indonesia.
5. Yth. Ibu Dian Dharmayanthi, S.T Selaku Dosen Wali IF-4
6. Yth. Bapak Budhi Irawan, S.si, MT, Selaku Dosen Pembimbing yang telah banyak memberikan masukan dalam pembuatan Skripsi ini.
(3)
iv
8. Keluarga besar MAPALIGI UNIKOM, thank’s A lot for the support 9. Rekan – rekan Jurusan Informatika angkatan 2003, ayo maju…..!!!
10.Rekan – rekan satu bimbingan dan perjuangan, akan selalu teringat kisah perjuangan kita bro….!
11.Semua pihak yang telah membantu penulis, dengan berat hati tidak bisa disebutkan satu persatu.
Semoga segala bantuan yang telah diberikan kepada penulis mendapat balasan yang setimpal dari Allah SWT. Demikian laporan ini penulis susun dengan harapan dapat bermanfaat bagi penulis khususnya dan bagi seluruh pembaca umumnya.
Bandung, Februari 2009
(4)
v LEMBAR JUDUL
LEMBAR PENGESAHAN
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI... v
DAFTAR TABEL ... ix
DAFTAR GAMBAR ... x
DAFTAR SIMBOL ... xiii
DAFTAR LAMPIRAN ... xv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 3
1.3 Maksud Dan Tujuan ... 3
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 4
1.6 Sistematika Penulisan ... 6
BAB II LANDASAN TEORI ... 7
2.1 Keamanan Jaringan Komputer ... 7
(5)
vi
2.3 Kriptografi Klasik Dan Kriptografi Modern ... 16
2.3.1 Kriptografi Klasik ... 16
2.3.2 Kriptografi Modern ... 18
2.4 Jenis – jenis Algoritma Kriptografi ... 19
2.4.1 Algoritma Simetris ... 19
2.4.2 Algoritma Asimetris ... 20
2.5 Blok Chiper dan Stream Chipe ... 20
2.5.1 Blok Chiper ... 20
2.5.1.1 Mode Operasi Blok Chiper ... 21
2.5.2 Stream Chiper ... 25
2.5.3 Desain Chiper ... 26
2.6 Blowfish... 26
2.6.1 Deskripsi Blowfish ... 26
2.6.2 Algoritma Blowfish ... 28
2.6.3 Keamanan Blowfish... 31
2.7 Twofish ... 32
2.7.1 Deskripsi Twofish ... 32
2.7.2 Algoritma Twofish ... 33
2.7.3 Proses Whitening ... 37
(6)
vii
3.1.2 Kebutuhan Perangkat ... 43
3.1.2.1 Perangkat Keras ... 43
3.1.2.2 Perangkat Lunak ... 43
3.1.3 Analisis Data ... 44
3.1.4 Analisis Pengiriman Data Dan Keamanan Jaringan ... 44
3.1.5 Analisis Pengguna ... 46
3.2 Langkah – Langkah Penyelesaian ... 46
3.2.1 Pengiriman File / Data ... 46
3.2.2 Penerimaan File / Data ... 47
3.3 Perancangan Sistem ... 47
3.4 Perancangan Proses ... 52
3.4.1 Flowchart Proses Enkripsi dan dekripsi Blowfish ... 53
3.4.2 Flowchart Proses Enkripsi dan dekripsi Twofish ... 57
3.5 Perancangan Interface Aplikasi Kriptografi ... 61
3.5.1 Interface Aplikasi Enkripsi dan Dan Kirim ... 61
3.5.1 Interface Aplikasi Dekripsi ... 63
BAB IV IMPLEMENTASI APLIKASI ... 66
4.1 Pengujian Sistem ... 66
4.1.1 Pengujian Alpha ... 66
(7)
viii
4.3 Pengujian Aplikasi ... 76
4.3.1 Uji Coba Enkripsi Dan Kirim ... 77
4.3.2 Uji Coba Dekripsi ... 82
BAB V KESIMPULAN DAN SARAN ... 86
5.1 Kesimpulan ... 86
5.2 Saran ... 86
(8)
i
PADA JARINGAN
LOCAL AREA NETWORK (LAN)
BERBASIS ALGORITMA KRIPTOGRAFI
KOMBINASI
BLOWFISH
DAN
TWOFISH
Oleh
NOVAN DWIANTO
10103848
Keamanan data adalah sesuatu yang sangat penting didalam sebuah jaringan
komputer, salah satunya adalah jaringan
Local Area Network (LAN).
Di dalam sebuah
jaringan memungkinkan untuk melakukan sebuah pertukaran data antara satu dan
yang lainnya serta memungkinkan juga untuk melakukan penyelewengan data yang
dilakukan oleh pihak – pihak yang tidak berhak untuk menerima data tersebut.
Dalam
dunia keamanan komputer dikenal sebuah teknik kriptografi sebagai keamanan data.
Didalam kriptografi modern saat ini dikenal algoritma
Blowfish
dan
Twofish
yang
telah teruji keamanannya oleh beberapa kriptanalis
.
Algoritma kriptografi
Blowfish
merupakan algoritma kunci simetrik
chipper blok
dengan panjang blok tetap sebesar
64
bit
. Sedangkan algoritma
Twofish
merupakan algoritma kunci simetrik yang
mempunyai panjang blok tetap sebesar 128
bit
. Maka dari itu penulis bermaksud
untuk melakukan kombinasi antara algoritma
Blowfish
dan
Twofish
dalam enkripsi
maupun dekripsi.
(9)
ii
AT LOCAL AREA NETWORK ( LAN)
BASE ON ALGORITHM CRYPTOGRAPHY
COMBINATION OF BLOWFISH AND TWOFISH
By
NOVAN DWIANTO
10103848
Data security is something that of vital importance in a computer network, one of
them is Local Area of Network ( LAN). In a conducive network to conduct a transfer
of data among one and the other and also enable also to conduct deviation of data
conducted side by side which have no business to accept the data. In the world of
computer security recognized by a technique of cryptography as data security. In
modern cryptography is in this time recognized by algorithm of Blowfish and Two
fish which have been tested by its security by some cryptanalyst. algorithm of
Cryptography Blowfish represent symmetrical key algorithm [of] block chipper with
block length remain to equal to 64 beet. While algorithm of Two fish represent
symmetrical key algorithm which have block length remain to equal to 128 beet.
Hence from that writer have an eye to conduct combination among algorithm of
Blowfish and of Two fish in and also encrypt or decrypt
.(10)
1 1.1 Latar Belakang
Perkembangan teknologi yang begitu pesat, khususnya dibidang teknologi informasi yang memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi atau data. Seiring dengan kemajuan teknologi informasi maka sangatlah diperlukan sebuah sekuritas atau keamanan terhadap kerahasiaan sebuah informasi atau data yang saling dipertukarkan. Dalam hal ini komunikasi atau pertukaran data yang menggunakan layanan media jaringan komputer Local Area Network (LAN) , karena dengan menggunakan media jaringan komputer Local Area Network (LAN) dapat berbagi atau bertukar data antara seorang user dengan
user yang lain dalam satu areal yang terkoneksi jaringan komputer Local Area Network (LAN). Oleh karena itu didalam dunia informatika dikenal dengan cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau lebih dikenal dengan istilah Kriptografi.
Didalam keamanan jaringan komputer khususnya jaringan komputer Local Area Network (LAN). Memungkinkan untuk berbagi dan sharing document
penting dengan user yang lainnya. Maka untuk mengamankan document atau data yang bersifat penting dan mengatasi hal – hal diatas diperlukannya sebuah cara untuk mengamankan suatu data atau informasi dengan menggunakan teknik kriptografi. Saat ini sudah banyak berkembang algoritma kriptografi yang mendukung untuk mengamankan suatu data atau informasi yang kita punya dari
(11)
orang atau pihak yang tidak berhak untuk mengakses data atau informasi tersebut. Didalam ilmu kriptografi modern dikenal dengan algoritma kriptografi Blowfish
dan Twofish, keduanya dirancang oleh orang yang sama yaitu Bruce Schneier. Namun keduanya berasal dari masa yang berbeda. Blowfish merupakan algoritma yang lebih tua, ia dirancang pada tahun 1993, sedangkan Twofish tahun 1997.
kedua algoritma tersebut termasuk dalam kategori kunci Chiper Blok yang banyak digunakan pada saat ini. Kedua algoritma ini beroperasi pada blok
bit dan kedua algoritma ini banyak digunakan karena merupakan algoritma kunci simetri yang kuat terhadap serangan. Seperti yang diungkapkan oleh Bruce Scheneier [SCH95] dalam sebuah jurnal yaitu Dr Dobb’s Journal yang berjudul Encryption Algorhitm-One Year Later diungkapkan bahwa Blowfish memiliki keunggulan dari beberapa algoritma kriptografi lainnya dari segi keamanan serta telah dianalisa dan diuji oleh beberapa Cryptanalyst kedalam beberapa sistem.
Dari latar belakang diatas penulis mencoba untuk membahas mengenai algoritma kriptografi Blowfish dan Twofish, dengan mengambil tema “APLIKASI KEAMANAN PENGIRIMAN DATA PADA JARINGAN LOCAL AREA NETWORK
(LAN) BERBASIS ALGORITMA KRIPTOGRAFI KOMBINASI BLOWFISH
DAN TWOFISH”. Dalam tema skripsi ini membahas mengenai keamanan dalam pengiriman data melalui media jaringan Local Area Network (LAN) dengan menggunakan algoritma Blowfish dan Twofish.
(12)
1.2 Identifikasi Masalah
Identifikasi masalah dalam penulisan tugas akhir ini adalah bagaimana membangun aplikasi sebuah keamanan data dengan menggunakan algoritma kriptografi Blowfish dan Twofish pada saat proses enkripsi suatu data yang akan digunakan untuk keamanan pada saat pengiriman data melalui media jaringan
Local Area Network (LAN).
1.3 Maksud Dan Tujuan
Maksud dari penulisan Tugas akhir ini adalah membuat sebuah aplikasi untuk kemanan pengiriman data dengan menggunakan algoritma kriptografi Blowfish dan
Twofish.
Sedangkan tujuan dari penulisan Tugas Akhir ini adalah membuat aplikasi yang relatif aman didalam pengiriman suatu data pada jaringan Local Area Network (LAN).
1.4 Batasan Masalah
Adapun batasan masalah yang dapat dilakukan agar pembahasan ini lebih terarah, yaitu :
1. Algoritma kriptografi yang digunakan pada proses enkripsi dan dekripsi data adalah Blowfish 64 bit dan Twofish 128 bit.
2. Perangkat lunak (Software) yang digunakan dalam perancangan aplikasi adalah Visual Basic 6.0.
3. Hardware atau perangkat keras yang digunakan untuk pembuatan aplikasi ini adalah satu buah paket komputer dengan spesifikasi sebagai berikut:
(13)
a. Pentium III 800 Mhz b. RAM 128 MB c. Hardisk 10 GB
d. Kabel UTP (Unshielded Twisted Pair) dan konektor RG 45
4. Jenis data yang akan diuji enkripsi serta dekripsi yaitu jenis fileTxt, Doc, JPG, Mp3 dan Mpeg.
5. Pengujian aplikasi di uji pada sebuah jaringan Local Area Network (LAN), dengan model hubungan Peer to peer.
6. Sistem operasi yang digunakan pada saat pengujian aplikasi yaitu menggunakan sistem operasi berbasis Windows XP.
1.5 Metodologi Penelitian
Metode yang digunakan untuk membahas kriptografi Blowfish dan Twofish
ini adalah meliputi studi literatur dan pengumpulan data serta melakukan uji coba dari kriptografi Blowfish dan Twofish itu sendiri. Studi literatur digunakan untuk mempelajari dan memperdalam materi dasar dan terapan baik yang berkaitan dengan landasan teori maupun aplikasi. Pengumpulan data dilakukan dengan mengumpulkan data yang dibutuhkan dalam perancangan aplikasi. Perancangan Aplikasi yang dibangun sesuai dengan batasan yang telah ditentukan dengan menggunakan pendekatan terstruktur model “Classic Life Cycle” atau waterfall :
(14)
Gambar 1.1 Diagram waterfall
Keterangan Paradigma Waterfall sebagai berikut : 1. Tahap Analisis
Kegiatan-kegiatan yang dilakukan pada tahap analisis ini yaitu mengumpulkan data dan menganalisa sistem.
2. Tahap Desain
Kegiatan-kegiatan yang dilakukan pada tahap desain ini yaitu melakukan proses desain terhadap hasil yang didapat dari tahap analisis.
3. Tahap Pengkodean / coding
Kegiatan-kegiatan yang dilakukan pada tahap pengkodean ini yaitu memulai dalam pembuatan program untuk membangun suatu sistem.
4. Tahap Ujicoba / testing
Pada tahap ujicoba ini berisikan hal-hal yang mencakup pengujian program yang sudah dibuat.
5. Tahap Pemeliharaan / maintenance
Pada tahap pemeliharaan ini berisikan hal pemeliharaan perangkat lunak (software) yang sudah tersedia agar dapat berjalan dengan baik.
Analisis
Coding
Testing
Desain
(15)
1.6 Sistematika Penulisan
Untuk memberikan gambaran yang jelas mengenai penyusunan Tugas akhir ini, maka ditetapkan sistematika penulisan sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi latar belakang, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi tentang teori-teori yang melandasi dari permasalahan yang sedang dibahas.
BAB III ANALISIS DAN PERANCANGAN APLIKASI
Bab ini menjelaskan mengenai analisa dan rancangan dari aplikasi yang akan dirancang berdasarkan teori.
BAB IV IMPLEMENTASI APLIKASI
Bab ini berisi tahap implementasi dari sebuah aplikasi serta pengujian dari aplikasi yang telah dibuat.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang di dapat selama penulisan laporan tugas akhir dari pembahasan masalah, selain itu juga berisi saran untuk perbaikan dan menindak lanjuti hasil penelitian.
(16)
7 2.1 Keamanan jaringan Komputer
Keamanan data atau informasi adalah sesuatu hal yang sangat penting dalam suatu jaringan komputer, karena pada suatu jaringan komputer memungkinkan kita untuk dapat saling bertukar data atau informasi. Untuk menjaga keamanan dalam pertukaran data atau informasi maka dibutuhkannya suatu sistem keamanan yang dapat menjaga keutuhan dari data tersebut dari serangan atau gangguan dari pihak – pihak yang tidak berhak untuk mengakses data atau informasi tersebut. Dalam hal ini keamanan jaringan yang sedang dibahas merupakan jaringan kom-puter Local Area Network (LAN), dengan menggunakan teknik keamanan kripto-grafi.
2.1.1 Local Area Network (LAN)
Kebutuhan akan komunikasi untuk komputer muncul pada tahun 1940-an dan 1950-an yang merupakan konsep dasar dari sebuah jaringan computer. Tahun 1960-an lahir konsep timesharing, dimana pengguna dihubungkan kekomputer melalui suatu dumb terminal.
Pada tahun 1970-an, teknologi IC (Integrated Circuit) dan mikroprosesor mulai berkembang sehingga memungkinkan munculnya komputer pribadi yang dapat dipasang di rumah-rumah. Dengan adanya perkembangan teknologi tersebut dapat mengubah cara pandang orang terhadap komputer. Tahun 1980-an muncul
(17)
teknologi jaringan lokal (Local Area Network-LAN) yang memiliki kemampuan berkomunikasi dengan komputer lainnya.
2.1.2 Model Hubungan Peer-to-Peer
Model jaringan komputer Peer-to-Peer merupakan model jaringan yang ti-dak memiliki sebuah file server atau sumber daya yang terpusat. Didalam hubun-gan Peer-to-Peer ini, seluruh komputer adalah sama, yaitu mempunyai kemam-puan yang sama untuk memakai sumber daya yang tersedia didalam jaringan (Budhi Irawan – Jaringan Komputer). Berikut dibawah ini pada gambar 2.1 me-rupakan gambaranm dari model hubungan jaringan Peer-to-Peer :
(18)
2.2Teori Dasar Kriptografi
Kriptografi dalam sejarahnya tercatat telah dipergunakan oleh bangsa Mesir 4000 tahun lalu. Kriptografi (Cryptography) berasal dari dua kata yaitu “Crypto & graphy” yang dalam sudut bahasa “Crypto” dapat diartikan rahasia (secret) dan
“graphy” dapat diartikan tulisan (writing) jadi Kriptografi (Cryptography) dapat diartikan sebagai suatu ilmu atau seni untuk mengamankan pesan agar aman dan dilakukan oleh “Cryptographer”. Secara umum adalah ilmu dan seni untuk men-jaga kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain penger-tian tersebut terdapat pula pengerpenger-tian ilmu yang mempelajari teknik-teknik mate-matika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Orang yang me-lakukan enkripsi terhadap suatu pesan atau praktisi kriptogragi disebut “Crypto-grapher”. Sebuah pesan yang tidak disandikan atau dienkripsi disebut sebagai
plaintext atau disebut juga sebagai cleartext. Sedangkan pesan yang telah disandi-kan dengan sebuah algoritma kriptografi disebut sebagai ciphertext. Proses untuk mengubah plaintext ke chipertext disebut encryption atau encipherment. Sedang proses mengubah chipertext ke plaintext disebut decryption atau decipherment. Pada gambar 2.2 digambarkan diagram proses enkripsi dan dekripsi, dengan gam-bar sebagai berikut :
(19)
Gambar 2.2 diagram proses enkripsi dan dekripsi
Fasilitas untuk mengkonversikan sebuah plaintext ke ciphertext atau sebaliknya disebut Cryptographic system atau Cryptosystem dimana sistem tesebut terdiri dari algoritma–algorima tertentu yang tergantung pada sistem yang digunakan. Algoritma kriptografi (cryptographic algorithm) disebut cipher yang merupakan persamaan matematik yang digunakan dalam proses enkripsi dan deskripsi dimana proses tersebut diatur oleh satu atau lebih kunci kriptografi. Kunci-kunci tersebut secara umum digunakan untuk proses pengenkripsian dan pendekripsian tidak per-lu identik, tergantung sistem yang digunakan. Dengan kata lain tugas utama dalam kriptografi adalah untuk menjaga plaintext (data asli) maupun key (kunci) tetap terjaga kerahasiaannya.
Proses enkripsi dan deskripsi secara matematis diterangkan sebagai berikut : EK (M) = C (Proses Enkripsi) (2.1) DK (C) = M (Proses Deskripsi) (2.2) Keterangan :
EK : Enkripsi. DK : Dekripsi.
M : Message (Pesan sebelum dienkripsi). C : Cipher (Pesan setelah dienkripsi).
(20)
Berikut adalah istilah – istilah yang digunakan dalam ilmu kriptografi :
a. Plaintext adalah pesan asli yang akan dienkripsi yang biasa disimbolkan den-gan (M).
b. Chipertext adalah sebuah pesan yang telah dienkripsi atau disandikan dan dis-imbolkan dengan (C).
c. Enkripsi adalah proses untuk merubah plaintext menjadi chipertext disimbol-kan dengan (E).
d. Dekripsi adalah proses untuk merubah chipertext menjadi plaintext, atau meru-bah sebuah data yang tersandikan menjadi data asli. Disimbolkan dengan (D). e. Key / kunci adalah sebuah bilangan yang dirahasiakan dalam suatu proses
en-kripsi dan deen-kripsi.
Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkrip-si) menggunakan e (kunci enkrip(enkrip-si) pada M (plaintext) sehingga dihasilkan C (ci-phertext), notasinya :
Ee(M) – C (2.3)
Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M
(plaintext), notasinya :
Dd(C) = M (2.4)
Sehingga dari dua hubungan diatas berlaku :
Dd(Ee(M)) = M (2.5)
Tujuan dari adanya enkripsi adalah untuk meningkatkan keamanan data tetapi ju-ga berfungsi untuk :
(21)
1. Melindungi data agar tidak dapat dibaca oleh orang-orang yang tidak berhak.
2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atau mengahapus data.
Sedangkan tujuan dari sistem kriptografi adalah sebagai berikut :
1. Confidentiality
Memberikan kerahasiahan pesan dan menyimpan data dengan menyembu-nyikan informasi lewat teknik-teknik enkripsi.
2. Message Integrity
Memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mengala-mi perubahan dari saat ia dibuat sampai saat ia dibuka.
3. Non-repudiation
Memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang apabila ia mencoba menyangkal memiliki dokumen tersebut.
4. Authentication
Memberikan dua layanan. Pertama mengidentitifikasi keaslian suatu pesan dan memberikan jaminan keontentikannya. Kedua untuk menguji identitas seseorang apabila ia akan memasuki sebuah sistem.
(22)
Terdapat tiga kategori enkripsi yaitu :
1. Kunci enkripsi rahasia / private, dalam hal ini terdapat sebuah kunci yang digunakan untuk mengenkripsi dan juga sekaligus mendeskripsikan informasi.
2. Kunci enkripsi public, dalam hal ini terdapat dua kunci yang digunakan, satu untuk proses enkripsi, satu lagi untuk proses deskripsi.
3. Fungsi one-way, dimana informasi dienkripsi untuk menciptakan “signature” dari informasi asli yang bisa digunakan untuk keperluan autentifikasi.
Dalam Cryptosystem menurut teknik enkripsinya dapat digolongkan menjadi dua buah, yaitu :
1. Symmetric Cryptosystem ( Enkripsi Konvensional)
Dalam symmetric cryptosystem, kunci yang digunakan dalam proses enkripsi dan dekripsi adalah sama atau pada prinsipnya identik. Kunci ini pun bisa ditu-runkan dari kunci lainnya. Oleh karena itu sistem ini sering disebut secret-key ciphersystem.
Jumlah kunci yang dibutuhkan umumnya adalah :
nC2= n.(n-1) (2.6)
--- 2 Dimana n adalah banyaknya pengguna.
Kunci yang menggunakan teknik enkripsi ini harus betul-betul dirahasiakan, berikut dibawah ini merupakan penjelasan dari proses enkripsi konvensional yang digambarkan pada gambar 2.3 :
(23)
Gambar 2.3 proses enkripsi konvensional
2. Assymmetric Cryptosystem (Enkripsi public-key)
Dalam Assymmetric cryptosystem, kunci yang digunakan terdapat dua buah. Satu kunci yang dapat dipublikasikan disebut kunci publik (public key), satu lagi kunci yang harus dirahasiakan disebut kunci privat (private key).
Secara sedehana proses tersebut diterangkan sebagai berikut : a. A mengirimkan pesan kepada B.
b. A menyandikan pesannya dengan menggunakan kunci publik B.
c. Bila B ingin membaca pesan dari A, ia harus menggunakan kunci privat-nya untuk mendekripsikan pesan yang tersandikan itu.
Dibawah ini merupakan penjelasan dari proses enkripsi public key pada gambar 2.4 berikut ini :
(24)
2.2.1 Kriptanalisis
Cryptanalysis atau analisis sandi adalah ilmu untuk mendapatkan plaintext
pesan tanpa harus mengetahui kunci secara wajar [Yusuf kurniawan – kriptografi keamanan internet dan jaringan komunikasi]. Pemecahan sandi rahasia yang ber-hasil akan mengber-hasilkan plaintext atau kunci. Analisis sandi juga dapat menemu-kan kelemahan dalam kriptosistem, dengan kata lain analisis sandi merupamenemu-kan ke-balikan dari kriptografi. Usaha analisis sandi disebut juga dengan attack (seran-gan). Asumsi dasar dalam analisis sandi diungkapkan pertama kali oleh Dutchman A Kerckhoffs pada abad ke – 19, yaitu bahwa kerahasiaan harus terletak pada kunci. Kerckhoffs mengasumsikan bahwa analisis sandi mempunyai detil lengkap algoritma kriptografi dan implementasinya.
Lars Knudsen menggolongkan berbagai macam jenis pemecahan algoritma : 1. Total break, seorang analis berhasil menemukan kunci, K yang digunakan
untuk melindungi data – data, sedemikian sehingga Dk (C)= P.
2. Global deduction, analis sandi mendapatkan algoritma alternative, A, yang ekivalen dengan Dk (C), tanpa mengetahui K.
3. Instance (local)deduction, analis sandi mendapatkan plaintext atau chiper-text yang disadap.
4. Information deduction, analis sandi memperoleh beberapa informasi men-genaikunci atau plaintext.
(25)
Terdapat beberapa cara untuk mengukur kompleksitas serangan, yaitu :
1. Data Complexity, yaitu jumlah data yang diperlukan sebagai input attack. 2. Processing Complexity, lama waktu yang tersedia untuk melakukan attack. 3. Storage Requipments, jumlah memori yang dibutuhkan untuk melakukan
attack.
2.3 Kriptografi Klasik Dan Kriptografi Modern
2.3.1 Kriptografi klasik
Kriptografi klasik merupakan kriptografi yang berbasis karakter, sebutan kriptografi klasik merupakan kriptografi yang dipakai pada jaman romawi. Sejak jama romawi yang dipimpin oleh Yulius Caesar telah menggunakan teknik krip-tografi ini yang sekarang dianggap kuno dan sangat mudah untuk dibobol. Dalam kriptografi klasik jaman romawi masih menggunakan pena dan kertas saja karena belum terdapat komputer pada saat itu. Kriptografi klasik tergolong kedalam krip-tografi kunci simetrik.
Teknik kriptografi yang digunakan pada kriptografi klasik yaitu : 1. Teknik subtitusi
Teknik subtitusi merupakan penggantian setiap karakter plaintext dengan ka-rakter lain. Didalam teknik subtitusi kriptografi klasik terdapat beberapa isti-lah, diantaranya yaitu :
a. Monoalfabet, merupakan setiap karakter chipertext mengganti satu macam karakter pada plaintext.
(26)
b. Polyalfabet, setiap karakter chipertext dapat mengganti lebih dari satu macam karakter plaintext.
c. Monograf / unilateral, satu enkripsi dilakukan terhadap satu karakter
plaintext.
d. Polygraf / multilateral, satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext sekaligus.
Chipper subtitusi yang paling lama dikenal dengan nama subtitusi Yulius Caesar. Berikut dibawah ini merupakan contoh dari subtitusi, Dalam hal ini kun-cinya adalah jumlah pergeseran huruf (yaitu k = 3) :
Tabel substitusi:
pi : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ci : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Plaintext (pesan yang akan ditulis) : KRIPTOGRAFI
Maka chipertext (pesan yang telah dienkripsi) menjadi : NULSWRJUDIL
2. Teknik Transposisi
Pada cipher transposisi, plainteks tetap sama, tetapi urutannya diubah. Den-gan kata lain, algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut. Untuk meng-enkripsi pesan, plaintext ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter (kunci k = 6), sedangkan chipertext dibaca secara vertikal.
(27)
Plaintext : ILMU KRIPTOGRAFI DUA Maka Chipertext : ILMUKR
IPTOGR AFIDUA
Maka chipertext dibaca vertikal menjadi : IIALPFMTIUODKGURRA
2.3.2 Kriptografi Modern
Kriptografi modern merupakan kriptografi yang sering digunakan di era komputer modern sekarang ini. Kriptografi modern dalam pengoperasiannya be-roperasi pada bit, dan kunci, plaintext, chipertext diproses dalam rangkaian bit. Perkembangan kriptografi modern didorong karena penggunaan komputer digital untuk keamanan suatu data atau pesan.
Dalam kriptografi modern, pesan dalam rangkaian bit dipecah menjadi be-berapa blok. Seperti contoh dibawah ini dalam pemecahan bit kedalam blok :
Plaintext : 110010100010
Bila dibagi kedalam blok 4 – bit maka menjadi 1100 1010 0010
Maka setiap blok menyatakan bilangan 0 sampai dengan 15, menjadi : 12 10 2
(28)
2.4 Jenis – jenis Algoritma Kriptografi 2.4.1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kun-ci enkripsi yang digunakan sama dengan kunkun-ci dekripsi sehingga algoritma ini dis-ebut juga sebagai single-key algorithm.
Sebelum melakukan pengiriman pesan, pengirim dan penerima harus me-milih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini harus-lah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm). Yang termasuk dalam algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain – lain.
Berikut kelebihan dari algoritma simetris :
a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris. b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem
real-time.
Berikut kelemahan dari algoritma simetris :
a. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci ter-sebut.
b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “keydistribution problem”
(29)
2.4.2 Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (pri-vate key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.yang termasuk dalam algorit-ma kunci asimetri adalah ECC, LUC, RSA, El Gaalgorit-mal dan DH.
Berikut kelebihan algoritma asimetris :
a. Masalah keamanan pada distribusi kunci dapat lebih baik
b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih se-dikit.
Kelemahan dari algoritma asimetris :
a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.
2.5 Blok Chiper Dan Stream Chiper
2.5.1 Blok Chiper
Chipper blok adalah algoritma kriptografi yang beroperasi dalam bentuk blok bit. Proses enkripsi dilakukan dalam blok bit plaintext menggunakan kunci yang berukuran sama dengan ukuran blok plaintext. Pada algoritma ini akan mengha-silkan chipertext yang sama dengan blok plaintext.
(30)
2.5.1.1 Mode Operasi Blok Chiper
Pada algoritma kriptografi yang beroperasi pada blok dikenal dengan bebe-rapa mode operasi, yaitu :
1. Electronic Code Book (ECB)
Pada mode Electronic Code Book (ECB) sebuah blok input pada plaintext di-enkripsi secara individual dan independen menjadi blok chipertext. Secara matematis proses enkripsi dan dekripsi pada mode ECB yaitu :
Proses enkripsi : Ci = Ek (Pi) (2.7)
dan proses dekripsi : Pi = Dk (Ci) (2.8)
Dalam hal ini Pi dan Ci merupakan blok plaintext dan chipertext ke – i. Berikut dibawah ini penjelasan dari skema enkripsi dan dekripsi pada mode ECB yang dijelaskan pada gambar 2.5 :
Gambar 2.5 skema enkripsi dan dekripsi pada mode ECB
(31)
2. Chipper Blok Chaining (CBC)
Pada mode operasi CBC, hasil dari proses enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi selanjutnya, atau enkripsi sebelumnya menjadi
feedback pada enkripsi blok saat itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya tapi bergantung pula pada blok-blok plaintext
sebelumnya. Sehingga untuk plaintext yang sama, belum tentu menghasilkan ci-phertext yang sama pula. Secara matematis proses enkripsi dan dekripsi dapat dinyatakan sebagai berikut :
Proses Enkripsi Ci = EK(Pi⊕Ci-1) (2.9)
Proses dekripsi Pi = DK(Ci) ⊕Ci-1 (2.10)
Berikut dibawah ini merupakan skema dari mode operasi CBC, yang di-gambargakan pada gambar 2.6 :
Ek Ek
⊕ ⊕
Enkripsi :
Kunci K
Pi 1
Ci 1 Ci
Pi
Dk Dk
⊕ Kunci K
Pi 1 Pi
Ci Ci 1
Ci 1
Dekripsi :
(32)
3. Chiper Feed Back (CFB)
Jika pada mode CBC, plaintext sebesar n bit diproses dalam sekali waktu (menggunakan sebuah n bit cipher blok), beberapa aplikasi mengharuskan r bit plaintext untuk dienkripsi terlebih dahulu dan ditransmisikan bebas delay, untuk r < n (biasanya r = 1 atau r = 8); dalam kasus ini CBF digunakan. Da-lam mode ini juga melibatkan penggunaan initializing vector (IV). Secara ma-tematis proses enkripsi dan dekripsinya dinyatakan sebagai berikut :
Proses enkripsi :
Ci= Pi ⊕MSBm( EK(Xi)) (2.11) Xi+1= LSBm-n(Xi) || Ci (2.12)
Proses dekripsi :
Pi= Ci ⊕MSBm( DK(Xi)) (2.13) Xi+1= LSBm-n(Xi) || Ci (2.14)
Keterangan:
Xi = isi antrian dengan X1 adalah IV E = fungsi enkripsi
K = kunci
M = panjang blok enkripsi N = panjang unit enkripsi
(33)
|| = operator penyambungan (concatenation) MSB = Most Significant Byte
LSB = Least Significant Byte
Gambar 2.7 dibawah ini merupakan penjelasan dari mode operasi CFB :
⊕
Gambar 2.7 skema enkripsi dan dekripsi mode operasi CFB
4. Output Feed Back (OFB)
Pada mode OFB bekerja mirip dengan mode CFB, kecuali n – bit dari hasil enkripsinya. Secara matematis proses enkripsi dan dekripsi pada mode OFB n - bit dapat dinyatakan sebagai berikut :
Proses enkripsi :
Ci= Pi ⊕MSBm( EK(Xi)) (2.15) Xi+1= LSBm-n(Xi) || MSBm( EK(Xi)) (2.16)
(34)
Proses dekripsi :
Pi= Ci ⊕MSBm( DK(Xi)) (2.17) Xi+1= LSBm-n(Xi) || MSBm( EK(Xi)) (2.18)
Gambar 2.8 dibawah ini merupakan penjelasan dari mode operasi OFB :
⊕
Gambar 2.8 skema enkripsi dan dekripsi mode operasi OFB
2.5.2 Stream Chiper
Stream Chiper adalah chipper yang berasal dari hasil XOR antara setiap bit plaintext dengan setiap bit kuncinya. jadi format data berupa aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.
(35)
2.5.3 Desain Chiper
Terdapat dua buah prinsip dasar dalam mengghasilkan Chiper yang aman, yaitu :
1. Confusion yaitu mengaburkan hubungan antara plaintext dan chipertext. ca-ra yang dapat dilakukan dalam prinsip confusion adalah dengan substitusi. 2. Diffusion yaitu menghilangkan redudansi plaintext dengan menyebarkan
masukan keseluruh chipertext. Diperlukan waktu yang lama dalam meme-cahkan sandi rahasia ini, cara yang dilakukan dalam prinsip diffusion yaitu transposisi dan permutasi.
2.6 Blowfish
2.6.1 Deskripsi Blowfish
Blowfish atau "OpenPGP.Cipher.4" merupakan enkripsi yang termasuk dalam golongan Symetric Cryptosystem, metoda enkripsinya mirip dengan DES (DES-like Cipher) ditemukan oleh seorang Cryptanalyst bernama Bruce Schneier Presiden perusahaan Counterpane Internet Security, Inc (Perusahaan konsultan tentang kriptografi dan keamanan Komputer) dan dipublikasikan tahun 1994. Di-buat untuk digunakan pada komputer yang mempunyai microprocesor besar (32-bit keatas dengan cache data yang besar).
Blowfish dikembangkan untuk memenuhi kriteria desain yang cepat dalam implementasinya dimana pada keadaan optimal dapat mencapai 26 clock cycle per byte, dimana dapat berjalan pada memori kurang dari 5 KB, sederhana dalam al-goritmanya sehingga mudah diketahui kesalahannya, dan keamanan yang variabel
(36)
dimana panjang kunci bervariasi (minimum 32 bit, maksimum 448 bit, Multiple 8
bit, default 128 bit). Blowfish dioptimasikan untuk berbagai aplikasi dimana kunci tidak sering berubah, seperti pada jaringan komunikasi atau enkripsi secara oto-matis. Dalam pengimplementasiannya dalam komputer bermicroprosesor 32-bit
dengan cache data yang besar (Pentium dan Power PC) Blowfish terbukti jauh le-bih cepat dari DES. Tetapi Blowfish tidak cocok dengan aplikasi dengan peruba-han kunci yang sering atau sebagai fungsi hash satu arah seperti pada aplikasi
packet switching. Blowfish pun tidak dapat digunakan pada aplikasi kartu pintar (smart card) karena memerlukan memori yang besar.
Blowfish termasuk dalam enkripsi block Cipher 64-bit dangan panjang kunci yang bervariasi antara 32-bit sampai 448-bit.Algoritma Blowfish terdiri atas dua bagian :
1. Key-Expansion
Berfungsi merubah kunci (Minimum 32-bit, Maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168 byte.
2. Enkripsi Data
Terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali pu-taran. Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi kunci- dan data-dependent. Semua operasi adalah penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran.
(37)
2.6.2 Algoritma Blowfish
Blowfish merupakan algoritma kriptografi kunci simetrik chiper blok den-gan panjang blok tetap sepanjang 64 bit. Blowfish menerapkan teknik kunci yang berukuran sembarang. Ukuran kunci yang dapat diterima adalah sepanjang 32 bit
sampai 448 bit, dengan ukuran default sebesar 128 bit.
Blowfish adalah algoritma yang menerapkan jaringan Feistel (Feistel Net-work) yang terdiri dari 16 putaran. Input adalah elemen 64-bit,X.Untuk alur algo-ritma enkripsi dengan metoda Blowfish dijelaskan sebagai berikut :
1. Bentuk inisial P-array sebanyak 18 buah (P1,P2,...P18) masing-msing bernilai 32-bit.
Array P terdiri dari delapan belas kunci 32-bit subkunci :
P1,P2,...,P18 (2.19)
2. Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang memiliki masukan 256.
Empat 32-bit S-box masing-masing mempunyai 256 entri :
S1,0,S1,1,...,S1,255 (2.20)
(38)
S3,0,S3,1,...,S3,255 (2.22)
S4,0,S4,1,...,S4,255 (2.23)
3. Plaintext yang akan dienkripsi diasumsikan sebagai masukan, Plaintext
tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan datanya.
4. Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang kedua disebut XR.
5. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR
6. Hasil dari operrasi diatas ditukar XL menjadi XR dan XR menjadi XL.
7. Lakukan sebanyak 16 kali, perulangan yang ke-16 lakukan lagi proses penukaran XL dan XR.
8. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18.
9. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit kembali.
(39)
Di bawah ini merupakan gambar dari struktur algoritma blowfish, yang digambarkan pada gambar 2.9 :
⊕
⊕
⊕ ⊕
⊕
F
P1 32 bit
32 bit
⊕
P16
64 bit
Diulang 14 Iterasi lagi
F
P18 P17
Xor
Xor 32 bit
64 bit
P2
(40)
Di bawah ini merupakan gambar dari skema fungsi F dari algoritma blowfish,
yang digambarkan pada gambar 2.10 :
S box 1 S box 2 S box 3 S box 4
8 bits 8 bits 8 bits 8 bits
⊕
32 bits 32 bits 32 bits 32 bits
Gambar 2.10 skema fungsi F pada Algoritma Blowfish
2.6.3 Keamanan Blowfish
Sampai saat ini algoritma Blowfish belum ditemukan kelemahan yang berarti hanya adanya weak key dimana dua entri dari S-box mempunyai nilai yang sama. Belum ada cara untuk mengecek weak key sebelum melakukan key expansion, tetapi hal ini tidak berpengaruh terhadap hasil enkripsi. Hasil enkripsi dengan algoritma Blowfish sangat tidak mungkin dan tidak praktis untuk di terjemahkan tanpa bantuan kunci. Sampai kini belum ada Cryptanalysis yang dapat membongkar pesan tanpa kunci yang enkripsi oleh Blowfish. Agar aman dari pembongkaran pesan maka dalam algoritmanya harus menggu-nakan 16 putaran agar pesan tersebut tidak dapat dibongkar. Algoritma Blowfish pun
(41)
da-pat digabungkan dengan algoritma-algoritma enkripsi yang lain dalam pengkripsian se-buah pesan untuk lebih menjamin isi dari pesan tersebut.
John Kelsey mengembangkan sebuah metode serangan yang dapat meme-cahkan Blowfish dengan tiga putaran, tetapi tidak dapat mengembangkan lebih dari itu. Penyerangan ini mengeksploitasi fungsi F. Vikramjit Singh Chabra juga telah mencari cara yang efisien untuk mengimplementasikan mesin pencarian kunci dengan cara lempang (brute force).
Serge Vaudenay melakukan pemeriksaan terhadap Blowfish dengan kotak-S diketahui dan putaran sebanyak r. Proses pemeriksaan yang dilakukan dengan se-rangan diferensial dapat menghasilkan P-array dengan 28r+1 chosen plainteks
[SCH95]. Untuk kunci lemah tertentu yang menghasilkan kotak-S yang buruk, se-rangan yang sama hanya membutuhkan 24r+1 chosen plainteks untuk menghasil-kan P-array. Kemungkinan untuk mendapatkan kunci lemah ini sendiri adalah 1 berbanding 214. Tanpa diketahuinya kotak-S yang digunakan, serangan ini dapat mendeteksi lemah tidaknya kunci yang digunakan, tetapi tidak dapat menentukan kunci.
2.7 Twofish
2.7.1 Deskripsi Twofish
Pada tahun 1972 dan 1974, US the National Bureau of Standards (sekarang bernama the National Institute of Standards and Technology, atau NIST) menge-luarkan publikasi pertama untuk sebuah standar enkripsi, yang menghasilkan
(42)
al-goritma data Encryption Standard (DES) [NBS77], yang tidak dapat disangkal sebagai algoritma kriptografi yang sangat terkenal dan sangat berhasil.
Twofish merupakan 128-bit block sandi/cipher yang bisa menerima panjang varibel kunci/key sebesar 256 bit. Cipher tersebut berasal 16-round jaringan Feit-sel dengan fungsi bijektif F yang dilanjutkan dengan empat key-dependent 8-by-b-bit S-boxes, satu fixed 4-by-4 maximum distance separable matrix over GF(28), satu pseudo-Hadamard transform, satu rotasi bitwise dan satu desain key sche-dule. Suatu implementasi Twofish yang dioptimalkan mengenksripsi pada Pen-tium Pro dengan 17,8 siklus clock per byte, dan pada smartcard akan men-genksripsi pada 1660 siklus clock per byte. Twofish dapat diimplemetsikan pada pada perangkat keras dengan 14000 gerbang. Design round function dan penjad-walan kunci mengakibatkan adanya trade off antara kecepatan, ukuran software, waktu setup key, jumlah gerbang dan memory.
2.7.2 Algoritma Twofish
Twofish menggunakan struktur Feistel 16-round dengan whitening tamba-han dalam input dan outputnya. Satu-satunya elemen yang bukan Feistel adalah rotasi 1 bit. Rotasi tersebut dapat dipindahkan ke fungsi F untuk menciptakan
output berjalan.
Plaintext dipecah menjadi empat buah word 32-bit. Pada whitening input, keempat word itu di XOR-kan dengan empat key word. Dan di ikuti dengan ke enam belas round. Dalam tiap round, dua word di kiri digunakan sebagai input
(43)
dibawah ini merupakan gambar dari struktur algoritma Twofish yang dikutip dari sebuah jurnal yang berjudul “Implementation of the Twofish chiper using FPGA devices” yang ditulis oleh Pawel Chodoweic, Kris Gaj :
Gambar 2.11 Struktur Algoritma Twofish
Langkah-langkah algoritma twofish adalah sebagai berikut:
1. Masukan satu blok plainteks adalah 128 bit. Satu blok tersebut dibagi menjadi 4 buah sub-blok yang masing-masing sepanjang 32 bit (A, B, C, dan D).
2. Masing-masing sub-blok tersebut melalui proses whitening dengan meng-Xor-kan dengan kunci K0, K1, K2, dan K3.
(44)
R0,i = Pi ⊕ Ki → i= 0…3 (2.24)
Proses pada input whitening :
R0,i = Pi XOR Ki → i= 0…3 (2.25)
(Fr,0, Fr,1)= F (Rr,0,Rr,1,r) (2.26) Rr+1,0 = ROR (Rr,2 XOR Fr,0,1) (2.27)
Rr+1,1 = ROL (Rr,3,1) XOR Fr,1 (2.28)
Rr+1,2 = Rr,0 (2.29)
Rr+1,3 = Rr,1 (2.30) Proses pada output whitening :
Ci=R16 (i+2) mod 4 XOR Ki+4 → i= 0…3 (2.31)
Langkah-langkah 1 putaran adalah sebagai berikut:
1. 2 buah 32 bit yang kiri (A dan B) merupakan input dari fungsi g (yang merupa-kan bagian dari fungsi f), yang salah satunya (B) di geser ke kiri sejauh 8 bit dahulu.
2. Fungsi g memiliki 4 buah kotak substitusi yang dibangkitkan oleh kunci. 3. Keluaran fungsi kotak substitusi dilakukan percampuran linear menggunakan
kotak Most Distance Separable
4. Keluaran fungsi g dimasukkan ke fungsi transformasi pseudo-Hadamard, ke-mudian ditambahkan dengan 2 buah 32 bit dari kunci.
5. Dua buah 32 bit hasil kemudian di xorkan dengan C dan D. Hasil xor dengan C digeser ke kanan sejauh 1 bit. Dan untuk D sebelum dixorkan digeser ke kiri sejauh 1 bit.
(45)
6. 2 buah 32 bit kiri dan kanan dipertukarkan (A dan B dipertukarkan dengan C dan D).
Fungsi F adalah permutasi yang bergantung pada kunci dengan nilai 64 bit. Fungsi ini menerima 3 argumen, dua buah 32 bit R0 dan R1, dan nomor putaran untuk menentukan subkunci mana yang dipakai. R0 akan diserahkan ke fungsi g yang akan mengembalikan T0. R1 akan digeser sejauh 8 bit yang kemudian di be-rikan juga ke fungsi g yang akan mengembalikan T1. Hasil T0 dan T1 kemudian dikombinasikan ulang menggunakan transformasi pseudo-Hadamard, yang kemu-dian ditambahkan dengan dua buah 32 bit dari kunci.
T0 = g(R0); (2.32)
T1 = g(shiftLeft(R1,8)); (2.33)
F0 = (T0+T1+K2r+8) mod 232; (2.34)
F1 = (T0+2T1+K2r+9) mod 232; (2.35)
F0 dan F1 adalah hasil dari F, yang masing – masing sepanjang 32 bit. Hasil kelu-aran ini nantinya akan dipertukarkan dan dimasukkan kembali ke putkelu-aran selan-jutnya. Gambar 2.12 Dibawah ini merupakan skema dari fungsi F pada algoritma
(46)
⊕ ⊕
⊕ ⊕
⊕ ⊕
⊕ ⊕
Gambar 2.12 Skema Fungsi F pada Algoritma Twofish
Fungsi g merupakan jantung dari keseluruhan algoritma twofish. 32 bit masu-kan X dari fungsi F dipecah menajdi 4 buah yang masing - masing sepanjang 8 bit. Setiap 8 bit kemudian diproses dengan kotak S yang bersesuaian. Setiap kotak S bersifat bijektif, yaitu menerima 8 bit dan mengeluarkan 8 bit pula. 4 buah 8 bit hasil keluaran kemudian dikalikan dengan matriks Most Distance Separable
(MDS) 4x4. Hasil pengalian kemudian diartikan sebagai 32 bit, yang merupakan keluaran dari fungsi g, yang kemudian akan dikembalikan kembali ke fungsi F.
2.7.3 Proses Whitening
Whitening adalah suatu teknik yang terdapat dalam algoritma kriptografi Two-fish dengan cara meng-XOR-kan 128-bit sub-kunci sebelum sebelum round per-tama (input whitening) dan 128-bit setelah round terakhir (output whitening). Da-lam struktur algoritma Twofish terdapat input whitening yang merupakan
(47)
masuk-kan dari kunci yang dipakai dan di XOR-masuk-kan, sedangmasuk-kan untuk output whitening
merupakan hasil keluaran whitening terhadap kunci setelah melakukan whitening
round terakhir. .
2.7.4 Keamanan Twofish
Studi mengenai keamanan dan kriptanalisis algoritma Twofish sudah banyak dilakukan. Walaupun begitu semua studi ini dilakukan terhadap algoritma Twofish
yang sudah disederhanakan atau diperlemah.
Untuk Twofish dengan lima putaran, tanpa proses whitening pada awal dan ak-hir proses dibutuhkan 222,5 pasangan chosen plainteks dan 251 usaha. Metode kriptanalisis untuk Twofish ini masih terus dikembangkan. Tetapi tidak ada me-tode kriptanalisis untuk Twofish dengan jumlah putaran di atas sembilan buah. Selain dengan serangan chosen plainteks, telah dilakukan juga kriptanalisis den-gan seranden-gan related-key. Metode kriptanalisis yang dilakukan adalah serangan
chosen-key parsial pada Twofish dengan 10 putaran tanpa proses whitening pada awal dan akhir proses. Untuk melakukan proses kriptanalisis ini harus disiapkan pasangan kunci-kunci yang berhubungan. Kemudian pilih 20 dari 32 byte dari se-tiap kunci. Dua puluh byte yang dipilih berada di bawah kendali kriptanalisis. Se-dangkan dua belas byte sisanya tidak dikatahui, tetapi kriptanalisis dapat menge-tahui bahwa keduanya adalah sama untuk kedua kunci. Proses yang harus dilaku-kan sebanyak 264 chosen plainteks untuk setiap kunci yang dipilih dan dilakukan sekitar 234 usaha, untuk mendapatkan 12 byte kunci yang belum diketahui. Se-lain stustudi di atas, dilakukan juga serangan terhadap algoritma yang telah
(48)
di-kurangi jumlah putarannya dengan penyederhanaan fitur-fitur tertentu, seperti:
Twofish dengan kotak-S statis, Twofish tanpa rotasi 1 bit, dan yang lainnya. Tetapi hasil studi ini menunjukkan bahwa kriptanalisis tidak dapat memecahkan Twofish
walaupun dengan penyederhanaan-penyederhanaan yang telah dilakukan [SCH01].
(49)
40
3.1
Analisis
Analisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan
mengenai aplikasi keamanan pengiriman data pada jaringan
Local Area Network
(LAN), yang berguna untuk mengetahui apa saja yang dapat dijadikan isi dari sebuah
aplikasi dan perangkat yang dapat digunakan dalam perancangan aplikasi yang akan
dibuat.
3.1.1 Analisis permasalahan
Dalam pembahasan kriptografi yang sedang penulis bahas yaitu mengenai
mengamankan pengiriman sebuah data pada jaringan
Local Area Network
(LAN)
dengan menggunakan algoritma kriptografi
Blowfish dan Twofish
, atau kombinasi
kedua algoritma tersebut dalam aplikasi kriptografi. Berikut dibawah ini analisa
rancangan dari permasalahan yang sedang di bahas yang dijelaskan pada gambar 3.1 :
(50)
Gambar 3.1
analisis permasalahan
Dari gambar 3.1 diatas dapat dijelaskan sebagai berikut :
1.
Proses 1 (Enkripsi
Blowfish
) :
a.
Plaintext
X
,
merupakan
file
yang akan dienkripsi
b.
Enkripsi
plaintext
X, menggunakan enkripsi
Blowfish
dan memasukkan kunci
1 (kunci yang digunakan pada saat enkripsi
Blowfish
)
(51)
2.
Proses 2 (Enkripsi
Twofish
) :
a.
Plaintext
Y, merupakan hasil enkripsi (
chipertext
X) dari
plaintext
X
b.
Enkripsi
plaintext
Y
,
menggunakan enkripsi
Twofish
dan memasukkan kunci
2 (kunci yang digunakan pada saat enkripsi
Twofish
)
c.
Chipertext
Y
,
merupakan hasil enkripsi dari
plaintext
Y (
chipertext
X)
3.
Proses 3 (Dekripsi
Twofish
) :
a.
Chipertext
Y
,
merupakan hasil enkripsi
Twofish
yang akan didekripsi
b.
Dekripsi
Twofish,
menggunakan dekripsi
Twofish
dengan menggunakan kunci
2 (kunci yang digunakan pada saat enkripsi
Twofish
)
c.
Plaintext
Y (
chipertext
X)
,
merupakan hasil dekripsi dari
chipertext
Y
4.
Proses 4 (Dekripsi
Blowfish
) :
a.
Chipertext
X
(plaintext
Y
),
merupakan hasil enkripsi
Blowfish
yang akan
didekripsi
b.
Dekripsi
Blowfish,
menggunakan dekripsi
Blowfish
dengan menggunakan
kunci1 (kunci yang digunakan pada saat enkripsi
Blowfish
)
(52)
3.1.2
Kebutuhan Perangkat
Berikut dibawah ini perangkat yang dapat mendukung dalam perancangan
aplikasi yang akan dirancang, yaitu :
3.1.2.1
Perangkat Keras
Perangkat keras yang dibutuhkan dalam pembuatan aplikasi kriptografi adalah
sebagai berikut :
1.
Pentium III 800 Mhz
2.
RAM 128 MB
3.
Hardisk
10 GB
4.
Sebagai alat koneksi jaringan memakai Kabel UTP (
Unshielded Twisted Pair
)
dan konektor RG 45
3.1.2.2
Perangkat Lunak
Perangkat lunak atau
software
yang digunakan dalam program aplikasi
kriptografi adalah :
1.
Visual Basic
6.0 (perancangan aplikasi)
2.
Windows
XP (sistem operasi)
(53)
3.1.3 Analisis Data
Analisis data merupakan tahap dimana dilakukannya analisis terhadap data-data
apa saja yang diolah dalam sistem atau prosedur sebuah aplikasi, dalam hal ini data
yang akan di enkripsi pada aplikasi kriptografi adalah berupa
file Txt, Doc,
Jpg, Mp3
dan Mpeg
.
3.1.4 Analisis pengiriman data dan keamanan Jaringan
Pada permasalahan yang sedang dibahas yaitu mengenai aplikasi keamanan
pengiriman data menggunakan jaringan
Local Area Network
(LAN). Jadi proses
transfer
data dari komputer satu ke komputer lain menggunakan sistem jaringan
Local Area Network
(LAN). Dalam hal ini dengan adanya keamanan jaringan
komputer dengan menggunakan algoritma kriptografi
Blowfish
dan
Twofish
dapat
melindungi pada saat transaksi pengiriman data pada jaringan
Local Area Network
(LAN). Keamanan data pada suatu jaringan
Local Area Network
(LAN) adalah
sesuatu yang sangat penting, karena untuk menghindari data yang kita kirim di
gunakan oleh orang – orang yang tidak berhak atau berkepentingan.
Ditinjau dari masalah yang dihadapi, maka perlu dibangun suatu aplikasi
keamanan pengiriman data dengan menggunakan algoritma kriptografi
Blowfish
dan
Twofish
pada saat mengirimkan data melalui jaringan
Local Area Network
(LAN)
.
Berikut dibawah ini merupakan gambaran dari pengiriman data melalui jaringan
Local Area Network
(LAN) dan permasalahan yang memungkinkan terjadi pada
media jaringan
Local Area Network
(LAN):
(54)
Gambar 3.2
pengiriman data
melalui jaringan
Local Area Network
(LAN)
Dari gambar 3.2 diatas dapat dijelaskan sebagai berikut
:
Gambar 3.2 diatas adalah menjelaskan bagaimana melakukan pengiriman
sebuah data dari komputer A dan B melalui media jaringan
Local Area Network
(LAN)
,
dalam gambar 3.2 diatas menjelaskan bagaimana melakukan pengiriman data
melalui media jaringan
Local Area Network
(LAN). Untuk melakukannya diperlukan
sebuah data yang akan dikirim dengan dienkripsi serta memasukkan kunci terlebih
dahulu, kemudian dikirimkan menurut alamat tujuan yang akan dikirim, dan
penerima dari data yang terenkripsi tersebut dapat mendekripsi data tersebut jika
mengetahui kunci yang dipakai, maka dari itu penggunaan kunci sebelumnya harus
disepakati dan diketahui oleh pengirim dan penerima.
(55)
3.1.5 Analisis Pengguna
Latar belakang pengguna yang akan memakai program aplikasi yang akan
dibuat, terbagi menjadi dua pengguna yaitu pengirim pesan dan penerima pesan, serta
memiliki kriteria pengguna sebagai berikut :
1.
Memiliki kemampuan dasar dalam pengoperasian komputer
2.
Mengenal sistem kriptografi
3.
Mengenal jaringan
Local Area Network
(LAN)
3.2
Langkah – Langkah Penyelesaian
Dari permasalahan diatas, maka penulis mencoba untuk membuat sebuah aplikasi
yang berguna untuk mengamankan sebuah data pada saat pengiriman data melalui
media jaringan
Local Area Network
(LAN) dengan menggunakan kombinasi
algoritma kriptografi
Blowfish
dan
Twofish
. Langkah – langkah simulasi dalam
penyelesaian masalah diatas yaitu :
3.2.1
Pengirim
File /
Data
Orang yang mengirim
file
, akan melakukan langkah – langkah sebagai berikut :
1.
memilih suatu
file
yang akan dienkripsi dan dikirim
2.
Memasukkan kunci 1 dan kunci 2yang akan menjadi kunci pada saat proses
enkripsi
(56)
4.
Mengkoneksikan jaringan
5.
Mengirim
file
enkripsi kombinasi
blowfish
dan
twofish
3.2.2
Penerima
File
/ Data
Berikut langkah – langkah yang akan dilakukan oleh penerima pesan atau
file
,
yaitu :
1.
Mengkoneksikan jaringan
2.
Mengambi
file
enkripsi (
blowfish
dan
twofish
) yang akan di dekripsi
3.
Memasukkan kunci 2 dan kunci 1
untuk melakukan proses dekripsi
4.
Melakukan dekripsi
3.3
Perancangan Sistem
Perancangan sistem merupakan bagian dari metodologi pengembangan suatu
perangkat lunak yang dilakukan setelah melalui tahapan analisis. Perancangan
bertujuan untuk memberikan gambaran secara terperinci. Perancangan sistem
merupakan tahap lanjutan dari analisis sistem, dimana pada perancangan sistem
digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengkodean
kedalam suatu bahasa pemrograman.
Dalam perancangan
system
ini menggunakan
tool
UML (
Unified Modelling
Language
) sebagai rancangan dari sebuah model
system
yang akan dibangun.
Perancangan UML (
Unified Modelling Language
) ini mencakupi perancangan
use
case, sequence
diagram
, class
diagram
dan
activity
diagram.
(57)
1.
Use case
diagram
Dalam
use case
menggambarkan interaksi seorang aktor dari sebuah
system
yang
akan dibangun. Gambar 3.3 dibawah ini merupakan diagram rancangan
use case
:
Gambar 3.3
Diagram
Use Case
2.
Sequence
Diagram
Diagram yang menggambarkan langkah – langkah yang dilakukan oleh
actor
maupun system. Gambar 3.4 dan 3.5 dibawah ini merupakan rancangan dari
(58)
Gambar 3.4
Diagram
Sequence
enkripsi dan kirim
(59)
3.
Class
Diagram
Menggambarkan keadaan suatu
system
(
atribbut
), dan memberikan pelayanan
untuk menyelesaikan keadaan tersebut (metoda). Gambar 3.6 dibawah ini
merupakan gambaran dari sebuah
class
diagram :
(60)
4.
Activity
Diagram
Menggambarkan alir dari system yang sedang dirancang. Gambar 3.7 dan 3.8
dibawah ini merupakan bentuk dari
activity
diagram yang akan dirancang :
Gambar 3.7
Activity
diagram pengiriman
file
enkripsi
! " #
!
$ % !
$ # % !
(61)
3.4
Perancangan Proses
Tujuan perancangan proses adalah tahap untuk memperbaiki atau meningkatkan
efisiensi kerja sistem. Tahap ini sangat penting dalam menentukan baik atau tidaknya
hasil perancangan sistem yang diperoleh. Tahap perancangan proses dapat
digambarkan sebagai perancangan untuk membangun suatu sistem dan
mengkonfigurasikan komponen-komponen perangkat lunak dan perangkat kerasnya
sehingga menghasilkan sistem yang lebih baik bagi
user
. Proses yang dirancang
diuraikan menjadi beberapa bagian yang dapat membentuk sistem tersebut menjadi
satu komponen.
(62)
3.4.1
Flowchart
Proses Enkripsi dan dekripsi
Blowfish
A.
Flowchart
Enkripsi
Blowfish
Pada gambar 3.9 dibawah ini merupakan gambar dari proses enkripsi
Blowfish
:
(63)
dari gambar 3.9 diatas berhubungan dengan gambar 2.9 struktur algoritma
Blowfish
pada BAB II, dapat diperoleh keterangan sebagai berikut :
1.
Memulai proses enkripsi (
plaintext
) dengan x=64 bit
2.
X dibagi menjadi 2, XL (x
left
=32 bit) dan XR (x
right
=32 bit)
3.
i = 0 merupakan inisial perputaran yang dimulai dari 0
4.
Melanjutkan proses selanjutnya, yaitu operasi XL = XL xor Pi dan XR = F(XL)
xor XR
5.
Menukar hasil dari XL dan XR (XL= XR dan XR=XL)
6.
Melakukan perulangan sebanyak 16 kali perulangan, dan melakukan kembali
penukaran XL dan XR (i = i+ 1)
7.
Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor
P18.
8.
Menggabungkan kembali XL dan XR (sehingga menjadi x=64 bit)
9.
Menghasilkan
chipertext
dengan x=64 bit
(64)
B.
Flowchart
Dekripsi
Blowfish
Pada gambar 3.10 dibawah ini merupakan gambar dari proses dekripsi
Blowfish
:
(65)
dari gambar 3.10 diatas dapat diperoleh keterangan sebagai berikut :
1.
Memulai proses dekripsi (
chipertext)
x= 64 bit (xL= 32
bit
dan xR=32
bit
)
2.
Menggabungkan XL dan XR (sehingga menjadi x=64 bit)
3.
Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor
P18.
4.
Menukar hasil nilai XL dan XR (XL= XR dan XR=XL)
5.
i = 0 merupakan inisial perputaran yang dimulai dari 0
6.
Melakukan perulangan sebanyak 16 kali perulangan, dan melakukan kembali
penukaran XL dan XR (i= i + 1)
7.
Melanjutkan proses selanjutnya, yaitu operasi XL = XL xor Pi dan XR =
F(XL) xor XR
8.
Menggabungkan kembali XL dan XR (sehingga menjadi x=64 bit)
9.
Menghasilkan
Plaintext
dengan x=64 bit
(66)
3.4.2 Flowchart proses enkripsi dan dekripsi
Twofish
A. Enkripsi
Twofish
Pada gambar 3.11 dibawah ini merupakan gambar dari proses enkripsi
Twofish
:
(67)
Dari gambar 3.11 diatas dapat diperoleh keterangan sebagai berikut :
1.
memulai proses enkripsi (
plaintext
) dengan ukuran blok 128 bit
2.
blok
plaintext
dibagi menjadi 4 bagian
3.
input whitening
ke 4 bagian tersebut di XOR kan dengan 4 buah kata dari
kunci yang diekspansi
4.
diulang hingga 16 putaran (i= i + 1), pada setiap putaran kedua kata yang
pertama sebagai masukan dari fungsi F, kata ke tiga dilakukan operasi XOR
dan dirotasikan kekanan sebanyak 1 bit,kata ke empat dirotasikan kekanan 1
bit dan dilakukan rotasi XOR pada keluaran kedua fungsi F
5.
menukarkan hasil ROR dan ROL
6.
output whitening
hasil keluaran dan melakukan operasi XOR dengan 4 buah
kata dari kunci yang diekspansi
7.
menggabungkan hasil ROR dan ROL, membatalkan proses penukaran pada
pertukaran terakhir.
8.
Menghasilkan
chipertext
(68)
B. Dekripsi
Twofish
Pada gambar 3.12 dibawah ini merupakan gambar dari proses dekripsi
Twofish
:
(69)
dari gambar 3.12 diatas dapat diperoleh keterangan sebagai berikut :
1.
memulai proses dekripsi (
chipertext
) dengan ukuran blok 128 bit
2.
menukarkan hasil ROR dan ROL
3.
whitening
hasil keluaran dan melakukan operasi XOR dengan 4 buah kata dari
kunci yang diekspansi
4.
menggabungkan hasil ROR dan ROL, membatalkan proses penukaran pada
pertukaran terakhir.
5.
diulang hingga 16 putaran (i=i+ 0), pada setiap putaran kedua kata yang
pertama sebagai masukan dari fungsi F, kata ke tiga dilakukan operasi XOR
dan dirotasikan kekanan sebanyak 1 bit,kata ke empat dirotasikan kekanan 1
bit dan dilakukan rotasi XOR pada keluaran kedua fungsi F
6.
whitening
ke 4 bagian tersebut di XOR kan dengan 4 buah kata dari kunci
yang diekspansi
7.
blok
plaintext
dibagi menjadi 4 bagian
8.
menghasilkan plaintext blok = 128 bit
9.
selesai
(70)
3.5
Perancangan
Interface
Aplikasi Kriptografi
3.5.1
Interface
Aplikasi Enkripsi dan kirim
Gambar
3.13
dibawah ini merupakan rancangan dari tampilan atau
interface
dari
aplikasi enkripsi yang akan dibuat adalah :
(71)
Dibawah ini merupakan keterangan dari gambar 3.13 diatas, yaitu :
1.
Frame
atas, merupakan judul atau nama program aplikasi yang akan dibuat
2.
Menampilkan alamat dan nama
file
3.
Kunci 1 (enkripsi
blowfish
)
4.
Kunci 2 (enkripsi
twofish
)
5.
Port
, jalur yang digunakan
6.
IP
address
tujuan
7.
Button_
pilih file
,
berfungsi untuk memanggil proses memilih
file
yang akan
diproses
8.
Button_start
koneksi, berfungsi untuk memanggil proses koneksi jaringan
9.
List
koneksi, untuk mengetahui koneksi jaringan
10.
Button
kirim, memanggil fungsi proses enkripsi
blowfish
dan
twofish
11.
Progress blowfish
, merupakan
progress
dari enkripsi
blowfish
12.
Progress twofish
, merupakan
progress
dari enkripsi
twofish
13.
Progress
kirim, merupakan
progress
dari kirim enkripsi
14.
Button_Reset
, berfungsi untuk memanggil proses reset semua yang telah di
inputkan
15.
Button_About
, berfungsi untuk memanggil form about yang berisi mengenai
petunjuk program
16.
Button_Exit
, berfungsi untuk keluar dari program
(72)
18.
Waktu proses enkripsi
blowfish,
untuk
menampilkan waktu proses enkripsi
blowfish
19.
Waktu proses enkripsi
twofish,
menampilkan waktu proses enkripsi
twofish
20.
Waktu kirim, untuk mengetahui waktu pengiriman
file
21.
Icon
proses, untuk mengetahui
icon file
yang akan diproses
22.
IP
Address,
untuk menampilkan IP
Address
dari computer
3.5.2
Interface
Aplikasi Dekripsi
Gambar
3.14
dibawah ini merupakan rancangan dari tampilan atau
interface
dari
aplikasi dekripsi yang akan dibuat adalah :
(73)
Dibawah ini merupakan keterangan dari gambar 3.13 diatas, yaitu :
1.
Frame
atas, merupakan judul atau nama program aplikasi yang akan dibuat
2.
List
koneksi, untuk mengetahui koneksi jaringan
3.
Port
, jalur yang digunakan
4.
Button_start
koneksi, berfungsi untuk memanggil proses koneksi jaringan
5.
Menampilkan alamat dan nama
file
6.
Kunci 1 (enkripsi
blowfish
)
7.
Kunci 2 (enkripsi
twofish
)
8.
Button_
Ambil file
,
berfungsi untuk memanggil proses memilih
file
yang akan
diproses
9.
Button
dekripsi, memanggil fungsi proses dekripsi
twofish
dan
blowfish
10.
Progress twofish
, merupakan
progress
dari enkripsi
twofish
11.
Progress blowfish
, merupakan
progress
dari enkripsi
blowfish
12.
Button_Reset
, berfungsi untuk memanggil proses reset semua yang telah di
inputkan
13.
Button_About
, berfungsi untuk memanggil form about yang berisi mengenai
petunjuk program
14.
Button_Exit
, berfungsi untuk keluar dari program
(74)
16.
Waktu proses dekripsi
twofish,
untuk
menampilkan waktu proses enkripsi
twofish
17.
Waktu proses enkripsi
blowfish,
menampilkan waktu proses enkripsi
blowfish
18.
Icon
proses, untuk mengetahui
icon file
yang akan diproses
19.
IP
Address,
untuk menampilkan IP
Address
dari computer
(75)
66
4.1 Pengujian Sistem
Pengujian
system
merupakan tahap selanjutnya setelah Program atau aplikasi
perangkat lunak selesai dalam pembuatannya. Pengujian
system
yang dilakukan
meliputi dua tahapan, yaitu pengujian
Alpha
dan
Betha
. Pengujian tersebut dilakukan
untuk mengevaluasi hasil
system
yang dibuat.
4.1.1 Pengujian
Alpha
Pengujian
Alpha
merupakan pengujian fungsional
yang digunakan untuk
menguji
system
yang telah dibuat dengan metode pengujian
black box
. Pengujian
black box
terfokus pada persyaratan fungsional perangkat lunak.
Dibawah ini merupakan tahapan dari pengujian fungsional yang akan
dilakukan, yaitu :
a.
Rencana Pengujian
Rencana pengujian yang akan dilakukan pada aplikasi keamanan pengiriman
data ini selengkapnya terlihat pada tabel 4.1 dibawah ini :
(76)
Tabel 4.1
Rencana pengujian program aplikasi keamanan pengiriman data
Item Uji
Detail Pengujian
Jenis Uji
Enkripsi /
kirim
file
memilih
file
yang akan di enkripsi dengan
menggunakan
algoritma
blowfish
dan
twofish
dengan memasukkan kunci ,
memasukkan IP tujuan pengiriman
Black box
Dekripsi
Mengambil
file
hasil enkripsi yang telah
dikirimkan
dan
mendekripsikannya
berdasarkan kunci enkripsi
Black box
b.
Uji Coba dan hasil pengujian
Berdasarkan uji coba dan hasil pengujian yang dilakukan Pengujian yang
dilakukan meliputi pengujian Enkripsi, Kirim
file
, koneksi, dan Dekripsi.
Berikut ini merupakan pengujian-pengujian yang dilakukan.
1.
Pengujian Proses Enkripsi
Dibawah ini merupakan tabel pengujian dari proses Enkripsi pada data normal
yang akan dijelaskan pada tabel 4.2 :
Tabel 4.2
Pengujian Proses Enkripsi / kirim (data normal)
Kasus dan Hasil Uji (Data Normal)
Data Masukan
File
kirim, kunci 1, kunci 2, IP tujuan
Yang diharapkan
memilih
file
yang akan diproses dan memasukkan kunci
yang dipakai pada saat proses enkripsi dan mengirim
serta menampilkan pesan yang menandakan berhasil
dalam proses
Pengamatan
Semua tampilan dapat berjalan dan berhasil
(77)
Dibawah ini merupakan tabel pengujian dari data salah, yang dijelaskan pada tabel
4.3 :
Tabel 4.3
Pengujian Proses Enkripsi (data salah)
Kasus dan Hasil Uji (Data salah)
Data Masukan
File
kirim, kunci 1, kunci 2, IP tujuan : kosong
Yang diharapkan
Akan ditampilkan kesalahan pada tahap yang terlewatkan.
Pengamatan
Menampilkan pesan kesalahan tahap
Kesimpulan
Dapat menampilkan pesan kesalahan
2.
Pengujian Proses Dekripsi
Dibawah ini merupakan tabel pengujian dari proses dekripsi dari
file
enkripsi yang
telah dikirim pada proses normal yang akan dijelaskan pada tabel 4.4 :
Tabel 4.4
Pengujian Proses Dekripsi
file
(data normal)
Kasus dan Hasil Uji (Data Normal)
Data Masukan
File
enkripsi, kunci
2, kunci 1
Yang diharapkan
Mengambil
file
yang telah dienkripsi serta memasukkan
kunci 2 dan kunci1 yang dipakai pada saat enkripsi.
Dilakukan secara berurut maka akan menampilkan pesan
yang menandakan berhasil dalam proses
Pengamatan
Menampilkan keberhasilan dari proses
(1)
84
Dari tabel 4.11diatas dapat diperoleh sebuah grafik sebagai berikut :
69 69,5 70 70,5 71 71,5 72
Waktu dekripsi (Detik)
Txt Doc Jpg Mp3 Mpeg Jenis File
Waktu Dekripsi
Gambar 4.22 Grafik waktu dekripsi Blowfish
Dibawah ini merupakan contoh pengujian proses dekripsi file enkripsi pada file Doc, yang di jelaskan sebagai berikut :
(2)
85
Gambar 4.24 Pesan Dekripsi Berhasil
(3)
86
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil pembelajaran dan pengujian yang dilakukan oleh penulis dalam Laporan Tugas Akhir ini, maka dapat ditarik beberapa kesimpulan sebagai berikut :
1. Algoritma Twofish lebih cepat dalam prosesnya dibandingkan Algoritma Blowfish
2. Penggunaan kunci merupakan sesuatu yang sangat penting dalam proses enkripsi dan dekripsi, sehingga dibutuhkan suatu kerahasiaan dalam pemakaian kuncinya
3. Kombinasi Algoritma Blowfish dan Twofish terbukti dapat mengamankan pengiriman data pada jaringan Local Area Network (LAN), selama kunci yang dipakai tidak diketahui oleh pihak yang tidak berkepentingan
5.2 Saran
Dalam penggunaan kunci diusahakan mudah diingat dan disepakati oleh kedua belah pihak. Dalam aplikasi keamanan pengiriman data pada jaringan local Area Network yang telah dibuat ini, mungkin terdapat kekurangan sehingga diharapkan akan ada pengembangan atau perbaikan dari aplikasi kriptografi ini.
(4)
87
DATAR PUSTAKA
[1] Schneier, Bruce. 1993 "Description of a new variable lenght key, 64-bit"
[2] Schneier, Bruce. 1995 "The Blowfish Encryption Algorithm-One Year Later” Dr Dobbs Journals
[3] Schneier, Bruce. 2001. The Twofish Encryption Algorithm - Block encryption for the 21st century. Dr. Dobb’s Journal
[4] Pawel Chodoweic, Kris Gaj .1999 "Implementation of the Twofish chiper using FPGA devices".
[5] Schneier, Bruce,John Kelsey, Doug Whiting, David Wagner, Chris Hall,Niels Ferguson;. 1998 "Twofish : A 128-bit block chiper".
[6] Syafari, Anjar ."sekilas tentang enkripsi Blowfish", www.ilmukomputer.com,2003-2007. [7] Kurniawan.Y "kriptografi keamanan internet dan jaringan komunikasi" informatika
Bandung, 2004
[8] Randy a. "studi dan perbandingan algoritma blowfish dan twofish",
laboratorium dan rekayasa komputasi, program studi teknik informatika ITB [9] Octamanullah, M. "perbandingan algoritma kunci simetrik blowfish dan twofish" [10] Irawan, Budhi. "Jaringan Komputer", Graha Ilmu Yogyakarta, 2005
[11] www.counterpane.com/blowfish.htm [12] www.counterpane.com/twofish.htm [13] www.planetsourcecode.com
(5)
LAMPIRAN C
BIODATA PENYUSUN
(6)
116
Biodata Penyusun
I. Data Pribadi
Nama : Novan Dwianto
Jenis Kelamin : Laki - laki
Tempat Tanggal Lahir : Indramayu, 6 November 1985
Alamat : Jln. Raya Losarang RT 03 RW 01 Kab Indramayu
Telepon : 0234 - 505093
Handphone : 081321363990 / 022 92262403
II. Latar Belakang Pendidikan Formal Tahun 1991 - 1997 : SDN Krimun II Tahun 1997 - 2000 : SLTPN I Losarang Tahun 2000 - 2003 : SMUN 1 Kandanghaur
Tahun 2003 - Sekarang : Universitas Komputer Indonesia, Bandung