Kriptografi IDEA
IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan plaintext terbuka dengan panjang blok 64-bit. Memilih panjang blok sebanyak 64 bit kaena dirasa sudah cukup panjang bila kita akan melakukan analisis statistikal. Menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi maupun dekripsi. Kunci yang digunakan panjangnya 128 bit karena bila dilakukan serangan brute force pada IDEA menggunakan sebuah sistem yang dapat melakukan pengujian 109 kunci per detiknya, akan diperlukan waktu 1013 tahun untuk mencari kuncinya. Pesan rahasia yang dihasilan oleh algoritma ini (chipertext) berupa blok pesan rahasia dengan lebar satu blok 64-bit. Sebuah sistem yang dapat melakukan pengujian 109 kunci akan mencari semua kemungkinan dari
256 kunci DES dalam waktu di bawah satu detik (72 millidetik).
Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah
11), 12), 13), dan 14) dan menjadi masukan putaran berikutnya.
256 kunci DES dalam waktu di bawah satu detik (72 millidetik).
Proses Enkripsi IDEA
Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar di
atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit
yang digunakan, sebagai berikut :
· XOR dua sub-blok 16-bit bir per bit
· Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana edua
sub-blok itu dianggap sebagai representasi biner dari integer biasa,
Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok
16-bit itu dianggap sebagai representasi biner dari integer biasa
kecuali sub-blok nol dianggap mewakili integer 216
Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok
16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok
16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y2, Y2, Y3, Y4,
sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah
kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128
bit.
Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukn untuk
putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan
operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan
diikuti pertukaran antara sub-blok 16-bit putaran kedua dan ketiga.
Keluaran putaran sebelumnya menjadi masukan putaran berikutnya. Setelah
putaran kedelapan dilakukan transformasi keluara yang dikendalikan oleh 4
sub-blok unci 16-bit.
Pada setiap putaran dilakukan operasi-operasi sebagai berikut :
1) Perkalian X1 dengan sub-kunci pertama
2) Penjumlahan X2 dengan sub-kunci kedua
3) Pejumlahan X3 dengan sub kunci ketiga
4) Perkalian X4 dengan sub kunci keempat
5) Operasi XOR hasil langkah 1) dan 3)
6) Operasi XOR hasil angkah 2) dan 4)
7) Perkalian hasil langkah 5) dengan sub-kunci kelima
8) Penjumlahan hasil langkah 6) dengan langkah 7)
9) Perkalian hasil langkah 8) dengan sub-kunci keenam
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)
Setelah putaran kedelapan terdapat transformasi keluaran, yaitu :
1) Perkalian X1 dengan sub-kunci pertama
2) Penjumlahan X2 dengan sub-kuci ketiga
3) Penjumlahan X3 dengan sub-kunci kedua
4) Perkalian X4 dengan sub-kunci keempat
Terahir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi 1),
2), 3), dan 4) ii digabung kembali menjadi blok pesan rahasia 64-bit.
Arsitektur umum Processor Kroptografi IDEA
Blok penyandi IDEA
Blok ini berfungsi untuk melakukan proses penyandian data. Jika
sub-kunci yang diproses oleh blok ini berupa sub-kunci enkripsi maka
pesan yang dihasilkan adalah pesan rahasia (Chiper teks) dan jika yang
diproses berupa sub-kunci dekripsi maka pesan yang dihasilkan adalah
pesan sebenarnya (Plain teks).
Blok pembangkit sub-kunci
Blok ini berfungsi untuk membentuk 52 buah sub-kunci enkripsi 16 bit
dari kunci enkripsi 128 bit membentuk 52 buah sub-kunci dekripsi 16 bit
dari kunci dekripsi 128 bit.
Blok port data-in
Blok ini berfungsi untuk membaca 2 buah blok data masukan 32 bit dan
penyimpananya sebagai blok data masukan 64 bit yang akan dienkripsi atau
didekripsi.
Blok poert data-out
Blok ini berfungsi untuk mengeluarkan blok data keluaran 64 bit yang
merupakan hasil enkripsi atau dekripsi engan cara membagi menjadi 2 buah
ok data keluaran 32 bit.
Blok poert kunci-n
Blok ini berfungsi untuk membaca 4 buah blok kunci 32 bit dan menyimpanya sebagai blok kunci 128 bit.
Blok mode operasi
Blok ini berfungsi untuk menentukan mode operasi yang digunakan paa prses ekripsi dan dekripsi.
Blok kontrol
Blok ini berfungsi untuk mengontrol operasi antara blok fungsional yang
menyusun sebuah blok besar seperti sinkronisasi transfer data antar
blok.