Aplikasi Chatting Kriptografi Blowfish

42
RANCANG BANGUN APLIKASI SECURE CHATTING DENGAN MENERAPKAN METODE ALGORITMA BLOWFISH SEMINAR IDE Diajukan guna memenuhi sebagian persyaratan Dalam rangka menyelesaikan pendidikan sarjana strata satu (S1) Jurusan Teknik Elektro ADE APRILIO KEDEO NIM. 0804405071

description

Aplikasi chatting dengan Kriptografi Blowfish menggunakan Windows Socket.

Transcript of Aplikasi Chatting Kriptografi Blowfish

Page 1: Aplikasi Chatting Kriptografi Blowfish

RANCANG BANGUN APLIKASI SECURE CHATTING

DENGAN MENERAPKAN METODE

ALGORITMA BLOWFISH

SEMINAR IDE

Diajukan guna memenuhi sebagian persyaratan

Dalam rangka menyelesaikan pendidikan sarjana strata satu (S1)

Jurusan Teknik Elektro

ADE APRILIO KEDEO

NIM. 0804405071

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK UNIVERSITAS UDAYANA

JIMBARAN – BALI 2011

Page 2: Aplikasi Chatting Kriptografi Blowfish

BAB I

PENDAHULUAN

Bab pendahuluan membahas mengenai latar belakang, rumusan masalah

yang mendasari penelitian yang akan dilakukan, tujuan, manfaat dan batasan

masalah.

1. 1 Latar Belakang

Dewasa ini teknologi jaringan komputer sangat berkembang pesat,

terutama dalam sektor telekomunikasi. Maka perubahan-perubahan cara

berkomunikasi pun ikut berkembang, berbagai ragam fasilitas aplikasi yang

tersedia untuk user agar dapat berkomunikasi satu individu dengan yang lain,

seperti: aplikasi chatting, instant messaging, video conference dan yang lainya.

Aplikasi chatting merupakan salah satu media yang digunakan untuk

saling tukar-menukar pesan antar individu, namun bila saluran komunikasi yang

digunakan kurang aman, maka pihak ketiga dapat dengan mudah memonitor isi

percakapan antara individu tersebut di dalam jaringan dengan aplikasi bantuan.

Untuk itu sangat diperlukan suatu solusi untuk mengamankan informasi yang

lewat dalam suatu jaringan komputer. Kriptografi diperlukan untuk mengamankan

data dengan cara proses enkripsi. Dengan demikian data informasi terlebih dahulu

diubah manjadi kode-kode yang cukup rumit untuk dipecahkan. Walaupun pihak

ketiga dapat menyadap komunikasi, tetapi mereka tidak dapat mengetahui

percakapan atau komunikasi yang terjadi, karena data yang dilihat oleh pihak

ketiga adalah data dalam bentuk terenkripsi sehingga tidak dapat dibaca. Pada saat

teks kode diterima oleh tujuan maka akan diubah kembali ke teks semula dengan

proses dekripsi.

Maka didapatkan suatu alternatif untuk menyelesaikan masalah ini yaitu

membuat sebuah aplikasi secure chatting dengan menggunakan enkripsi data

dengan kemampuan untuk mengamankan data informasi yang lewat melalui

jaringan komputer. Macam-macam algoritma dalam mengenkripsi suatu data

antara lain: DES, IDEA, AES, Blowfish dan masih banyak lagi. Algoritma

Page 3: Aplikasi Chatting Kriptografi Blowfish

Blowfish adalah metode yang digunakan dalam aplikasi chatting ini untuk

mengenkripsi data informasi didalamnya. Algoritma blowfish adalah algoritma

yang menggunakan kunci yang sama untuk melakukan enkripsi maupun dekripsi.

Dalam aplikasi chatting tersebut, proses koneksi antar komputer akan

menggunakan sebuah komputer yang berperan sebagai server dan komputer lain

sebagai client. Server harus dinyalakan dahulu dan client pun akan

mengkoneksikan diri dengan server. Proses koneksi ini menggunakan teknologi

Microsoft yaitu Microsoft Winsock Library, atau Winsock.

1.2 Rumusan Masalah

Dari latar belakang yang dijelaskan sebelumnya, rumusan masalah yang

diberikan, adalah :

1. Bagaimana membuat aplikasi secure chatting dengan menerapkan

enkripsi data metode blowfish sehingga data informasi yang berjalan

lewat suatu jaringan dapat diproteksi sehingga tidak dapat dibaca dan

disadap oleh pihak ketiga dan memperkuat tingkat keamanan pada

suatu jaringan.

2. Bagaimana merancang aplikasi chatting yang mampu mengkoneksikan

beberapa komputer sekaligus di dalam suatu jaringan komputer

1.3 Batasan Masalah

Adapun ruang lingkup dan batasan masalah dalam penulisan ini adalah:

1. Aplikasi-aplikasi yang dibangun terdiri atas dua buah aplikasi, aplikasi

