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).
![]() |
|||
![]() |
|||

![]() |
![]() |
||||
![]() |
|||||




![]() |
Li –
1 Ri – 1
Gambar 1. Jaringan Feistel
·
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.
Share Pada :