PENERAPAN TEKNIK ENSKRIPSI EL GAMAL PADA APLIKASI JASA PENGIRIMAN MENGGUNAKAN BAHASA PEMROGRAMAN C#

dokumen-dokumen yang mirip
METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

BAB III ANALISIS DAN DESAIN SISTEM

SISTEM INFORMASI HARGA BAHAN POKOK DENGAN PENERAPAN SMS GATEWAY MENGGUNAKAN BAHASA PEMROGRAMAN C#

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Perbandingan Penggunaan Bilangan Prima Aman Dan Tidak Aman Pada Proses Pembentukan Kunci Algoritma Elgamal

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

Penerapan Algoritma Elgamal dan SSL Pada Aplikasi Group Chat

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

ANALISIS KEMAMPUAN ALGORITMA ELGAMAL UNTUK KRIPTOGRAFI CITRA

BAB III ANALISIS. Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

RANCANGAN KRIPTOGRAFI HYBRID KOMBINASI METODE VIGENERE CIPHER DAN ELGAMAL PADA PENGAMANAN PESAN RAHASIA

BAB III ANALISIS DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB 3 KRIPTOGRAFI RSA

BAB III ANALISIS DAN PERANCANGAN

Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

IMPLEMENTASI ALGORITMA KRIPTOGRAFI KUNCI PUBLIK ELGAMAL UNTUK PROSES ENKRIPSI DAN DEKRIPSI GUNA PENGAMANAN FILE DATA

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

Algoritma RSA dan ElGamal

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB I PENDAHULUAN. 1.1 Latar Belakang

Bab 3. Metode dan Perancangan Sistem

PENERAPAN KRIPTOGRAFI DAN GRAF DALAM APLIKASI KONFIRMASI JARKOM

BAB I PENDAHULUAN. Pengiriman informasi yang dilakukan dengan mengirimkan data tanpa melakukan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA

BAB IV HASIL DAN PEMBAHASAN

BAB 2 LANDASAN TEORI

Perancangan Aplikasi Penyandian Pesan Teks Menggunakan Vigenere Chiper Dan Algoritma Elgamal

BAB I PENDAHULUAN. Pada era teknologi informasi yang semakin berkembang, pengiriman data

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

Pengamanan Removable Disk dengan Mengenkripsi Seluruh Header File

BAB III ANALISIS DAN PERANCANGAN

Algoritma Kriptografi Kunci-publik RSA menggunakan Chinese Remainder Theorem

Integrasi Kriptografi Kunci Publik dan Kriptografi Kunci Simetri

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

IMPLEMENTASI ALGORITMA VIGENERE CIPHER DAN RIVEST SHAMMER ADLEMAN (RSA) DALAM KEAMANAN DATA TEKS

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Perhitungan dan Implementasi Algoritma RSA pada PHP

Penerapan digital signature pada social media twitter

BAB 1 PENDAHULUAN Latar belakang

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

DAFTAR ISI. Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA)

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. pengiriman data elektronik melalui dan media lainnya yang sering

BAB I PENDAHULUAN. memungkinkan setiap orang untuk dapat berkomunikasi dan saling bertukar data.

BAB I PENDAHULUAN. Dewasa ini teknologi pengiriman pesan teks semakin berkembang,

Penggunaan Fingerprint Sebagai Kunci Privat Pada Algoritma El Gamal

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Enkripsi Pesan pada dengan Menggunakan Chaos Theory

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Analisis dan Perbandingan Kecepatan Algoritma RSA dan Algoritma ElGamal

BAB III BAB III METODE PENELITIAN

PENERAPAN APLIKASI SEDERHANA PADA PENGHITUNGAN NILAI SISWA MENGGUNAKAN BAHASA PEMROGRAMAN C# OLEH : ROFIQOTUL JANNAH NIM :

Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station

PERANCANGAN PROGRAM PENGAMANAN PESAN DENGAN METODE KRIPTOGRAFI ELGAMAL BERBASIS WEB SERVICE

HASIL DAN PEMBAHASAN. Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n) 3 ) (Menezes et al. 1996).

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

