Anda di halaman 1dari 5

IMPLEMENTASI KRIPTOGRAFI ALGORITMA BLOWFISH DAN SKIPJACK PADA JARINGAN CLIENT/SERVER Oleh :

Heru Suryadi1, Irzaman2, Andri Heryandi3


1 2

Jurusan Teknik Informatika, FTIK UNIKOM, Jl. Dipati Ukur Bandung Dosen Teknik Informatika, FMIPA IPB, Jl. Raya Padjajaran Bogor 3 Dosen Teknik Informatika, FTIK UNIKOM, Jl. Dipati Ukur Bandung

Abstraksi Perkembangan teknologi telekomunikasi dan penyimpanan data menggunakan komputer memungkinkan pengiriman data jarak jauh yang relatif cepat dan murah. Di lain pihak, pengiriman data jarak jauh melalui gelombang radio maupun medium lain yang digunakan masyarakat luas (public) sangat memungkinkan pihak lain dapat menyadap dan mengubah data yang dikirimkan. Demikian juga pada sistem jaringan komputer dengan jumlah pemakai yang banyak. Dalam teknologi informasi, telah dan sedang dikembangkan cara-cara untuk menangkal berbagai bentuk serangan semacam ini. Salah satunya yang ditempuh untuk mengatasi masalah ini ialah dengan menggunakan kriptografi dalam bentuk enkripsi-dekripsi menggunakan transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak ketiga. Dalam tugas akhir ini akan disajikan implementasi algoritma Blowfish dan Skipjack dengan panjang blok cipher 64 bit. Tugas akhir ini juga akan menampilkan program untuk menampilkan bagaimana cara mengenkripsi dan mendekripsi file pada jaringan lokal client/server dengan menggunakan kedua algoritma tersebut. Kata kunci : Enkripsi, Denkripsi, Blowfish, Skipjack, Client, Server. 1. Pendahuluan Masalah keamanan merupakan salah satu aspek penting dari suatu sistem komunikasi. Dalam sistem komunikasi data antar berbagai sistem komputer, baik dalam perusahaan maupun instansi pemerintah diperlukan adanya usaha menjaga kerahasiaan dan keamanan data. Dengan

berkembangnya teknik telekomunikasi dan sistem pengolahan data yang berkaitan erat dengan komunikasi antar pengguna komputer yang satu dengan komputer lain yang berfungsi untuk menyalurkan data sehingga masalah keamanan merupakan kebutuhan yang tidak dapat dipisahkan. Salah satu hal yang paling penting untuk menangani masalah kerahasiaan dan keamanan data adalah kriptografi dengan algoritma enkripsi dekripsi yaitu proses untuk merahasiakan data dengan mengubahnya menjadi bentuk yang tidak dapat dipahami. Proses enkripsi ini sangat diperlukan terhadap data yang bersifat rahasia. Dengan proses ini data akan dicetak dengan menggunakan algoritma enkripsi dan kunci tertentu sehingga sangat sulit untuk dapat dimengerti oleh orang lain yang tidak berhak. Untuk itu kerahasiaan kunci sangat diperlukan bagi keberhasilan proses. Proses enkripsi merupakan proses untuk mengencode data dalam bentuk yang hanya dapat dibaca oleh sistem yang mempunyai kunci untuk membaca data. Proses enkripsi dapat dengan menggunakan software atau hardware. Hasil enkripsi disebut cipher. Cipher kemudian didekripsi dengan device (alat) dan kunci yang sama tipenya (sama hardware/software serta sama kuncinya). Dalam jaringan, sistem enkripsi harus sama antara dua host yang berkomunikasi. Jadi diperlukan kontrol terhadap kedua sistem yang berkomunikasi. Biasanya enkripsi digunakan untuk suatu sistem yang seluruhnya dikontrol oleh satu otoritas. Maksud dari penulisan skripsi ini adalah melakukan implementasi kriptografi algoritma Blowfish dan Skipjack untuk penyandian data pada jaringan client / server dengan membuat program / perangkat lunak pengamanan data melalui enkripsi data