untuk server dan aplikasi untuk client yang dihubungkan dengan

teknologi Microsoft yaitu Microsoft winsock library.

2. Aplikasi yang dibangun adalah berbasis dekstop

3. Aplikasi server dapat mengeluarkan salah satu user untuk sementara

atau kick dan secara permanen atau banned

4. Sekuritas Kriptografi Algoritma blowfish diatur pada aplikasi client.

5. Aplikasi akan menampilkan user-user yang aktif saja.

Page 4: Aplikasi Chatting Kriptografi Blowfish

1.4 Tujuan

Tujuan yang hendak dicapai dalam pembangunan aplikasi ini adalah

1. Menghasilkan suatu aplikasi chatting yang terkoneksi antar satu client

dengan yang lain sehingga dapat bertukar informasi.

2. Menghasilkan suatu perangkat lunak aplikasi chatting dengan

menggunakan bahasa pemrograman visual basic 6.0

3. Menerapkan metode kriptografi algoritma Blowfish di dalam aplikasi

chatting demi menjamin sekuritas komunikasi.

1.5 Manfaat

Manfaat yang didapatkan jika aplikasi ini diimplementasikan adalah Client

dapat bertukar dan berkomunikasi dengan client lain menjadi lebih nyaman dan

aman karena data informasi yang mereka kirimkan dienkripsi terlebih dahulu

dengan metode blowfish yang sampai saat ini sangat susah dipecahkan oleh

hacker.

Page 5: Aplikasi Chatting Kriptografi Blowfish

BAB II

TINJAUAN PUSTAKA

2.1 Jaringan Komputer

2.1.1 Sejarah jaringan komputer

Konsep jaringan komputer lahr pada tahun 1940-an di Amerika dari

sebuah proyek pengembangan komputer MODEL I di laboratorium Bell dan

group riset Harvard University yang dipimpin professor H. Aiken. Pada mulanya

proyek tersebut hanyalah ingin memanfaatkan sebuah perangkat komputer yang

harus dipakai bersama. Untuk mengerjakan beberapa proses tanpa banyak

membuang waktu kosong dibuatlah proses beruntun (Batch Processing), sehingga

beberapa program bisa dijalankan dalam sebuah komputer dengan kaidah antrian.

Tahun 1950-an, ketika komputer mulai membesar sampai terciptanya

super komputer, maka sebuah komputer mesti melayani beberapa terminal,

sehingga ditemukan konsep distribusi proses bedasarkan waktu yang dikenal

dengan nama TSS (Time Sharing System), maka untuk pertama kali bentuk

jaringan komputer diaplikasikan.

Memasuki tahun 1970-an, mulai digunakan konsep proses distribusi

(Distributed Processing). Beberapa host komputer mengerjakan sebuah pekerjaan

besar secara parallel untuk melayani beberapa terminal yang tersambung secara

seri di setiap host komputer. Dalam proses distribusi sudah mutlak diperlukan

perpaduan antara teknologi komputer dan telekomunikasi, karena selain proses

yang harus didistribusikan, semua host komputer wajib melayani terminal-

terminanya dalam satu perintah dari komputer pusat.

Kemudian, teknologi jaringan local yang dikenal dengan sebutan LAN

mulai berkembang di mana penggunaan komputer dalam jaringan untuk

menangani proses bersama ataupun tanpa melalui komputer pusat (peer-to-peer

system). Demikian pula ketika internet mulai diperkenalkan, maka sebagian besar

LAN yang berdiri sendiri mulai berhubungan dan terbentuklah jaringan raksasa

WAN.(Jogiyanto,1999).

Page 6: Aplikasi Chatting Kriptografi Blowfish

2.3.2 Defisini jaringan komputer

Pada era globalisasi seperti sekarang ini, jutaan bahkan milyaran manusia

saling berkomunikasi, dan kita tidak bisa lagi hanya bergantung pada komunikasi

verbal untuk transfer informasi. Saat ini kita sudah menggunakan jaringan

komputer untuk mengambil dan berbagi (share) informasi dengan cepat dan tepat.

Dengan jaringan komputer inilah dapat ditingkatkan efisiensi dan efektivitas

interaksi antaramanusia dalam hal pemindahan informasi.

Jaringan komputer dapat didefinisikan sebagai hubungan antara dua atau

lebih komputer beserta perifal lainya melalui media transmisi untuk melakukan

komunikasi data satu dengan yang lain.

Adapun komunikasi data dapat diartikan pengiriman data secara elektronik

dari satu tempat ke tempat lain melalui suatu media komunikasi, dan data yang

dikirimkan tersebut merupakan hasil atau akan diproses oleh suatu sistem

komputer.

Dalam jaringan ada tiga komponen utama yang harus dipahami, yaitu:

1. Host atau Node, yaitu sistem komputer yang berfungsi sebagai sumber

atau penerima dari data yang dikirimkan.

