Blog ini berisi info apa saja, ada yang berguna ada juga yang ngawur *hahaha XD, tergantung sih sama orangnya *heh..mati dong kalo tergantung #nyablak
Kamis, 01 September 2011
Sekilas tentang Kriptografi AES
Kriptografi awalnya digunakan untuk mengirim pesan
pada saat peperangan. Kriptografi telah dikenal pada masa kekaisaran Julius Caesar,
pada saat itu kriptografi digunakan untuk mengirimkan pesan rahasia agar tidak
dapat diketahui oleh pihak musuh. Cara merahasiakan pesan saat itu menggunakan
metode Caesar. Metode Caesar itu sendiri adalah cara merahasiakan pesan pada saat
itu dengan menggunakan teknik pergeseran dengan menggeser tiap huruf ke kanan
atau ke kiri pada urutan alphabet beberapa buah. Pada zaman perang dunia kedua
kriptografi juga sangat dibutuhkan untuk merahariakan pesan. Media yang dipakai
pada saat itu menggunakan mesin untuk mengenkripsi pesan yang bernama Enigma.Seiring
perkembangan zaman, metode kriptografi tidak hanya digunakan untuk mengirimkan
pesan saat peperangan tetapi digunakan untuk kebutuhan yang lain seperti untuk
mengamankan data sehingga saat ini banyak bermunculan algoritma modern.
Cryptography
adalah ilmu dan seni penyandian yang bertujuan untuk
menjaga keamanan dan kerahasiaan suatu pesan. Sedangkan Enkripsi adalah suatu proses
yang melakukan perubahan suatu kode dari
yang bisa dimengerti menjadi tidak bisa dimengerti (tidak terbaca). Dekripsi
adalah suatu proses dengan algoritma yang sama untuk mengembalikan informasi
teracak tadi menjadi bentuk aslinya. Sejak perang dunia kedua berakhir,
kriptografi dirasa masih dibutuhkan pada saat kehidupan sehari-hari untuk
mengamankan data-data yang bersifat penting dan rahasia. Dengan begitu memicu
banyaknya algoritma kriptografi yang bermunculan sesuai dengan perkembangan
zaman. Sampai saat ini algoritma kriptografi modern sendiri berkembang pesat.
Algoritma kriptografi modern dapat dibagi menjadi dua algoritma kunci yaitu
algoritma kunci simetris dan algoritma asimetris.
Algoritma
simetris adalah algoritma yang menggunakan kunci enkripsi dan dekripsi yang
sama. Sedangkan algoritma asimetris adalah algoritma yang menggunakan kunci
enkripsi dan dekripsi yang berbeda. Adapula algoritma yang beroperasi dalam
mode bit dapat dibagi menjadi dua, yaitu stream chiper (chiper aliran)
dan block chiper (cipher blok). Stream chiper adalah algoritma yang melakukan
operasi dalam bentuk bit tunggal. Sedangkan block chiper adalah algoritma
yang melakukan operasi dalam bentuk blok bit. Stream chiper dan block
chiper adalah algoritma yang digunakan pada algoritma kunci simetris. Saat
ini sudah banyak aplikasi enkripsi yang menggunakan algoritma kunci simetris.
Salah satu algoritma dengan kunci simetris adalah DES (Data Encryption
Standards). DES merupakan algoritma enkripsi standart yang dikeluarkan oleh
National Institute of Standards and Technology (NIST).
Algoritma DES (Data Encryption Standard) yang banyak digunakan sebagai standard enkripsi kriptografi kunci simetris mendekati akhir penggunaannya karena mengandung banyak kontroversi dan dianggap sudah tidak aman lagi. Beberapa kriptografer keberatan karena proses pembuatannya yang tertutup. Selain itu panjang kuncinya juga dianggap terlalu pendek untuk dapat digunakan secara luas dalam berbagai bidang, dengan perangkat keras khusus kuncinya bisa ditemukan dalam beberapa hari. National Institute of Standard and Technology (NIST) sebagai agensi Departemen Perdagangan Amerika Serikat mengusulkan kepada Pemerintah Federal Amerika Serikat untuk sebuah standard kriptografi yang baru. DES (Data Encryption Standard) mungkin akan berakhir masa penggunaannya sebagai standard enkripsi kriptografi simetri. DES sudah dianggap tidak aman terutama karena panjang kunci yang relatif pendek sehingga mudah dipecahkan ditemukan dalam beberapa hari menggunakan teknologi saat ini.
Algoritma DES (Data Encryption Standard) yang banyak digunakan sebagai standard enkripsi kriptografi kunci simetris mendekati akhir penggunaannya karena mengandung banyak kontroversi dan dianggap sudah tidak aman lagi. Beberapa kriptografer keberatan karena proses pembuatannya yang tertutup. Selain itu panjang kuncinya juga dianggap terlalu pendek untuk dapat digunakan secara luas dalam berbagai bidang, dengan perangkat keras khusus kuncinya bisa ditemukan dalam beberapa hari. National Institute of Standard and Technology (NIST) sebagai agensi Departemen Perdagangan Amerika Serikat mengusulkan kepada Pemerintah Federal Amerika Serikat untuk sebuah standard kriptografi yang baru. DES (Data Encryption Standard) mungkin akan berakhir masa penggunaannya sebagai standard enkripsi kriptografi simetri. DES sudah dianggap tidak aman terutama karena panjang kunci yang relatif pendek sehingga mudah dipecahkan ditemukan dalam beberapa hari menggunakan teknologi saat ini.
Dengan
alasan tersebut, NIST mengadakan sayembara terbuka untuk membuat standard algoritma kriptografi yang baru sebagai pengganti
DES. Standard tersebut kelak diberi nama Advanced Encryption Standard (AES).
Persyaratan yang diajukan oleh NIST
tentang algoritma yang baru
tersebut adalah:
1.Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma kriptografi simetri berbasis cipher blok.
1.Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma kriptografi simetri berbasis cipher blok.
2.
Seluruh rancangan algoritma harus publik (tidakdirahasiakan)
3.
Panjang kunci fleksibel: 128, 192, dan 256 bit.
4.
Ukuran blok yang dienkripsi adalah 128 bit.
5.
Algoritma dapat diimplementasikan baik sebagai software maupun hardware.
NIST
menerima 15 proposal algoritma yang masuk. Konferensi umum pun diselenggarakan
untuk menilai keamanan algoritma yang diusulkan. Pada bulan Agustus 1998, NIST memilih 5 finalis yang didasarkan
pada aspek keamanan algoritma, kemangkusan (efficiency), fleksibilitas,
dan kebutughan memori (penting untuk embedded system). Finalis tersebut
adalah:
1.
Rijndael (dari Vincent Rijmen and Joan Daemen – Belgia, 86 suara)
2. Serpent (dari Ross Anderson, Eli Biham,
dan Lars Knudsen – Inggris, Israel, dan Norwegia, 59 suara).
3.
Twofish (dari tim yang diketuai oleh Bruce Schneier – USA, 31 suara)
4.
RC6 (dari Laboratorium RSA – USA, 23 suara)
5.
MARS (dari IBM, 13 suara)
Pada
bulan Oktober 2000, NIST mengumumkan
untuk memilih Rijndael (dibaca: Rhine-doll), dan pada bulan November 2001,
Rijndael ditetapkan sebagai AES, dan diharapkan Rijndael menjadi standard
kriptografi yang dominan paling sedikit selama 10 tahun. Rijndael adalah salah
satu algoritma enktipsi simetris. Dimana proses enkripsi dan dekripsinya
menggunakan kunci yang sama. Rijndael merupakan algoritma yang
ditetapkan sebagai standar metode enkripsi modern pengganti DES (Data
Encryption Standard), dalam sayembara AES (Advanced Encryption Standard)
oleh NIST (National Institute of Standards and Technology).
A.
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
B. Algoritma Twofish
Twofish
adalah algoritma kriptografi yang beroperasi dalam mode block cipher. Twofish menjadi salah satu finalis dalam
kompetisi Advanced Encrytipon Standard (AES)
yang diadakan oleh National Institute of Standards and Technology (NIST). Algoritma Twofish yang dibuat oleh Bruce Schneier adalah block cipher yang berukuran
128-bit yang dapat menerima kunci dengan panjang mencapai 256 bit. Twofish memenuhi semua kriteria yang
dibutuhkan NIST, yaitu 128-bit block,
128 bit, 192 bit dan 256 bit kunci. Beberapa kelebihan twofish yaitu twofish
adalah cipher blok 128 bit yang menerima kunci dengan panjang variabel 256
bits, twofish tidak mengandung kunci
lemah, dan twofish telah didesain
dari awal dengan menekankan pada kinerjanya. Twofish sangat efisien diimplementasikan pada beragam platform,
yaitu CPU 32 bit, smart card 8 bit, dan perangkat keras VLSI. Twofish menggunakan jaringan Feistel
sebanyak 16 kali dengan fungsi f di dalam jaringan Feistel tersebut menggunakan
S-box. Selain itu, Twofish juga
menggunakan transformasi pseudo Hadamard, metode whitening, Maximum Distance Separable
(MDS), dan penjadwalan kunci.
C. 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
D.
Komparasi
1.
Rijndael
dan Twofish
Pada
sebuah percobaan ekripsi hasilnya menunjukkan penggunaan memori ketika
menggunakan algoritma Twofish lebih banyak dibandingkan ketika menggunakan
algoritma Rijndael Sedangkan waktu eksekusi yang dilakukan lebih cepat jika
dilakukan dengan menggunakan algoritma Twofish, yaitu 15 milidetik, sedangkan algoritma
Rijndael memerlukan waktu 16 milidetik. Perbedaan pada waktu pemrosesan
algoritma tidak terlalu dipermasalahkan, tetapi pada perbedaan memori terlihat bahwa Rijndael menggunakan memori yang lebih
sedikit dibandingkan dengan Twofish. Perbedaan itu cukup terlihat ketika
menggunakan mesin dengan memori dengan ukuran yang rendah. Sehingga, dapat disimpulkan bahwa Rijndael merupakan algoritma yang
lebih baik untuk digunakan dalam melakukan enkripsi.
2.
Rijndael
dan Serpent
Pembahasan
terhadap algoritma Rijndael dan Serpent dilakukan berdasarkan terutama pada
performansi dan keamanan serta kaitannya dengan desain algoritma secara umum.
Dalam hal performansi, Rijndael jauh
mengalahkan Serpent dalam banyak prosesor dan arsitektur. Dan Serepent
hanya mampu mengalahkan performansi Rijndael pada prosesor 32 bit. Dalam segi
keamanan, dapat dikatakan Serpent lebih
baik dari Rijndael karena lebih sulit untuk dibobol dan keamanan dari Serpent
mampu mengatasi semua jenis serangan kriptanalis. Namun untuk keamanan,
Rijndael juga tidak begitu buruk bahkan menurut standar AES sudah memenuhi
standar keamanannya. Dalam segi desain, dipastikan Rijndael memiliki desain
yang lebih sederhana. Desain algoritma
Rijndael mempunyai struktur sejumlah 10 putaran sedangkan Serpent mempunyai
proses yang lebih rumit karena jumlah putarannya jauh lebih banyak yaitu 32
putaran. Desain Serpent yang konservatif mungkin dirasa kaku atau mirip
dengan desain DEA, namun desain ini mendukung implementasi yang efisien, rapid
avalanche, dan implementasi bitslice yang lebih efisien.
3.
Twofish
dan Serpent
Algoritma
Serpent menggunakan struktur berbasis jaringan substitusi-permutasi seperti halnya
algoritma Rijndael yang merupakan AES yang terpilih. Sedangkan Twofish menggunakan
struktur jaringan Feistle. Dalam segi keamanan,
secara umum, Serpent lebih konservatif dengan jumlah putarannya dari pada Twofish.
Twofish dalam hal ini lebih mengarah pada efisiensi mixing conservatism.
Oleh karena itu lebih seimbang dalam hal performansi dan keamanan dalam
berbagai macam implementasinya. Dalam
segi performansi, sebenarnya tidak bisa diputuskan algoritma mana yang lebih
baik, karena untuk performansi sendiri bergantung pada hardware atau
software dimana algoritma ini diimplementasikan.
E. Hasil Akhir
Rijndael sendiri dipilih jadi pemenang
bukan karena algoritma paling aman, namun karena memiliki keseimbangan antara
keamanan dan fleksibilitas dalam berbagai paltform software dan hardware.
Mumet yak ??
Saya aja yang nulis mumet *lah bangga


Langganan:
Posting Komentar (Atom)
sumber nya apa ya gan?
BalasHapusAjippp
BalasHapus