Universtisa Komputer Indonesia Teknik Informatika 2005

menggunakan metode Blowfish dan metode Skipjack dengan simulasi pengiriman file atau data pada jaringan client / server. Sedangkan tujuan dari penulisan ini adalah Memberikan sebuah solusi awal untuk keamanan data pada jaringan dengan metode kriptografi, dengan sistem sandi yang akan digunakan berdasarkan metode Blowfish dan metode Skipjack. 2. Metodologi Tempat penelitian dilaksanakan di Jurusan Teknik Informatika Universitas Komputer Indonesia (UNIKOM). Adapun waktu penelitian dimulai Oktober 2004 sampai dengan Januari 2005. Metode penelitian dilakukan dengan mengadakan studi kepustakaan, yaitu mengumpulkan literatur bacaan-bacaan tentang algoritma kriptografi Blowfish dan Skipjack yang diimplementasikan pada jaringan client/server dengan menggunakan bahasa pemrograman Borland Delphi 7.0. Bacaan-bacaan bisa berupa jurnal, artikel, textbook dan informasi-informasi yang berkaitan dengan kedua metode tersebut.
M u la i S e le s a i

Data atau Plaintext dinotasikan dengan M (Message), yang dapat berupa bit stream, file text, digital video image, dan sebagainya atau lebih singkatnya M adalah data binary. Fungsi Enkripsi E, berfungsi untuk mengubah M menjadi C atau Ciphertext, dalam matematika dinotasikan dengan: E(M) = C. Fungsi Dekripsi D, berfungsi untuk mengubah C menjadi M, dalam matematika dinotasikan dengan : D(C) = M. Metode Blowfish Blowfish adalah algoritma kriptografi yang menggunakan blok cipher 64-bit yang memiliki sebuah kunci yang panjangnya variabel. Algoritma ini diciptakan oleh Bruce Schenier, seorang president dari Counterpane System,. Berdasarkan kunci yang digunakan algoritma ini termasuk dalam algoritma konvensional / private key algorithm yang sering disebut dengan sistem simetris. Algoritma Blowfish dirancang untuk membaca berita blok data atau plaintext sebesar 64 bit / 8 byte, sebanyak 16 putaran. Blowfish menggunakan sejumlah sub kunci (subkey) yang besar. Dinyatakan dengan P-array yang mempunyai 18 subkey 32-bit (P1, P2, P3,..... P18) Untuk lebih jelasnya, gambar flowchart proses enkripsinya sebagai berikut :
M u la i

P e n g u m p u la n d a t a

K e s im p u la n

I d e n t if ik a s i m a s a la h

A n a lis is d a t a h a s il p e r c o b a a n

x /2 = x L & x R

B a t a s a n m a s a la h

Ya

X L = xL X O R P 1 X R = F (x L ) X O R x R

T uk a r xL a nd xR

Im p le m e n t a s i P r o g r a m T id a k

S ukses
I < 16

Gambar 2.1 Diagram alir penelitian

T uka r xR an d xL

3. Landasan Teori Bentuk asli dari sebuah pesan atau data disebut dengan plaintext dan bentuk asli dari pesan atau data yang terenkripsi di sebut ciphertext.
Plaintext Enkripsi Ciphertext Dekripsi Plaintext

X R = xR X O R P 1 7 X L = xL X O R P 18

S a tu k a n xL a n d x R

S e le s a i

Gambar 3.2 Flowchart enkripsi Blowfish

Gambar 3.1 Enkripsi dan Dekripsi

Input merupakan elemen 64 bit, misalkan X.

Universtisa Komputer Indonesia Teknik Informatika 2005

Bagi (x) dalam dua bagian menghasilkan ( xl ) dan ( xR ). Untuk I = 1 sampai 16 maka :