a. Server : Komputer tempat penyimpanan data dan program-program

aplikasi yang digunakan dalam jaringan.

b. Client : Komputer yang dapat mengakses sumber daya (berupa data dan

program aplikasi) yang ada pada server.

c. Shared pheriperal : Peralatan-peralatan yang terhubung dan digunakan

dalam jaringan (misalnya, printer, scanner harddisk, modem dan lain-lain).

2. Link adalah media komunikasi yang menghubungkan antara node yang

satu dengan node lainnya. Media ini dapat berupa saluran transmisi kabel

dan tanpa kabel.

3. Software (Perangkat Lunak), yaitu program yang mengatur dan mengelola

jaringan secara keseluruhan. Termasuk di dalamnya sistem operasi

jaringan yang berfungsi sebagai pengatur komunikasi data dan peripheral

dalam jaringan.(Jogiyanto,1999)

Page 7: Aplikasi Chatting Kriptografi Blowfish

2.1.3 Tipe Jaringan Komputer

Ada beberapa tipe jaringan komputer yang umumnya digunakan. Berikut

ini beberapa klasifikasi tipe jaringan komputer yang ada:

1. Berdasarkan letak geografi terbagi atas:

a) Local Area Network (LAN), jaringan ini berada pada satu bangunan atau

lokasi yang sama, dengan kecepatan transmisi data yang tinggi (mulai dari

10Mbps ke atas), dan menggunakan peralatan tambahan seperti repeater,

hub dan Network Interface Card, serta Network Adapter Card.

LAN yang menghubungkan sedikit(sejutar 2 sampai 4 buah) komputer

saja disebut juga Tiny Area Networdk (TAN)

b) Metropolitan Area Network (MAN), jaringan ini merupakan gabungan

beberapa LAN yang terleta pada satu kota(jangkauan 50 sampai 75 mil)

yang dihubungkan dengan kabel khusus atau melalui saluran telepon,

