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 di \ banyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial. Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDEA 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).
(Improved PES). IDEA didesain di bawah kontrak Hasler Foundation. Sandi rahasia ini dipatenkan di \ banyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial. Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDEA 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).
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.
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 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)
Keluaran 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 :
- Perkalian X1 dengan sub-kunci pertama
- Penjumlahan X2 dengan sub-kuci ketiga
- Penjumlahan X3 dengan sub-kunci kedua
- 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.
3.3 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
3.4 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
3.5 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
Blo k 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.
Sumber & Referensi :
http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2007-2008/Makalah/MakalahIF2153-0708-102.pdf