32

bit

xL = xL P 1 xR = F ( xL ) xR

Tukar xL dan xR Tukar xR dan xL (membatalkan penukaran terakhir)

Langkah - langkah enkripsi yang diperlukan pada metode Skipjack ini berdasarkan algoritma yang ada adalah 32 langkah dimana langkah-langkah tersebut meliputi 16 langkah Aturan A dan 16 langkah Aturan B. Untuk lebih jelasnya, gambar flowchart proses enkripsinya sebagai berikut :
M u la i

xR = xR P 17 xL = xL P 18

w /4 = w 1 ,w 2 ,w 3 ,w 4

Gabungkan kembali xL dan xR Fungsi F adalah sebagai berikut:


8 b it 8 b it 3 2 b it 8 b it 8 b it S -B o x 1 S -B o x 2 S -B o x 3 S -B o x 4 3 2 b it 3 2 b it
A tu ra n A A tu ra n A

A tu ra n B

3 2 b it 3 2 b it 3 2 b it
A tu ra n B

Gambar 3.3 Fungsi F

i = 32

Bagi XL, menjadi empat bagian 8-bit: a, b, c dan d F(XL) = ((S1,a + S2,b mod 232) xor S3,c) + S4,c mod 232 Untuk proses dekripsi sama persis dengan enkripsi, kecuali P1, P2, . . . , P18 digunakan pada urutan yang terbalik Metode Skipjack Skipjack adalah algoritma kriptografi blok cipher yang menggunakan 64-bit blok data dan 80 bit kunci. Skipjack dikembangkan oleh National Security Agency (NSA) yaitu Badan Keamanan Nasional Amerika Serikat. Tidak banyak diketahui tentang algoritma Skipjack ini, karena itu algoritma Skipjack digolongkan rahasia oleh pemerintah Amerika Serikat. Algoritma Skipjack dirancang untuk membaca berita blok data atau plaintext sebesar 64 bit / 8 byte, sebanyak 32 putaran. Skipjack mengenkripsikan 4 word (8 byte) blok data dengan memprosesnya melalui 2 aturan proses yang berbeda, yaitu Aturan A dan Aturan B. Dimana kedua aturan tersebut merupakan satu kesatuan yang saling terkait.

S e le s a i

Gambar 3.4 Flowchart enkripsi Skipjack

Input merupakan elemen 64 bit, misalkan w. Dalam mengenkripsikan suatu blok, langkah yang dilakukan pertama kali adalah membagi blok menjadi empat bagian (w1,.....,w4). Kemudian akan dilakukan proses iterasi berdasarkan 2 aturan yang ada (Aturan A dan B) secara bergantian. Input awal adalah wi0, dimana 1 i 4 , kemudian dilakukan proses iterasi berdasarkan aturan yang dijalankan. Untuk pertama kita gunakan Aturan A sebanyak 8 langkah. Kemudian berganti dengan Aturan B sebanyak 8 langkah, berulang lagi dengan Aturan A dan kemudian dengan Aturan B juga sebanyak 8 langkah. Pada setiap selesai melakukan proses langkah nilai counter akan bertambah satu. Output yang dihasilkan adalah wi32, dimana 1 i 4 . Aturan A :
W 1 G W 2 W 3 W 4

C o u n te r

Gambar 3.5 Aturan A

Universtisa Komputer Indonesia Teknik Informatika 2005

Cara kerja pada Aturan A adalah : G permutasi w1, - w1 yang baru adalah xor dari keluaran G, sebuah counter, dan w4, w2 dan w3 pindah satu register ke kanan; contoh menjadi w3, dan w4 berurutan, w2 yang baru adalah keluaran G Counter adalah hasil dari kenaikan Aturan B :
W 1 G W 2 W 3 W 4

(dengan menggunakan 2 komputer pada jaringan) :


