ID VSI
ID VSI

Selasa, 28 Desember 2010

Enkripsi dan Deskripsi Data Dengan Algoritma Blowfish

1. Enkripsi Algoritma Blowfish

Blowfish menggunakan subkunci berukuran besar. Kunci-kunsi tersebut harus 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
1. Terakhir, gabungkan kembali XL dan XR untuk mendapatkan cipherteks.




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.

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. Dekripsi Algoritma Blowfish

Dekripsi sama persis dengan enkripsi, kecuali P1, P2, . . . , P18 digunakan pada urutan yang terbalik. kecuali bahwa P1, P2,…, P18. Dekripsi untuk Blowfish bersifat maju kedepan. Mengakibatkan dekripsi bekerja dalam arah algoritma yang sama seperti halnya dengan enkripsi, namun sebagai masukannya adalah chipertext. Walaupun begitu, seperti yang diharapkan, sub-kunci yang digunakan dalam urutan terbalik.
Subkunci dihitung menggunakan algoritma Blowfish, metodanya adalah sebagai berikut:
1. Pertama-tama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan string yang tetap. String ini terdiri digit hexadesimal dari pi.
2. XOR P1 dengan 32 bit pertama kunci, XOR P2 dengan 32 bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci.
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.

Metode Algoritma Blowfish dilakukan dengan cara membalikkan 18 subskey yang ada.Yang akan kita lakuakan pertama kali adalah masalah ini nampak tidak dapat dipercaya, karena terdapat dua XOR operasi yang mengikuti pemakaian f-fungsi yang sebelumnya, dan hanya satu yang sebelumnya pemakaian pertama f-fungsi. Walupun jika kita memodifikasi algoritma tersebut sehingga pemakaian subkey 2 sampai 17 menempatkan sebelum output f-fungsi yang di-XOR-kan ke sebelah kanan blok dan dilakukan ke data yang sama sebelum XOR itu, meskipun itu berarti ia sekarang berada di sebelaha kanan blok, karena XOR subkey tersebut telah dipindahkan sebelum swap (tukar) kedua belah blok tersebut (tukar separuh blok kiri dan separuh blok kanan). Kita tidak merubah suatu apapun karena informasi yang sama di-XOR-kan ke separuh blok kiri antara setiap waktu, informasi ini digunakan sebagai input f-fungsi. Kenyataannya, kita mempunyai kebalikan yang pasti dari barisan dekripsi.

Metode Enskripsi dan Deskripsi Data 1

Enskripsi : Penyandiaan data sehingga tidak dapat dinikmati dengan mudah ( untuk mengamankan data )
Deskripsi : Pengenbalian data yang telah di enskripsikan
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Mencari dengan Root 13
Contoh : O N D R A
BAQEN
Kriptografi : Ilmu yang mempelajari tentang pengkodean pesan yang bersifat rahasia
Plaintext : Data asli sebelum di lakukan pengkodean ( Masih bermakna )
Chiper Text : Data setelah di enskripsikan/disandikan
Enkripsi Password Dengan MD5
Sebenarnya masih banyak metode yang digunakan untuk mengenkripsi data. Seperti root13, MD4, dan lain-lain. Yang saya bahas kali ini adalah MD5.Data apa saja yang biasa dienkripsi sehubungan dengan ilmu web salah satunya ialah password. Tidak bisa dipungkiri lagi bahwa keamanan akses disebuah halaman web merupakan suatu hal penting untuk diperhatikan. Data yang terdapat dalam suatu halaman web seringkali merupakan data penting yang tidak boleh diperlihatkan sembarangan kepada orang yang tidak berhak.
Apa itu MD5? Definisi menurut sumber dari wikipedia.org MD5 merupakan algoritma yang memiliki metode one-way. Untuk definisi yang mudah dimengerti, MD5 merupakan metode enkripsi data dari yang berbentuk plaintext menjadi berbentuk algoritma (chypertext) yang bertujuan agar tidak mudah dibaca mentah-mentah oleh siapapun termasuk database administrator. Sebagai catatan tutorial ini sengaja saya tidak sertakan database agar dapat fokus pada MD5 saja dan juga sesuai judulnya “Enkripsi Password Dengan MD5”. Pembaca tinggal menambahkan database jika akan diaplikasikan menjadi selayaknya halaman login.
Sebenarnya masih banyak metode yang digunakan untuk mengenkripsi data. Seperti root13, MD4, dan lain-lain. Data apa saja yang biasa dienkripsi sehubungan dengan ilmu web salah satunya ialah password. Tidak bisa dipungkiri lagi bahwa keamanan akses disebuah halaman web merupakan suatu hal penting untuk diperhatikan. Data yang terdapat dalam suatu halaman web seringkali merupakan data penting yang tidak boleh diperlihatkan sembarangan kepada orang yang tidak berhak.
Untuk definisi yang mudah dimengerti, MD5 merupakan metode enkripsi data dari yang berbentuk plaintext menjadi berbentuk algoritma (chypertext) yang bertujuan agar tidak mudah dibaca mentah-mentah oleh siapapun termasuk database administrator. Sebagai catatan tutorial ini sengaja saya tidak sertakan database agar dapat fokus pada MD5 saja dan juga sesuai judulnya “Enkripsi Password Dengan MD5”. Pembaca tinggal menambahkan database jika akan diaplikasikan menjadi selayaknya halaman login.

