Algoritma Kriptografi Modern
Kriptografi
modern menggunakan gagasan dasar yang sama seperti kriptografi klasik
(permutasi dan transposisi) tetapi penekanannya berbeda. Pada
kriptografi klasik, kriptografer menggunakan algoritma yang sederhana,
yang memungkinkan cipherteks dapat dipecahkan dangan mudah (melalui
penggunaan statistik, terkaan, intuisi, dsb). Algoritma kriptografi
modern dibuat sedemikian kompleks sedemikian sehingga kriptanalis sangat
sulit memecahkan cipherteks tanpa mengetahui kunci.
Algoritma
kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode
karakter. Operasi dalam mode bit berarti semua data dan informasi (baik
kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string)
bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua
data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang
menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk
rangkaian bit, demikian sebaliknya.
Kategori Cipher Kunci-Simetri
Algoritma
kunci-simetri mengacu pada metode enkripsi yang dalam hal ini pengirim
maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri modern
beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:
-
Cipher aliran (stream cipher)
Algoritma
kiptografi beroperasi pada plainteks/cipherteks dalam bentuk bit
tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan
bit per bit. Cipher aliran mengenkripsi satu bit setiap kali.
Algoritma-algoritma sandi kunci-simetris
Beberapa contoh algoritma yang menggunakan kunci-simetris:
-
DES (Data Encryption Standard)
-
Blowfish
-
Twofish
-
MARS
-
IDEA
-
3DES (DES diaplikasikan 3 kali)
-
AES (Advanced Encryption Standard, yang bernama asli rijndael)
-
Cipher blok(block cipher)
Algoritma
kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit,
yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang
panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64
bit, maka itu berarti algoritma enkripsi memerlukan 8 karakter setiap
kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok
mengenkripsi satu blok bit setiap kali.
-
Pada cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma enkripsi menghasilkan blok cipherteks yang – pada kebanyakan sistem kriptografi simetri – berukuran sama dengan blok plainteks.
-
Dengan blok cipher, blok plainteks yang sama akan dienkripsi menjadi blok cipherteks yang sama bila digunakan kunci yang sama pula. Ini berbeda dengan cipher aliran dimana bit-bit plainteks yang sama akan dienkripsi menjadi bit-bit cipherteks yang berbeda setiap kali dienkripsi.
-
Misalkan blok plainteks (P) yang berukuran m bit dinyatakan sebagai vektor
P = (p1, p2, …, pm)
yang dalam hal ini pi adalah 0 atau 1 untuk i = 1, 2, …, m, dan blok cipherteks (C) adalah
C = (c1, c2, …, cm)
yang dalam hal ini ci adalah 0 atau 1 untuk i = 1, 2, …, m.
Bila plainteks dibagi menjadi n buah blok, barisan blok-blok plainteks dinyatakan sebagai
(P1, P2, …, Pn)
Untuk setiap blok plainteks Pi, bit-bit penyusunnya dapat dinyatakan sebagai vektor
Pi = (pi1, pi2, …, pim)
-
Enkripsi dan dekripsi dengan kunci K dinyatakan berturut-turut dengan persamaan
EK(P) = C
untuk enkripsi, dan
DK(C) = P
Fungsi E haruslah fungsi yang berkoresponden satu-ke-satu, sehingga
E-1 = D
Skema enkripsi dan dekripsi dengan cipher blok digambarkan pada Gambar 1.
Enkripsi: Dekripsi:
Blok Plainteks P Blok Cipherteks CA
P = (p1, p2, …, pm) C = (c1, c2, …, cm)
Kunci K E Kunci K D
Blok Cipherteks C Blok Plainteks P
C = (c1, c2, …, cm) P = (p1, p2, …, pm)
Gambar 1 Skema enkripsi dan dekripsi pada cipher blok
Block-Cipher
Untuk menambah kehandalan model algoritma sandi ini, dikembangkan pula beberapa tipe proses enkripsi, yaitu :
-
ECB (Eectronic Code Book)
-
CBC (Cipher Block Chaining)
-
OFB (Output Feed Back)
-
CFB (Cipher Feed Back)
Fungsi Hash Kriptografis
Fungsi
hash Kriptografis adalah fungsi hash yang memiliki beberapa sifat
keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data.
Umumnya digunakan untuk keperluan autentikasi dan integritas data.
Fungsi hash adalah fungsi yang secara efisien mengubah string input
dengan panjang berhingga menjadi string output dengan panjang tetap yang
disebut nilai hash.
Sifat-Sifat Fungsi Hash Kriptografi
-
Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
-
Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
-
Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
Algoritma-Algoritma Fungsi Hash Kriptografi
Beberapa contoh algoritma fungsi hash Kriptografi:
-
MD4
-
MD5
-
SHA-0
-
SHA-1
-
SHA-256
-
SHA-512