Tabel 4.1 Perbandingan waktu proses Blowfish
No 1 2 3 4 5 6 7 8 9 10 N a m a file R e a d m e .T x t P in s e t.J p g B lo w fis h .R a r S o u rc e .C c D a ta .D o c T u to r ia l.P d f C h e a tB o o k s .Z ip A u to ru n .W a v G a m b a r .B m p U ltr a S n iff e r .E x e M u n g k in N a n ti.M p 3 W in M e .W m v B e a tle s .M e p g U k u ra n a s li (b y te ) 294 12745 15923 164956 682496 790786 970474 1016108 1411254 1969536 3236712 11624034 21792772 U k u r a n e n k rip s i (b y te ) 486 12942 16118 165170 682774 791078 970786 1016426 1411618 1969974 3237280 11625646 21795626 W a k tu e n k rip s i ( d e tik ) 0 ,0 1 6 0 ,0 3 1 0 ,0 1 6 0 ,0 1 5 0 ,0 4 7 0 ,0 7 9 0 ,0 9 4 0 ,1 0 3 0 ,1 5 6 0 ,2 9 7 0 ,7 5 8 ,1 4 1 2 7 ,6 5 6 W a k t u d e k rip s i (d e tik ) 0 ,0 1 6 0 ,0 1 6 0 ,0 1 5 0 ,0 1 6 0 ,0 6 2 0 ,0 7 8 0 ,1 1 0 ,0 9 3 0 ,1 8 8 0 ,3 1 2 0 ,7 6 5 1 0 ,0 1 6 2 8 ,7 6 6

C o u n te r

11 12 13

Gambar 3.6 Aturan B