PENERAPAN GRUP MULTIPLIKATIF ATAS TANDA TANGAN DIGITAL ELGAMAL

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI ALGORITMA VERTICAL BIT ROTATION PADA KEAMANAN DATA NASABAH ( STUDI KASUS : PT. ASURANSI ALLIANZ LIFE INDONESIA )

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Teknik Konversi Berbagai Jenis Arsip ke Dalam bentuk Teks Terenkripsi

BAB II LANDASAN TEORI. Kriptografi mempunyai peranan penting dalam dunia komputer. Hal ini

Algoritma Pendukung Kriptografi

Implementasi algoritma kriptografi kunci publik ElGamal untuk keamanan pengiriman

Elliptic Curve Cryptography (Ecc) Pada Proses Pertukaran Kunci Publik Diffie-Hellman. Metrilitna Br Sembiring 1

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB I PENDAHULUAN. organisasi atau perusahaannya. Saat ini, keamanan terhadap data yang

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Security Chatting Berbasis Desktop dengan Enkripsi Caesar Cipher Key Random

Studi dan Analisis Perbandingan Antara Algoritma El Gamal dan Cramer-Shoup Cryptosystem

BAB II LANDASAN TEORI

ENKRIPSI CITRA BITMAP MELALUI SUBSTITUSI WARNA MENGGUNAKAN VIGENERE CIPHER

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

Kriptografi untuk Huruf Hiragana

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 TINJAUAN PUSTAKA

Transkripsi:

