International Data Encryption Algorithm (IDEA)
Algoritma penyandian IDEA (International Data Encryption
Algorithm) muncul pertama kali pada tahun 1990 yang dikembangkan oleh ilmuwan
Xueijia Lai dan James L Massey. Algoritma utama dari sistem kriptografi IDEA
adalah sebagai berikut :
1. Proses enkripsi : ek(M) = C
2. Proses dekripsi : dk(C) = M
Dimana :
E = adalah fungsi enkripsi
D = adalah fungsi dekripsi
M = adalah pesan terbuka
C = adalah pesan rahasia
K = adalah kunci enkripsi atau
Dekripsi
IDEA
(International Data Encryption Algorithm) merupakan algoritma simetris yang
beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan
kunci yang sama , berukuran 128-bit, untuk proses enkripsi dan dekripsi. Pesan
rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan
lebar atu ukuran 64-bit. Pesan dekripsi menggunakan blok penyandi yang sama
dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci
enkripsi.
Algoritma ini
menggunakan operasi campuran dari tiga operasi aljabar yang berbeda, yaitu XOR,
operasi penjumlahan modulo 216 dan operasi perkalian modulo ( 216 + 1 )
. Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Algoritma
ini melakukan iterasi yang terdiri dari atas 8 putaran dan I transformasi
keluaran pada putaran ke 9,
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, yang
disimbolkan dengan tanda
·
Penjumlahan integer modulo (216 + 1)
dua sub-blok 16-bit , dimana edua sub-blok itu dianggap sebagai representasi
biner dari integer biasa, yang disimbolkan
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 , yang disimbolkan dengan tanda . 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)
Kluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada
langkah 11), 12), 13), dan 14) dan menjadi masukan putaran berikutnya. 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.
Proses Dekripsi IDEA
Proses
dekripsi menggunakan algoritma yang sama dengan proses enkripsi tatapi 52 buah
sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah
sub-blok kunci enkripsi. Tabel sub-blok kunci dekripsi yang diturunkan dari
sub-blok kunci enkripsi dapat dilihat pada tabel berikut : Sub-
blok Kunci Enkripsi
|
Putaran
Ke-1
|
Z11 Z21 Z31 Z41 Z51 Z61
|
|
Putaran
Ke-2
|
Z12 Z22 Z32 Z42 Z52 Z62
|
|
Putaran
Ke-3
|
Z13 Z23 Z33 Z43 Z53 Z63
|
|
Putaran
Ke-4
|
Z14 Z24 Z34 Z44 Z54 Z64
|
|
Putaran
Ke-5
|
Z15 Z25 Z35 Z45 Z55 Z65
|
|
Putaran
Ke-6
|
Z16 Z26 Z36 Z46 Z56 Z66
|
|
Putaran
Ke-7
|
Z17 Z27 Z37 Z47 Z57 Z67
|
|
Putaran
Ke-8
|
Z18 Z28 Z38 Z48 Z58 Z68
|
|
Trnsformasi
output
|
Z19 Z29 Z39 Z49
|
Tabel sub-blok kunci
Dekripsi yang diturunkan
Dari sub-blok kunci enkripsi
Sub-blok kunci dekripsi
|
Putaran
Ke-1
|
(Z19)-1 –Z29 –Z39 (Z49)-1
Z58 Z68
|
|
Putaran
Ke-2
|
(Z18)-1 –Z38 –Z28 (Z48)-1
Z57 Z67
|
|
Putaran
Ke-3
|
(Z17)-1 –Z37 –Z27 (Z47)-1
Z56 Z66
|
|
Putaran
Ke-4
|
(Z16)-1 –Z36 –Z26 (Z46)-1
Z55 Z65
|
|
Putaran
Ke-5
|
(Z15)-1 –Z35 –Z25 (Z45)-1
Z54 Z64
|
|
Putaran
Ke-6
|
(Z14)-1 –Z34 –Z24 (Z44)-1
Z53 Z63
|
|
Putaran
Ke-7
|
(Z13)-1 –Z33 –Z23 (Z43)-1
Z52 Z62
|
|
Putaran
Ke-8
|
(Z12)-1 –Z32 –Z22 (Z42)-1
Z51 Z61
|
|
Trnsformasi
output
|
(Z11)-1 –Z21 –Z31 (Z41)-1
|
Keterangan :
● Z-1 merupakan invers perkalian
modulo 216+1
dari Z, dimana Z Z-1 = 1
● Z
merupakan invers penjumlahan modulo 216 dri Z, dimana Z Z-1 = 0
Pembentukan sub-kunci
SebanYak 52 sub-blok kunci
16-bit untuk proses enkripsi diperolah dari sebuah kunci 128-bit ilihan
pemakai. Blok kunci 128-bit dipartisi menjadi 8 sub-blok kunci 16-bit yang
lansung dipakai sebagai 8 sub-blok kunci pertama. Kemudian blok kunci 128-bit
dirotasi dari kiri 25 poisi untk dipartisi lagi menjad 8 sub-blok kunci 16-bit
berikutnya. Proses rotasi dan pertisi itu diulangi lagi smpai diperoleh 52
sub-blok kunci 16-bit, dengan urutan 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
Z19 Z29 Z39 Z49
Contoh Komputansi Penggunaan
Algoritma IDEA
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 dibagi-bagi
menjadi empat yaitu X1 = Z11 11, X2 = 12, X3 =
13,dan X4 =
14 , dan kunci telah d Z11ibagi-bagi menjadi Z11 = 2, Z21 = 4, Z31 = 6, Z41 = 8, Z51 = 10, Z61 = 12, Z12 = 14, Z22 = 16
:
Data hasil enkripsi
|
Putaran
|
X1=11
|
X2=12
|
X3=13
|
X4=14
|
|
1
|
1742
|
1739
|
1818
|
1914
|
|
2
|
7747
|
19997
|
6873
|
43941
|
|
3
|
17904
|
14848
|
38199
|
28280
|
|
4
|
19495
|
50387
|
56036
|
37729
|
|
5
|
50786
|
38066
|
65017
|
61306
|
|
6
|
8314
|
58477
|
18894
|
58477
|
|
7
|
33229
|
58903
|
41037
|
5557
|
|
8
|
59491
|
30519
|
33083
|
30571
|
|
9
|
25112
|
33467
|
31031
|
35414
|
Dari tabel diatas dapat dilihat data hasl enkripsi tiap putaran
untuk pesan rahasia, yaitu :
Y1 = 25112, Y2 = 33467, Y3 =
3103, Y4 =
35414
Yang
dihasilkan oleh proses enkripsi, dengan mnggunakan kunci yang diturunkan dari
kunci enkripsi dan dengan menggunakan blok dekripsi yang sama dengan proses enkripsi.Terlihat
bahwa pesan rahasia telah didekripsi menjadi pesan terbuka sebenarnya seperti
tabel berikut:
|
Putaran
|
Y1=25112
|
Y2=33467
|
Y3=31031
|
Y4=35414
|
|
1
|
16154
|
41038
|
42520
|
20552
|
|
2
|
11700
|
19054
|
58605
|
20757
|
|
3
|
15054
|
19054
|
54450
|
30993
|
|
4
|
6196
|
19172
|
9427
|
13904
|
|
5
|
7555
|
38263
|
14904
|
29629
|
|
6
|
17706
|
15065
|
27165
|
37202
|
|
7
|
23488
|
3866
|
1755
|
47015
|
|
8
|
22
|
19
|
16
|
112
|
|
9
|
11
|
12
|
13
|
14
|
Hasil dekripsi
akan sesuai dengan pesan asli seperi terlihat pada tabel putaran kesembilan
yaitu bilangan integer :
Y1 Y2 Y3 Y4 = X1 X2 X3 X4 =
11121314
Tidak ada komentar:
Posting Komentar