dengan kecepatan transmisi antara 56 Kbps sampai `Mbps dan

menggunakan peraltan seperti router, telepon, ATM switch, dan antenna

parabola

c) Wide Area Network (WAN), jaringan ini merupakan gabbungan dari

komputer LAN dan MAN yang ada di seluruh permukaan bumi ini yang

dihubungkan dengan saluran teleponm gelombang elektromagnetik, atau

satelit; dengan kecepatan transmisi yang lebih lambat dari 2 jenis jaringan

sebelumnya, dan menggunakan peralatan seperti router, modem, WAN

switches.

2. Berdasarkan arsitektur jaringan terbagi atas:

a) Jaringan peer to peer

b) Jaringan berbasis server (server-client network)

c) Jaringan hybrid

3. Berdasarkan teknologi transmisi terbagi atas:

a) Jaringan switch, merupakan jaringan yang penyampaian informasi dari

pengirim ke penerima melalui mesin-mesin perantara atau saluran telepon.

Page 8: Aplikasi Chatting Kriptografi Blowfish

b) Jaringan broadcast, merupakan jaringan yang penyampain informasi dari

pengirim ke penerima dilakukan secara broadcast (disiarkan ke segala

arah) baik melalui saluran kabel maupun saluran tanpa kabel.

Beberapa komponen dasar yang biasanya membentuk suatu LAN adalah

sebagai berikut:

1. Workstation

Dalam jaringan, workstation sebenarnya adalah host yang berupa suatu

sistem komputer. User berhubungan dengan jaringan melalui workstation

dan juga saling berkomunikasi seperti saling bertukar data. User juga

dapat mengakses program aplikasi pada workstation yang dapat bekerja

sendiri di workstation(stand-alone) itu sendiri ataupun menggunakan

jaringan untuk saling berbagi informmasi dengan workstation atau user

lain.

Beberapa fungsi workstation:

a. Server

Sesuai dengan namanya, ini adalah perangkat yang berfungsi untuk

melayani jaringan dan klien yang terhubung pada jaringan tersebut.

Server dapat berupa sistem komputer yang khusus dibuat untuk keperluan

tertentu, seperti untuk penggunaan printer (print server) secara bersama,

untuk hubungan eksternal LAN ke jaringan lain (communication server),

dan file server yakni disk yang digunakan secara bersama oleh beberapa

klien. Server ini tidak dapat digunakan sebagai klien, karena baik secara

hardware maupun software,hanya berfungsi untuk megelola jaringan.

b. Client (klien)

Sebuah workstation umumnya berfungsi sebagai klien dari suatu server,

karena memang workstation akan menggunakan fasilitas yang diberikan

oleh suatu server. Jadi, server melayani sedangkan klien dilayani.

Page 9: Aplikasi Chatting Kriptografi Blowfish

2. Link

Link atau hubungan dalam jaringan local dikenal sebagai media transmisi

berupa kabel maupun tanpa kabel, yang secara fisik menghubungkan

server dan klien. Peralatan tambahan link seperti repeater, bridge, gateway

yang terlibat sebagai perpanjangan jarak hubungan jaringan

3. Transciever

Transciever (transmitter-receiver) merupakan perangkat keras yang meng-

hubungkan workstation atau sistem komputer dengan media transmisi

4. Kartu Jaringan (Network Interface Card / NIC)

Kartu jaringan ini adalah kartu yang dipasang pada PC yang

mengendalikan pertukaran data antar workstation yang ada dalam jaringan

local. Setiap workstation harus dilengkapi dengan NIC yang secara fisik

terhubung langsung dengan bus internal dari PC

5. Perangkat Lunak Jaringan

Perangkat lunak jaringan seperti,

a. Sistem Operasi LAN.

b. Perangkat lunak aplikasi

c. Perangkat lunak pemrograman

d. Program utility

Perangkat lunak ini sangat penting dan mutlak untuk memungkinkan

komonukasi antara sistem komputer yang satu dengan sistem komputer

lainnya. Tanpa perangkat lunak ini, jaringan tidak akan berfungsi. Sistem

komputer dengan LAN dapat menjalankan semua perangkat lunak aplikasi

yang dapat berjalan pada stand-alone PC. (Jogiyanto, 1999)

2.2 Winsock

Untuk pemrograman aplikasi socket berbasis windows, maka komponen

API yang sering digunakan adalah Winsock (Windows Socket API) yang

mendukung interface standar TCP/IP, yang merupakan protocol jaringan popular

saat ini. Pada bahasa pemrograman visual sperti Visual Basic. Kita dapat

Page 10: Aplikasi Chatting Kriptografi Blowfish

menggunakan control Winsock yang telah disediakan untuk mengembangkan

aplikasi socket.

Agar lebih jelas mengenai cara kerja winsock dalam mengkoneksikan 2

buah komputer yang terhubung dalam 1 buah jaringan local (LAN), perhatikan

gambar 2.1 berikut.

Gambar 2.1 Proses Koneksi Antar Winsock

Page 11: Aplikasi Chatting Kriptografi Blowfish

Pada gambar 2.2 terlihat bahwa WinsockS menerima permintaan koneksi

dari winsock client-1 dan menghubungkannya dengan WinsockC(1). WinsockS

sendiri tetap berada dalam status listening, untuk mendengar permintaan koneksi

dari winsock client lainnya.

Gambar 2.2 Koneksi Antar Winsock Server dengan Winsock Client-1

Bila ada client-2 yang melakukan koneksi, maka WinsockS akan menerima

permintaan koneksi dan menghubungkannya dengan WinsockC(2). WinsockS

sendiri tetap berada dalam status listening. Perhatikan gambar 2.3.

Gambar 2.3 Koneksi Antar Winsock Server denga Winsock Client-2

Page 12: Aplikasi Chatting Kriptografi Blowfish

Dengan demikian, hasil akhir koneksi winsock antara aplikasi server

client-1 dan client-2 adalah seperti terihat pada gambar 2.4 berikut.

Gambar 2.4 Hasil Akhir Koneksi Winsock Server, Client-1 dan Client-2

Batas maksimum objeck WinsockC yang akan di-load adalah 200 buah,

sesuai dengan batas maksimum client yang terkoneksi ke server. Bila komputer

client-1 menutup aplikasi chatting-nya, maka WinsockC(1) akan idle dan bisa

dihubungkan oleh WinsockS dengan winsock client lain yang melakukan

permintaan koneksi. (Munir, 2006).

2.3 Kripfografi

2.3.1 Pengertian kriptografi

Kriptografi (cryptographi) berasal dari Bahasa Yunani: “cryptos” artinya

“secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Sehingga

kriptografi berarti “secret writing” (tulisan rahasia). Jadi kriptografi didefinisikan

sebagai ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara

menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya.

Page 13: Aplikasi Chatting Kriptografi Blowfish

Kata “seni” dalam definisi tersebut berasal dari fakta sejarah bahwa pada

masa-masa awal sejarah kroptografi, setiap orang mungkin mempunyai cara yang

unik untuk merahasiakan pesan. Cara-cara tersebut mungkin berbeda-beda pada

setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan

tersebut mempunyai nilai estetika tersendiri sehingga kriptografi berkembang

menjadi sebuah seni merahasiakan pesan.

Definisi di atas mungkin cocok pada masa lalu dimana kriptografi

digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan

militer, diplomat dan mata-mata. Namun saat ini kriptografi lebih dari sekedar

privacy, tapi juga untuk tujuan data integrasi, authentication, dan non-repudiation

Tujuan mendasar dari kripotgrafi itu sendiri adalah sebagai berikut:

a) Kerahasiaan (confindentiality)

Memastikan bahwa tidak ada yang membaca pesan selain orang

yang dituju

b) Integritas data (data integrity)

Suatu layanan yang menjamin bahwa pesan yang asli tidak

mengalami perubahan.

c) Otentikasi (authentication)

Mengidentifikasi pihak-pihak yang berkomunikasi maupun

mengidentifikasi kebenaran pesan.

d) Nirpenyangkalan (non-repudiation)

Layanan yang mencegah terjadinya penyangkalan oleh pengirim

pesan atau penyangkalan oleh penerima pesan sudah menerima

pesan.

2.3.2 Proses Kriptografi

Proses penyandian plainteks menjadi cipherteks disebut enkripsi

(encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks

menjadi plainteks semula dinamakan dekripsi (decryption) atau deciphering.

Page 14: Aplikasi Chatting Kriptografi Blowfish

Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun

pada pesan yang tersimpan.

Urutan proses kriptografi secara umum ditunjukan oleh gambar 2.5

Gambar 2.5 Proses Kriptografi

2.3.3 Enkripsi & Dekripsi

Proses penyandian plainteks menjadi cipherteks disebut enkripsi

(encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks

menjadi plainteks semula dinamakan dekripsi (decryption) atau deciphering.

Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun

pada pesan yang tersimpan.

2.3.4 Kunci Kriptografi

Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (word)

yang dibutuhkan untuk memecahkan cipherteks menjadi plainteks tanpa

mengetahui kunci yang digunakan. Kerja ini dapat diekivalenkan dengan waktu,

memori, uang dan lain-lain. Semakin banyak kerja yang diperlukan berarti juga

semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografi

tersebut, yang berarti semakin aman digunakan untuk menyandikan pesan.

Jika keamanan kriptografi ditentukan dengan menjaga kerahasiaan

algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted,

dimana algoritma restricted ini mempunyai sejarah tersendiri di dalam kriptografi.

Algoritma restricted biasanya digunakan oleh sekelompok orang untuk bertukar

pesan satu sama yang lain. Mereka membuat suatu algoritma enkripsi dan

algoritma enkripsi tersebut hanya diketahui oleh anggota kelompok itu saja.

Tetapi algoritma restricted tidak cocok lagi saat ini, sebab setiap kali ada anggota

kelompok keluar, maka algoritma kriptografi harus diganti lagi.

Page 15: Aplikasi Chatting Kriptografi Blowfish

Kriptografi modern mengatasi masalah di atas dengan menggunakan

kunci, yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus

dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk

transformasi enciphering dan deciphering. Kunci biasanya berupa string atau

deretan bilangan. Dengan menggunakan kunci K maka fungsi enkripsi dapat

ditulis sebagai:

EK(P) = C

dan fungsi dekripsi dapat ditulis sebagai:

DK(C) = P

Dan kedua fungsi ini memenuhi:

DK(EK(P)) = P

Gambar 2.6.a. memperlihatkan skema enkripsi dan dekripsi dengan

menggunakan kunci, sedangkan gambar 2.6.b. mengilustrasikan enkripsi dan

dekripsi terhadap sebuah pesan

(a)

(b)

Gambar 2.6.(a) Skema enkripsi dan dekripsi, (b) Contoh ilustrasi enkripsi dan deskripsi pesan

Page 16: Aplikasi Chatting Kriptografi Blowfish

2.4 Metode Kriptografi Blowfish

2.4.1 Struktur Algoritma Blowfish

Blowfish adalah algoritma kunci simetri, yang berarti menggunakan kunci

yang sama untuk melakukan enkripsi dan dekripsi file. Blowfish juga merupakan

cipher blok, yang berarti selama proses enkripsi dan dekripsi, Blowfish akan

membagi pesan menjadi blok-blokdengan ukuran yang sama panjang. Panjang

blok untuk algoritma Blowfish adalah 64-bit. Pesan yang bukan merupakan

kelipatan delapan byte akan ditambahkan bit-bit tambahan (padding) sehingga

ukuran untuk tiap blok sama.

Algoritma dalam Blowfish terbagi menjadi dua bagian, yaitu key

expansion dan data encryption. Proses key expansion akan melakukan konversi

sebuah kunci mulai dari 56 byte sampai beberapa array sub kunci dengan

totalmencapai 4168 byte.

Proses data encryption terjadi pada jaringan feistel, mengandung fungsi

pengulangan sederhana sebanyak enam belas kali. Setiap iterasi, terdiri dari

sebuah permutasi yang tidak bergantung pada kunci dan sebuah substitusi yang

tidak bergantung pada data dan kunci. Semua operasi merupakan penambahan dan

XOR pada word 32-bit. Operasi penambahan yang dilakukan hanya merupakan

empat indeks array data lookup pada setiap literasi.

Pada algoritma Blowfish, digunakan banyak subkey. Kunci-kunci ini harus

dihitung atau dibangkitkan terlebih dahulu sebelum dilakukan enkripsi atau

dekripsi data.

Kunci- kunci yang digunakan antara lain terdiri dari, 18 buah 32-bit

subkey yang tergabung dalam P-array (P1, P2, ..., P18). Selain itu, ada pula empat

32-bit S-box yang masing masingnya memiliki 256 entri : S1,0, S1,1,..., S1,255;

S2,0, S2,1,..,, S2,255; S3,0, S3,1,..., S3,255; S4,0, S4,1,..,, S4,255.

Pada jaringan feistel, Blowfish memiliki 16 iterasi, masukannya adalah

64-bit elemen data, X. Untuk melakukan proses enkripsi:

1. Bagi X menjadi dua bagian yang masing-masing terdiri dari 32-bit: XL

,XR.

2. For i = 1 to 16:

Page 17: Aplikasi Chatting Kriptografi Blowfish

XL = XL XOR Pi

XR = F(XL) XOR XR

Tukar XL dan XR

3. Setelah iterasi ke-enam belas, tukar XL dan XR lagi untuk melakukan

undo pertukaran terakhir.

4. Lalu lakukan XR = XR XOR P17

XL = XL XOR P1

5. Terakhir, gabungkan kembali XL dan XR untuk mendapatkan

cipherteks.

Untuk lebih jelasnya, gambaran tahapan pada jaringan feistel yang digunaka

Blowfish adalah seperti pada Gambar 2.7.

Gambar 2.7 Jaringan Feitsel

Page 18: Aplikasi Chatting Kriptografi Blowfish

Pada langkah kedua, telah dituliskan mengenai penggunaan fungsi F.

Fungsi F adalah:

Bagi XL menjadi empat bagian 8-bit: a,b,c dan d. F(XL) = ((S1,a + S2,b

mod 232) XOR S3,c) + S4,d mod 232.

Agar dapat lebih memahami fungsi F, tahapannya dapat dilihat pada

Gambar 2.8

Gambar 2.8 Fungsi F

Algoritma Blowfish memiliki keunikan dalam hal proses dekripsi, yaitu proses

dekripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi, hanya

saja pada proses dekripsi P1, P2, …, P18 digunakan dalam urutan yang terbalik.

Sebelumnya, telah dijelaskan mengenai penggunaan subkey didalam

Blowfish. Sekarang, akan dijelaskan mengenai cara menghitung atau

membangkitkan subkey:

1. Inisialisasi P-array yang pertama dan juga empat S-box, berurutan, dengan

string yang telah pasti. String tersebut terdiri dari digit-digit heksadesimal

dari pi, tidak termasuk angka tiga diawal.

Page 19: Aplikasi Chatting Kriptografi Blowfish

Contoh :

P1 = 0x243f6a88

P2 = 0x85a308d3

P3 = 0x13198a2e

P4 = 0x03707344

2. XOR pi dengan 32-bit pertama dari kunci, XOR p2 dengan 32-bit kedua

dari kunci , dan seterusnya untuk seluruh bit dari kunci (sampai p18).

Ulangi siklus seluruh bit kunci secara berurutan sampai seluruh P-array

telah di-XOR-kan dengan bit-bit kunci.

3. Enkripsikan string yang seluruhnya nol (all-zero) dengan algoritma

Blowfish, menggunakan subkey yang telah dideskripsikan di langkah (1)

dan (2).

4. Gantikan p1 dan p2 dengan hasil dari langkah (3).

5. Enkripsikan hasil dari tahap (3) menggunakan algoritma Blowfish dengan

subkey yang telah dimodifikasi.

6. Gantikan p3 dan p4 dengan hasil dari langkah (5)

7. Lanjutkan tahapan-tahapan diatas, gantikan seluruh elemen dari P- array

dan kemudian keempat S-box secara berurutan, dengan hsil keluaran

algoritma Blowfish yang terus menerus berubah.

Secara keseluruhan, 521 iterasi dibutuhkan untuk membangkitkan seluruh

subkey. Aplikasi dapat menyimpan seluruh subkey, agar tidak perlu mengeksekusi

proses ini secara berulang kali setiap iterasi.

2.4.2 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

Page 20: Aplikasi Chatting Kriptografi Blowfish

Cryptoanalyst yang dapat membongkar pesan tanpa kunci yang dienkripsi dengan

memakai bantuan algoritma Blowfish. Agar aman dari pembongkaran pesan maka

dalam algoritmanya harus menggunakan 16 putaran agar pesan tersebut tidak

dapat dibongkar.

Algoritma Blowfish pun dapat digabungkan dengan algoritma-algoritma

enkripsi yang lain dalam pengkripsian sebuah pesan untuk lebih menjamin isi dari

pesan tersebut. Sehingga algoritma Blowfish cukup aman jika ingin digunakan

untuk mengenkripsi data yang ingin di amankan.

Page 21: Aplikasi Chatting Kriptografi Blowfish

BAB III

GAMBARAN UMUM SISTEM

3.1 Analisis Gambaran Umum

Permasalahan yang akan di bahas adalah mengenai rancangan aplikasi

chatting dan sistem koneksi antar komputer dalam aplikasi chatting yang

menggunakan winsock, proses pengiriman pesan antar computer, flowchart dari

proses chatting.

3.1.1 Sistem koneksi antar komputer dalam aplikasi chatting

Koneksi antar komputer di dalam aplikasi chatting membutuhkan sebuah

komputer yang berperan sebagai server dan komputer lainya sebagai client.

Aplikasi server harus dijalankan terlebih dahulu dan aplikasi client akan

mengkoneksikan diri dengan aplikasi server. Aplikasi server yang dibangun

dalam aplikasi chatting ini akan mampu mengkoneksikan maksimal 200 client

pada 1 buah server.

Dalam pembuatan program (coding), penulis menggunakan bahasa

pemrograman Microsoft Visual Basic 6.0 (VB6). Bahasa pemrograman VB6

memungkinkan suatu aplikasi dapat berkomunikasi dengan aplikasi lainya pada

komputer yang berbeda (tetapi harus terhubung pada jaringan local yang sama)

melalui Microsoft Winsock Library, atau lebih sering disebut dengan komponen

‘Winsock’.

Dalam proses kerjanya, salah satu winsock berperan sebagai server dan

winsock lainnya berperan sebagai client. Aplikasi dengan winsock yang bertindak

sebagai server akan dijalanaakan terlebih dahulu.

Winsock server akan stand-ny(listening) untuk mendengar semua

permintaan koneksi dari winsock client. Kemudian, winsock client mengirim

permintaan konekksi kepada server dengan merujukpada IP-address dari

komputer server dan nomor port yang digunakan oleh server.

Aplikasi chatting yang dibangun harus dapat mengkkoneksikan maksimal

200 buah komputer client. Oleh karena setiap winsock hanya memiliki hubungan

Page 22: Aplikasi Chatting Kriptografi Blowfish

ke satu buah winsock lainnyaa, maka harus dilakukan modifikasi dalam proses

koneksi, agar aplikasi server dapat menampung koneksi dari maksimal 200 buah

komputer client. Modifikasi yang dilakukan adalah:

1. Aplikasi yang dibangun, akan dibagi menjadi 2 jenis aplikasi untuk server

dan aplikasi untuk client

2. Aplikasi server, berfungsi sebagai perantara koneksi bagi semua komputer

client. Aplikasi server memiliki 1 buah winsock yang stand-by dan selalu

dalam berada dalam status listening( WinsockS) dan sejumlah

winsock(maks.200 buah, winsock dibuat dalam bentuk objeck ber-array

dan diberi nama: WinsockC(n), dengan nilai maksimum n=200 yang akan

terhubung langsung dengan winsock client. Proses koneksinya adalah

sebagai berikut:

a. Bila ada permintaan dari winsock client yang masuk, maka permintaan

koneksi ini akan diterima oleh winsockS. Selanjutnya WinsockS akan

menghubungkan permintaan koneksi yang masuk dengan salah satu

WinsockC(x) yang sedang idle (tidak sedang terkoneksi dengan

winsock lainnya). Ini artinya, WinsockS hanya berfungsi sebagai

perantara untuk mengkoneksikan winsock client dengan WinsockC,

WinsockS akan kembali pada statusnya, listening, untuk mendengar

permintaan koneksi dari aplikasi client lainnya.

b. Bla WinsockC(n) yang terpakai dan berada dalam status terhubung

sudah mencapai 200buah, maka permintaan berikutnya dari client akan

di tolak hingga ada WinsockC(n) yang idle.

3. Aplikasi client, berfungsi sebagai sarana bertukar pesan (chatting) dengan

user lainnya yang terhubung pada aplikasi server. Untuk proses koneksi,

aplikasi client cukup memiliki satu buah winsock.

3.1.2 Proses pengiriman pesan antar komputer

Pada implementasnya, aplikasi chatting harus dapat mengirimkan pesan

dari salah satu user kepada user lainnya. Misalkan, ada 3 komputer client

Page 23: Aplikasi Chatting Kriptografi Blowfish

terkoneksi dengan server dan client-3 akan mengirimkan pesan XYZ ke client-1

maka proses pengiriman pesan antar komputer yang terjadi adlaah:

1. Winsock client-3 mengirimkan pesan XYZ kepada WinsockC(3).

2. WinsockC(3) menerima pesan M.

3. Aplikasi akan memerintah WinsockC(1) untuk mengirimkan pesan XYZ pada

Winsock-client 1

4. Winsock client-1 menerima pesan M

Proses pengiriman pesan di atas dapat dilihat pada gambar 3.1 berikut,

terlihat bahwa WinsockS hanya sebagai perantara untuk menyampaikan pesan

antar winsock.

Page 24: Aplikasi Chatting Kriptografi Blowfish

Gambar 3.1 Proses Pengiriman Pesan dari Client-3 ke Client-1

Page 25: Aplikasi Chatting Kriptografi Blowfish

3.1.2 Flowchart dari proses chatting

Aplikasi yang akan dibangun adalah aplikasi server dan aplikasi client.

Aplikasi server harus dijalankan sebelum aplikasi client mengkoneksikan diri

dengan server. Server dapat melakukan kick atau banned terhadap client. Untuk

menjamin keamanan komunikasi, client dapat memilih untuk menggunakan fitur

kriptografi Blowfish untuk mengenkripsi pesan.

Proses-proses yang terjadi di dalam aplikasi server dan client, dapat

digambarkan dalam bentuk flowchart. Proses yang digambarkan di dalam

flowchart mencakup proses penerimaan dan pemutusan koneksi, proses

pengiriman dan penerimaan pesan, proses enkripsi dan proses dekripsi pesan serta

proses kick dan banned.

Bentuk flowchart dari proses yang terjadi, dapat dilihat pada gambar 3.2

dan gambar 3.3.

Page 26: Aplikasi Chatting Kriptografi Blowfish

Gambar 3.2 Flowchart untuk Aplikasi Server

Pada gambar 3.5 terlihat bahwa user harus memasukan nomor port dan

batas maksimum client sebelum mulai menjalankan aplikasi server. Setelah

Page 27: Aplikasi Chatting Kriptografi Blowfish

aplikasi dijalankan, aplikasi akan stand-by untuk mendengar permintaan koneksi

dari client atau menerima kiriman pesan dari client.

Bila ada client yang melakukan permintaan koneksi, maka aplikasi server

akan memeriksa terlebih dahulu, apakah jumlah client yang terhubung ke aplikasi

server saat ini, sudah mencapai batas maksimum. Apabila jumlah client sudah

mencapai batas maksimum, maka permintaan koneksi client akan ditolak. Apabila

tebelum, maka aplikasi server akan melanjutkan proses ke pemeriksaan IP

Address client. Apabila IP client tercatat dalam banned-list, maka permintaan

koneksi ditolak. Apabila tidak, maka permintaan koneksi client akan diterima oleh

aplikasi server.

Ketika aplikasi client mengirimkan pesan ke aplikasi client lainnya, maka

pesan ini akan dikirimkan ke aplikasi server terlebih dahulu, dan aplikasi server

akan meneruskan pesan ke aplikasi client yang dituju. Apabila client yang

menutup aplikasinya, maka pemutusan hubungan winsock dengan aplikasi server

akan terjadi dengan sendirinya dan aplikasi server akan menghapus client tersebut

dari chatting list.

Apabila aplikasi server melakukan kick terhadap salah satu aplikasi client,

maka hubungan winsock akan diputus secara sepihak oleh aplikasi server. Ini

akan mengakibatkan aplikasi client mengalami error dan aplikasi chatting ditutup

secara paksa. Bila aplikasi client di-banned, maka kejadiannya sama seperti di-

kick, hanya saja server akan mencatat IP client ke dalam list, dan client tidak akan

bisa melakukan koneksi lagi ke aplikasi server.

Bentuk flowchart dari proses yang terjadi pada aplikasi client, dapat dilihat

pada gambar 3.6.

Page 28: Aplikasi Chatting Kriptografi Blowfish

Gambar 3.3 Flowchart untuk Aplikasi Client

Page 29: Aplikasi Chatting Kriptografi Blowfish

Pada gambar 3.3, terlihat bahwa untuk memulai aplikasi chatting sebagai

client, user harus memasukan nama user, IP address server yang dituju dan nomor

port server yang dituju. Apabila IP address dan nomor port yang dituju benar,

maka aplikasi client akan terhubung ke aplikasi server dan dapat melakukan

chatting dengan aplikasi client lainnya yang terhubung ke aplikasi server yang

sama. Apabila proses koneksi ke aplikasi server tidak berhasil, maka aplikasi

client akan memunculkan pesan kesalahan. Beberapa hal yang dapat

menyebabkan kegagalan didalam proses koneksi adalah sebagai berikut:

1. Tidak ada aplikasi chatting server yang dijalankan pada IP Address dan

nomor port yang dituju oleh aplikasi client

2. Terjadi kesamaan pemakaian nama user dengan user lainnya yang

sebelumnya telah terhubung ke aplikasi server

3. Jumlah client yang terhubung ke aplikasi server sudah mencapai batas

maksimum.

4. Kegagalan di dalam hardware atau setting jaringan, seperti: Instalasi LAN

yang tidak benar, terjadi kerusakan didalam kabel LAN atau masalah

jaringan lainnya.

Setelah koneksi ke aplikasi server berhasil, aplikasi client akan menerima list

nama user client yang sebelumnya telah terhubung ke aplikasi server. Selanjutnya

apabila aplikasi client menggunakan fitur kriptografi, maka ketika aplikasi akan

mengenkripsi pesan ketika pesan dikirimkan dan aplikasi akan mendekripsi pesan

yang masuk dari aplikasi client lainnya.