PENERAPAN TEKNIK ENSKRIPSI EL GAMAL PADA APLIKASI JASA PENGIRIMAN MENGGUNAKAN BAHASA PEMROGRAMAN C# Yoyon Arie Budi 1* Teknik Informatika, Sekolah Tinggi Ilmu Komputer PGRI, Banyuwangi, Indonesia 1* yoyonstikom@gmail.com Abstrak Semakin majunya perkembangan jaman memaksa masyrakat mau tidak mau untuk bersaing untuk mempertahankan usahanya. Hanya saja cuma beberapa yang mampu memanfaatkan teknologi yang sudah sangat berkembang untuk kemajuan usaha yang dimilikinya, selebihnya bertahan dengan apa yang telah mereka jalani sebelumnya atau hanya memanfaatkan teknologi yang ada sekedarnya. Misalnya dalam usaha Jasa Pengiriman Barang, banyak masalah yang akan timbul misalnya pertukaran data pengiriman dari tiap cabang karena kita tahu setidaknya dibutuhkan dua cabang usaha untuk menjalankan usaha ini. Saat akan mengirimkan suatu barang pastinya data pengiriman ada di kota asal, masalah akan timbul apabila data tersebut tidak ada di kota tujuan, bayangkan apabila usaha ini sudah cukup maju dan mempunyai banyak cabang, pasti akan terjadi kesulitan dalam pencarian data dari pengiriman tersebut. Arus keluar masuk data yang cepat diperlukan sistem keamanan yang mumpuni untuk melindungi data-data tersebut. Guna menyelesaikan permasalahan tersebut, perlu dibangun sebuah aplikasi pemrograman Client Server untuk menangani transfer data antar cabang usaha ini serta pendesainan database yang sesuai dengan kebutuhan yang ada. Untuk kemanannya sendiri dalam aplikasi nantinya ditanamkan teknik enkripsi menggunakan kunci asimetris algoritma El Gamal saat terjadi penyimpanan data ke dalam database MySql. Saat terjadi proses pengambilan data juga nantinya ditanamkan teknik deskripsi untuk pembacaan datanya. Dalam penelitian ini dihasilkan suatu aplikasi Jasa Pengiriman dengan menerapkan teknik Enskripsi El Gamal yang sesuai dengan tujuannya yaitu mengatur lalu lintas data dan keamanannya. Kata Kunci C#, Database, El Gamal. 1. Pendahuluan Di masa sekarang sebuah usaha tidak akan dikatakan berhasil apabila tidak mampu memanfatkan segala teknologi yang ada dengan baik untuk perkembangan usahanya. Setiap badan usaha yang ada berlombalomba meningkatkan kualitas usahanya agar mampu bersaing satu sama lain, kalau tidak maka usahanya tidak akan berjalan dengan maksimal atau malah akan tidak akan mampu bersaing sama sekali. Untuk usaha jasa pengiriman barang pun sama saja. Mereka membutuhkan akses untuk pengiriman data secara maksimal layaknya kualitas jasa pengiriman barang mereka. Hal ini penting demi selain menjaga kepecayaan konsumen kepada usaha mereka juga agar stabilitas data yang mereka miliki tertata dengan baik. Seperti Filosofi yang dimiliki Asosiasi Jasa Pengiriman Ekspress Indonesia (Asperindo) yaitu "CEPAT, CERMAT, SELAMAT DAN BERTANGGUNGJAWAB". Semakin majunya perkembangan jaman memaksa masyrakat mau tidak mau untuk bersaing untuk mempertahankan usahanya. Hanya saja cuma beberapa yang mampu memanfaatkan teknologi yang sudah sangat berkembang untuk kemajuan usaha yang dimilikinya, selebihnya bertahan dengan apa yang telah mereka jalani sebelumnya atau hanya memanfaatkan teknologi yang ada sekedarnya. Misalnya dalam usaha Jasa Pengiriman Barang, banyak masalah yang akan timbul misalnya pertukaran data pengiriman dari tiap cabang karena kita tahu setidaknya dibutuhkan dua cabang usaha untuk menjalankan usaha ini. Saat akan mengirimkan suatu barang pastinya data pengiriman ada di kota asal, masalah akan timbul apabila data tersebut tidak ada di kota tujuan, bayangkan apabila usaha ini sudah cukup maju dan mempunyai banyak cabang, pasti akan terjadi kesulitan dalam pencarian data dari pengiriman tersebut. Arus keluar masuk data yang cepat diperlukan sistem keamanan yang mumpuni untuk melindungi data-data tersebut. Guna menyelesaikan permasalahan tersebut, perlu dibangun sebuah aplikasi pemrograman Client Server untuk menangani transfer data antar cabang usaha ini serta pendesainan database yang sesuai dengan kebutuhan yang ada. Untuk kemanannya sendiri dalam aplikasi nantinya ditanamkan teknik enkripsi menggunakan kunci asimetris algoritma El Gamal saat terjadi penyimpanan data ke dalam database MySql. Saat terjadi proses pengambilan data juga nantinya ditanamkan teknik deskripsi untuk pembacaan datanya. Dalam penelitian ini dihasilkan suatu aplikasi Jasa Pengiriman dengan menerapkan teknik Enskripsi El Gamal yang sesuai dengan tujuannya yaitu mengatur lalu lintas data dan keamanannya. 43

