Trisnawati 08053111015
Trisnawati 08053111015
Tugas Akhir
Mata Kuliah Keamanan Jaringan Komputer
Oleh
Trisnawati
08053111015
dengan kunci mengenkripsi tadi atau yang sering disebut dengan private key kriptographi.
KATA PENGANTAR
Puji syukur kehadirat Allah SWT atas limpahan rahmatNya sehingga Tugas
Akhir Mata Kuliah Keamanan Jaringan Komputer ini berjudul Sistem Keamanan
menggunakan Algoritma Blowfish Advance CS pada File dan Folder data akhirnya
dapat terselesaikan juga.
Penyusunan Tugas Akhir ini banyak sekali melihat dari berbagai macam referensireferensi yang ada. Penulis juga mengucapkan terima kasih serta memberikan penghargaan
setinggi-tingginya kepada yang terhormat : Bapak Deris Stiawan M.Kom selaku Dosen yang
mengajar Mata Kuliah Keamanan Jaringan Komputer yang telah memberikan tugas akhir ini
sehingga penulis bisa mengetahui dan memahami lebih banyak lagi tentang Algoritma
Kriptographi khususnya pada Algoritma Blowfish Advance CS.
Mudah-mudahan apa yang penulis tulis ini dapat berguna bagi kita semua dan
dengan rendah hati penulis berharap apabila ada kesalahan terhadap penulisan dan
kata-kata pada Tugas Akhir ini mohon kiranya dapat di maafkan.
Palembang,
Mei 2008
Penulis
DAFTAR ISI
Halaman
ABSTRAK
............................................................................................................
1
KATA PENGANTAR
...........................................................................................
2
DAFTAR ISI
........................................................................................................
3
BAB I PENDAHULUAN
..................................................................................
1.1 Latar Belakang
...........................................................
1.1.1 Sejarah Kriptographi
.................................................................
1.1.2 Tujuan Kriptographi
.................................................................
1.2 Tujuan Penelitian
..
1.3 Metode Penelitian
.............................................................................
4
4
6
6
7
7
8
9
9
10
12
13
14
15
20
20
21
26
26
27
BAB I
PENDAHULUAN
1.1
Latar Belakang
Di era globalisasi ini, dimana segala sesuatunya itu berjalan dengan cepat,
kemajuan teknologi semkain memudahkan manusia untuk berkomunikasi dan saling
bertukar informasi. Tetapi dengan kemajuan teknnologi itu pula dapat mengakibatkan
informasi yang ditukar bisa terganggu dan bia saja dapat di ubah oleh orang lain yang
tidak berhak.
Keamanan dan kerahasiaan sebuah data atau informasi dalam komunikasi dan
pertukaran informasi menjadi hal yang sangat penting. Itu dikarenakan seringkalinya
data atau informasi yang penting kadang tidak sampai ke tangan si penerima atau juga
bahkan bisa sampai ke tangan si penerima tapi data yang di terima tersebut di sadap
terlebih dahulu tanpa pengetahun dari si pengirim maupun oleh si penerima itu
sendiri. Dan bisa saja data asli tersebut oleh si penyadap dirubah datanya sehingga
yang seharusnya dikirim ke si penerima berupa data yang asli menjadi data yang tidak
sesuai, sehingga bisa menjatuhkan pihak si pengirim. Padahal isi data sebenarnya
tidak seperti itu.
Hal inilah yang seringkali di takutkan oleh pihak pihak yang saling ingin
bertukar informasi. Mereka takut apakah data yang mereka kirim tersebut bisa sampai
ke si penerima atau tidak, sehingga masalah keamanan dan rahasianya sebuah data
merupakan hal yang sangat penting dalam pertukaran informasi. Maka dari itu saking
pentingnya data yang di berikan tersebut agar bisa sampai ke penerima dalam bentuk
yang autentik diperlukannya sebah metode untuk merahasiakan data yang dikirim
tersebut.
Maka kebanyakan dari pihak pihak yamg saling bertukar informasi itu
menggunakan beberapa macam metode untuk menjaga kerahasiaan pesan mereka,
diantaranya dengan menggunakan sebuah metode penyandian pesan yang bernama
Kriptographi ( Cryptographi ) untuk merahasiakan pesan yang mereka kirimkan.
1.1.1
Sejarah Kriptographi
Agoritma Kriptographi pertama kali digunakan sebagai petunjuk
dalam perang. Menurut Sejarah pada tahun 1900 SM Julius Caesar dikenal
sebagai orang yang pertama kali mengembangkan algoritma kriptographi
untuk mengirimkan pesan kepada tentaranya yang sedang di medan
peperangan. Algoritma yang digunakan oleh Julius Caesar itu sendiri dikenal
dengan nama caesar chiper. Yang mana cara kerjayanya dengan menggeser
setiap huruf dalam pesan yang akan menjadi algoritma standar sehingga
dapat menginformasikan semua keputusan dan kemudian mengirimkan pesan
tersebut dalam bentuk yang aman.
Kriptographi ( Cryptography ) atau yang lebih sering dikenal dengan
ilmu penyandian data adalah suatu ilmu sekaligus seni untuk menjaga
kerahasiaan pesan baik itu berupa data maupun informasi yang mempunyai
tujuan untuk menjaga kerahasiaan suatu pesan kita dari pihak pihak lain
yang ingin mengakses data kita secara ilegal.
Kriptographi semulanya hanya digunakan oleh pihak militer dan
bidang intelijen untuk menyandikan pesan mereka.
1.1.2
Tujuan Kriptographi
Kriptographi merupakan dasar bagi keamanan komputer dalam
jaringan, yang menjadi pokoknya data atau informasi, sedangkan yang
menjadi sarana distribusinya adalah komputer. Untuk selalu menjaga agar
data maupun informasi yang di kirim bebas dari pihak luar maka digunakan
suatu metode yaitu Kriptographi. Metode kriptographi merupakan salah satu
cara untuk mengamankan data, sehingga baik data maupun informasi yang di
sharing antar ke dua belah pihak dapat di amankan tanpa ada pihak lain yang
tidak berkepentingan untuk bisa mengaksesnya.
Yang terutama dalam menjalankan komunikasi antara kedua blekah
pihak adalah keamanan datanya. Apakah data tersebut telah aman atau tidak
kita tidak bisa mengetahuinya. Sehingga masalah privatnya data sampai ke
masalah Otentik (Asli) atau tidaknya data kita dapat mengetahuinya dengan
mengunakn metode kriptographi. Privat Data disini maksudnya adalah data
tersebut hanya bisa dimengerti oleh pihak yang mengirim dan menerima
informasi tersebut. Sehingga orang lain diusahakan agar tidak bisa
mengaksesnya. Sedangkan otentik data disini maksudnya apakah data yang
dikirim oleh si pengirim tersebut sesuai dengan data yang telah diterima oleh
si penerima atau tidak. Sehingga tujuannya adalah mencegah agar orang lain
atau pihak ketiga untuk memanipulasi/mengubah, menghapus atau bahkan
juga bisa membuat data yang dikirimkan tersebut tidak sampai ke pengirim.
Adapun tujuan dari kriptographi itu sendiri adalah :
1. Melindungi pesan, data, atau informasi yang akan dikirimkan agar tidak
bisa di baca oleh oranng orang yang tidak berhak
2. Mencegah agar orang orang yang tidak berhak itu menyisipkan pesan,
megubah pesan, atau juga bahkan bisa menghapus pesan yang akan
dikirimkan.
3. Memberikan jaminan bahwa pesan tidak akan mengalami perubahan dari
saat data dikirim sampai dengan saat data tersebut diterima oleh si
penerima.
4. Memberikan kerahasiaan pesan dan menyimpan data dengan cara
menyebunyikan informasi yang dkirim melalui teknik peng-enkripsian.
5. Memberikan jaminan akan keotentikannya data yang dikirim, dan juga
bisa menguji identitas seseorang apabila ia akan masuk ke sebuah sistem
6. Memberikan cara untuk membuktikan bahwa suatu dokumen datang dari
sesorang apabila ia menyangkal memiliki dokumen tersebut.
1.2
Tujuan Penelitian
Penelitian ini dibuat oleh penulis dengan tujuan sebagai berikut :
1. Untuk memenuhi tugas matakuliah Keamanan Jaringan Komputer
yang diberikan oleh dosen pengajar.
2. Agar penulis bisa memahami dan mengerti tentang Kriptographi yang
juga menjadi bahan ajar matakuliah tersebut.
3. Secara keseluruhan agar penulis dapat memahami cara kerja dan struktur
algoritma dari Blowfish itu sendiri.
4. Dan juga apa yang telah ditulis ini bisa penulis implementasikan dalam
sebuah pesan yang ingin di rahasiakan oleh penulis.
1.3
Metode Penelitian
Metode penelitian yang penulis gunakan di sini adalah studi literature yang di
ambil dari website website yang membahas tentang algoritma kriptographi
khususnya pada algoritma kunci simetri pada sofware Blowfish Advance CS dan
melakukan simulasi sendiri dengan cara merahasiakan file atau folder data.
BAB II
LANDASAN TEORI
2.1
untuk proses enkripsi dan dekripsinya. Kunci tersebut merupakan satu-satunya jalan untuk
proses enkripsi (kecuali mencoba membobol algoritma tersebut), sehingga kerahasiaan kunci
menjadi nomor satu. Untuk mengirimkan kunci tersebut ke suatu pihak tanpa diketahui pihak
yang lain merupakan masalah awal dari algoritma kunci simetrik.
Algoritma kunci simetri terbagi menjadi dua buah bergantung pada datanya.
Keduanya adalah: cipher aliran (stream cipher) dan cipher blok (block cipher). Cipher
aliran memproses satu bit pesan sekali dalam satu waktu, sedangkan cipher blok
memproses sekumpulan bit sekaligus sebagai satu unit. Ukuran blok yang umu
dipakai adalah 64 bit. Dari segi kecepatan komputasi, algoritma kunci simetri lebih
cepat daripada algoritma asimetrik. Kelemahan utamanya seperti yang disebutkan
diatas, yaitu dalam mendistribusikan kunci ke pihak-pihak yang berkepentingan. Jika
dipakai dalam suatu lingkungan yang tidak membutuhkan pendistribusian kunci
(seperti penggunaan pribadi), maka algoritma ini merupakan algoritma yang terbaik.
2.1.1 Reversibility algoritma kunci simetri
Semua fungsi kriptografi harus memiliki sifat reversibility, yaitu mampu
mengembalikan cipher teks hasil enkripsi kembali ke plain teks melalui proses
dekripsi. Kemampuan reversibility pada hampir semua metode pada algoritma kunci
simetrik mengandalkan kemampuan reverse operation. Metode ini berintikan
membalik semua operasi yang ada. Yaitu dengan melakukan operasi yang
berlawanan. Misal operasi yang berlawanan adalah: penjumlahan & pengurangan,
penggeseran ke kiri & ke kanan, dll.
Namun tidak sedikit juga algoritma kunci simetrik blok cipher memiliki sub
metode yang tidak bersifat reversible jika berdiri sendiri seperti metode Expand dan
Filter. Namun metode tersebut akan bersifat reversible jika ditanamkan pada metode
Jaringan Feistel. Dan metode yang digunakan tidak hanya mengandalkan reverse
operation, namun melibatkan teknik teknik lain.
panjang
blok
128
bit
(hampir
semua
algoritma
Gambar 1
Gambar 2
Dari gambar diatas dapat kita lihat bahwa untuk mengirimkan pesan antara si
pengirim dan si penerima menggunakan satu kunci atau kunci yang di gunkan sama.
Maksudnya adlah kunci yang digunakan untuk mengenkripsi pesan dan kunci yang digunakan
untuk mengdekripsikan pesan sama. Berarti mereka dalam melakukan komunikasi
menggunkan satu kunci yang disebut kunci asimetri. Proses enkripsi dan dekripsi keduanya
menggunakan kunci yang sama K1=K2.
Pertama kali sebelum pesan dikirim pesan tersebut masih dalam keadaan asli atau
belum di enkripsi atau yang lebih dikenal dengan nama plaintext atau cleartext. Kemudian
pada saat pesan tersebut dikirim pesan tersebut terlebih dahulu dilakukan proses encription
(encipherment) yaitu proses menyandikan pesan plaintext kedalam chipertext yang apabila di
buka akan berupa algoritma atau kata-kata yang sama sekali tidak dimengerti, sehingga orang
lain tidak bisa membaca data yang telah di enkripsi tersebut. Kemudian setelah sampai di si
penerima untuk mengubah chipertext tadi ke dalam plaintext disebut dengan decryption
(dechiperment). Sedangkan Orang yang melakukan enkripsi terhadap suatu pesan atau
praktisi kriptographi disebut Cryptographer. Pendistribusian Kunci pada
Kriptografi
Kunci Simetri tidak dapat dilakukan menggunakan saluran/ media yang akan digunakan untuk
komunikasi, diperlukan media khusus untuk distribusi kunci, beberapa kunci mungkin
membutuhkan beberapa media paralel untuk distribusinya.
2.2
Blowfish dioptimasikan untuk berbagai aplikasi dimana kunci tidak sering berubah,
seperti
pada
jaringan
komunikasi
atau
enkripsi
file
secara
otomatis.
Dalam
2.3
atau dibangkitkan terlebih dahulu sebelum dilakukan enkripsi atau dekripsi data. Tujuan dari
metode ini adalah untuk mengacak urutan bit-bit pada sebuah blok. Metode ini berbeda
dengan metode substitusi pada pemanipulasian bit (Subbab 3.1). Perbedaannya adalah pada
metode ini digunakan acuan yang telah pasti dalam pensubstitusian bit. Acuan tersebut tidak
memiliki pola khusus, dan pada kebanyakan algoritma kriptografi, acuan tersebut telah
ditetapkan oleh si perancang algoritma. Dinamakan kotak permutasi, sebab merupakan
sebuah kotak 2 dimensi yang setiap isinya memiliki informasi bit tersebut harus dipindahkan
ke urutan keberapa pada blok tersebut. Blowfish memanfaatkan kotak permutasi dalam
beberapa prosesnya. Kotak permutasi ini bertujuan untuk mengacaukan urutan bit, sehingga
mencegah kriptanalis yang akan menyerang algoritma tersebut menggunakan metoda seperti
metoda kunci lemah.
2.4
dikomputasikan pada saat awal, sebelum pengkomputasian enkripsi dan dekripsi data.
Langkah-langkahnya adalah sebagai berikut:
1. Terdapat kotak permutasi (P-box) yang terdiri dari 18 buah 32 bit subkunci: P1,
P2, P3, ... P18. P-box ini telah ditetapkan sejak awal, 4 buah P-box awal adalah
sebagai berikut:
P1 = 0x243f6a88
P2 = 0x85a308d3
P3 = 0x13198a2e
P4 = 0x03707344
2. Xorkan P1 dengan 32 bit awal kunci, xorkan P2 dengan 32 bit berikutnya dari
kunci,
dan teruskan hingga seluruh panjang kunci telah terxorkan (kemungkinan sampai
P14, 14x32 = 448, panjang maksimal kunci).
3. Terdapat 64 bit dengan isi kosong, bit-bit tersebut dimasukkan ke langkah 2.
4. Gantikan P1 dan P2 dengan keluaran dari langkah 3.
5. Enkripsikan keluaran langkah 3 dengan langkah 2 kembali, namun kali ini dengan
subkunci yang berbeda (sebab langkah 2 menghasilkan subkunci baru).
6. Gantikan P3 dan P4 dengan keluaran dari langkah 5
7. Lakukan seterusnya hingga seluruh P-box teracak sempurna
8. Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci-subkunci
yang dibutuhkan. Aplikasi hendaknya menyimpannya daripada menghasilkan
ulang subkunci-subkunci tersebut.
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:
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 digunakan Blowfish
adalah seperti pada Gambar 3 diabawah ini :
Gambar 4
Pada Algoritma Blowfish terdapat keunikan dalam hal proses dekripsinya, 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.
2.5
3. Enkrip semua string nol dengan algoritma Blowfiah dengan menggunakan subkunci
seperti dijelaskan pada langkah (1) dan (2).
4. Ganti P1 dan P2 dengan keluaran dari langkah (3)
5. Enkrip keluaran dari langkah (3) dengan algoritma Blowfish dengan subkunci yang
sudah dimodifikasi.
6. Ganti P3 dan P4 dengan keluaran dari langkah (5).
7. Lanjutkan proses tersebut, ganti seluruh elemen dari P-array, dan kemudian seluruh
keempat S-box berurutan, dengan keluaran yang berubah secara kontinyu dari
algoritma Blowfish
Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang dibutuhkan.
Aplikasi kemudian dapat menyimpan subkunci ini dan tidak dibutuhkan langkah-langkah
proses penurunan ini berulang kali, kecuali kunci yang digunakan berubah.
Gambar diagram skema dekripsi algoritma Blowfish
.
Gambar 5
BAB III
PEMBAHASAN
3.1
ini menggunakan aritmatik modular untuk membangkitkan index-index ke dalam S-box. Tidak
membalik (non-invertibility) ini dijelaskan sebagai berikut dengan contoh : Ambil fungsi f(x) = x 2
mod 7, lihat tabel 1 dibawah ini :
X2
1
4
9
16
25
36
49
X2 Mod 7
1
4
2
2
4
1
0
Output yang dihasilkan tidak ada fungsi sehingga fungsi yang dihasilkanpun tidak ada
fungsi khusus ke f(x). Sebagai contoh jika kita mengetahui bahwa fungsi kita mempunyai sebuah
nilai 4 di beberapa nilai X, maka tidak ada cara untuk mengetahui jika nilai X tersebut adalah 2;
5; atau nilai X yang lain yang mempunyai fungsi f(x) = 4. Blowfish melakukan aritmatikanya
sebesar mod 232 ( 232 sama dengan 4 milyar). Ini disebut aritmatik dalam bidang berhingga dan
membuat banyak asumsi matematika yang sama yang tidak benar (1+1 tidak sama dengan 2 jika
kita berada disebuah bidang ukuran 2 yang berhingga).
S-box adalah array yang besar dari data yang didefinisikan sebelumnya. Selama proses
setup key, key tersebut menggabungkan dengan S-box. Detail key-setup ini relatif tidak menarik
tetapi kenyataannya bahwa ia menggabungkan key tersebut dengan S-box yang menguatkan
algoritma tersebut. Key-setup dalam Blowfish dirancang relatif lamban. Hal ini sangat
bermanfaat karena seseorang akan melakukan suatu search-key brute-force yang akan menuju
proses key-setup yang lamban untuk setiap key yang dicobanya. Meskipun seseorang melakukan
enkripsi dan dekripsi harus hanya menuju proses key-setup satu kali, maka proses enkripsi dan
dekripsi relatif cepat.
Elemen yang terpenting pada Blowfish yang lain adalah jaringan Feistel.
Menggunakan jaringan Feistel yang menghasilkan cipher dengan dua sifat yang dapat
diinginkan yaitu dekripsi menggunakan fungsi (f) yang sama dan kemampuan untuk
mengiterasi fungsi tersebut beberapa kali ini disebut round (putaran). Semakin banyak
round maka semakin banyak keamanan algoritma tersebut. Jumlah round yang
direkomendasikan tergantung pada aloritma khusus; untuk Blowfish adalah 16 round.
3.2
6. Lalu akan keluar tampilan seperti dibawah ini, lalu klik yes
7. Setelah klik yes maka akan keluar tampilan kembali sepeti di bawah ini dan klik
OK
8. Secara otomatis file yang kita enkripdi tadi akan tidak bisa di baca datanya oleh
orang lain.
9. Untuk membuktikannya kita buka file tadi lalu lihat apakah yang terjadi pada file
tersebut
10. Dan ternyata file tersebut datanya telah aman, data yang ada pada file tersebut
telah berubah menjadi sebuah bentuk tuisan aneh yang tdak dapt di mengerti.
Dengan itu kita dapat merasa aman dengan data yang kita rahasiakan tersebut.
11. Untuk membuka kembali datanya kita buka kembali toolsnya lalu kita klik tanda
kunci yang terbuka
12. masukkan kembali password kita yang tadi lalu kllik OK, dan pasword tadi
jangan sampai lupa. Apabila hal tersebut terjadi maka file tersebut tidak akan
pernah bisa dibaca kembali.
13. Setelah itu akan keluar kembali tampilan seperti di bawah ini dan klik yes
14. Maka akan tampil seperti tampilan di bawah ini, lalu klik OK :
15. Maka secara otomatis file yang telah di enkripsi tadi telah berubah menjadi
seperti semula sebelum di enkripsi, atau kembali lagi menjadi plaintexs.
16. Untuk membuktikan apakah file yang berisi data Keamanan Password dan
Enkripsi tadi telah kembali seperi semula maka dapat kembali di buka seperti
membuka file seperti biasanya.
BAB IV
KESIMPULAN
Kesimpulan
Dari analisa algoritma dan simulasi program Blowfish advance CS tersbut dapat
disimpulkan sebagai berikut:
Pada saat proses key set-up algoritma Blowfish, key ini digabungkannya dengan
S-box sehingga menguatkan algoritmanya.
Pada saat proses simulasi file/folder data file enkripsi dalam program algoritma
Blowfish ini menggunakan key dengan minimum bisa 4 karakter.
Kunci yang simetri pada algoritma Blowfish ini sehingga proses simulasi enkripsi dan
dekripsi file/folder data selalu menggunakan key yang sama, begitu juga split file dan
merger file menggunakan key yang sama.
DAFTAR PUSTAKA
http://maakus.dyndns.org
http://209.85.175.104/search?
q=cache:bB8j4EYXUMsJ:www.bimacipta.com/protek.htm+keamanan+data+pada+algoritma+tri
ple+DES&hl=id&ct=clnk&cd=5&gl=id
http://209.85.175.104/search?
q=cache:bFj44gvKzloJ:www.pusatartikel.com/article/komputer/hacking/keamanan-data-danmetodeenskripsi.html+keamanan+data+pada+algoritma+triple+DES&hl=id&ct=clnk&cd=9&gl=id
http://www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-077.pdf
www.pusatartikel.com/index.php?print/id:1057,pdf:1
http://209.85.175.104/search?
q=cache:2OknDICacywJ:sisyboy.wordpress.com/2007/12/+proses+enkripsi+pada+algoritma+blo
wfish&hl=id&ct=clnk&cd=13&gl=id
www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah0607 -30.pdf
www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah1 -007.pdf