177973792 Aplikasi Chatting Kriptografi Blowfish

download 177973792 Aplikasi Chatting Kriptografi Blowfish

of 29

Transcript of 177973792 Aplikasi Chatting Kriptografi Blowfish

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    1/29

    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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    2/29

    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 conferencedan 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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    3/29

    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 serverdan komputer lain

    sebagai client. Server harus dinyalakan dahulu dan client pun akan

    mengkoneksikan diri dengan server. Proses koneksi ini menggunakan teknologi

    Microsoft yaituMicrosoft 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 chattingyang 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

    teknologiMicrosoftyaituMicrosoft 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-useryang aktif saja.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    4/29

    1.4 Tujuan

    Tujuan yang hendak dicapai dalam pembangunan aplikasi ini adalah

    1. Menghasilkan suatu aplikasi chattingyang 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

    chattingdemi 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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    5/29

    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).

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    6/29

    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 sumberatau 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 padaserver.

    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 yangsatu dengan node lainnya. Media ini dapat berupa saluran transmisi kabel

    dan tanpa kabel.

    3. Software(Perangkat Lunak), yaitu program yang mengatur dan mengelolajaringan secara keseluruhan. Termasuk di dalamnya sistem operasi

    jaringan yang berfungsi sebagai pengatur komunikasi data dan peripheral

    dalam jaringan.(Jogiyanto,1999)

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    7/29

    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 ataulokasi yang sama, dengan kecepatan transmisi data yang tinggi (mulai dari

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

    hub danNetwork Interface Card, sertaNetwork 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 gabunganbeberapa 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 darikomputer 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) Jaringanpeer to peerb) Jaringan berbasisserver(server-clientnetwork)c) Jaringan hybrid

    3. Berdasarkan teknologi transmisi terbagi atas:

    a) Jaringan switch, merupakan jaringan yang penyampaian informasi daripengirim ke penerima melalui mesin-mesin perantara atau saluran telepon.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    8/29

    b) Jaringan broadcast, merupakan jaringan yang penyampain informasi daripengirim 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. WorkstationDalam jaringan, workstation sebenarnya adalah host yang berupa suatu

    sistem komputer. Userberhubungan 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.

    Serverdapat berupa sistem komputer yang khusus dibuat untuk keperluan

    tertentu, seperti untuk penggunaanprinter (printserver) secara bersama,

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

    dan file server yakni diskyang digunakan secara bersama oleh beberapa

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

    hardware maupunsoftware,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 suatuserver. Jadi,servermelayani sedangkan klien dilayani.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    9/29

    2. LinkLink 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. TranscieverTransciever (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 internaldari PC

    5. Perangkat Lunak JaringanPerangkat 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 padastand-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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    10/2

    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.

    SERVER CLIENT

    Input nomor port yang

    akan digunakan

    Nomor port sedang

    digunakan winsock lainnya

    pada komputer ini?

    Muncul Error

    Berada dalam status listening..

    Koneksi berhasil Status

    winsock-1 dan winsock-2adalah terhubung

    Input IP-Address dan

    nomor port server

    Lakukan koneksi dengan winsock

    server

    Tidak

    ya

    Gambar 2.1 Proses Koneksi Antar Winsock

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    11/2

    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.

    WinsockS

    Status: Listening

    Winsock

    CLIENT-(1)

    Server

    Winsock client-1 meminta

    permintaan koneksi ke

    winsockS dan diterima

    WinsockS

    Status: Listening

    Winsock

    CLIENT-(1)

    Server

    WinsockS menghubungkan

    winsock client-1 dengan

    winsockC(1)

    WinsockC(1)

    Status: Connedted

    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.

    WinsockSStatus: Listening

    Winsock

    CLIENT-(1)

    Server

    Winsock client-2 meminta

    koneksi dan diterima oleh

    WinsockS

    WinsockC(1)

    Status: Connedted

    Winsock

    CLIENT-(2)

    WinsockSStatus: Listening

    Winsock

    CLIENT-(1)

    Server

    WinsockS

    menghubungkan client-2 dengan WinsockC(2)

    WinsockC(1)

    Status: Connedted

    Winsock

    CLIENT-(2)

    WinsockC(2)

    Status: Connedted

    Gambar 2.3 Koneksi Antar Winsock Server denga Winsock Client-2

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    12/2

    Dengan demikian, hasil akhir koneksi winsock antara aplikasi server

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

    WinsockS

    Status: Listening

    Winsock

    CLIENT-(1)

    Server

    WinsockC(1)

    Status: Connedted

    Winsock

    CLIENT-(2)

    WinsockC(2)

    Status: Connedted

    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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    13/2

    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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    14/2

    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

    Enkripsi Dekripsi

    Plain teks Plain teksChiper teks

    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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    15/2

    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

    Enkripsi Dekripsi

    Plain teks Plain teksChiper teks

    Kunci Kunci

    (a)

    Enkripsi Dekripsi

    Kirim No.Rekening Anda Stype wpoeirutyng ielz

    Kunci Kunci

    Kirim No.Rekening Anda

    (b)

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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    16/2

    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 banyaksubkey. 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:

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    17/2

    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

    undopertukaran 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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    18/2

    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, denganstring yang telah pasti. String tersebut terdiri dari digit-digit heksadesimal

    dari pi, tidak termasuk angka tiga diawal.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    19/2

    Contoh :

    P1 = 0x243f6a88

    P2 = 0x85a308d3

    P3 = 0x13198a2e

    P4 = 0x03707344

    2. XOR pi dengan 32-bit pertama dari kunci, XOR p2 dengan 32-bit keduadari 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 algoritmaBlowfish, 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 seluruhsubkey, 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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    20/2

    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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    21/2

    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 chattingmembutuhkan sebuah

    komputer yang berperan sebagaiserverdan 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 buahserver.

    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

    sebagaiserverakan 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

    komputerserverdan nomor port yang digunakan olehserver.

    Aplikasi chattingyang dibangun harus dapat mengkkoneksikan maksimal

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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    22/2

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

    koneksi, agar aplikasi serverdapat menampung koneksi dari maksimal 200 buah

    komputer client. Modifikasi yang dilakukan adalah:

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

    2. Aplikasiserver, berfungsi sebagai perantara koneksi bagi semua komputerclient. Aplikasiservermemiliki 1 buah winsock yang stand-bydan 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 clientyang masuk, maka permintaankoneksi 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 clientlainnya.

    b. Bla WinsockC(n) yang terpakai dan berada dalam status terhubungsudah mencapai 200buah, maka permintaan berikutnya dari clientakan

    di tolak hingga ada WinsockC(n) yang idle.

    3. Aplikasi client, berfungsi sebagai sarana bertukar pesan (chatting) denganuser lainnya yang terhubung pada aplikasi server. Untuk proses koneksi,

    aplikasi clientcukup 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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    23/2

    terkoneksi dengan serverdan 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-client1

    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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    24/2

    WinsockS

    Status: Listening

    WinsockC(1)

    Status: Connected

    WinsockCLIENT-(1)

    Winsock

    CLIENT-(2)

    Winsock

    CLIENT-(3)

    WinsockC(2)

    Status: Connected

    WinsockC(3)

    Status: Connected

    WinsockC(n)

    Status: Idle

    Server

    Winsock

    CLIENT-(n)

    Winsock client-3

    mengirimkan pesan M

    kepada WinsockC(3).

    Selanjutnya, WinsockC(1)

    akan diperintahkan untuk

    mengirim pesan XYZ

    Kepada winsock client-1

    XYZ

    XYZ

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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    25/2

    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. Serverdapat melakukan kick atau banned terhadap client. Untuk

    menjamin keamanan komunikasi, clientdapat 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.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    26/2

    START

    Input Nomor Port dan batas

    maksimum jumlah client

    Aplikasi server

    dijalankan

    Aplikasi server dalam

    mode Stand-by

    (Listening)

    Apakah Client

    melakukan koneksi?

    Ada pesan yang

    dikirimkan client?

    Client terputus?

    Client di-banned?

    Client di-kick?

    Server Stop?

    STOP

    Apakah jumlah client telah

    mancapai batas maksimum?

    Apakah IP client tercatat

    dalam client banned list?

    Tolak koneksi client

    Terima koneksi dan

    tambahkan ke list

    client

    Kirim (teruskan) pesan ke client yang dituju

    Hapus cllient dari list

    Catat ip client dari

    banned list

    Putuskan koneksi

    winsock yang t erhubung

    ke client

    Hapus client dari list

    Ya Tidak

    Ya

    Ya

    Ya

    Ya

    Ya

    YaYa

    Tidak

    Tidak

    Tidak

    Tidak

    Tidak

    Tidak

    Tidak

    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

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    27/2

    aplikasi dijalankan, aplikasi akan stand-byuntuk mendengar permintaan koneksi

    dari clientatau menerima kiriman pesan dari client.

    Bila ada clientyang melakukan permintaan koneksi, maka aplikasiserver

    akan memeriksa terlebih dahulu, apakah jumlah clientyang terhubung ke aplikasi

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

    mencapai batas maksimum, maka permintaan koneksi clientakan 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 clientakan diterima oleh

    aplikasiserver.

    Ketika aplikasi clientmengirimkan pesan ke aplikasi clientlainnya, 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 aplikasiserver

    akan terjadi dengan sendirinya dan aplikasiserverakan menghapus clienttersebut

    dari chattinglist.

    Apabila aplikasiservermelakukan kick terhadap salah satu aplikasi client,

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

    akan mengakibatkan aplikasi clientmengalami error dan aplikasi chattingditutup

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

    kick, hanya sajaserverakan mencatat IP clientke dalam list, dan clienttidak akan

    bisa melakukan koneksi lagi ke aplikasiserver.

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

    pada gambar 3.6.

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    28/2

    START

    Input IP Address

    dan Nomor Port

    Tampilkann Pesan

    KesalahanProses Koneksi ke

    Server

    Koneksi Berhasil

    Terima List User yang

    Aktif dari Server

    Aplikasi Client dalam

    Mode Stand-By

    Kirim Pesan?

    Ada Pesan Masuk?

    Client Stop

    Proses EnkripsiPesan dan

    Kirim ke Server

    Proses Dekripsi

    Pesan dan

    Tampilkan Pesan

    STOP

    Ya

    Tidak

    Ya

    Tidak

    Tidak

    Ya

    Tidak

    Ya

    Gambar 3.3 Flowchart untuk Aplikasi Client

  • 5/26/2018 177973792 Aplikasi Chatting Kriptografi Blowfish

    29/2

    Pada gambar 3.3, terlihat bahwa untuk memulai aplikasi chattingsebagai

    client, user harus memasukan nama user, IP addressserveryang 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 chattingserver yang dijalankan pada IP Address dannomor port yang dituju oleh aplikasi client

    2. Terjadi kesamaan pemakaian nama user dengan user lainnya yangsebelumnya telah terhubung ke aplikasiserver

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

    4. Kegagalan di dalam hardware atau setting jaringan, seperti: Instalasi LANyang tidak benar, terjadi kerusakan didalam kabel LAN atau masalah

    jaringan lainnya.

    Setelah koneksi ke aplikasiserverberhasil, aplikasi clientakan menerima list

    nama user clientyang sebelumnya telah terhubung ke aplikasiserver. Selanjutnya

    apabila aplikasi clientmenggunakan fitur kriptografi, maka ketika aplikasi akan

    mengenkripsi pesan ketika pesan dikirimkan dan aplikasi akan mendekripsi pesan

    yang masuk dari aplikasi clientlainnya.