Diberdayakan oleh Blogger.
RSS

MANFAAT PERMUTASI DAN KOMBINASI BAGI ILMU KOMPUTER

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 :



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar