Sabtu, 26 Maret 2016

Sistem Kerja Data Encryption Standard(DES) Dan International Data Encryption Algorithm(IDEA)

Data Encryption Standard (DES)

 

DES (Data Encryption Standard) adalah algoritma cipher blok yang populer karena dijadikan standard algoritma enkripsi kunci-simetri, meskipun saat ini standard tersebut telah digantikan dengan algoritma yang baru, AES, karena DES sudah dianggap tidak aman lagi. Sebenarnya DES adalah nama standard enkripsi simetri, nama algoritma enkripsinya sendiri adalah DEA (Data Encryption Algorithm), namun nama DES lebih populer daripada DEA. 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.

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 :
1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).
2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kaH (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.

 Gambar 1.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 ;isebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal K,. Keluaran dai =angsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok - yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara watematis, satu putaran DES dinyatakan sebagai:

Li=Ri-1 (6.1)
R i=L i-1 f(Ri-1, K i) (6.2)

Gambar 1.3 memperlihatkan skema algoritma DES yang lebih rinci. Satu putaran DES merupakan model jaringan Feistel (lihat Gambar 6.2). Perlu dicatat dari Gambar 6.2 bahwa ika (L,6, R,6) merupakan keluaran dari putaran ke-16, maka (R,6, L,s) merupakan pra­:ipherteks (pre-ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.

Gambar 1.2. Jaringan Feistel untuk satu putaran DES

Gambar 1.3 Algoritma Enkripsi dengan DES Permutasi Awal
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial-permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-bit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:

Cara membaca tabel/matriks: dua entry ujung kiri atas (58 dan 50) artinya:
"pindahkan bit ke-58 ke posisi bit 1"
"pindahkan bit ke-50 ke posisi bit 2", dst
Pembangkitan Kunci Internal
Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K,, Kz, ...,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:
Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil 7-ermutasinya 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 nanjangnya 28 bit, yang masing-masing disimpan di dalam Co dan DO:
CO: 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
Do: 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. 

International Data Encryption Algorithm (IDEA)

IDEA merupakan sebuah algoritma kriptografi simetrik yang diciptakan pada awalnya sebagai pengganti Data Encryption Standard (DES). IDEA adalalah sebuah revisi kecil dari cipher yang lebih awal, yakni PES (Proposed Encryption Standard). Pada awalnya, IDEA disebut IPES (Improved PES).Algoritma IDEA terbilang sederhana karena hanyamelibatkan 3 proses utama dan 9 putaran, lebih sedikit jika dibandingkan dengan blowfish yang mencapai 16 putaran.

Deskripsi Algoritma IDEA
Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan sebagai pengganti DES(Data Encryption Standard). IDEA adalah revisi minor cipher yang lebih awal, yakni PES, dan pada awalnya disebut IPES
(Improved PES). IDEA didesain di bawah kontrak Hasler Foundation. Sandi rahasia ini dipatenkan dibanyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial. Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDE dipegang oleh MediaCrypt. IDEA digunakan di Pretty Good Privacy (PGP) v2.0 dan sebagai algoritma opsional dalam OpenPGP, Netscape’s Secure Socket Layer (SSL), dan Secure Hypertext transfer Protocol
(SHTTP). Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :
1. Proses Enkripsi : ek (M) = C (1)
2. Proses Dekripsi : dk (C) = M (2)
E : fungsi enkripsi
D : fungsi dekripsi
M : pesan terbuka
C : pesan rahasia
K : kunci enkripsi atau dekripsi


IDEA merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka 64bit, menggunakan kunci yang sama 128bit untuk proses enkripsi dan dekripsi. Keluaran dari algoritma ini adalah blok pesan terenkripsi 64bit. Proses dekripsi menggunakan blok penyandi (algoritma) yang sama dengan proses enkripsi dimana kunci dekripsinya diturunkan dari kunci enkripsi. IDEA menggunakan proses iterasi yang terdiri dari 8 putaran dan 1 transformasi keluaran pada putaran ke8,5

 Algoritma IDEA ini menggunakan 3 operasi aljabar utama, yakni : Xor, operasi penjmlahan modulo 2 16 dan operasi perkalian modulo (2 16 + 1). Operasi ini semuanya dilakukan pada subblok 16bit. IDEA mendapatkan keamanannya dari operasi dari grup yang berbeda – penambahan dan penjumlahan modular serta exclusive or dari bit—yang secara aljabar tidak cocok dalam beberapa pengertian.
Proses Enkripsi IDEA
Pada proses enkripsi algoritma ini, terdapat 3 operasi berbeda yang digunakan : · Xor dari 2 sub blok 16bit ;bit per bit
· Penjumlahan modulo 2 16 2 sub blok 16 bit
· Perkalian modulo (2 16 + 1) 2 sub blok 16 bit
Blok masukan pesan 64bit mulamula dibagi menjadi 4 subsub blok 16bit : X1, X2, X3, X4. Keempat subblok 16 bit tadi kemudian ditransformasikan menjadi subblok 16 bit, Y1, Y2, Y3, Y4. Semua proses ini berada di bawah kendali 52 subblok kunci 16bit yang dibentuk dari blok kunci 128bit.Keempat subblok 16bit X1, X2, X3, X4 digunkan sebagai masukan putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa dalam setiap putaran dilakukan operasi Xor, penjumlahan modulo dan perkalian modulo. Dari gambar juga terlihat bahwa keluaran dari putaran sebelumnya merupakan masukan dari putaran berikutnya. Hal ini terus berlangsung sampai 8 putaran. Pada putaran terakhir (putaran 8,5) dilakukan transformasi keluaran yang dikendalikan oleh 4 subblok kunci 16bit. Sub kunci diberi simbol Z Operasi yang dilakukan pada setiap putaran dapat dirangkum sebagai berikut :
1) Perkalian X1 dengan Z11
2) Penjumlahan X2 dengan Z21
3) Pejumlahan X3 dengan Z 31
4) Perkalian X4 dengan Z41
5) Operasi XOR hasil langkah 1) dan 3)
6) Operasi XOR hasil angkah 2) dan 4)
7) Perkalian hasil langkah 5) dengan Z51
8) Penjumlahan hasil langkah 6) dengan
langkah 7)
9) Perkalian hasil langkah 8) dengan Z61
10) Penjumlahan hasil langah 7) dengan 9)
11) Operasi XOR hasil langkah 1) dan 9)
12) Operasi XOR hasil langkah 3) dan 9)
13) Operasi XOR hasil langkah 2) dan 10)
14) Operasi XOR hasil langkah 4) dan 10)
Keluaran dari setiap putaran (11), 12) ,13), 14) ) menjadi masukan bagi operasi selanjutnya. Pada putaran ke 8,5 dilakukan transformasi keluaran :

1) Perkalian X1 dengan Z1 8,5
2) Penjumlahan X2 dengan Z3 8,5
3) Penjumlahan X3 dengan Z2 8,5
4) Perkalian X4 dengan Z4 8,5
Setelah semua selesai, keempat subblok 16bit yang merupakan keluaran dari 8,5 putaran operasi tadi digabung kembali menjadi blok pesan rahasia 64bit.


Proses Dekripsi IDEA
Pada proses dekripsi, IDEA menggunakan algoritmayang sama dengan proses enkripsi namun 52 buah subblok kunci yang digunakan merupakan turunan dari 52 buah subblok
kunci untuk enkripsi.Penurunan kunci dekripsi sebagai berikut. Subblok
Kunci Enkripsi Putaran ke1
Z11 Z21 Z31 Z41 Z51 Z61
Putaran ke2
Z12 Z22 Z32 Z42 Z52 Z62
Putaran ke3
Z13 Z23 Z33 Z43 Z53 Z63
Putaran ke4
Z14 Z24 Z34 Z44 Z54 Z64
Putaran ke5
Z15 Z25 Z35 Z45 Z55 Z65
Putaran ke6
Z16 Z26 Z36 Z46 Z56 Z66
Putaran ke7
Z17 Z27 Z37 Z47 Z57 Z67
Putaran ke8
Z18 Z28 Z38 Z48 Z58 Z68
Transformasi output Z1 8,5 Z2 8,5 Z3 8,5 Z4 8,5\