OSI layer

Seperti yang kita ketahui dalam Model Open System Interconnection (OSI) terdapat jaringan 7 layer yang mana standarnya dikembangkan untuk industry computer agar computer dapat berkomunikasi pada jaringan yang berbeda secara efisien.
Model jaringan 7 OSI layer tersebut adalah :

Setiap layer diatas memiliki tugas dan tanggung-jawab secara khusus pada proses komunikasi data. Yang mana disini dibagi menjadi dua group yaitunya Upper layer dan Lower Layer. Dalam perkembangannya layer ini dikelompokkan menjadi 4 layer yaitunya :

Keterangan :
a. Data Link Physical Layer
Merupakan protocol yang menghubungkan media fisik komunikasi yang digunakan. Dengan demikian bila terjadi pertukaran dan penggantian media transmisi, maka hanya lapisan ini saja yang dirubah, sedangkan lapisan lainnya tidak perlu dimodifikasi. Lapisan ini adalah lapisan pertama yang berhubungan langsung dengan Network Interface Card dan Transmisi data ke tempat tujuan. Paket data yang dikirim melalui lapisan ini disebut juga Frame
b. Protocol Internet
Lapisan ini mengorganisasikan pengiriman data ke host yang dituju melalui network address dan disebut sebagai Internet Protocol (IP). Protocol ini mensyaratkan bahwa setiap Host (simpul) mempunyai address tunggal (unique). Address ini adalah identitas Host yang disebut sebagai IP-Address.
Internet Protocol mengirim paket data secara unreliable atau disebut sebagai connectionless. Unreliable artinya internet protocol tidak memberikan jaminan atas keberhasilan pengiriman paket tersebut, protocol ini menyerahkan sepenuhnya tanggung jawab kepada lapisan diatasnya.
Setiap pengiriman IP-Data paket tidak diperlukan ACKnowledge, atau jawaban dari si penerima, apakah paket telah diterima dengan baik atau tidak. Disebut connectionless karena protocol ini tidak memerlukan insialisasi hubungan, artinya IP mengirimkan paket tanpa terlebih dahulu memberi tahu parnert yang dituju (analogi dengan POS). Setiap Pengiriman paket, IP menambahkan informasi pad apaket tersebut beruap IP header yang bersi antara lain :
  • v Info tentang versi, panjang data, id, time to live dan lain-lain
  • v IP-Address dari si Pengirim (32 bit)
  • v IP-Address dari si Penerima (32 bit)
  • v Options
  • v Data yang dikirim
c. Protocol UDP
UDP memberikan suatu metoda kepada aplikasi untuk data (message) ke aplikasi di Host lain pada jaringan tanpa harus lebih dahulu memb angun hubungan komunikasi dengan host tersebut (connctionless).
UDP tidak menjamin keberhasilan pengiriman data (disebut sebagai diagram) tersebut dan tidak terjamin adanya duplikasi pengiriman.
d. Protocol TCP
Protocol TCP menjamin keutuhan data yang ditransfer (reliable). Paket data yang dikirim berorientasi pada hubungan komunikasi virtual yang sebelumnya harus terbentuk lebih dahulu. Teknik ini disebut sebagai connection oriented dan paket data yang dikirim dinamakan reable data stream atau segment. TCP mengirim header dengan informasi yang lebih lengkap dari pada UDP. Dari berbagai fasilitas yang disediakan oleh protokol TCP/IP, ada beberapa fungsi yang berguna untuk melakukan pencarian kesalahan (trouble shooting) dalam jaringan Internet.

Status Halaman Ini

Followers

ID VSI

 

Copyright @ 2013 Berbagi Info.