Sebelum membahas lebih jauh tentang kriptografi alangkah baiknya kita mengenal dulu apa itu kriptografi. OKKriptografi
adalah ilmu yang mempelajari teknik-teknik matematis yang berhubungan
dengan aspek keamanan informasi seperti : keabsahan, integritas data,
serta autentifikasi data. Kriptografi tidak berarti hanya memberikan
keamanan informasi saja, namun lebih ke arah teknik-tekniknya. Ada empat
tujuan dari ilmu kriptografi, yaitu : kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas,
integritas data, adalah berhubungan dengan penjagaan dari perubahan
data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak
yang tidak berhak, antara lain menyangkut penyisipan, penghapusan, dan
pensubtitusian data lain ke dalam data yang sebenarnya autentikasi,
adalah berhubungan dengan identifikasi, baik secara kesatuan sistem
maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus
saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal
harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan
lain-lain, non-repudiasi, yang berarti begitu pesan terkirim, maka tidak akan dapat dibatalkan. Enkripsi dan Dekripsi1. EnkripsiProses
utama dalam suatu algoritma kriptografi adalah enkripsi dan dekripsi.
Enkripsi merubah sebuah plaintext ke dalam bentuk ciphertext. Pada mode
ECB (Elekctronic Codebook), sebuah blok pada plaintext dienkripsi ke
dalam sebuah blok ciphertext dengan panjang blok yang sama. Blok
cipher memiliki sifat bhahwa setiap blok harus memiliki panjang yang
sama (misalnya 128 bit). Namun apabila pesan yang dienkripsi memiliki
panjang blok terakhir tidak tepat 128 bit, maka diperlukan mekanisme
padding, yaitu penambahan bit-bit dummies untuk menggenapi menjadi
panjang blok yang sesuai; biasanya padding dilakukan pada blok terakhir
plaintext.Padding bada blok terakhir bisa dilakukan dengan berbagai
macam cara, misalnya dengan penambahan bit-bit tertentu. Salah satu
contoh penerapan padding dengan cara menambahkan jumlah total padding
sebagai byte terakhir pada blok terakhir plaintext. Misalnya panjang
blok adalah 128 bit (16 byte) dan pada blok terakhir terdiri dari 88 bit
(11 byte) sehingga jumlah padding yang diperlukan adalah 5 byte, yaitu
dengan menambahkan angka nol sebanyak 4 byte, kemudian menambahkan angka
5 sebanyak satu byte. Cara lain dapat juga menggunakan penambahan
karakter end-of-file pada byte terakhir lalu diberi padding setelahnya.2 DekripsiDekripsi
merupakan proses kebalikan dari proses enkripsi, merubah ciphertext
kembali ke dalam bentuk plaintext. Untuk menghilangkan padding yang
diberikan pada saat prpses enkripsi, dilakukan berdasarkan informasi
jumlah padding yaitu angka pada byte terakhir.>> Dasar MatematisDasar
matematis yang mendasari proses enkripsi dan deskripsi adalah relasi
antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi
elemen cipertext. Enkripsi dan dekripsi merupakan fungsi transformasi
antara himpunan-himpunan tersebut. Apabila elemen-elemen plaintext
dinotasikan dengan P, elemen-elemen ciphertext dinotasikan dengan C,
sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan
notasi D, maka secara matematis proses kriptografi dapat dinyatakan
sebagai berikut : Enkripsi : E(P)=C Dekripsi : D(C)=P atau D(E(P))=PPada
skema enkripsi konvensional atau kunci simetrik digunakan sebuah kunci
untuk melakukan proses enkripsi dan dekripsinya. Kunci tersebut
dinotasikan dengan K, sehingga proses kriptografinya adalah : Enkripsi : EK(P)=C Dekripsi : DK(C)=P atau DK(EK(P))=PSedangkan
pada sistem asymmetric-key digunakan kunci umum (public key) untuk
enkripsi dan kunci pribadi (private key) untuk proses dekripsinya
sehingga kedua proses tersebut dapat dinyatakan sebagai berikut : Enkripsi : EPK(P)=C Dekripsi : DSK(C)=P atau DSK(EPK(P))=P>> Teknik KriptografiPada umumnya terdapat dua teknik yang digunakan dalam kriptografi, yakni: kunci simetrik dan kunci asimetrik (public-key).>> Kunci SimetrikSkema
enkripsi akan disebut symmetric-key apabila pasangan kunci untuk proses
enkripsi dan dekripsinya sama. Pada skema enkripsi kunci simetrik
dibedakan lagi menjadi dua kelas, yaitu block-cipher dan stream-cipher.Block-cipher
adalah skema e3nkripsi yang akan membagi-bagi plaintext yang akan
dikirimkan menjadi sting-string (disebut blok) dengan panjang t, dan
mengenkripsinya per-blok. Pada umumnya block-cipher memproses plaintext
dengan blok yang relatif panjang lebih dari 64 bit dengan tujuan untuk
mempersulit penggunaan pola-pola serangan yang ada untuk membongkar
kunci. Sedangkan skema stream cipher pada dasarnya juga block-cipher,
hanya dengan panjang bloknya adalah satu bit.>> Kunci AsimetrikSkema
ini adalah algoritma yang menggunakan kunci yang ber beda untuk proses
enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem
kriptografi Public-key karena kunci untuk enkripsi dibuat secara umum
(public-key) atau dapat diketahui oleh siapa saja, tetapi untuk proses
dekripsinya yang dibuat satu saja, yakini hanya oleh yang berwenang
untuk mendekripsinya (disebut private-key),.Keuntungan skema model
ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak
diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat
dua buah kunci (disebut public-key) bagi para koresponden untuk
mengenkripsi pesan, dan private-key untuk mendekripsi pesan. Berbeda
dengan skema kunci simetrik yang jumlah kunci yang dibuah adalah harus
sebanyak jumlah pihak yang berkorespondensi.>> Kriptografi Block CipherBlock
cipher merupakan sebuah fungsi yang memetakan n-bit blok plaintext ke
n-bit blok ciphertext, dengan n adalah panjang blok. Blok cipher umumnya
memproses plaintext ke dalam blok-blok yang cukup besar (≥ 64).>> Cipher BerulangPada
teknik cipher berulang (iterated cipher), blok plaintext mengalami
pengulangan fungsi transformasi beberapa kali untuk mendapatkan blok
ciphertext. Fungsi transformasi pada umumnya merupakan gabungan proses
subtitusi, permutasi, kompresi, atau ekspansi terhadap blok plaintext.
Sebuah kunci pada setiap putaran akan dikombinasikan dengan plaintext.
Parameter dalam cipher ini adalah jumlah putaran r, besar blok n dan
besar kunci k. Sub-kunci Ki pada setiap putaran diperoleh dari penurunan
kunci input K.>> Feistel CipherFeistel
cipher beroperasi terhadap panjang blok data tetap sepanjang n (genap),
kemudian membagi 2 blok tersebut dengan panjang masing-masing n/2, yang
dinotasikan dengan L dan R. Feistel cipher menerapkan metode cipher
berulang dengan masukan pada putaran ke-I yang didapat dari keluaran
sebelumnya, yang secara matematis dapat dinyatakan sebagai berikut : Li=Ri-1 Ri=Li-1 f(Ri-1,Ki); i=1,2,3,…,rKi adalah kunci untuk putaran ke-i dan f adalah fungsi transformasi.Blok
plaintext adalah gabungan L dan R awal atau secara formal plaintext
dinyatakan dengan (Lo, Ro). Sedangkan blok ciphertext didapatkan dari L
dan R hasil putaran terakhir setelah terlebih dahulu dipertukarkan atau
dinyatakan dengan (Rr, Lr).>> AvalanchePada blok
cipher perubahan satu buah bit dapat menghasilkan perubahan lebih dari
satu bit setelah satu putaran, lebih banyak lagi bit berubah untuk
putaran berikutnya. Hasil perubahan tersebut dinamakan sebagai avalanche
effect. Sebuah algoritma kriptografi memenuhi kriteria avalanche effect
apabila satu buah bit input mengalami perubahan, maka probabilitas
semua bit berubah adalah setengahnya. Avalanche effect merupakan salah
satu karakteristik yang menjadi acuan untuk menentukan baik atau
tidaknya sebuah algoritma kriptografi.>> Mode OperasiAda beberapa mode operasi yang digunakan dalam kriptografi, seperti :>> Electronic codebook (ECB)Pada
mode ini blok-blok plaintext (x) yang identik (yang menggunakan kunci
sama) akan menghasilkan ciphertext (c) yang identik pula, yang secara
matematis dapat dinyatakan : Enkripsi : cj EK(xj); 1 j t Dekripsi : xj EK-1(cj); 1 j t>> Cipher block chaining (CBC)Pada
prosesnya, koded ini melibatkan penggunaan initializing vector (IV)
yang menyebabkan blok-blok ciphertext yang identik apabila dienkripsi
menggunakan kunci dan IV yang sama. Berubahnya IV, kunci atau blok
plaintext pertama akan menghasilkan ciphertext yang berbeda. Secara
matematis dapat dinyatakan : Enkripsi : co IV, untuk 1 j t, cj EK(cj-1 xj)>> Cipher feedback (CFB)Jika
pada mode CBC, plaintext sebesar n bit diproses dalam sekali waktu
(menggunakan sebuah n bit cipher blok), beberapa aplikasi mengharuskan r
bit plaintext untuk dienkripsi terlebih dahulu dan ditransmisikan bebas
delay, untuk r < n (biasanya r = 1 atau r = 8); dalam kasus ini CBF
digunakan. Dalam mode ini juga melibatkan penggunaan initializing vector
(IV).>> Output feedback (OFB)mode operasi ini
digunakan apabila kesalahan propagasi sama sekali harus dihindari.
Hampir mirip dengan CFB, dan juga memungkinkan enkripsi menggunakan
besar blok yang berfariasi.>> Kunci Lemah dan Kunci Setengah LemahDalam
kriptografi dikenal istilah kunci lemah (weak-key) dan kunci setengah
lemah (semi weak-key). Kunci lemah adalah kunci yang apabila
mengenkripsi suatu plaintext kemudian dienkripsi lagi menggunakna kunci
yang sama, maka ciphertextnya adalah plaintext itu sendiri. Sedangkan
yang disebut dengan kunci setengah lemah adalah sepasang kunci yang
memiliki sifat jika sebuah plaintext dienkripsi dengan suatu kunci, akan
dapat dienkripsi dengan kunci yang lain.
EmoticonEmoticon