Subblok Kunci Dekripsi
Putaran ke1
(Z19) 1–Z39 –Z29 (Z49) 1Z 58 Z68
Putaran ke2
(Z18) 1–Z38 –Z28 (Z48) 1Z 57 Z67
Putaran ke3

(Z17) 1–Z37 –Z27 (Z47) 1Z 56 Z66
Putaran ke4
(Z16) 1–Z36 –Z26 (Z46) 1Z 55 Z65
Putaran ke5
(Z15) 1–Z35 –Z25 (Z45) 1Z54 Z64
Putaran ke6
(Z14) 1–Z34 –Z24 (Z44) 1Z53 Z63
Putaran ke7
(Z13) 1–Z33 –Z23 (Z43) 1Z52 Z62
Putaran ke8
(Z12) 1–Z32 –Z22 (Z42) 1Z 51 Z61
Transformasi output (Z11) 1–Z21 –Z31 (Z41) 1
Pada subblok kunci dekripsi, Z 1 adalah invers perkalian modulo (2 16 + 1) dari Z dimana Z Z 1= 1.
Pada subblok kunci dekripsi, Z adalah invers penjumlahan modulo 2 16 dari Z dimana Z Z 1= 0. 


Proses Pembentukan SubKunci
Pada proses enkripsi, 52 subblok kunci 16bit diperoleh dari sebuah kunci 128bit pilihan pengguna.
Blok kunci 128bit tadi kemudian dipartisi menjadi 8 subblok kunci 16bit
yang langsung digunakan sebagai 8 subblok kunci pertama. Dari situ kemudian blok kunci 128bit
dirotasi 25 posisi dari kiri untuk kemudian dipartisi lagi menjadi 8 subblok kunci 16bit berikutnya. Proses tersebut terus diulangi sampai diperoleh 52 subblok kunci 16bit. Urutan pembentukan subkunci sebagai berikut :
Z11 Z21 Z31 Z41 Z51 Z61
Z12 Z22 Z32 Z42 Z52 Z62
Z13 Z23 Z33 Z43 Z53 Z63
Z14 Z24 Z34 Z44 Z54 Z64
Z15 Z25 Z35 Z45 Z55 Z65
Z16 Z26 Z36 Z46 Z56 Z66
Z17 Z27 Z37 Z47 Z57 Z67
Z18 Z28 Z38 Z48 Z58 Z68
Z1 8,5 Z2 8,5 Z3 8,5 Z 4 8,5 

Pada tabel berikut dapat dilihat data hasil enkripsi tiap putaran yang diproses dengan sebuah program yang mengimplementasikan algoritma IDEA utuk sebuah pesan terbuka dalam bentuk bilangan integer 11121314 yng telah dibagibagi menjadi empat yaitu:
X1= 11, X2= 12, X3 = 13,dan X4 = 14 , dan kunci telah dibagibagi
menjadi Z 11 = 2, Z21 = 4, Z 31 = 6, Z41 = 8, Z51 = 10, Z 61 = 12, Z12 = 14, Z 22 = 16

Setelah memperhatikan tabel dengan seksama, maka dapat terlihat bahwa hasil enkripsi bilangan integer 11, 12, 13, 14 masingmasing adalah 25112, 3347, 31031, dan 35414. Sekarang mari kita dekripsi hasil yang sudah kita dapat tadi dengan algoritma yang sama tetapi dengan kunci dekripsi yang merupakan kunci enkripsi yang diturunkan.

Algoritma IDEA





Tabel Komputasi Algoritma IDEA Dekripsi
Tabel Komputasi Algoritma IDEA Enkripsi

 

Tidak ada komentar:

Posting Komentar