ALGORITMA DES
DES (Data Encryption Standard) pertama dijadikan
standard FIPS (Federal Information Processing Standards) oleh NIST
(National Institute of Standards and Technology) tahun 1977 untuk digunakan
oleh semua instansi pemerintahan Amerika Serikat, dan semua kontraktor dan
penyedia jasa untuk pemerintahan Amerika Serikat. DES dirancang oleh tim IBM
yang dipimpin Horst Feistel dengan bantuan dari NSA (National Security Agency).
DES adalah teknik enkripsi pertama (selain one-time pad) yang tahan
terhadap linear cryptanalysis dan di®erential
cryptanalysis.
DES menggunakan kunci sebesar 64 bit untuk
mengenkripsi blok juga sebe- sar 64 bit. Akan tetapi karena 8 bit dari kunci
digunakan sebagai parity, kunci efektif hanya 56 bit. Gambar 7.1
secara garis besar menunjukkan proses en-kripsi DES. Dalam DES, penomoran bit
adalah dari kiri kekanan dengan bit 1 menjadi most signi¯cant bit,
jadi untuk 64 bit, bit 1 mempunyai nilai 263.
Permutasi menggunakan initial permutation dilakukan terhadap input sebesar 64 bit. Hasil permutasi dibagi menjadi dua
blok L0 dan R0, masing-masing sebesar 32 bit, dimana L0 merupakan 32 bit
pertama dari hasil permutasi dan R0 merupakan 32 bit sisanya (bit 33 hasil
permutasi menjadi bit 1 R0). Sebanyak 16 putaran enkripsi dilakukan menggunakan
fungsi cipher f dan setiap putaran menggunakan kunci 48 bit yang berbeda dan dibuat
berdasarkan kunci DES. Efeknya adalah setiap blok secara bergantian dienkripsi,
masing-masing sebanyak 8 kali.
ALGORITMA IDEA
IDEA merupakan block
cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit.
Panjang
kuncinya 128 bit. Algoritma yang sama digunakan untuk proses
enkripsi dan dekripsi.
Sebagaimana algoritma enkripsi yang lain, IDEA menggunakan confusion dan diffusion,
berbeda dengan DES yang menggunakan permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan
operasi aljabar yang tidak kompatibel sebagai berikut,
a.
XOR.
b.
Penambahan modulo 216.
c.
Perkalian modulo 216 + 1 (operasi ini
menggantikan kotak-S atau S-Box).
Algoritma IDEA menggunakan perkalian
modulo 216 + 1 dengan pertimbangan berikut ini :
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi.
Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak
relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi
yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah
bilangan prima. Oleh karena itu, operasi perkalian modulo (216 +
1) pada algoritma IDEA memiliki inversi. Jika kita membentuk
suatu tabel perkalian untuk bilanganbilangan mulai dari 1 sampai 65536, maka
setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam IDEA, untuk operasi perkalian,
bilangan 16 bit yang terdiri dari nol semua dianggap sebagai
bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak
bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi tiga bagian
besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi.
a.
Pembentukan Kunci
Proses
pembentukan kunci dapat dilihat pada gambar
b.
Enkripsi
Proses enkripsi
algoritma IDEA adalah sebagai berikut :
Pertama – tama, plaintext 64 bit dibagi
menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3,
X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma.
Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan,
ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16
bit. Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya
4 buah sub blok dikombinasikan dengan 4 subkey dalam
transformasi output. Pada setiap tahapan, urutan berikut ini dikerjakan :
1) Kalikan X1 dengan K1 mod (216 + 1).
2) Tambahkan X2 dengan K2 mod 216.
3) Tambahkan X3 dengan K3 mod 216.
4) Kalikan X4 dengan K4 mod (216 + 1).
5) XOR hasil dari step 1 dan 3.
6) XOR hasil dari step 2 dan 4.
7) Kalikan hasil dari step 5 dengan K5 mod (216 + 1).
8) Tambahkan hasil dari step 6 dan 7 mod 216.
9) Kalikan hasil dari step 8 dengan K6 mod (216 + 1).
10) Tambahkan hasil dari step 7 dan 9.
11) XOR hasil dari step 1 dan 9.
12) XOR hasil dari step 3 dan 9.
13) XOR hasil dari step 2 dan 10.
14) XOR hasil dari step 4 dan 10.
Output dari
setiap round adalah empat sub blok yang dihasilkan pada
langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali
untuk putaran terakhir) sehingga input dari putaran berikutnya
adalah hasil kombinasi dari langkah 11 12 13 14.
Setelah 8
putaran, akan dilakukan tranformasi output berikut,
1) Kalikan X1 dengan subkey K1 mod (216 + 1)
2) Tambahkan X2 dengan subkey K2 mod 216
3) Tambahkan X3 dengan subkey K3 mod 216
4) Kalikan X4 dengan subkey K4 mod (216 + 1) Proses enkripsi
algoritma IDEA dapat dilihat pada gambar 4.
c.
Dekripsi
Proses dekripsi
sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan
dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi
dan subkey-nya di-inverse-kan.
Subkey pada
langkah transformasi output pada proses enkripsi di-inverse-kan
dan digunakan sebagai subkey pada putaran 1 pada proses
dekripsi. Subkey pada putaran 8 di-inverse-kan dan
digunakan sebagai subkey pada putaran 1 dan 2 pada proses
dekripsi
ALGORITMA AES
Algoritma
kriptografi bernama Rijndael yang didesain oleh oleh Vincent Rijmen dan John
Daemen asal Belgia keluar sebagai pemenang kontes algoritma kriptografi
pengganti DES yang diadakan oleh NIST (National Institutes of Standards and
Technology) milik pemerintah Amerika Serikat pada 26 November 2001. Algoritma
Rijndael inilah yang kemudian dikenal dengan Advanced Encryption Standard
(AES). Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael
kemudian diadopsi menjadi standard algoritma kriptografi secara resmi pada 22
Mei 2002. Pada 2006, AES merupakan salah satu algoritma terpopuler yang
digunakan dalam kriptografi kunci simetrik.
AES ini
merupakan algoritma block cipher dengan menggunakan sistem permutasi dan
substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block
cipher pada umumnya. Jenis AES terbagi 3, yaitu :
- AES-128
- AES-192
- AES-256
Pengelompokkan jenis AES ini adalah
berdasarkan panjang kunci yang digunakan. Angka-angka di belakang kata AES
menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal
yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai.
AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES-256 sebanyak
14 round.
Berikut merupakan tabel
diagramnya:
AES memiliki ukuran block yang tetap
sepanjang 128 bit dan ukuran kunci sepanjang 128, 192, atau 256 bit. Tidak
seperti Rijndael yang block dan kuncinya dapat berukuran kelipatan 32 bit
dengan ukuran minimum 128 bit dan maksimum 256 bit. Berdasarkan ukuran block
yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel
matriks terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai
ukuran matriks yang lebih dari itu dengan menambahkan kolom sebanyak yang
diperlukan.
· Garis
besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci
128bit adalah sebagai berikut (di luar proses pembangkitan round key):
§ AddRoundKey: melakukan
XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga
initial round.
§ Putaran sebanyak Nr – 1
kali. Proses yang dilakukan pada setiap putaran adalah: o SubBytes:
substitusi byte dengan menggunakan tabel substitusi (S-box).
o ShiftRows: pergeseran baris-baris array state secara
wrapping. o MixColumns: mengacak data di masing-masing
kolom array state. o AddRoundKey: melakukan XOR antara
state sekarang round key.
§ Final round: proses
untuk putaran terakhir:
o SubBytes o ShiftRows o AddRoundKey
GAMBAR DIAGRAM AES
· Selama
kalkulasi plainteks menjadi cipherteks, status sekarang dari data disimpan di
dalam array of bytes dua dimensi, state, yang berukuran NROWS ´ NCOLS.
· Untuk
blok data 128-bit, ukuran state adalah 4 ´ 4.
· Elemen
array state diacu sebagai S[r,c], 0 £ r < 4 dan 0 £ c
< Nb (Nb adalah panjang blok dibagi 32.
· Pada
AES-128, Nb = 128/32 = 4)
Contoh gambarannya
Contoh: (elemen state dan kunci dalam
notasi HEX)
Tidak ada komentar:
Posting Komentar