ANALISA PROSES ENKRIPSI DAN DESKRIPSI
DENGAN METODE DES
Muhamad Danuri
Dosen Jurusan Manajemen Informatika, AMIK JTC Semarang
ABSTRAKSI
Makalah ini membahas tentang studi terhadap salah satu algoritma kriptografi block cipher, yaitu DES (Data Encryption Standard). DES adalah salah satu metode penyandian dengan sistem block cipher. Yaitu sistem penyandian yang pengacakannya dilakukan secara blok demi blok dengan blok input (teks asli) 64 bit dan menghasilkan output (teks sandi) yang juga per blok 64 bit, algoritma yang digunakan adalah kunci simetris dengan panjang kunci 64 bit. Algoritma ini termasuk algoritma penyandian simetris, dimana untuk proses enkripsi dan dekripsi pesan menggunakan kunci yang sama. Jadi, walaupun seorang kriptografer mengerti dengan baik algoritma yang digunakan untuk menyandikan pesan tersebut, tapi kalau tidak tahu kunci yang digunakan, maka tidak akan dapat mendekripsi pesan tersebut. Dalam makalah ini juga akan dijelaskan sejarah DES, beberapa kelemahan dan kelebihan algoritma DES, Kata kunci: Data Encryption Standard, cipher block, enkripsi, dekripsi, Lucifer, DES, kriptografi 1. PENDAHULUAN
Masalah keamanan merupakan salah satu aspek penting dari sebuah system informasi. Salah satu hal yang penting dalam komunikasi menggunakan komputer dan dalam jaringan komputer untuk menjamin keamanan pesan, data, ataupun informasi adalah enkripsi. Disini enkripsi dapat diartikan sebagai kode atau chiper . Sebuah sistem pengkodean menggunakan suatu tabel atau kamus yang telah didefinisikan untuk kata dari informasi diberbagai aplikasi yang membutuhkan penyandiapada saat operasionalnya.
Tercatat penggunaan sistem sandi DES terbesar saitu adalah pada industri perbankan disampinpemerintahan dan militer. Hal ini mengingat padinstitusi tersebut data / informasi yang ditansmisikadan disimpan banyak yang merupakan data pentinyang sensitif dan bersifat rahasia.
2. METODE PENYELESAIANYA :
Permasalahan yang akan diulas pada paper ini adalah melakukan enkripsi pada tulisan MSI10 dengan mengunakan Metode Enkripsi DES.
3. Landasan Teori 3.1. Sejarah DES
Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel. Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.
3.2. Tinjauan Umum
DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.
Skema global dari algoritma DES adalah sebagai berikut (lihat Gambar 1):
1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation (IP). 2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran).
Setiap putaran menggunakan kunci internal yang berbeda.
3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
Plainteks IP 16 kali Enciphering Cipherteks
Gambar 1. Skema Global Algoritma DES
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.
Secara matematis, satu putaran DES dinyatakan sebagai
Li= Ri – 1
Ri= Li – 1 f(Ri – 1, Ki)
P lainteks IP L0 R0 f ) , ( 0 1 0 1 L f R K R L1 = R0 K1 f ) , ( 1 2 1 2 L f R K R L2 = R1 K2 ) , ( 1 4 1 5 1 4 1 5 L f R K R L1 5 = R1 4 K1 6 ) , ( 1 5 1 6 1 5 1 6 L f R K R L1 6 = R1 5 IP-1 Cipherteks f
Gambar 2. Algoritma Enkripsi dengan DS
Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3).
1 i R Li - 1 f
i R Li KiGambar 3. Jaringan Feistel untuk satu putaran DES
Perlu dicatat dari Gambar 2 bahwa jika (L16, R16) merupakan keluaran dari putaran
ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.
3.3. Permutasi Awal
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Cara membaca tabel/matriks di atas: dua entry ujung kiri atas (58 dan 50) berarti:
“pindahkan bit ke-58 ke posisi bit 1” “pindahkan bit ke-50 ke posisi bit 2”, dst 3.4. Pembangkitan Kunci Internal
Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu
K1, K2, …, K16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi
atau bersamaan dengan proses enkripsi.
Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter.
Misalkan kunci eksternal yang tersusun dari 64 bit adalah K.
kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi PC-1 sebagai berikut:
57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit.
Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing-masing-masing disimpan di dalam C0 dan D0:
C0: berisi bit-bit dari K pada posisi
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36
D0: berisi bit-bit dari K pada posisi
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4
Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau
round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb:
Tabel 1. Jumlah pergeseran bit pada setiap putaran
Putaran, i Jumlah pergeseran bit
1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 11 2 12 2 13 2 14 2 15 2 16 1
Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh
dengan menggeser Ci dan Di satu atau dua bit.
Setelah pergeseran bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 berikut:
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang
dalam hal ini Ki merupakan penggabungan bit-bit Ci pada posisi:
14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2
dengan bit-bit Di pada posisi:
41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 Jadi, setiap kunci internal Ki mempunyai panjang 48 bit.
Proses pembangkitan kunci-kunci internal ditunjukkan pada Gambar 4.
Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah
bit pada Cidan Di. Karena itu, setelah putaran ke-16 akan didapatkan
Kunci eksternal Permutasi
PC-1
C0 D0
Left Shift Left Shift
C1 D1
Left Shift Left Shift
Permutasi PC-2 K1 Cj Dj Permutasi PC-2 Kj
Left Shift Left Shift
C16 D16
Permutasi
PC-2 K16
Gambar 4. Proses pembangkitan kunci-kunci internal DES 3.5. Enciphering
Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai
Li= Ri – 1
Ri= Li – 1 f(Ri – 1, Ki)
Ri-1
32 bit
E(Ri-1)
Ekspansi menjadi 48 bit
48 bit
Ki 48 bit A K R E( i1) i S1...
S8 B Matriks substitusi 32 bit 48 bit P(B) 32 bitGambar 5. Rincian komputasi fungsi f
E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32-bit
menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:
32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
Selanjutnya, hasil ekpansi, yaitu E(Ri – 1), yang panjangnya 48 bit di-XOR-kan
dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit:
E(Ri – 1) Ki = A
Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6
bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1,
kelompok 6-bit kedua menggunakan S2, dan seterusnya.
(cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi “Prinsip-prinsip Perancangan Cipher Blok”)
Kedelapan kotak-S tersebut adalah:
S1: 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S2: 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S3:
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S4: 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S5: 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 16 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S6: 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S7: 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S8: 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi
P (P-box) sbb:
16 7 20 21 29 12 28 17 1 15 23 26 5 8 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Bit-bit P(B) merupakan keluaran dari fungsi f.
Akhirnya, bit-bit P(B) di-XOR-kan dengan Li –1 untuk mendapatkan Ri (lihat Gambar 6):
Ri= Li – 1 P(B)
Jadi, keluaran dari putaran ke-i adalah (Li, Ri) = (Ri – 1 , Li – 1 P(B))
f
Li-1 Ri 32 bit 32 bitGambar 6. Skema perolehan Ri 3.6. Permutasi Terakhir (Inverse Initial Permutation)
Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan.
Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation atau IP-1 ) sbb: 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 3.7. Dekripsi
Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K1, K2, …, K16, maka pada
proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1.
Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap putaran deciphering adalah
Li= Ri – 1
Ri= Li – 1 f(Ri – 1, Ki)
yang dalam hal ini, (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16,
L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1.
Pra-keluaran dari deciphering adalah adalah (L0, R0). Dengan permutasi awal IP akan
didapatkan kembali blok plainteks semula.
Tinjau kembali proses pembangkitan kunci internal pada Gambar 4. Selama
deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2. Tentu saja (C16, D16)
tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena (C16, D16) =
(C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu lagi melakukan pergeseran
bit. Catatlah bahwa (C0, D0) yang merupakan bit-bit dari kunci eksternal K yang
diberikan pengguna pada waktu dekripsi.
Selanjutnya, K15 dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan
menggeser C16 (yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke
kanan. Sisanya, K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1). Catatlah bahwa
(Ci – 1, Di – 1) diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti
pada Tabel 1, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift).
4. PEMBAHASAN
4.1. Enkripsi Dengan Algoritma DES
Berikut ini diuraikan proses enkripsi data dengan menggunakan algoritma DES
PLAINTEXT M S I 1 0
ASCII 77 83 73 49 48
HEX 0000004D 00000053 00000049 00000031 00000030 BIN 01001101 01010011 01001001 00110001 00110000
PLAINTEXT (HEX) 0000004D53493130 KUNCI (HEX) FE4D6AA259A380B4 OUTPUT (HEX) 08EA716A503BC7B8
OUTPUT Eenkripsi
DES 00001000 11101010 01110001 01101010 01010000 00111011 11000111 10111000
PROSES : -- Enkripsi DES --
Input :00000000 00000000 00000000 01001101 01010011 01001001 00110001 00110000 Kunci :11111110 01001101 01101010 10100010 01011001 10100011 10000000 10110100 L[0] :00111000 11010000 00001000 01111000 R[0] :00111000 11010000 00001000 01111000 - Ronde 1 - E :00000000 00010110 00000000 00010101 00000000 10100000 SK :10111001 10101001 00111111 00001110 10100100 00011101 E XOR SK :10111001 10111111 00111111 00011011 10100100 10111101 L[01] :00001000 00001011 01111011 00010111 R[01] :00000000 11000000 00101000 00010000 - Ronde 2 - E :10000101 00000000 01010110 10111111 01101000 10101110 SK :11001011 11011110 10001110 10100000 00010100 10111011 E XOR SK :01001110 11011110 11011000 00011111 01111100 00010101 L[02] :10000101 10100111 10001110 01101001 R[02] :00001000 00001011 01111011 00010111 - Ronde 3 - E :11000000 10111101 00001111 11000101 11000011 01010011 SK :01111000 10110011 11001110 01001111 00111010 00100011 E XOR SK :10111000 00001110 11000001 10001010 11111001 01110000 L[03] :11011110 10110010 00101001 11000100 R[03] :10000101 10100111 10001110 01101001 - Ronde 4 - E :01101111 11010101 10100100 00010101 00111110 00001001 SK :00110000 11011100 01101011 00110110 01001001 01111000 E XOR SK :01011111 00001001 11001111 00100011 01110111 01110001 L[04] :00101101 01000001 11100100 11010010
R[04] :11011110 10110010 00101001 11000100 - Ronde 5 - E :00010101 10101010 00000011 11110000 10010110 10100100 SK :11100001 01101001 01110110 00000001 10011001 01010110 E XOR SK :11110100 11000011 01110101 11110001 00001111 11110010 L[05] :00011110 10100001 11111011 11100001 R[05] :00101101 01000001 11100100 11010010 - Ronde 6 - E :10001111 11010101 00000011 11111111 01111111 00000010 SK :10100100 11101111 10010101 11000101 10100100 10110000 E XOR SK :00101011 00111010 10010110 00111010 11011011 10110010 L[06] :11111001 11110110 01010011 01101101 R[06] :00011110 10100001 11111011 11100001 - Ronde 7 - E :11111111 00111111 10101100 00101010 01101011 01011011 SK :01010111 00110111 00110011 01101001 00001110 01001101 E XOR SK :10101000 00001000 10011111 01000011 01100101 00010110 L[07] :11000101 10001010 00111001 10010100 R[07] :11111001 11110110 01010011 01101101 - Ronde 8 - E :01100000 10111100 01010100 00011111 00111100 10101001 SK :11101111 10010100 11110001 00011010 11010000 10011110 E XOR SK :10001111 00101000 10100101 00000101 11101100 00110111 L[08] :11101000 01011011 11110111 11101000 R[08] :11000101 10001010 00111001 10010100 - Ronde 9 - E :01110101 00000010 11110111 11111010 11111111 01010001 SK :10001001 11110001 00111011 10011000 00101101 00101110 E XOR SK :11111100 11110011 11001100 01100010 11010010 01111111 L[09] :00111100 00110100 10010000 11001010 R[09] :11101000 01011011 11110111 11101000 - Ronde 10 - E :00011111 10000001 10101001 01001010 00010110 01010100 SK :10100101 00001111 11111011 00101100 01111010 10010000 E XOR SK :10111010 10001110 01010010 01100110 01101100 11000100 L[10] :10000110 10000011 11010100 01100110 R[10] :00111100 00110100 10010000 11001010 - Ronde 11 - E :01000000 11010100 00000111 11101010 10000011 00001101 SK :11110111 01111010 10000001 01110001 01100000 01110011 E XOR SK :10110111 10101110 10000110 10011011 11100011 01111110 L[11] :11010111 01010100 11010001 01000100 R[11] :10000110 10000011 11010100 01100110 - Ronde 12 - E :01101010 11101010 10101001 01101010 00101010 00001001 SK :00011011 10111111 11010000 10100111 10001000 00001010 E XOR SK :01110001 01010101 01111001 11001101 10100010 00000011 L[12] :10101001 10110100 10101000 10001111 R[12] :11010111 01010100 11010001 01000100
- Ronde 13 - E :11010101 00111101 10101001 01010101 00010100 01011111 SK :01011100 01110100 11011111 10000100 00110111 01010110 E XOR SK :10001001 01001001 01110110 11010001 00100011 00001001 L[13] :10001010 00010011 11100000 00001111 R[13] :10101001 10110100 10101000 10001111 - Ronde 14 - E :11000101 01000000 10100111 11110000 00000000 01011111 SK :01110111 11000101 01001100 00111101 10000010 11100100 E XOR SK :10110010 10000101 11101011 11001101 10000010 10111011 L[14] :01011000 10011001 10100011 00100011 R[14] :10001010 00010011 11100000 00001111 - Ronde 15 - E :10101111 00010100 11110011 11010000 01101001 00000110 SK :01001010 11001001 10100111 01010000 11001100 11000011 E XOR SK :11100101 11011101 01010100 10000000 10100101 11000101 L[15] :11000010 10101110 10101011 01101010 R[15] :01011000 10011001 10100011 00100011 - Ronde 16 - E :01100000 01010101 01011101 01010101 01101011 01010101 SK :11011111 10100110 01100001 01110000 10111001 10001100 E XOR SK :10111111 11110011 00111100 00100101 11010010 11011001 L[16] :01011110 10110100 01000000 01100100 R[16] :11000010 10101110 10101011 01101010 Output :00001000 11101010 01110001 01101010 01010000 00111011 11000111 10111000
4.2. Deskripsi Dengan Algoritma DES
Berikut ini diuraikan proses Deskripsi data dengan menggunakan algoritma DES, dari data yang telah dilakukan Enkripsi
-- Dekripsi DES -- Input :00001000 11101010 01110001 01101010 01010000 00111011 11000111 10111000 Kunci :11111110 01001101 01101010 10100010 01011001 10100011 10000000 10110100 L[0] :01011110 10110100 01000000 01100100 R[0] :01011110 10110100 01000000 01100100 - Ronde 16 - E :01100000 01010101 01011101 01010101 01101011 01010101 SK :11011111 10100110 01100001 01110000 10111001 10001100 E XOR SK :10111111 11110011 00111100 00100101 11010010 11011001 L[16] :01011000 10011001 10100011 00100011 R[16] :11000010 10101110 10101011 01101010 - Ronde 15 - E :10101111 00010100 11110011 11010000 01101001 00000110 SK :01001010 11001001 10100111 01010000 11001100 11000011 E XOR SK :11100101 11011101 01010100 10000000 10100101 11000101 L[15] :10001010 00010011 11100000 00001111 R[15] :01011000 10011001 10100011 00100011
- Ronde 14 - E :11000101 01000000 10100111 11110000 00000000 01011111 SK :01110111 11000101 01001100 00111101 10000010 11100100 E XOR SK :10110010 10000101 11101011 11001101 10000010 10111011 L[14] :10101001 10110100 10101000 10001111 R[14] :10001010 00010011 11100000 00001111 - Ronde 13 - E :11010101 00111101 10101001 01010101 00010100 01011111 SK :01011100 01110100 11011111 10000100 00110111 01010110 E XOR SK :10001001 01001001 01110110 11010001 00100011 00001001 L[13] :11010111 01010100 11010001 01000100 R[13] :10101001 10110100 10101000 10001111 - Ronde 12 - E :01101010 11101010 10101001 01101010 00101010 00001001 SK :00011011 10111111 11010000 10100111 10001000 00001010 E XOR SK :01110001 01010101 01111001 11001101 10100010 00000011 L[12] :10000110 10000011 11010100 01100110 R[12] :11010111 01010100 11010001 01000100 - Ronde 11 - E :01000000 11010100 00000111 11101010 10000011 00001101 SK :11110111 01111010 10000001 01110001 01100000 01110011 E XOR SK :10110111 10101110 10000110 10011011 11100011 01111110 L[11] :00111100 00110100 10010000 11001010 R[11] :10000110 10000011 11010100 01100110 - Ronde 10 - E :00011111 10000001 10101001 01001010 00010110 01010100 SK :10100101 00001111 11111011 00101100 01111010 10010000 E XOR SK :10111010 10001110 01010010 01100110 01101100 11000100 L[10] :11101000 01011011 11110111 11101000 R[10] :00111100 00110100 10010000 11001010 - Ronde 9 - E :01110101 00000010 11110111 11111010 11111111 01010001 SK :10001001 11110001 00111011 10011000 00101101 00101110 E XOR SK :11111100 11110011 11001100 01100010 11010010 01111111 L[09] :11000101 10001010 00111001 10010100 R[09] :11101000 01011011 11110111 11101000 - Ronde 8 - E :01100000 10111100 01010100 00011111 00111100 10101001 SK :11101111 10010100 11110001 00011010 11010000 10011110 E XOR SK :10001111 00101000 10100101 00000101 11101100 00110111 L[08] :11111001 11110110 01010011 01101101 R[08] :11000101 10001010 00111001 10010100 - Ronde 7 - E :11111111 00111111 10101100 00101010 01101011 01011011 SK :01010111 00110111 00110011 01101001 00001110 01001101 E XOR SK :10101000 00001000 10011111 01000011 01100101 00010110 L[07] :00011110 10100001 11111011 11100001 R[07] :11111001 11110110 01010011 01101101
- Ronde 6 - E :10001111 11010101 00000011 11111111 01111111 00000010 SK :10100100 11101111 10010101 11000101 10100100 10110000 E XOR SK :00101011 00111010 10010110 00111010 11011011 10110010 L[06] :00101101 01000001 11100100 11010010 R[06] :00011110 10100001 11111011 11100001 - Ronde 5 - E :00010101 10101010 00000011 11110000 10010110 10100100 SK :11100001 01101001 01110110 00000001 10011001 01010110 E XOR SK :11110100 11000011 01110101 11110001 00001111 11110010 L[05] :11011110 10110010 00101001 11000100 R[05] :00101101 01000001 11100100 11010010 - Ronde 4 - E :01101111 11010101 10100100 00010101 00111110 00001001 SK :00110000 11011100 01101011 00110110 01001001 01111000 E XOR SK :01011111 00001001 11001111 00100011 01110111 01110001 L[04] :10000101 10100111 10001110 01101001 R[04] :11011110 10110010 00101001 11000100 - Ronde 3 - E :11000000 10111101 00001111 11000101 11000011 01010011 SK :01111000 10110011 11001110 01001111 00111010 00100011 E XOR SK :10111000 00001110 11000001 10001010 11111001 01110000 L[03] :00001000 00001011 01111011 00010111 R[03] :10000101 10100111 10001110 01101001 - Ronde 2 - E :10000101 00000000 01010110 10111111 01101000 10101110 SK :11001011 11011110 10001110 10100000 00010100 10111011 E XOR SK :01001110 11011110 11011000 00011111 01111100 00010101 L[02] :00000000 11000000 00101000 00010000 R[02] :00001000 00001011 01111011 00010111 - Ronde 1 - E :00000000 00010110 00000000 00010101 00000000 10100000 SK :10111001 10101001 00111111 00001110 10100100 00011101 E XOR SK :10111001 10111111 00111111 00011011 10100100 10111101 L[01] :00111000 11010000 00001000 01111000 R[01] :00000000 11000000 00101000 00010000 Output :00000000 00000000 00000000 01001101 01010011 01001001 00110001 00110000
4.3. Analisis Hasil Proses Enkripsi Dan Dekripsi: ENKRIPSI :
PLAINTEXT M S I 1 0
ASCII 77 83 73 49 48
HEX 0000004D 00000053 00000049 00000031 00000030 BIN 01001101 01010011 01001001 00110001 00110000
PLAINTEXT (HEX) 0000004D53493130 KUNCI (HEX) FE4D6AA259A380B4 OuPut (HEX) 08EA716A503BC7B8
OUTPUT Eenkripsi DES 00001000 11101010 01110001 01101010 01010000 00111011 11000111 10111000 DESKRIPSI : OU T enk 0000100 0 1110101 0 0111000 1 0110101 0 01010000 0011101 1 1100011 1 1011100 0 HEX 08 EA 71 6A 50 3B C7 B8 Proses DEskripsi Out Des 00000000 00000000 00000000 1 0100110 01010011 01001001 00110001 00110000 HEX 00 00 00 4D 53 49 31 30
0000004D53493130 hasil sama dengan input Plaintext Penghilangan 0 didepan menjadi 4D53493130
Penguraian hasil Deskripsi :
BIN 01001101 01010011 01001001 00110001 00110000 HEX 0000004D 00000053 00000049 00000031 00000030
ASCII 77 83 73 49 48
PLAINTEXT M S I 1 0
TErbukti dari hasil enkripsi dan Deskripsi yang dilakukan MSI10 tetap Utuh
5. KESIMPULAN
5.1. Proses enkripsi dan dekripsi suatu data dengan algoritma DES denga menggunakan Palintext dan dengan pemilihan kuncinya secara bebas.
5.2. Waktu yang diperlukan untuk proses enkripsi dan dekripsi dipengaruhi oleh ukuran file, spesifikasi pada perangkat keras, dan proses lain yang sedang dilakukan oleh perangkat keras.
5.3. Plainteks yang diproses dengan kunci 1, kunci 2, dan kunci 3 menghasilkan cipherteks dengan jumlah karakter yang lebih besar, karena adanya proses padding dan disimpan dalam bentuk heksadesimal. Jika salah satu kunci atau ketiga kunci dirubah, maka cipherteks juga akan berubah.
5.4. Untuk mendapatkan plainteks kembali dari hasil deskripsi dapat diuraikan dengan melakukan konversi hasil deskripsi dari biner ke Hex lalu dilakukan pembuangan nilai 0 yang ditambahkan dan akhirnya di desimalkan dan dicari symbol ASCIInya.
DAFTAR PUSTAKA
http://www.cert.or.id/~budi/ courses/ec7010/2003/report-avon.pdf
http://hadiwibowo.wordpress.com /2007/06/27/sistem-sandi-des-data-encryption- standard/ http://safitri1404.wordpress.com/2007/06/ 10/algoritma-des-1/
Munir, Rinaldi. (2004). Bahan Kuliah IF5054 Kriptografi. Departemen Teknik Informatika Institut Teknologi Bandung. [5] Schneier, Bruce. (1996). Applied Cryptography 2nd. John Wiley & Sons.