2. Tinjauan Pustaka 2.1 Bahasa Pemrograman C# C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka.net Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem client server (hosted system) maupun sistem embedded (embedded system), selain itu C# juga ditujukan sebagai bahasa yang sederhana, moderen, bertujuan umum dan berorientasi objek. C# menghilangkan beberapa hal yang bersifat kompleks yang terdapat dalam beberapa macam bahasa perograman seperti JAVA dan C++, termasuk diantaranya menghilangkan macro, templates, multiple inheritance dan virtual base classes. Hal-hal tersebut yang dapat menyebabkan kebingungan pada saat menggunakannya, dan juga berpotensial dapat menjadi masalah bagi para progremmer C++. Jika pertama kali belajar C# sebagai bahasa pemrograman, maka hal-hal tersebut diatas tidak akan membuang waktu terlalu banyak untuk mempelajarinya. C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++. Jika familiar dengan C dan C++ atau bahkan java, akan menemukan aspek aspek yang begitu familiar, seperti statements, expression, operators, dan beberapa fungsi yang diadopsi langsung dari C dan C++, tetapi dengan berbagai perbaikan yang membuat bahasanya menjadi lebih sederhana. Dikatakan C# bersifat modern, karena adanya beberapa fitur seperti exception handling, garbage collection, extensible data types, dan code security (keamanan kode/ bahasa pemrograman). Dengan adanya fitur-fitur tersebut, menjadikan bahasa C# sebagai bahasa pemrograman yang modern. (Ali, Ahmad H. 2004 : 17) 2.2 Kriptografi El Gamal Algoritma ElGamal merupakan algoritma dalam kriptografi yang termasuk dalam kategori algoritma asimetris. Keamanan algoritma ElGamal terletak pada kesulitan penghitungan logaritma diskret pada bilangan modulo prima yang besar sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sangat sukar. Algoritma ElGamal mempunyai kunci publik berupa tiga pasang bilangan dan kunci rahasia berupa satu bilangan. Algoritma ini mempunyai kerugian pada cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan tetapi, algoritma ini mempunyai kelebihan pada enkripsi. Untuk plainteks yang sama, algoritma ini memberikan cipherteks yang berbeda (dengan kepastian yang dekat) setiap kali plainteks di enkripsi. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya digabungkan. a. Proses Pembentukan Kunci Pembentukan kunci terdiri atas pembentukan kunci publik dan kunci rahasia. Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup Zp*, elemen primitif α dan sembarang a 0,1,..., p 2. Kunci publik algoritma ElGamal terdiri atas pasangan 3 bilangan (p, α, β) di mana: β = αa mod p (1) sedangkan kunci rahasianya adalah bilangan a tersebut. Proses pembentukan kunci untuk algoritma ElGamal terdiri atas: - Penentuan bilangan prima aman besar Tujuan penentuan bilangan prima aman ini adalah untuk mempermudah dalam penentuan elemen primitif. Digunakan bilangan prima p sehingga: p = 2.q + 1 (2) Dengan q adalah bilangan prima sehingga nilai minimal p adalah 5 dan q adalah 2. Bilangan prima p tersebut disebut sebagai bilangan prima aman. Langkah penentuan bilangan prima tersebut dinyatakan sebagai berikut: i. Tentukan bilangan prima p 5 ii. Hitung q dengan persamaan (2) iii. Jika q merupakan bilangan prima, maka p merupakan bilangan prima aman. iv. Jika q bukan merupakan bilangan prima, maka p bukan merupakan bilangan prima aman. Untuk menguji keprimaan suatu bilangan, digunakan suatu metode yang disebut Teorema Fermat. Teorema Fermat Jika x adalah bilangan prima dan y adalah bilangan bulat yang tidak habis dibagi dengan x, yaitu PBB(y,x) = 1, maka yx-1 1 (mod p) (3) Contoh pengujian keprimaan suatu bilangan. Diuji apakah 17 dan 21 bilangan prima atau bukan. Kemudian diambil nilai a = 2 karena PBB(17,2) = 1 dan PBB(21,2) = 1. Untuk 17, 217-1= 65536 1 (mod 17) Karena 17 habis membagi 65536 1 = 65535 (65535 17 = 3855). Untuk 21, 221-1 = 1048576 \ 1 (mod 21). 44

