1. Penggunaan
Permutasi di bidang Enkripsi (Computer Security)
Algoritma Rijndael :
Algoritma Rijndael adalah pemenang sayembara terbuka yang
diadakan oleh NIST (National Institute of Standards and Technology) untuk
membuat standard algoritma kriptografi yang baru sebagai pengganti Data
Encryption Standard (DES). DES sudah dianggap tidak aman terutama karena
panjang kunci yang relatif pendek sehingga mudah dipecahkan menggunakan
teknologi saat ini. Rijndael diambil dari nama pembuatnya Dr. Vincent Rijmen
dan Dr. Joan Daemen. Algoritma Rijndael menggunakan substitusi, permutasi, dan
sejumlah putaran yang dikenakan pada tiap blok yang akan dienkripsi/dekripsi.
Untuk setiap putarannya, Rijndael menggunakan kunci yang berbeda. Kunci setiap
putaran disebut round key. Tetapi tidak seperti DES yang berorientasi bit,
Rijndael beroperasi dalam orientasi byte sehingga memungkinkan untuk
implementasi algoritma yang efisien ke dalam software dan hardware. Ukuran blok
untuk algoritma Rijndael adalah 128 bit (16 byte). Garis besar Algoritma
Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai
berikut (di luar proses pembangkitan round key):
1. AddRoundKey: melakukan XOR antara state awal (plainteks)
dengan cipher key. Tahap ini disebut
juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada
setiap putaran adalah:
a. SubBytes: substitusi byte dengan menggunakan tabel
substitusi (S-box).
b. ShiftRows: pergeseran baris-baris array state secara
wrapping.
c. MixColumns: mengacak data di masing-masing kolom array
state.
d. AddRoundKey: melakukan XOR antara state sekarang round
key.
3. Final round: proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c. AddRoundKey
Algoritma Serpent
Algoritma Serpent merupakan hasil kerjasama internasional
yang melibatkan tiga negara Inggris, Israel, dan Norwegia melalui tiga buah
universitasnya. Inggris dalam hal ini diwakili oleh Cambridge University
sedangkan Israel diwakili oleh Haifa Israel dan Norwegia diwakili oleh
University of Bergen. Algoritma ini dikembangkan oleh Ross Anderson dari
Inggris, Eli Biham dari Israel, dan Lars Knudsen dari Norwegia. Secara umum,
algoritma Serpent merupakan pengembangan dari DEA. Algoritma ini mendukung
kunci dengan panjang mulai dari 40 bit hingga 256 bit. Algoritma Serpent
terdiri dari beberapa tahapan. Initial permutation IP. Putaran transformasi
sebanyak 32 putaran yang pada tiap putarannya dilakukan operasi key mixing,
subtitusi dengan S-box pada tiap putaran kecuali putaran terakhir dan
transformasi linear dimana transformasi ini akan digantikan dengan operasi key
mixing pada putaran terakhir. Dan terakhir adalah permutasi kembali IP-1.
Cipherteks membutuhkan 132 kunci dengan panjang 32 bit yang diperoleh dari 256
bit kunci dari pengguna sehingga menghasilkan prekey sejumlah 132. Round key
kemudian diperoleh dengan mentransformasi prekey menggunakan S-box. Operasi Algoritma pada Serpent
1. Transformasi
Awal
- Permutasi
IP
2. Putaran
Transformasi
- 31x
- Key Mixing
- S-boxes
-
Transformasi Linear
3. Tranformasi
Akhir
- Key Mixing
- S-boxes
- Key Mixing
- Permutasi
IP-1
2. Prinsip
Perancangan Chiper Blok dalam Komputer
· Hampir semua
algoritma cipher blok bekerja dalam model jaringan Feistel. Jaringan Feistel ditemukan oleh Horst Feistel tahun
1970.
· Model
jaringan Feistel adalah sebagai berikut:
1. Bagi blok yang
panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing
panjangnya n/2 (hal ini mensyaratkan n harus genap).
2. Definisikan
cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil
putaran sebelumnya (lihat Gambar 1), yaitu
Li = Ri+1 (2)
Ri = Li – 1 Å f(Ri – 1, Ki)
(3)
yang dalam hal
ini,
i = 1, 2, …, r (r adalah jumlah putaran).
Ki = upa-kunci (subkey) pada
putaran ke-i
f = fungsi transformasi (di dalamnya terdapat fungsi
substitusi, permutasi, dan/atau ekspansi, kompresi).
· Plainteks
adalah gabungan L dan R awal, atau secara formal dinyatakan dengan (L0, R0),
sedangkan cipherteks didapatkan dari L dan R hasil dari putaran terakhir
setelah terlebih dauhulu dipertukarkan, atau secara formal dinyatakan sebagai
(Rr, Lr).
· Jaringan
Feistel banyak dipakai pada algoritma kriptografi DES (Data Encryption
Standard), LOKI, GOST, FEAL, Lucifer, Blowfish, Khufu, Khafre, dan lain-lain
karena model ini bersifat reversible untuk proses enkripsi dan dekripsi. Sifat
reversible ini membuat kita tidak perlu membuat algoritma baru unruk
mendekripsi cipherteks menjadi plainteks. Karena operator XOR mengkombinasikan
setengah bagian kiri dengan hasil dari fungsi transformasi f, maka kesamaan
berikut pasti benar:
Li – 1 Å f(Ri – 1, Ki) Å f(Ri – 1, Ki) = Li – 1 (4)
Sifat reversible tidak bergantung pada fungsi f sehingga
fungsi f dapat dibuat serumit mungkin.
Link pada :