Untuk Aturan B cara kerjanya sama dengan Aturan A. Permutasi G : Pemutasi G adalah empat putaran struktur Feistel. Fungsi putaran adalah mencampur tabel byte-substitusi yang disebut dengan tabel F. Perlu diperhatikan di sini yaitu tabel F adalah tabel yang isinya merupakan ketetapan dari metode Skipjack. Untuk proses dekripsi merupakan proses kebalikan dari enkripsi, dengan input-nya adalah wi32, dimana 1 i 4 (dengan k=32 untuk langkah awal. Nilai dari counter dimulai dengan 32. Proses pada dekripsi pada dasarnya tidak jauh berbeda dengan proses enkripsi, pada dekripsi juga digunakan iterasi langkah berdasarkan dua aturan yang ada yaitu Aturan A dan B. Setelah dilakukan iterasi sebanyak 32 kali nantinya akan didapat hasil akhir wi0 (karena nilai counter berkurang sebanyak 32 kali), dimana 1 i 4 . 4. Pengujian Sistem Program yang dibuat hanya dapat melakukan proses enkripsi dan dekripsi pada satu file saja. Hal ini berkaitan dengan lamanya waktu proses enkripsi dan dekripsi yang didapat dari beberapa file yang ukurannya mencapai lebih dari 10 MB. Berikut adalah tabel hasil dari beberapa file yang telah dilakukan proses enkripsi dan dekripsi dalam uji coba tersebut dengan menggunakan metode Blowfish dan Skipjack

Dari hasil tabel Blowfish di atas, dapat diketahui bahwa kecepatan rata-rata untuk proses enkripsi Blowfish yaitu :
43688090 37,401

= 1168099,516 byte / detik. Sedangkan


untuk proses dekripsinya, kecepatan rataratanya mencapai:
43695924 40,453

1080165,229 byte / detik.


Tabel 4.1 Perbandingan waktu proses Skipjack
No 1 2 3 4 5 6 7 8 9 10 11 12 13 N a m a file R e a d m e .T x t P in s e t.J p g B lo w fis h .R a r S o u rc e .C c D a ta .D o c T u to r ia l.P d f C h e a tB o o k s .Z ip A u to ru n .W a v G a m b a r .B m p U ltr a S n iff e r .E x e M u n g k in N a n ti.M p 3 W in M e .W m v B e a tle s .M e p g U k u ra n a s li (b y te ) 294 12745 15923 164956 682496 790786 970474 1016108 1411254 1969536 3236712 11624034 21792772 U k u r a n e n k rip s i (b y te ) 464 12920 16096 165148 682752 791056 97076 1016404 1411596 1969952 3237258 11625624 21795604 W a k tu e n k rip s i ( d e tik ) 0 ,0 1 6 0 ,0 1 5 0 ,0 1 6 0 ,0 3 1 0 ,1 1 0 0 ,1 0 9 0 ,1 5 6 0 ,1 5 7 0 ,6 5 0 0 ,4 0 7 1 ,0 0 0 8 ,8 2 9 3 2 ,2 1 9 W a k t u d e k rip s i (d e tik ) 0 ,0 1 5 0 ,0 1 6 0 ,0 1 5 0 ,3 2 0 ,0 9 3 0 ,1 1 0 0 ,1 5 7 0 ,1 5 6 0 ,2 6 6 0 ,4 2 2 0 ,9 5 4 9 ,0 0 0 3 1 ,7 8 1

Dari hasil tabel Skipjack di atas, dapat diketahui bahwa kecepatan rata-rata untuk proses enkripsi Skipjack yaitu :
43688090 43,715

= 999384,422 byte / detik. Sedangkan untuk proses dekripsinya, kecepatan rata-ratanya mencapai :
43695660 43,017

1015776,553

byte / detik. Dari hasil perbandingan di atas dapat disimpulkan bahwa proses enkripsi-dekripsi Blowfish lebih cepat dibandingkan dengan Skipjack, karena rata-rata data yang terenkripsi / terdekripsi pada pengiriman

Universtisa Komputer Indonesia Teknik Informatika 2005

lebih besar dibandingkan dengan skipjack dalam satuan byte/detik. 5. Kesimpulan Berikut beberapa perbedaan dan persamaan dari kedua metode : Blowfish memiliki jumlah iterasi 16 kali, sedangkan Skipjack memiliki jumlah iterasi sebanyak 32 kali. Blowfish memiliki kunci dengan panjang kunci variabel sampai 448 bit, sedangkan Skipjack menggunakan 80 bit kunci. Proses hasil akhr enkripsi-dekripsi Blowfish lebih cepat dibandingkan proses hasil akhr enkripsi-dekripsi Skipjack. Daftar pustaka 1. B. Schneier, 1996, Applied Cryptography: Protocols, Algorithms, and Source Code in C, second edition, John Willey and Sons Inc, Kanada. 2.D. Denning, The Skipjack Encryption Algorithm Review, March 13 1998. 3.National Institute of Standards and Technology, SKIPJACK and KEA Algorithm Specifications, June 24 1998. 4.Riyanto, 2003, Seri Penuntun Praktis : Koneksi Data Melalui Borland Delphi dengan Database MySQL , Elex Media Komputindo, Jakarta. 5.WAHANA Komputer, 2003, Pengembangan Aplikasi Clinet/Server dengan Borland Delphi, Elex Media Komputindo, Jakarta. 6.WAHANA Komputer, 2003, Memahami Model Enkripsi & Security Data, ANDI, Yogyakarta. 7.W. Stallings, 2003, Cryptography and Network Security Principles And Practices, Third Edition, Pearson Education Inc, India. 8.Wagiman, Teknik Pengamanan Data Digital Menggunakan Algoritma Blowfish dan Perbandingannya dengan Algoritma Stream Cipher sederhana, 2003. 9.Y. Kurniawan, 2004, Kriptografi Keamanan Internet dan jaringan Komunikasi, Informatika, Bandung. 10. Z. Jauhari, Encryption Skipjack pada Clipper Chip sebuah keamanan Yang paling rahasia Pada Pengiriman Data, 2003.

Universtisa Komputer Indonesia Teknik Informatika 2005

Anda mungkin juga menyukai