Karena 21 tidak habis membagi 1048576 1 = 1048576. Akan tetapi, teorema ini memiliki kekurangan karena terdapat bilangan komposit n sedemikian sehingga 2n-1 1 (mod n). Bilangan itu disebut bilangan prima semu (pseudoprimes). Mislanya komposit 341 (yaitu 341 = 11.31) adalah bilangan prima semu menurut teorema Fermat, 2340 1 (mod 340) Namun, bilangan prima semu ini relatif jarang terdapat. - Penentuan Elemen Primitif Teorema: Suatu elemen yang membangun Zp * disebut elemen primitif (primitive root) mod p. Bila α2 mod p 1 dan αq mod p 1. Jika keduanya dipenuhi, maka α adalah elemen primitif dari Zp *. Langkah penentuan elemen primitif tersebut dapat dinyatakan sebagai berikut: i. Tentukan bilangan prima p 5 dan α Zp * ii. Hitung q dengan persamaan (2) iii. Hitung α2 mod p dan αq mod p. iv. Jika α2 mod p = 1 atau αq mod p = 1, maka α bukan merupakan elemen primitif. v. Jika α2 mod p 1 dan αq mod p 1, maka α bukan merupakan elemen primitif. - Pembentukan Kunci Berdasarkan Bilangan Prima Aman Dan Elemen Primitif Setelah bilangan prima aman dan elemen primitif diperoleh, kunci publik dan kunci rahasia untuk algoritma ElGamal dapat dibentuk. Algoritma ElGamal dalam prosesnya menggunakan bilangan bulat untuk perhitungan. Oleh karena itu, pesan yang terkandung dalam plainteks harus dalam bentuk bilangan bulat. Untuk memenuhi persyaratan tersebut, digunakan kode ASCII (American Standard for Information Interchange) yang merupakan representasi numeric dari karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255. Selanjutnya, dengan kondisi-kondisi tersebut, pembentukan kunci dapat dibentuk dengan mengacu pada langkah berikut: Tentukan bilangan prima p 5 dan α Zp * Pilih a 0,1,..., p 2 sembarang. Hitung nilai β dengan rumus Β = αa mod p (4) Diperoleh kunci publik (p, α,β) yang dapat dipublikasikan serta nilai kunci rahasia a yang dirahasiakan nilainya. Pihak yang membuat kunci publik dan kunci rahasia merupakan pihak penerima pesan. Sedangkan pihak pengirim hanya mengetahui kunci publik dari penerima untuk mengenkripsi pesan yang akan dikirim. b. Proses Enkripsi Proses enkripsi menggunakan kunci publik (p, α, β) dan sebuah bilangan integer acak k (k 0,1,..., p 1) yang dijaga kerahasiaannya oleh penerima yang mengenkripsi pesan. Untuk setiap karakter dalam pesan dienkripsi dengan menggunakan bilangan k yang berbeda-beda. Satu karakter yang direpresentasikan dengan menggunakan bilangan bulat ASCII akan menghasilkan kode dalam bentuk blok yang terdiri atas dua nilai (r, t). Langkah proses enkripsi: Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi karakter tersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat M. Hitung nilai r dan t dengan persamaan berikut: r = α k (mod p) (5) t = β k M (mod p) (6) Diperoleh cipherteks untuk karakter M tersebut dalam blok (r, t) Lakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter spasi. c. Proses Dekripsi Dekripsi dari cipherteks ke plainteks menggunakan kunci rahasia a yang disimpan kerahasiaanya oleh penerima pesan. Teorema: Diberikan (p, α, β) sebagai kunci public dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (r, t), maka M = t (ra) 1 mod p (7) dengan M adalah plainteks. Di mana nilai (ra)-1 = r-a = rp-1-a mod p. (8) Langkah proses dekripsi: Ambil sebuah blok cipherteks dari pesan yang telah dienkripsikan pengirim. Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai plainteks dengan menggunakan persamaan (7) dan persamaan (8). 3. Desain Sistem Berikut desain sistem dari aplikasi yang akan dibuat: 3.1 Desain Logical Database Secara kesuluruhan table yang dibutuhkan adalah sebagai berikut : a. Tabel jenis pengiriman, di tabel ini tersimpan data tentang berbagai jenis pengiriman yang disediakan dan pakah jenis tersebut berjenis mempunyai daya beban apa tidak, serta biaya dari masing masing jenis yang ada. b. Tabel trayek, di tabel ini tersimpan data tentang berbagai trayek yang ada ( dari kota A ke kota B dan semacamnya) serta biaya dari masing masing trayek yang ada. c. Tabel user, di tabel ini tersimpan data dari user yang telah ada, fungsinya sebagai data dari Client yang ada serta akses sebagai admin. d. Dan terakhir tabel laporan transaksi untuk berbagai transaksi yang masuk, meski client berbeda tetapi tabel laporan dijadikan satu, pembeda didasarkan atas data trayek masing masing pengiriman. 45

