ALGORITMA DATA ENCRYPTION STANDART (DES).
Saat ini kita sadari, bahwa kita berada di zaman / Era Informasi.
Orang yang ketinggalan Informasi, akan tertindas. Bisa saja mereka ketinggalan pesawat, kalau tidak tau informasi kebernagkatan pesawat. hehe
Kalimat diatas adalah contoh simple betapa penting nya Informasi saat ini. Apalagi kalau Informasi Pribadi kita diketahui oleh orang-orang yang tidak bertanggung jawab. Wah, GASWAT tu... :o
karena itulah, saat ini ane ingin menjelaskan sedikit Algoritma untuk mengamankan sebuah Informasi (Data) dari Oknum-oknum yang tidak bertanggung jawab.:D
Salah satu cara yang digunakan untuk mengamankan data (informasi) tersebut adalah dengan melakukan enkripsi. Istilah enkripsi ini digunakan untuk menyatakan proses yang dilakukan untuk mengubah informasi yang dapat dibaca dengan mudah (plaintext) menjadi informasi tersembunyi yang sulit dipahami maknanya (ciphertext). Kebalikan dari proses enkripsi adalah dekripsi. Untuk melakukan enkripsi dan dekripsi ini digunakan algoritma kriptografi (cipher). DES (Data Encryption Standard) merupakan salah satu jenis dari algoritma kriptografi yang termasuk dalam algoritma kunci simetri (menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi).
DES dikeluarkan oleh Federal Information Processing Standard (FIPS) 46 – 1 Amerika Serikat. DES termasuk algoritma block cipher yang dijadikan standar enkripsi kunci simetris pertama.
DES beroperasi pada ukuran blok 64 bit (sekitar 8 karakter). DES mengenkripsikan 64 bit plaintext menjadi 64 bit ciphertext dengan menggunakan 56 bit kunci internal yang dibangkitkan dari 64 bit kunci eksternal. Kunci eksternal merupakan kunci yang dimasukkan oleh user pada sistem. Kunci internal merupakan kunci yang digunakan untuk melakukan enkripsi pada setiap putaran DES, yang berjumlah 16 putaran, yang diperoleh dari kunci eksternal yang telah diproses.
Skema global dari algoritma DES dapat dituliskan sebagai berikut:
1. Blok plaintext dipermutasi dengan matrik permutasi awal (initial permutation atau IP). Plaintext merupakan data (teks) yang akan dienkripsi. Plaintext ini direpresentasikan sebagai bit, misalnya huruf P direpresentasikan sebagai 01010000. Keseluruhan plaintext dibagi ke dalam blok-blok. Setiap blok terdiri atas 64 bit.
2. Hasil permutasi awal kemudian dienkripsikan sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
3. Hasil enkripsi kemudian dipermutasikan dengan matriks balikan (invers initial permutation atau IP-1) menjadi blok ciphertext.
Penjadwalan Kunci
Catatan:Dalam penulisan ini, bit dihitung dari sisi paling kanan blok. Tabel yang berkenaan dengan tulisan, bisa dicari lewat google.
Seperti apa yang telah disebutkan sebelumnya, DES menggunakan 56 bit kunci untuk melakukan enkripsi dan dekripsi blok masukan. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh user. Kunci eksternal tersebut panjangnya 64 bit (8 byte) atau 8 karakter. Namun tiap bit ke-8 (parity bits) dari 8 byte kunci tersebut diabaikan. Oleh karena itu, hanya ada 56 bit kunci yang digunakan (effective bits). Permutasi yang dilakukan pada bit-bit ini disebut dengan permuted choice 1. Permuted choice 1 ini mengubah posisi bit-bit pada kunci eksternal dan mengurangi bit kunci eksternal yang awalnya berjumlah 64 bit menjadi 56 bit dengan cara menghilangkan parity bits.
Kunci internal yang diperoleh dibagi menjadi 2 bagian, kiri (C) dan kanan (D), yang masing-masing panjangnya 28 bit. D terdiri dari bit pada posisi ke-0 hingga ke-27, sedangkan C terdiri dari bit pada posisi ke-28 hingga ke-55. Kedua bagian digeser ke kiri (left shift) sepanjang 1 atau 2 bit bergantung pada tiap putaran. Setelah pergeseran bit, dilakukan permutasi (permuted choice 2) pada hasil pergeseran bit dari kedua bagian tersebut untuk memperoleh kunci internal pada tiap putaran, yang selanjutnya disebut dengan subkey.
Contoh proses penjadwalan kunci.
- Kunci eksternal = PASSWORD, dengan
P = 01010000
A = 01000001
S = 01010011
S = 01010011
W = 01010111
O = 01001111
R = 01010010
D = 01000100
Jika dituliskan dalam bentuk biner, PASSWORD menjadi:
01010000 01000001 01010011 01010011 01010111 01001111 01010010 01000100
- Kemudian dilakukan permuted choice 1 pada kunci eksternal untuk memperoleh 56 bit kunci internal. Bit ke-0 (bit yang berada paling kanan dari keseluruhan blok bit) dari 56 bit kunci internal merupakan bit ke-60 pada kunci eksternal. Bit ke-1 dari bit kunci internal merupakan bit ke-52 pada kunci eksternal, demikian seterusnya. Hasilnya menjadi:
0000000 0111111 1100000 0000101 0111110 0101100 0000100 0001101
- Blok bit ini dibagi menjadi 2 bagian, yang terdiri atas
C0 = 0000000 0111111 1100000 0000101
D0 = 0111110 0101100 0000100 0001101
Dari C0 dan D0 dilakukan pergeseran bit yang jumlahnya sesuai dengan tabel shifts (pergeseran bit tiap putaran). C0 dan D0 menjadi
C1 = 0000000 1111111 1000000 0001010
D1 = 1111100 1011000 0001000 0011010
-Untuk memperoleh K1, dilakukan permuted choice 2 pada C1 dan D1, diperoleh:
K1 = 101000 001001 001001 001010 011001 100010 001001 100111
- K2 diperoleh dari permuted choice 2 yang dilakukan pada C1 dan D1 yang digeser 1 bit ke kiri.
C2 = 0000001 1111111 0000000 0010100
D2 = 1111001 0110000 0010000 0110101
K2 = ……….
- Begitu seterusnya hingga K16.
kata pakar keamanan komputer (Bruce Schneier) : "Saya Menomorkan bit dari kiri ke kanan dan dari 1 sampai 64. Matsui mengabaikan konvensi ini dengan DES dan nomor bit nya
dari kanan ke kiri dan dari 0 sampai 63. Ini cukup untuk membuat Anda gila"
Berikut beberapa pustaka tempat saya belajar:
http://en.wikipedia.org/wiki/Cryptography.
-Stallings, William. 2005. Cryptography and Network Security Principles and Practices, Fourth Edition. Prentice Hall.
Kurniawan, Yusuf. 2004. Kriptografi, Keamanan Internet dan Jaringan Komunikasi. Informatika Bandung. Bandung.
-Munir, Rinaldi. 2006. Kriptografi. Informatika Bandung. Bandung.
Schneier, Bruce. 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in C. 2nd ed. John Wiley and Sons. New Jersey.
Terimakasih, Mejuah-juah
Saat ini kita sadari, bahwa kita berada di zaman / Era Informasi.
Orang yang ketinggalan Informasi, akan tertindas. Bisa saja mereka ketinggalan pesawat, kalau tidak tau informasi kebernagkatan pesawat. hehe
Kalimat diatas adalah contoh simple betapa penting nya Informasi saat ini. Apalagi kalau Informasi Pribadi kita diketahui oleh orang-orang yang tidak bertanggung jawab. Wah, GASWAT tu... :o
karena itulah, saat ini ane ingin menjelaskan sedikit Algoritma untuk mengamankan sebuah Informasi (Data) dari Oknum-oknum yang tidak bertanggung jawab.:D
Salah satu cara yang digunakan untuk mengamankan data (informasi) tersebut adalah dengan melakukan enkripsi. Istilah enkripsi ini digunakan untuk menyatakan proses yang dilakukan untuk mengubah informasi yang dapat dibaca dengan mudah (plaintext) menjadi informasi tersembunyi yang sulit dipahami maknanya (ciphertext). Kebalikan dari proses enkripsi adalah dekripsi. Untuk melakukan enkripsi dan dekripsi ini digunakan algoritma kriptografi (cipher). DES (Data Encryption Standard) merupakan salah satu jenis dari algoritma kriptografi yang termasuk dalam algoritma kunci simetri (menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi).
DES dikeluarkan oleh Federal Information Processing Standard (FIPS) 46 – 1 Amerika Serikat. DES termasuk algoritma block cipher yang dijadikan standar enkripsi kunci simetris pertama.
DES beroperasi pada ukuran blok 64 bit (sekitar 8 karakter). DES mengenkripsikan 64 bit plaintext menjadi 64 bit ciphertext dengan menggunakan 56 bit kunci internal yang dibangkitkan dari 64 bit kunci eksternal. Kunci eksternal merupakan kunci yang dimasukkan oleh user pada sistem. Kunci internal merupakan kunci yang digunakan untuk melakukan enkripsi pada setiap putaran DES, yang berjumlah 16 putaran, yang diperoleh dari kunci eksternal yang telah diproses.
Skema global dari algoritma DES dapat dituliskan sebagai berikut:
1. Blok plaintext dipermutasi dengan matrik permutasi awal (initial permutation atau IP). Plaintext merupakan data (teks) yang akan dienkripsi. Plaintext ini direpresentasikan sebagai bit, misalnya huruf P direpresentasikan sebagai 01010000. Keseluruhan plaintext dibagi ke dalam blok-blok. Setiap blok terdiri atas 64 bit.
2. Hasil permutasi awal kemudian dienkripsikan sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
3. Hasil enkripsi kemudian dipermutasikan dengan matriks balikan (invers initial permutation atau IP-1) menjadi blok ciphertext.
Penjadwalan Kunci
Catatan:Dalam penulisan ini, bit dihitung dari sisi paling kanan blok. Tabel yang berkenaan dengan tulisan, bisa dicari lewat google.
Seperti apa yang telah disebutkan sebelumnya, DES menggunakan 56 bit kunci untuk melakukan enkripsi dan dekripsi blok masukan. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh user. Kunci eksternal tersebut panjangnya 64 bit (8 byte) atau 8 karakter. Namun tiap bit ke-8 (parity bits) dari 8 byte kunci tersebut diabaikan. Oleh karena itu, hanya ada 56 bit kunci yang digunakan (effective bits). Permutasi yang dilakukan pada bit-bit ini disebut dengan permuted choice 1. Permuted choice 1 ini mengubah posisi bit-bit pada kunci eksternal dan mengurangi bit kunci eksternal yang awalnya berjumlah 64 bit menjadi 56 bit dengan cara menghilangkan parity bits.
Kunci internal yang diperoleh dibagi menjadi 2 bagian, kiri (C) dan kanan (D), yang masing-masing panjangnya 28 bit. D terdiri dari bit pada posisi ke-0 hingga ke-27, sedangkan C terdiri dari bit pada posisi ke-28 hingga ke-55. Kedua bagian digeser ke kiri (left shift) sepanjang 1 atau 2 bit bergantung pada tiap putaran. Setelah pergeseran bit, dilakukan permutasi (permuted choice 2) pada hasil pergeseran bit dari kedua bagian tersebut untuk memperoleh kunci internal pada tiap putaran, yang selanjutnya disebut dengan subkey.
Contoh proses penjadwalan kunci.
- Kunci eksternal = PASSWORD, dengan
P = 01010000
A = 01000001
S = 01010011
S = 01010011
W = 01010111
O = 01001111
R = 01010010
D = 01000100
Jika dituliskan dalam bentuk biner, PASSWORD menjadi:
01010000 01000001 01010011 01010011 01010111 01001111 01010010 01000100
- Kemudian dilakukan permuted choice 1 pada kunci eksternal untuk memperoleh 56 bit kunci internal. Bit ke-0 (bit yang berada paling kanan dari keseluruhan blok bit) dari 56 bit kunci internal merupakan bit ke-60 pada kunci eksternal. Bit ke-1 dari bit kunci internal merupakan bit ke-52 pada kunci eksternal, demikian seterusnya. Hasilnya menjadi:
0000000 0111111 1100000 0000101 0111110 0101100 0000100 0001101
- Blok bit ini dibagi menjadi 2 bagian, yang terdiri atas
C0 = 0000000 0111111 1100000 0000101
D0 = 0111110 0101100 0000100 0001101
Dari C0 dan D0 dilakukan pergeseran bit yang jumlahnya sesuai dengan tabel shifts (pergeseran bit tiap putaran). C0 dan D0 menjadi
C1 = 0000000 1111111 1000000 0001010
D1 = 1111100 1011000 0001000 0011010
-Untuk memperoleh K1, dilakukan permuted choice 2 pada C1 dan D1, diperoleh:
K1 = 101000 001001 001001 001010 011001 100010 001001 100111
- K2 diperoleh dari permuted choice 2 yang dilakukan pada C1 dan D1 yang digeser 1 bit ke kiri.
C2 = 0000001 1111111 0000000 0010100
D2 = 1111001 0110000 0010000 0110101
K2 = ……….
- Begitu seterusnya hingga K16.
kata pakar keamanan komputer (Bruce Schneier) : "Saya Menomorkan bit dari kiri ke kanan dan dari 1 sampai 64. Matsui mengabaikan konvensi ini dengan DES dan nomor bit nya
dari kanan ke kiri dan dari 0 sampai 63. Ini cukup untuk membuat Anda gila"
Berikut beberapa pustaka tempat saya belajar:
http://en.wikipedia.org/wiki/Cryptography.
-Stallings, William. 2005. Cryptography and Network Security Principles and Practices, Fourth Edition. Prentice Hall.
Kurniawan, Yusuf. 2004. Kriptografi, Keamanan Internet dan Jaringan Komunikasi. Informatika Bandung. Bandung.
-Munir, Rinaldi. 2006. Kriptografi. Informatika Bandung. Bandung.
Schneier, Bruce. 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in C. 2nd ed. John Wiley and Sons. New Jersey.
Terimakasih, Mejuah-juah
0 comments:
Post a Comment