KRIPTOGRAFI IDEA
Diskripsi
umum Algoritma 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,
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)
Kluaransetiap 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
Sebanak 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
Arsitektur umum
Processor Kroptografi IDEA
Pada gambar berikut diperlihatkan arsitektur
atau penggambaran umum sebuah processor yang mengolah sistem keamanan data
dengan menggunakan algoritma IDEA :
Blok Penyandi IDEABlok Kontrol
UtamaBlokPembangkitSubkunciBlok Port Kunci-InBlok Port Data-InBlok Port
Data-OutBlok Mode OperasiPesan Terbuka 32-bitPesan Rahasia 32-bitKunci
32-bitKontrolLuar`
Keterangan :
1. 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).
2. 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.
3. 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.
4. 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.
5. Blok
poert kunci-n
Blok ini berfungsi untuk membaca 4 buah blok
kunci 32 bit dan menyimpanya sebagai blok kunci 128 bit.
6. Blok mode operasi
Blok ini berfungsi untuk menentukan mode operasi
yang digunakan paa prses ekripsi dan dekripsi.
7. Blok
kontrol
Blok ini berfungsi untuk mengontrol operasi
antara blok fungsional yang menyusun sebuah blok besar seperti sinkronisasi
transfer data antar blok.
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
No comments:
Post a Comment