Adapun rancangan tabel tabel tersebut seperti dibawah ini. Gambar 1. Desain Tabel Jasa Pengiriman Barang 3.2 Desain Aplikasi Untuk desain aplikasi dibagi menjadi dua yaitu desain activity diagram dan class diagram. 3.2.1 Desain Activity Diagram Desain acitivity diagram digambarkan sebagai berikut. Gambar 3. Class Diagram Jasa Pengiriman Barang Pada gambar 3 diatas dapat terdapat 3 bagian yaitu Class Aplikasi, Class Business Logic, dan Database. Pada Class Aplikasi terdiri dari beberapa form yang menunjangnya, antara lain Form Utama, Form Pengiriman Baru, Form Notifikasi, Form Admin, Form Tambah Cabang, Form Tambah Trayek, serta Form Tambah Jenis Pengiriman. Dan dapat dilihat bahwa form admin terhubung langsung dengan form Utama dan bisa diakses sebagai admin. Sehingga tidak perlu membuat aplikasi berbeda khusus untuk admin/server. Tugas seorang admin adalah mengadministrasi data-data dasar yang dibutuhkan untuk usaha Jasa Pengiriman ini. Dan admin juga mempunyai hak untuk melihat data dari semua Client. Gambar 2. Desain Activity Diagram 3.2.2 Desain Class Diagram Berikutnya adalah desain class diagram yang sesuai dengan activity diagram yang telah ada sebelumnya. Untuk Class Business Logic dibagi menjadi empat bagian antara lain: Class Koneksi yang digunakan untuk mengkoneksikan antara aplikasi dengan databasenya. Disinilah inti dari client server jadi beberapa aplikasi dapat terhubung dengan server karena Class Koneksi. Lalu ada Class Baca untuk membaca data dari database, Class Tulis untuk mengirimkan data ke database dan terakhir Class Hitung untuk melakukan perintah perhitungan pada database. 46

4. Hasil Uji Coba Dalam uji coba ini dapat dibuktikan bahwa pengaplikasian Pemrograman Client Server pada usaha Jasa Pengiriman Barang dapat berjalan dengan baik. Berikut tampilan pada aplikasi yang telah jadi. Gambar 6. Form Pengiriman Baru Gambar 4. Form Login Pada tampilan pertama aplikasi ini ada form Login, lewat form ini ditentukan apakah aplikasi ini diakses oleh client biasa atau seorang admin. Diberikan user dan pass berbeda untuk tiap tiap client. Gambar 6 adalah form pengiriman baru yang berfungsi untuk menginputkan data pengiriman baru. Mulai dari input jenis pengiriman, data pengirim, data yang dituju, data trayek yang dituju serta data tentang berat barang yang dikirim. Berikutnya setelah akses selesai dilakukan akan keluar tampilan utama dari aplikasi ini. Gambar 7. Form Admin Terakhir adalah form untuk admin. Disini seorang admin dapat me-maintenance data dasar usaha ini. - Implementasi Class El Gamal Gambar 5. Form Utama Aplikasi Di tampilan utama aplikasi kita bisa melihat data dari transaksi sebelumnya baik itu pengiriman yang dilakukan oleh suatu cabang dan pengiriman yang ditujukan ke cabang kota ini dari cabang kota lainnya. Di sini juga bisa mengakses form-form lainnya seperti Form Pengiriman Baru, Form Login, dan Form Admin. Dalam form ini juga disertakan fungsi untuk pencarian data berdasarkan kondisi yang diinginkan. Berikut proses pembentukan kunci. BigInteger p, g, x, m, k, a, b; BigInteger hasilpangkat = 1, y; private void btnproses_click(object sender, EventArgs e) p = BigInteger.Parse(txtP.Text); g = BigInteger.Parse(txtG.Text); x = BigInteger.Parse(txtX.Text); hasilpangkat = 1; for (int i = 0; i < x ; i++) hasilpangkat = hasilpangkat * g; y = hasilpangkat % p; txty.text = y.tostring(); txtkuncipub.text = " y=" + y + " " + "g=" + g + " " + "p=" + p; txtkuncipriv.text = " x=" + x + " " + "p=" + p; txtk.enabled = true; txtplain.enabled = true; Gambar 8. Implementasi Pembentukan Kunci 47

