STUDI DAN PERBANDINGAN ALGORITMA IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM) DENGAN DES (DATA ENCRYPTION STANDARD) Stevens Jethefer – 13504080 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganeca 10, Bandung E-mail :
[email protected]
Abstrak
Makalah ini membahas tentang studi dan perbandingan International Data Encryption Algorithm (IDEA) dengan Data Encryption Standard (DES). IDEA adalah algoritma kriptografi simetri yang beroperasi dalam bentuk blok 64 bit. IDEA ini mengenkripsi plaintext menjadi chiperteks dalam delapan putaran. Algoritma ini membagi plaintext yang akan dienkripsi menjadi empat blok, masing-masing terdiri dari enam belas bit. Lima puluh dua upa kunci (sub-keys) yang terdiri dari enam belas bit dibangkitkan dari kunci utama (master-key) yang terdiri 128 bit. Lalu pada setiap putarannya digunakan enam kunci. Setelah itu dilakukan transformasi final dengan empat kunci untuk membalikkan posisi ke operasi dasar. Dalam makalah ini akan dibahas sejarah dari algoritma IDEA, proses mengenkripsi suatu file dengan menggunakan algoritma IDEA, lalu akan dibahas pula proses cara melakukan dekripsi kembali untuk mengembalikan plaintext hasil enkripsi menjadi seperti sedia kala dengan menggunakan algoritma IDEA ini pula. Lalu akan dijelaskan pula proses pembangkitan kunci yang dilakukan untuk melakukan proses enkripsi. Dalam makalah ini juga akan dianalisis mengenai kekuatan dan kelemahan dari algoritma IDEA itu sendiri. Serta akan diberikan pula contoh komputasi dari algoritma IDEA ini. Algoritma IDEA yang akan dibahas dalam makalah ini juga akan dibandingkan dengan algoritma yang sudah menjadi standar dalam algoritma chiper block, yaitu DES. Makalah ini akan membandingkan performansi masing-masing algoritma dalam mengenkripsi dan mendekripsi berbagai jenis file dalam berbagai ukuran. Sebuah perangkat lunak bernama DEC (Delphi Encryption Compendium) Part 1 akan digunakan untuk membandingkan antara algoritma IDEA dengan algoritma DES. Perangkat lunak inilah yang digunakan untuk membandingkan performansi algoritma IDEA dengan DES. Kata kunci: International Data Encryption Algorithm, Data Encryption Standard, plaintext, chipertext, Delphi Encryption Compendium, dekripsi, enkripsi, sub-key, master-key. 1.
Pendahuluan
Masalah keamanan dan kerahasiaan data merupakan hal yang sangat penting dalam suatu organisasi maupun pribadi. Apalagi jika data tersebut berada dalam suatu jaringan komputer yang terhubung / terkoneksi dengan jaringan lain yang publik misalnya internet. Tentu saja data yang sangat penting tersebut jangan sampai jatuh ke tangan yang tidak berwenang sehingga bisa dilihat atau dibajak oleh orang yang tidak berwenang tersebut. Sebab kalau hal ini sampai terjadi kemungkinan informasi yang terkandung di dalamnya bisa diketahui oleh lain yang tidak
berhak sehingga mungkin saja membahayakan bagi orang yang mengirim pesan atau dikirimi pesan bahkan banyak orang. Informasi yang terkandung di dalamnya pun bisa saja berubah sehingga menyebabkan salah penafsiran oleh penerima pesan sehingga bisa membahayakan kedua pihak atau bahkan banyak orang. Selain itu data yang dibajak tersebut akan memiliki kemungkinan rusak bahkan bisa hilang yang akan menimbulkan kerugian material yang besar. Jadi bisa dikatakan tujuan-tujuan dari kriptografi antara lain : Convidentiality
Yaitu menjaga kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enripsi. Massage Integrity Yaitu memberikan jaminan bahwa untuk tiap bagian pesan tidak akan mengalami perubahan dari saat data dibuat/dikirim oleh pengirim sampai dengan saat data tersebut dibuka oleh penerima data. Non-repudiation Yaitu memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang tertentu sehingga apabila ada seseorang yang mencoba mengakui memiliki dokumen tersebut, dapat dibuktikan kebenarannya dari pengakuan orang tersebut. Authentication Yaitu emberikan dua layanan. Pertama mengidentifikasikan keaslian suatu pesan dan memberikan jaminan keotentikannya. Kedua untuk menguji identitas seseorang apabila ia akan memasuki sebuah sistem.
Oleh karena itu diciptakanlah suatu algoritma modern untuk menggantikan kriptografi klasik. Kriptografi klasik menggunakan algoritma sederhana sehingga memungkinkan chipertext dapat dipecahkan dengan mudah. Sehingga diciptakan algoritma kriptografi modern yang menggunakan algoritma yang lebih kompleks sehingga lebih sulit untuk dipecahkan oleh kriptanalisis. Algoritma kriptografi modern yang dibahas ini termasuk dalam tipe dan mode algoritma simetri. Algoritma kriptografi modern kebanyakan beroperasi dalam mode bit daripada beroperasi pada operasi karakter. Berikut ini bagan suatu sistem penyandian berdasarkan kunci beserta contoh-contoh algoritma yang digunakan :
Gambar 1: Blok diagram Pembagian sistem Kriptografi berdasarkan kunci Algoritma chiper block penyandian/kriptografi data yang populer dan telah dijadikan standard enkripsi kunci simetri sejak tahun 1976 adalah Data Encryption Standard (DES). Algoritma chiper block adalah algoritma kriptografi yang beroperasi pada plaintext / chipertext dalam bentuk blok bit, yang dalam hal ini rangkaian biit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian. Algoritma DES ini dikembangkan oleh IBM di bawah kepemimpinan W.L Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma Lucifer yang dibuat Horst Feistel. Kekuatan DES ini terletak pada panjang kuncinya yaitu 56-bit yang beroperasi pada ukuran blok 64 bit. Oleh karena itu DES masih kadang-kadang digunakan untuk keperluan kriptografi pada bank-bank. Namun perkembangan kecepatan perangkat keras (hardware) komputer dan meluasnya penggunaan jaringan komputer terdistribusi seperti internet mengakibatkan penggunaan DES, dalam beberapa hal, terbukti sudah tidak aman dan tidak mencukupi lagi. Terutama dalam hal yang pengiriman data melalui jaringan internet. Sudah banyak ahli kriptanalisis yang menemukan kelemahan pada algoritma ini. Perangkat keras khusus yang bertujuan untuk menentukan kunci 56-bit DES hanya dalam waktu beberapa jam sudah dapat dibangun. Beberapa pertimbangan tersebut telah manandakan bahwa diperlukan sebuah standard algoritma baru dan kunci yang lebih panjang. Oleh karena itu pada tahun 1990 Xue Jia Lai dan James Massey menciptakan PES (Proposed Encryption Standard) sebagai calon pengganti DES. Namun pada tahun 1991, mereka berdua menciptakan IPES (Improved Proposed Encryption Standard) yang merupakan perkembangan dari Biham dan Shamir pada kriptanalisis diferesial. Pada tahun 1992, akhirnya IDEA (International Data Encryption Algorithm) diciptakan di ETH, Institut teknologi federal Swiss oleh mereka berdua. Pada tahun 1999, algoritma IDEA yang lebih aman daripada DES, mulai digunakan secara luas di Eropa pada pengamanan sistem electronic mail (email) PGP (Pretty Good Privacy). Algoritma IDEA ini merupakan algoritma yang sudah dipatenkan dan dipegang oleh Ascom di Swiss namun
penggunaan non-komersial dari algoritma IDEA ini dapat masih dapat dilakukan secara gratis. IDEA sudah dipatenkan di Austria, Perancis, Jerman, Itali, Belanda, Spanyol, Swedia, Swss, Inggris Raya, (Paten Eropa EP-B-0482154), Amerika Serikat (Paten AS #5,214,703) dan Jepang (JP 3225440). 2.
Deskripsi Umum Algoritma IDEA
Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut : 1. Proses enkripsi : e (M) = C k
2. Proses dekripsi : d (C) = M k
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 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). Dalam melakukan enkripsi memakai delapan putaran. Setiap putarannya digunakan enam kunci. Struktur dan skema dari IDEA adalah :
Gambar 2 : Struktur dan Skema IDEA 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, 16
yaitu XOR, operasi penjumlahan modulo 2 dan 16
operasi perkalian modulo ( 2 + 1 ) . Semua operasi ini digunakan dalam pengoperasian subblok 16-bit. Algoritma ini melakukan iterasi yang terdiri dari atas 8 putaran dan I transformasi keluaran pada putaran ke 9, dimana gambaran komputasi dan transformasi keluaran ditunjukkan oleh gambar sebagai berikut :
Gambar 3 : Algoritma IDEA
Prinsip perancangan dari algoritma kriptografi IDEA di sini adalah : Diffusion Konsep ini dilakukan dengan mengusahakan setiap bit dari setiap plaintext mempengaruhi setiap bit ciphertext dan setiap bit kunci untuk mempengaruhi setiap bit ciphertext. Confusion Konsep ini dilakukan dengan mencampur tiga prinsip operasi grup aljabar yang berbeda-beda : 1. XOR (penambahan modulo 2). 2. Penambahan modulo 216 3. Perkalian dengan modulo 216 + 1 Menggunakan sebuah arsitektur serial-bit untuk melakukan perkalian modulo 216 + 1, implementasinya minimal membutuhkan perangkat keras yang sederhana. Arsitektur serial-bit memungkinkan algoritma menjadi lebih dalam untuk mendapatkan sebuah sistem dengan waktu clock sebesar 125MHz. Sebuah implementasi pada Xilinx Virtex XCV300-4 dapat dilakukan tes secara sukses., mendistribusikan sebuah keluaran sebesar 500Mb/sec. Dengan alat XCV1000-6, perkiraan performansi adalah 2.35Gb/detik, tiga lebih cepat dari urutan magnitude daripada sebuah implementasi perangkat lunak pada 450MHz Intel Pentium II. Desain ini cocok bagi aplikasi dengan enkripsi secara langsung (on-line ) pada jaringan dengan kecepatan tinggi. 3.
Proses Enkripsi IDEA
Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar 3 di atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut : XOR dua sub-blok 16-bit, bit per bit, yang disimbolkan dengan tanda
16
Penjumlahan integer modulo 2 (mod 65.536) dua sub-blok 16-bit , dimana kedua sub-blok itu dianggap sebagai representasi biner dari integer biasa, yang disimbolkan dengan tanda
.
.
16
Perkalian modulo (2 + 1) yang nilainya 65.537 (bilangan ini prima dan invers dari perkalian bisa dijamin), 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
16
integer 2 , yang disimbolkan dengan tanda
Setiap operasi dibuat pada blok 16 bit dan trick yang digunakan di sini adalah blok-blok tersebut yang nilainya adalah 0 (16 bit) akan digantikan oleh konstanta 216 ... dari 17 bits!. Membuktikan hal ini dengan jumlah digit yang sangat banyak tidak dapat dilakukan secara jelas. Walaupun begitu, kita dapat melihat contoh nya dengan menskalakannya dengan angka-angka yang kecil. Pada tabel 1 adalah contoh pada kelompok kecil n di mana 2n + 1 harus prima, n = 2 di mana 22=4 y 22 + 1 = 5. Penjelasan : Ingat bahwa 0 sama dengan 2n = 4 sehingga : 0⊗0 = 22 x 22 = 16 mod 5 =1 0⊗1 = 22 x 1 = 4 = 4 mod 5 =4=0 0⊗2 = 22 x 2 = 8 = 8 mod 5 =3 0⊗3 = 22 x 3 = 12 = 12 mod 5 =2 Operasi-operasi yang dilakukan antara lain : + mod 2n (mod 4) ⊗ mod 2n+1 (mod 5) XOR (mod 2) Kalkulasi lain dengan nilai x dan y yang berbeda akan sama. Penambahan invers : Modulo 216 = Modulo 65536 • A adalah penambahan invers dari B iff (A + B) mod 65536 = 0 • Contoh penambahan pada 4 adalah: −4 mod 65536 ´ (−4 + 65536) = 65532 Perkalian invers : Modulo 216 + 1 = Modulo 65537 • A adalah perkalian invers dari B iff (A × B) mod 65537 = 1 • Gunakan algoritma Extended Euclidean untuk mencari perkalian invers. Algoritma Extended Euclidean Extended Euclidean (m, n) di mana m > n a[0] = m a[1] = n x[0] = 1 x[1] = 0
y[0] = 0 y[1] = 1 untuk k > 0 a[k] = a[k − 2] − q[k − 1]a[k − 1] for k > 1 x[k] = x[k − 2] − q[k − 1]x[k − 1] for k > 1 y[k] = y[k − 2] − q[k − 1]y[k − 1] for k > 1
Gambar 4 : Gambar operasi pada algoritma kriptografi IDEA.
Jika a[p] adalah nilai a[k] terakhir yang bukan nol maka a[p] = x[p] × m + y[p] × n dan gcd(m, n) = a[p]. Jika gcd(m, n) = 1 maka y[p] = n−1 mod m Catatan a[k] = a[k − 2] − q[k − 1]a[k − 1] Akan sama dengan: a[k] = a[k − 2] mod a[k − 1]
Gambar di atas adalah operasi-operasi yang mengakibatkan confusion dan dalam operasioperasi ini tidak berlaku hukum distributif atau hukum asosiatif. Struktur dari difusion ini menciptakan sebuah blok dasar yang dinamakan MA Structure Multiplication / Addition. Ini hanya menggunakan dua kunci untuk setiap putarannya dan masukannya adalah F1, F2 sama seperti luarannya G1, G2 yang dihubungkan oleh XOR. Berikut ini adalah gambar dari blok utama IDEA :
Contoh m = 65537, n = 4
gcd(65537, 4) = 1 Invers −16384 mod 65537 = 49153 a[p] = x[p] × m + y[p] × n 1 = 1 × 65537 + (−16384 × 4) 1 = 65537 − 65536 Invers 1 = (y[p] × n) mod m 1 = (−16384 × 4) mod 35567 1 = (49153 ¤ 4) mod 65537 1 = ((3 × 65537) + 1) mod 65537
Gambar 5 : Blok Utama IDEA
X
Y
0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3
00 00 00 00 01 01 01 01 10 10 10 10 11 11 11 11
X+Y
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11
0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2
Tabel 1: Operasi XOR, penambahan, dan perkalian pada grup kecil. Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-bit, X , X , X , X , 1
2
3
4
sehingga X = (X , X , X , X ). Keempat sub1
2
3
4
blok 16-bit itu ditransformasikan menjadi subblok 16-bit, Y , Y , Y , Y sebagai pesan rahasia 1
2
3
4,
1
2
3
4
64-bit Y = (Y , Y , Y , Y ) yang berada dibawah kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128 bit. Keempat sub-blok 16-bit, X , X , X , X , 1
2
3
4
digunakan sebagai masukan 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 keluaran yang dikendalikan oleh 4 sub-blok kunci 16-bit. Pada setiap putaran dilakukan operasi-operasi sebagai berikut : 1) Perkalian X dengan sub-kunci pertama 1
2) Penjumlahan X dengan sub-kunci kedua 2
3) Pejumlahan X dengan sub kunci ketiga 3
4) Perkalian X dengan sub kunci keempat 4
5) Operasi XOR hasil langkah 1) dan 3) 6) Operasi XOR hasil angkah 2) dan 4)
00 01 10 11 01 10 11 00 10 11 00 01 11 00 01 10
1 0 3 2 0 1 2 3 3 2 0 1 2 3 1 0
X⊗ Y 01 00 11 10 00 01 10 11 11 10 00 01 10 11 01 00
X⊕ 0 1 2 3 1 0 3 2 2 3 0 1 3 2 1 0
Y 00 01 10 11 01 00 11 10 10 11 00 01 11 10 01 00
7) Perkalian hasil langkah 5) dengan subkunci kelima 8) Penjumlahan hasil langkah 6) dengan langkah 7) 9) Perkalian hasil langkah 8) dengan subkunci 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) Untuk lebih jelasnya bisa dilihat dari notasinotasi berikut : IDEA Round • 14 Langkah • © = Xor • ¤ = Perkalian Modulo 216 + 1 • + = Penambahan modulo 216 1. A = X1 ¤ K1 2. B = X2 + K2 3. C = X3 + K3 4. D = X4 ¤ K4 5. E = A © C 6. F = B © D 7. G = E ¤ K5 8. H = G + F 9. J = H ¤ K6 10. L = J + G 11. R1 = A © J 12. R2 = C © J 13. R3 = B © L 14. R4 = D © L Di bawah ini adalah gambar dari putaran yang dimiliki oleh IDEA :
berkorespondensi dengan upa-kunci (sub-key) enkripsi. Invers : Invers XOR: sama seperti fungsi yang sudah diaplikasikan Invers Penambahan :penambahan dengan mod 216 Invers Perkalian : perkalian dengan mod 216+1 Gambar 6 : Putaran dari IDEA 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 : 1) Perkalian X dengan sub-kunci pertama 1
2) Penjumlahan X dengan sub-kuci ketiga 2
3) Penjumlahan X dengan sub-kunci kedua 3
Di bawah ini adalah tabel kunci dekripsi pada IDEA : d1 = k49-1 d7 = k43-1 d13 = k37-1 d19 = k31-1 d25 = k25-1 d31 = k19-1 d37 = k13-1 d43 = k7-1 d49 = k1-1
d2 = -k50 d8 = -k45 d14 = -k39 d20 = -k33 d26 = -k27 d32 = -k21 d38 = -k15 d44 = -k9 d50 = -k2
d3 = -k51 d9 = -k44 d15 = -k38 d21 = -k32 d27 = -k26 d33 = -k20 d39 = -k14 d45 = -k8 d51 = -k3
d4 = k52-1 d10 = k46-1 d16 = k40-1 d22 = k34-1 d28 = k28-1 d34 = k22-1 d40 = k16-1 d46 = k10-1 d52 = k4-1
d5 = k47 d11 = k41 d17 = k35 d23 = k29 d29 = k23 d35 = k17 d41 = k11 d47 = k5
d6 = k48 d12 = k42 d18 = k36 d24 = k30 d30 = k24 d36 = k18 d42 = k12 d48 = k6
4) Perkalian X dengan sub-kunci keempat 4
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. Di bawah ini adalah gambar dari transformasi luaran.
Inverses of addition
Inverses of XOR
Inverses of the product
Tabel 2 Kunci Dekripsi dari IDEA Gambar Operasi Dekripsi dari IDEA adalah : Module IDEA
Gambar 7 : Transformasi Luaran Notasi superscript K9n menandakan jumlah putaran dari upa-kunci (sub-key). Pada kasus ini putaran sembilan adalah transformasi final. 4.
Untuk dekripsi, setiap blok dari kriptogram dibagi menjadi empat sub-blok 16 bit. Operasi sekarang maju
Proses Dekripsi IDEA
Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tetapi 52 buah subblok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Sebagai operasi yang dibentuk dari sebuah field terbatas, pada kasus ini akan diambil invers dari operasi XOR, penambahan oleh mod 216 dan perkalian mod 216+1, tergantung pada operasi yang dibuat pada fase chiper. Setiap upa kunci (sub-key) adalah salah satu dari penambahan atau perkalian yang
Gambar 8 : Operasi Dekripsi pada IDEA Gambar penggunaan kunci pada IDEA :
Enam kunci terakhir dekripsi
d1 = k49-1 d7 = k43-1 d13 = k37-1 d19 = k31-1 d25 = k25-1 d31 = k19-1 d37 = k13-1 d43 = k7-1 d49 = k1-1
d2 = -k50 d8 = -k45 d14 = -k39 d20 = -k33 d26 = -k27 d32 = -k21 d38 = -k15 d44 = -k9 d50 = -k2
d3 = -k51 d9 = -k44 d15 = -k38 d21 = -k32 d27 = -k26 d33 = -k20 d39 = -k14 d45 = -k8 d51 = -k3
d4 = k52-1 d10 = k46-1 d16 = k40-1 d22 = k34-1 d28 = k28-1 d34 = k22-1 d40 = k16-1 d46 = k10-1 d52 = k4-1
d5 = k47 d11 = k41 d17 = k35 d23 = k29 d29 = k23 d35 = k17 d41 = k11 d47 = k5
d6 = k48 d12 = k42 d18 = k36 d24 = k30 d30 = k24 d36 = k18 d42 = k12 d48 = k6
Gambar 9 Penggunaan kunci pada IDEA Tabel sub-blok kunci dekripsi yang diturunkan dari sub-blok kunci enkripsi dapat dilihat pada tabel berikut :
Tabel 4 Keterangan : -1
16
• Z merupakan invers perkalian modulo 2 +1 -1
dari Z, dimana Z Z = 1
16
• -Z merupakan invers penjumlahan modulo 2 -1
dri Z, dimana Z Z = 0 Sehingga dapat dibandingkan kunci yang digunakan untuk dekripsi dengan kunci yang digunakan untuk enkripsi dalam tabel berikut : Tabel 3 Tabel sub-blok kunci Dekripsi yang diturunkan dari sub-blok kunci enkripsi
Tabel 5 Perbandingan Kunci
5.
Z Z Z Z
Pembentukan Upa Kunci (Sub-Key)
19
Sebanyak 52 upa-kunci blok 16-bit untuk proses enkripsi diperoleh dari sebuah kunci 128-bit pilihan pemakai. Enam upa-kunci digunakan setiap putarannya sehingga terpakai 48 uapkunci. Sedangkan sisa empat upa-kunci untuk transformasi final. Blok kunci 128-bit dipartisi menjadi 8 sub-blok kunci 16-bit yang langsung dipakai sebagai 8 sub-blok kunci pertama. Kemudian blok kunci 128-bit dirotasi dari kiri 25 posisi untuk dipartisi lagi menjad 8 sub-blok kunci 16-bit berikutnya. Proses rotasi dan partisi itu diulangi lagi terus menerus sampai diperoleh 52 sub-blok kunci 16-bit, dengan urutan sebagai berikut : Z Z Z Z Z Z 11
21
31
41
51
61
12
22
32
42
52
62
13
23
33
43
53
63
14
24
34
44
54
64
15
25
35
45
55
65
16
26
36
46
56
66
17
27
37
47
57
67
18
28
38
48
58
68
29
39
49
Berikut ini adalah gambar pembangkitan kunci untuk algoritma IDEA masukan 128 bit,upakunci 52 akan dibangkitkan
64 bit terakh ir dari fase 7 tidak digun akan.
26
23
A geser
25 bit yang dihasilkan di bagian kiri pada setiap fase pada 7 fase pembangkitan kunci 128 bit pertama ,8 upakun ci 16 bit akan dibangk itkan satupersatu
64 bits of last keys 86
Z Z Z Z Z Z
Gambar 10 Pembangkitan algoritma IDEA
Z Z Z Z Z Z Z Z Z Z Z Z
kunci
pada
Pada setiap operasi pada kunci 128 bit, 8 kunci dari 16 bits yang didapatkan, hanya enam kunci yang digunakan pada setiap putarannya. Kunci yang tersisa disimpan untuk putaran berikutnya. Di bawah ini adalah gambar pergeseran kunci pada IDEA:
Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z
Main key k = 128 bits 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 1ª 2ª 3ª 4ª 5ª 6ª 7ª
First 16 bits of key
….
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 126 127 128 001 002 003 004 005 006 007 008 009 010 011 012 103 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038
Gambar 11 : Pergeseran Kunci pada IDEA Sedangkan penggunaan kunci setiap putarannya akan ditunjukkan oleh gambar di bawah ini :
…. …. …. …. …. …. ….
Last 16 bits of key
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022
Distribusi dari bit-bit dari tiap upakunci pada setiap putarannya mengikuti seperti logika First round: Second round: Third round: Fourth round: Fifth round: Sixth round: Seventh round: Eighth round: Transformation:
Gambar 12 putarannya
k1k2k3k4k5k6 k7k8k9k10k11k12 k13k14k15k16k17k18 k19k20k21k22k23k24 k25k26k27k28k29k30 k31k32k33k34k35k36 k37k38k39k40k41k42 k43k44k45k46k47k48 k49k50k51k52
B[1…96] B[97…128; 26…89] B[90…128; 1…25; 51…8 B[83…128; 1…50] B[76…128; 1…43] B[44…75; 101…128; 1… B[37…100; 126…128; 1… B[30…125] B[23…86]
Penggunaan
kunci
setiap
Kunci pertama untuk setiap putaran k1, k7, k13, k19, k25, k31, k37 dan k43 menggunakan sebuah himpunan bit-bit yang berbeda-beda. Kecuali pada putaran pertama dan ke delapan, bit ke-96 dari upa-kunci (subkey) digunakan pada setiap putarannya, tidak berdampingan. Dikarenakan adanya pergeseran 25 bit pada bagian kiri di setiap fasenya, serangan yang dilakukan pada kunci akan sangat sulit. Gambar dari kunci pertama pada setiap putarannya bisa dilihat pada gambar 13 di bawah ini : K1: 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 K7: 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 K13: 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 K19: 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 K25: 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 K31: 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 k37: 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 k43: 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045
Gambar 13 : Kunci pertama yang digunakan pada setiap putaran. 6.
Arsitektur Umum Prosesor Kriptografi IDEA
Pada gambar berikut diperlihatkan arsitektur atau penggambaran umum sebuah processor yang mengolah sistem keamanan data dengan menggunakan algoritma IDEA :
Jika kunci yang digunakan adalah “IDEA es la clave”, cari 16 bit dari kunci kedua pada putaran keempat. Solusi: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 115 116 117 118 119 120 121 122 123 124 125 126 127 128 1 1 0 1 1 0 0 1 1 0 0 1 0 1 Seperti pada setiap putaran enam penggunaan upa-kunci (subkeys), kunci kedua dari putaran keempat akan berupa penjumlahan 3∗6+2 = 20. Seperti pada kunci 19 yang berhenti pada bit ke 98, kunci 20 akan sama 16 bit, hal ini berasal dari 99 ke 114: k20 = 10110001 10000101.
Blok ini berfungsi untuk mengontrol operasi antara blok fungsional yang menyusun sebuah blok besar seperti sinkronisasi transfer data antar blok. 7.
Kekuatan dari Algoritma IDEA
•
IDEA menunjukkan dirinya sendiri bahwa algoritma yang kebal menghadapi berbagai serangan dari para kriptanalisis dengan asumsi tertentu. Pembuat dari algoritma ini mengetahui kelemahan dari DES dan mencoba memperbaikinya dan membuat suatu algoritma yang lebih kebal/tangguh terhadap berbagai jenis serangan. Pada tahun 1992, Joan Daemen menemukan sebuah kelas yang merupakan titik lemah dari kunci. Contoh kunci berikut ini, k = 0000,0000,0x00,0000,0000,000x,xxxx,x000 dalam bentuk hexadecimal akan menjadi lemah/rentan terhadap serangan, artinya adalah seorang kriptanalisis dapat mengidentifikasi kunci ini dengan satu serangan pada plaintext yang sudah terpilih. Posisi x dapat memiliki nilai apapun dalam hexadecimal. Kemungkinan dari tipe kunci yang seperti ini dapat digunakan adalah hanya 1 sampai 296, dan itu semua mungkin terjadi. Namun hal ini juga bisa dihindari dengan melakukan proses desain yang baik. Sampai tahun 2004, serangan terbaik yang dapat dilakukan pada semua kunci yang dapat memecahkan IDEA dilakukan di bawah putaran ke-5 (algoritma IDEA yang penuh menggunakan 8.5 putaran). Pada tahun 1996, Bruce Schneier sangat memandang tinggi IDEA, beliau menulis, "Menurut saya, IDEA merupakan algoritma blok-chiper yang terbaik dan paling aman yang tersedia pada masyarakat luas pada saat ini." (Applied Cryptography, 2nd ed.) Akan tetapi, pada tahun 1999 dia tidak lagi merekomendasikan algoritma IDEA dikarenakan ketersediaan dari algoritma lain yang lebih cepat, beberapa perkembangan para kriptanalisis, dan munculnya hak paten pada IDEA. Sampai saat ini, serangan apapun pada sistem yang menggunakan algoritma kriptografi IDEA baik secara aljabar maupun linear masih belum diketahui oleh para kriptanalisis. Pada tahun 1997, Joan Daemen and Vincent Rijmen akan menciptakan RIJNDAEL,
•
Gambar 14 : Arsitektur prosesor IDEA 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 (chipertext) dan jika yang diproses berupa subkunci dekripsi maka pesan yang dihasilkan adalah pesan sebenarnya (plaintext). 2. Blok pembangkit sub-kunci Blok ini berfungsi untuk membentuk 52 buah sub-kunci enkripsi 16 bit dari kunci enkripsi 128 bit. Sehingga membentuk 52 buah subkunci 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 port data-out Blok ini berfungsi untuk mengeluarkan blok data keluaran 64 bit yang merupakan hasil enkripsi atau dekripsi dengan cara membagi menjadi 2 buah blok data keluaran 32 bit. 5. Blok port 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 pada proses ekripsi dan dekripsi. 7. Blok kontrol
•
•
•
•
•
sebuah standar NIST yang baru pada akhir tahun 2001. 8.
Contoh Komputasi Penggunaan Algoritma IDEA
Pada tabel berikut dapat dilihat data hasil enkripsi tiap putaran yang diproses dengan sebuah program yang mengimplementasikan algoritma IDEA. Untuk sebuah pesan terbuka dalam bentuk bilangan integer 11121314 yang telah dibagi-bagi menjadi empat bagian yaitu X 1
= 11, X = 12, X = 13,dan X = 14 , dan kunci 2
3
4
telah dibagi-bagi menjadi Z = 2 Z = 4 Z = 6 11
,
21
,
22
,
31
Z = 8 Z = 10 Z = 12 Z = 14 Z = 16 : 41
,
51
,
61
,
12
,
Tabel 7: Tabel Hasil Dekripsi Hasil dekripsi akan sesuai dengan pesan asli seperi terlihat pada tabel putaran kesembilan yaitu bilangan integer Y Y Y Y = X X X X 1
2
3
4
1
2
3
4
= 11121314 Algoritma kriptografi IDEA ini juga bisa digunakan dalam berbagai mode operasi, seperti pada mode ECB, CBC, CFB, dan OFB. Perbedaan mode operasi yang digunakan ini dapat mempengaruhi hasi enkripsi data yang dilakukan algoritma IDEA. Di bawah ini adalah contoh perbedaan dari enkripsi sebuah gambar menggunakan algoitma kriptografi IDEA pada mode operasi yang berbeda (ECB, CBC, CFB, dan OFB).
Tabel 6 : Tabel hasil enkripsi Dari tabel diatas dapat dilihat data hasl enkripsi tiap putaran untuk pesan rahasia, yaitu : Y = 25112, Y = 33467, Y = 3103, Y = 35414 1
2
3
4
Yang dihasilkan oleh proses enkripsi, dengan menggunakan 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:
Gambar 15 : gambar asli yang akan dienkripsi
Gambar 16 : gambar yang sudah dienkripsi menggunakan mode ECB. Seperti yang bisa kita lihat pada gambar di atas, gambar yang dienkripsi dengan menggunakan algoritma IDEA menggunakan mode ECB masih dapat dilihat. Mode ini tidak dapat menyembunyikan semua informasi yang terdapat pada gambar asli. Kita masih bisa melihat / mengenali garis-garis dari gambar yang dienkripsi serta teks yang terdapat pada gambar tersebut.
dimaksud di pada makalah ini adalah sebuah persamaan linear pada kunci, bit input dan output yang mempengaruhi semua kemungkinan input. Faktor linear ini bisa dicari dengan membuat ekspresi penjumlahan (modulo 2) LSB pada subblok output dari putaran IDEA pada saat input dan bit kunci. Contoh, kita akan mengekspresikan XOR dari LSB pada sub-blok pertama dan kedua output dari sebuah putaran : y1 ⊕ y2 (dengan indeks yang merefer pada nomor subblok). Dari gambar 3 dapat dilihat y1 ⊕ y2 = (X1. Z1)|0 ⊕ 1 ⊕ x3 ⊕ z3. Jika Z1 = -1, contoh : jika 15 bit MSB bit dari Z1 adalah 0,
jika bit kunci yang dipertimbangkan adalah konstan, faktor linear ini dapat diintepretasikan sebagai propagasi pengetahuan dari x1 ⊕ x3 menjadi y1 ⊕ y2, merefer dari (1, 0, 1, 0) -> (1, 1, 0, 0). Faktor yang sama dan kondisi berkorespondensi pada blok upa-kunci dapat dicari dari semua 15 kombinasi dari output bit LSB dan terdapat pada tabel 8 di bawah ini :
Gambar 17 : gambar yang sudah dienkripsi menggunakan mode CBC Seperti yang bisa kita lihat pada gambar di atas, gambar yang dienkripsi dengan algoritma IDEA menggunakan mode CBC sudah tidak dapat dikenali lagi gambar aslinya. Begitu pula bila kita menggunakan mode operasi CFB dan OFB dalam melakukan enkripsi. Semua informasi pada gambar disembunyikan dan tidak dapat dilihat. Sehingga kita bisa mengambil kesimpulan bahwa mode-mode inilah yang terbaik dilakukan untuk mengenkripsi bila kita ingin melindungi suatu informasi pada file secara menyeluruh/sempurna. 9.
Kunci Lemah dari algoritma IDEA
Penggunaan perkalian upa-kunci dengan nilai 1 atau -1 menyebabkan terjadinya faktor linear pada fungsi putaran. Faktor linear yang
Tabel 8 : Faktor linear pada fungsi putaran Faktor linear dengan putaran yang banyak dapat ditemukan dengan mengobinasikan faktor linear di mana keterlibatan waktu pertengahan dibuang. Untuk setiap putaran diberikan kondisi pada upakunci yang dapat diubah menjadi kondisi pada kunci bit global pada tabel 9.
MSB dari kedua Z4 and Z6 adalah 0, masukan XOR (0, 0, 0, v) memberikan output XOR (v, v, v, 0) dengan kumungkinan 1, direfer dari (0, 0, 0, v) ) (v, v, v, 0). Sebuah analisis yang sama dapat dibuat dari 15 kemungkinan input XOR tidak 0 yang lain di mana hanya bit MSB dari subblok diperbolehkan untuk menjadi 1. Hasilnya dapat dilihat pada tabel 11. Tabel 9 : Turunan dari kunci putaran enkripsi pada kunci 128. Contoh ada pada tabel 10 untuk faktor linear global (1, 0, 1, 0) ->(0, 1, 1, 0). Kunci global yang diindeks pada tabel ini adalah 0. Sejak bit kunci dengan indeks 26-28, 72-74 atau 111-127 tidak muncul, ada 223 kunci global yang memiliki faktor linear. Ini disebut dengan kelas kunci lemah sejak keanggotaannya bisa dicek dengan mudah dengan mengobservasi kombinasi plaintext dan chipertext yang berkorespondensi. Tabel 11 : Propagasi XOR pada fungsi putaran.
Tabel 10 : Kondisi kunci bit pada faktor linear (1,0,1,0) -> (0,1,1,0) Penggunaan perkalian upa-kunci dengan nilai 1 atau -1 memberikan peningkatan dengan karakteristik dengan probabilitas 1 pada fungsi putaran. Sebuah putaran dieksekusi pada sebuah pasangan dari input X and X* dengan XOR X’ = X ⊕ X*. Bila v adalah 16-bit blok 8000 (HEX), contoh : MSB adalah sebagai 1 dan yang lainnya bitnya adalah 0. anggap X and X* diturunkan pada bit MSB bit di subblok ke-4, sehingga X’1 = X’2 = X’3 = 0 dan X’4 = v. Jika Z4 = -1, ini merupakan kasus yang sama setelah aplikasi pada Z1 pada Z4. Masukan kiri pada struktur MA sama dengan X dan X*. Input kanan diturunkan dari v. XOR tidak mengubah dari penambahan ujung kanan atas sampai dasar kanan dengan perkalian dengan Z6. Jika ini sama dengan -1, XOR output dengan v. Perbedaan ini tidak berubah sepanjang penambahan ujung bawah kiri dan XOR pada 4 subblok. Perbedaan output Y ‘ pada putaran ini sama dengan (v, v, v, 0). Jika 15
Sebuah contoh dari plaintext XOR (0, v, 0, v) terdapat pada tabel 12 di bawah. Dapat dilihat kunci dengan bit yang hanya bukan 0 pada posisi 26-40, 72-76 dan 108-122, output XOR harus sama dengan (0, v, v, 0). Ini adalah kelas terbesar yang kita temukan, bandingkan dengan jumlah kunci 235. Anggotanya dapat dicek dengan melakukan 2 enkripsi di mana plaintext pilihan yang berbeda dan memeriksa perbedaan pada ciphertext. Tabel yang sama bisa dibuat dari input XOR apapun sesuai v dan 0.
Tabel 12 :Propagasi pada plaintext XOR (0,v,0,v) pada IDEA Kelas dari kunci lemah kadang-kadang dapat dikembangkan secara signifikan dengan dibayar usaha lebih pada pengecekan keanggotaan. Sesuai tabel 12, kondisi dari upa-kunci pada putaran 8 meningkat pada kelas of kunci 251
dengan bit-bit yang bukan 0 pada posisi 26-40, 72-83 dan 99-122. 9.1 Tes Keanggotaan Masukan XOR pada putaran 8 sama dengan output XOR pada putaran 7 dan dijamin akan sama dengan (0, 0, v, v) dengan kondisi dari upakunci 7 putaran pertama. Menggunakan fakta bahwa Z(9)3 , sesuai dengan kunci bit global 5469 adalah 0000 untuk kunci ini dapat dengan mudah diturunkan di mana :
Hal ini dapat dibuktikan dengan memeriksa gambar 18. Pada persamaan di atas, hanya Z(9)1 yang tidak diketahui. Upa-kunci ini sesuai dengan kunci bit global 22-37. Untuk kelas yang diberikan, hanya 12 LSB yang bisa dibedakan dari 0. Jika kunci global tidak dimiliki oleh kelas kunci lemah, kemungkinan dari persamaan di atas memiliki solusi adalah 1=16. Penambahan enkripsi dapat dilakukan dengan mengeliminasi solusi-solusi ini. Setiap pasang dari hasil enkripsi adalah persamaan dari Z(9)1 yang sama dengan persamaan di atas.
diketahui dari Z(8)4 . Sebuah pengecekan konsistensi dapat dieksekusi pada bit-bit ini dengan cara berikut.. Anggap Z(9)2 dan Z(9)4 diketahui. Pada kasus ini memungkinkan untuk menghitung perbedaan yang direfer oleh K pada gambar 18. Untuk nilai K ini, pasti ada sebuah vektor A (dengan MSB 0) seperti : Dari vektor K yang diberikan, merupakan hal yang mudah untuk mencari nilai yang memungkinkan dari Z(8)4 . Hanya nilai dari Z(8)4 dengan 9 LSB sama dengan 0 valid. Informasi ini dapat dihitung lebih jauh untuk setiap nilai dari K dan menyimpan dalam array 216. Ratarata dari kemungkinan nilai Z(8)4 per K berubah menjadi lebih kecil dari 1. Sepanjang tabel ini, nilai K yang diperiksa menspesifisikan himpunan nilai yang memungkinkan dari Z(8)4. Jika himpunan tersebut kosong, nilai yang dipilih dari Z(9)2 dan Z(9)4 pasti salah. Jika himpunan tersebut tidak kosong, nilai K value dihasilkan dari pasangan lain dari enkripsi (dengan input XOR pada putaran 8 sama dengan (0, 0, v,v) dapat diperiksa. Nilai yang benar dari Z(8)4pasti pada list untuk kedua nilai K yang diperiksa. Hal ini dapat diulangi sampai tidak ada lagi nilai untuk Z(8)4 yang masih tersisa. Nilai Z(9)2 dan Z(9)4 ditemukan. Jika tidak ada nilai bagi Z(8)4 yang konsisten untuk semua (dikatakan sebagai maksimun dari 8) pasangan enkripsi. Sekarang 34 bit sudah diperbaiki. Sisa 17 bit dapat dengna mudah ditemukan dengan cara exhausted pada semua 217 kemungkinan yang masih tersisa dan membandingkannya dengan pasangan plaintextciphertext apapun yang didapat pada saat penyerangan. Pengerjaan yang lengkap pada penentuan kunci pada 16 plaintext-enkripsi berbeda yang terpilih, ada sekitar 215 penambahan modular, perkalian dan tablelookups dan 217 kunci enkripsi pencarian. 9.3 Modifikasi IDEA tanpa kunci lemah
Gambar 18 : Propagasi XOR dari X’= (0, v, 0, v) pada putaran terakhir dari IDEA untuk kunci yang tidak memiliki bit 0 pada posisi 26-40, 72-83 dan 99-122. XOR digambarkan dengan kotak. 9.2 Penentuan Kunci Nilai dari 12 bit yang tidak diketahui dari Z(9)1 sudah ditentukan dari tes keanggotaan. Langkahlangkah berikut adalah penentuan dari 3 bit yang tidak diketahui Z(9)2 , ke-12 bit yang tidak diketahui pada Z(9)4 dan 7 bit yang tidak
Pada spesifikasi IDEA sekarang, kondisi untuk putaran perkalian kunci putaran yang lemah diubah menjadi kondisi di mana kunci bit global harus 0. Pada tabel 10 dan 12 dapat dilihat banyak kunci bit global yang muncul lebih dari sekali pada berbagai kondisi. Sekarang biarkan Z(r)i = α ⊕ Z(r)I dengan α adalah vektor biner yang pasti tidak 0. Jika dalam IDEA upakunci Z(r)i sudah diganti dengan ^Z(r)i, kondisi dari perkalian kunci lemah diubah menjadi kondisi di mana beberapa kunci bit global harus 0 dan beberapa harus 1. Vektor α harus dipilih seperti
itu supaya semua multi-putaran potensial faktor linear dan karakteristiknya, kondisi dari upakunci memberikan kondisi konflik kunci bit global. Karena overlap besar di antara upa-kunci, nilai yang sebenarnya dari α tidak terlalu kritikal. Contohnya, untuk α = 0DAE (HEX) tidak ada kunci lemah yang ditemukan.
10. Kasus Pengujian Berikut ini adalah contoh-contoh kasus, yang akan diujikan pada algoritma IDEA dan DES untuk dibandingkan performansinya. Dalam kasus pengujian kali ini, mode operasi yang digunakan adalah ECB, CBC, CFB, dan OFB baik untuk algoritma IDEA maupun untuk algoritma DES . Sedangkan algoritma DES yang dijadikan bahan pengujian kali ini adalah algoritma DES biasa/single 8 byte. 1. Kasus Uji 1 Kasus Uji 1 bertujuan untuk menguji kebenaran proses enkripsi dan dekripsi beserta lama waktu proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi IDEA dan DES dengan mode operasi ECB. 2. Kasus Uji 2 Kasus Uji 2 bertujuan untuk menguji kebenaran proses enkripsi dan dekripsi beserta lama waktu proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi IDEA dan DES dengan mode operasi CBC. 3. Kasus Uji 3 Kasus Uji 3 bertujuan untuk menguji kebenaran proses enkripsi dan dekripsi beserta lama waktu proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi IDEA dan DES dengan mode operasi CFB. 4. Kasus Uji 4 Kasus Uji 4 bertujuan untuk menguji kebenaran proses enkripsi dan dekripsi beserta lama waktu proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi IDEA dan DES dengan mode operasi OFB. 11. Evaluasi Hasil Pengujian dengan DEC Part I Dari hasil pengujian yang dilakukan untuk Kasus Uji 1, 2, 3, dan 4 diketahui bahwa perangkat lunak DEC Part I telah melakukan proses enkripsi dan dekripsi berbagai jenis file dan
mode operasi untuk algoritma kriptografi IDEA dan DES dengan benar. Proses enkripsi dengan menggunakan kunci tertentu dengan panjang tertentu akan menyandikan isi arsip asal menjadi chipertext. Proses dekripsi dengan menggunakan kunci yang sama dengan kunci yang digunakan dalam proses enkripsi (kunci simetris) akan mengembalikan isi arsip hasil dekripsi menjadi isi arsip asal (plaintext). Dalam program tes yang saya gunakan, DEC Part I, proses enkripsi dan dekripsi dilakukan secara sekaligus. Sehingga kesalahan penggunaan kunci dalam melakukan dekripsi file enkripsi tidak akan terjadi karena proses enkripsi dan dekripsi dilakukan secara sekaligus. Dari kasus uji 1, 2, 3, dan 4 yang dilakukan juga menunjukkan bahwa: 1. Lama waktu yang digunakan untuk proses enkripsi dan dekripsi file dengan algoritma kriptografi IDEA dan DES dengan mode operasi ECB dan CBC adalah relatif sama/tidak jauh berbeda. 2. Lama waktu yang digunakan untuk proses enkripsi dan dekripsi file dengan algoritma kriptografi IDEA dan DES dengan mode operasi CFB 8-bit dan OFB 8-bit adalah relatif berbeda. Algoritma DES bisa mengenkripsi dan mendekripsi file dalam waktu yang relatif lebih cepat daripada IDEA. Berikut ini adalah daftar pengujian enkripsi dan dekripsi berbagai jenis file dengan algoritma kriptografi IDEA dan DES dalam mode ECB, CBC, CFB, dan OFB untuk dibandingkan kecepatannya : Jenis .txt .txt .txt .txt .mp3 .mp3 .mp3 .mp3 .exe .exe .exe .exe .pdf .pdf .pdf .pdf .avi .avi
Ukuran 6.78 Mb 6.78 Mb 6.78 Mb 6.78 Mb 5.82 Mb 5.82 Mb 5.82 Mb 5.82 Mb 2.55 Mb 2.55 Mb 2.55 Mb 2.55 Mb 9.81 Mb 9.81 Mb 9.81 Mb 9.81 Mb 12.7 Mb 12.7 Mb
Mode ECB CBC CFB OFB ECB CBC CFB OFB ECB CBC CFB OFB ECB CBC CFB OFB ECB CBC
Waktu 0.89 detik 0.94 detik 5.85 detik 5.55 detik 0.78 detik 1.12 detik 4.56 detik 4.94 detik 0.47 detik 0.44 detik 2.17 detik 2.15 detik 1.21 detik 1.28 detik 7.95 detik 8.26 detik 1.98 detik 1.62 detik
.avi 12.7 Mb CFB 10.57 detik .avi 12.7 Mb OFB 10.35 Tabel 13 : Tabel enkripsi dan dekripsi berbagai file dengan menggunakan algoritma IDEA
Jenis Ukuran Mode Waktu .txt 6.78 Mb ECB 0.71 detik .txt 6.78 Mb CBC 0.69 detik .txt 6.78 Mb CFB 3.71 detik .txt 6.78 Mb OFB 4.29 detik .mp3 5.82 Mb ECB 0.61 detik .mp3 5.82 Mb CBC 0.60 detik .mp3 5.82 Mb CFB 3.28 detik .mp3 5.82 Mb OFB 3.21 detik .exe 2.55 Mb ECB 0.34 detik .exe 2.55 Mb CBC 0.33 detik .exe 2.55 Mb CFB 1.49 detik .exe 2.55 Mb OFB 1.54 detik .pdf 9.81 Mb ECB 0.95 detik .pdf 9.81 Mb CBC 0.93 detik .pdf 9.81 Mb CFB 5.30 detik .pdf 9.81 Mb OFB 5.60 detik .avi 12.7 Mb ECB 1.80 detik .avi 12.7 Mb CBC 1.16 detik .avi 12.7 Mb CFB 7.15 detik .avi 12.7 Mb OFB 6.91 detik Tabel 14 : Tabel enkripsi dan dekripsi berbagai file dengan menggunakan algoritma DES
13. Penutup
12. Kesimpulan Dari uraian di atas, dapat diambil kesimpulan kelebihan algoritma IDEA dari algoritma lain dalam hal ini DES adalah: Menyediakan keamanan tingkat tinggi karena algoritma ini tidak berdasarkan penjagaan kerahasiaan dari algoritma tersebut, tetapi lebih kepada penjagaan terhadap kerahasiaan kunci yang digunakan oleh pemakai. Sudah mudah untuk digunakan oleh orangorang dan mudah untuk dimengerti. Tersedia bagi semua orang. Cocok untuk digunakan secara luas pada berbagai aplikasi. Dapat secara ekonomis diimplementasikan pada komponen elektronik (chip VLSI). Dapat digunakan secara efisien. Dapat dikirim/disebarluaskan ke seluruh dunia. Sudah dilindungi hak paten untuk mencegah pembajakan dan kejahatan.
Algoritma kriptografi IDEA lebih aman daripada algoritma kriptografi DES. Hal ini dikarenakan panjang kunci yang berbeda antara kedua algoritma ini serta algoritma pengenkripsian yang berbeda.
Dari uraian makalah ini, secara umum untuk menjaga keamanan dan kerahasiaan data dalam suatu jaringan komputer, diperlukan beberapa jenis enkripsi. Guna melindungi data agar tidak dapat dibaca atau diintepretasi oleh sembarang orang, kecuali untuk penerima yang berhak. Enkripsi merupakan salah satu metode untuk menjamin dan melidungi agar komunikasi data atau informasi menggunakan jaringan komputer menjadi lebih aman. Dalam melakukan langkahlangkah enkripsi banyak cara atau algoritma yang tersedia, algoritma IDEA yang dibahas pada makalah ini hanyalah salah satu dari sekian benyak algoritma kriptografi yang berkembang saat ini. Dan algoritma IDEA ini sampai sekarang masih cukup handal dan tangguh untuk diterapkan sebagai metoda pengamanan data. Namun sampai sekarang ini masih berkembang berbagai algoritma untuk meningkatkan keamanan tersebut. 14. Daftar Pustaka [1] Munir, Rinaldi. (2006). Bahan Kuliah IF5054 Kriptografi. Departemen Teknik Informatika, Institut Teknologi Bandung [2] P Pfleegeer, Charles. (1996). Security in Computing, Prentice Hall PTR,1996 [3] Schneier, Bruce. (1996). Applied Cryptography 2nd. John Wiley & Sons. [4]
Joan Daemen, Rene Govaerts, dan Joos Vandewalle. (1993). Weaks Keys for IDEA.http://www.cosic.esat.kuleuven.ac.be /publications/article-140.pdf.
[5] MediaCrypt. Benefits of http://www.mediacrypt.com.
IDEA.
[6] Marnane, Liar, dr. lec-idea1.pdf. http:// www.rennes.ucc.ie. [7] Dr. Aguirre, Jorge Ramió. (2005). Symmetric Block Chipper. Polytechnic University of Madrid