Disini kunci yang telah didapatkan sebelumnya digunakan untuk Enskripsi dan Deskripsi data. Uji coba El Gamal menghasilkan form sebagai berikut. BigInteger p, g, x, m, k, a, b; BigInteger hasilpangkat = 1, y = 1185; public string Enskripsi(string plain) string kode = ""; hasilpangkat = 1; byte[] anu = Encoding.ASCII.GetBytes(plain); p = BigInteger.Parse("2357"); g = BigInteger.Parse("2"); k = BigInteger.Parse("1520"); for (int i = 0; i < k; i++) hasilpangkat = hasilpangkat * g; a = hasilpangkat % p; hasilpangkat = 1; for (int i = 0; i < k; i++) hasilpangkat = hasilpangkat * y; for (int i = 0; i < anu.length; i++) b = hasilpangkat * anu[i] % p; if (i == anu.length - 1) kode = kode + a + "," + b; else kode = kode + a + "," + b + " "; return kode; public string Deskripsi(string kode) string plain = ""; string[] pisah = kode.split(' '); byte[] oke = new byte[pisah.length]; string[] anu = new string[2]; BigInteger a, b, hasil, p, x, pangkat, m, hasilpangkat; for (int i = 0; i < pisah.length; i++) anu = pisah[i].split(','); a = BigInteger.Parse(anu[0]); b = BigInteger.Parse(anu[1]); hasilpangkat = 1; p = BigInteger.Parse("2357"); x = BigInteger.Parse("1751"); pangkat = p - 1 - x; for (int j = 0; j < pangkat; j++) hasilpangkat = hasilpangkat * a; hasil = hasilpangkat % p; m = b * hasil % p; oke[i] = Convert.ToByte(m.ToString()); plain = Encoding.ASCII.GetString(oke); return plain; Gambar 9. Implementasi Enskripsi dan Deskripsi Gambar 10. Form El Gamal Dan berikut adalah bukti hasil enskripsi pada tb_tr_laporan yang terdapat dalam database. Gambar 11. Tampilan Hasil Enskripsi El Gamal 5. Penutup 5.1 Kesimpulan Dari penelitian ini dapat ditarik beberapa kesimpulan sebagai berikut: c. Pemanfaatan teknik El Gamal dalam keamanan data jasa pengiriman barang terbukti dengan baik menyamarkan data yang terdapat didalam database sehingga tidak mudah dilakukan pencurian data. d. Pemrograman client server berhasil diterapkan pada usaha jasa pengiriman barang dengan baik, hal ini berguna untuk menangani perpindahan data antar cabang usaha yang dimiliki. e. Normalisasi database terbukti dapat mencegah terjadinya redudansi maupun duplikasi data sehingga database dapat berfungsi secara maksimal, misalnya dalam hal pencarian data. 5.2 Saran Meski sudah terbukti aplikasi ini sudah berjalan dengan baik tetapi masih bisa lebih baik lagi apabila sudah menerapkan teknik pemrograman 3-Tier karena bisa saja databasenya terletak sangat jauh ( lintas pulau ) dan apabila nantinya terjadi pengembangan dalam sistem serta tentu masih menerapkan algoritma El Gamal sebagai keamanan datanya. Daftar Pustaka [1] Situs Web dari Asosiasi Pengusaha Jasa Pengiriman Ekspress, http://www.asperindo.or.id/ (diakses pada 26 Mei 2011). [2] Hartanto, Budi. Membuat Program Program Keren dengan Visual C#.Net Secara Mudah. Yogyakarta : C.V Andi Offset 2009 [3] Nurrohmah, Ratnasari. Client/Server dengan Java Remote Method Invocation (Java RMI), Sebuah Tutorial. Surakarta : Teknik Elektro Universitas Muhammadiyah Surakarta 2003 48

[4] Ifanto, Mukhammad. 2009. Metode Enkripsi Dan Dekripsi Dengan Menggunakan Algoritma Elgamal. Makalah If2091 Struktur Diskrit Tahun 2009 49

50