Kriptografi
Menurut Bruce Schneier dalam bukunya Applied Cryptography, kriptografi secara umum adalah ilmu dan seni untuk
menjaga kerahasiaan berita. Ilmu ini sudah dikenal dan digunakan sejak
jaman sebelum masehi, sebagai contoh sistem sandi klasik yaitu sistem
caesar, viginere, scytale dll. Kriptografi sendiri menggunakan teknik
matematika untuk mengacak pesan dan membuatnya tidak dapat terbaca oleh
pihak yang tidak berhak. Kekuatan suatu algoritma kriptografi harus
memiliki konsep konfusi dan difusi (Claude Shannon). Confusion adalah
mengaburkan hubungan antara plaintext dan ciphertext yang menimbulkan
kesulitan dalam usaha musuh untuk mencari keteraturan dan pola statistik
antara plaintext dan ciphertext. Sedangkan Difusi adalah menyebarkan
redudansi plaintext dengan menyebarkan masukan ke seluruh ciphertext.
Gambar di bawah ini merupakan konsep difusi dan confusi


Berbeda dengan kriptografi klasik yang
menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan,
kekuatan kriptografi modern terletak pada kerahasiaan kunci yang
digunakan pada algoritma sehingga algoritma kriptografi dapat saja
diketahui oleh berbagai pihak tanpa takut kehilangan kerahasiaan bagi
para pemakainya. Terdapat 4 tujuan kriptografi yang memenuhi aspek –
aspek keamanan informasi yaitu :
- Confidentiality (Kerahasiaan),
berhubungan dengan kerahasiaan data dalam hal ini berarti menjaga isi
informasi dari siapapun kecuali yang berhak dan memiliki kunci rahasia
untuk membuka/mengupas informasi yang telah disandi. Contohnya adalah
Symetric dan Asymetric.
- Integrity (Integritas data), berhubungan
keutuhan data dalam hal ini berarti penjagaan data dari perubahan
secara tidak sah. Informasi dikirimkan antara beberapa pihak melalui
saluran yang tidak aman yang memiliki kerawanan dari pihak yang tidak
berhak. Oleh karena itu,suatu sistem harus memiliki kemampuan untuk
mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak seperti
penyisipan, penghapusan, pemalsuan dan perubahan data lainnya. Contohnya
yaitu Hash function.
- Authentication (Otentikasi), berhubungan
dengan identifikasi baik terhadap informasi sistem secara kesatuan.
Saat kita mendapatkan informasi, kita harus dapat memastikan bahwa
informasi tersebut benar2 dikirim user yang sah. Jika dalam sistem, maka
sistem harus dapat memastikan bahwa user yang masuk ke sistem adalah
user yang sah. Contohnya yaitu password, token, private key
- Non repudiation
(nirpenyangkalan), merupakan usaha untuk mencegah terjadinya
penyangkalan terhadap informasi yang telah dikirimkan/dibuat. Contohnya
adalah Digital Certificate
pada konsep PKI. Pada digital certificate terdapat informasi mengenai
pengirim seperti publik key yang telah di sah kan dan ditandatanagi oleh
CA. Pengirim tidak dapat menyangkal pesan yang dikirimkan karena pesan
tersebut dapat dibuka oleh penerima dengan publik key yang terdapat pada
digital certificate milik pengirim.
Dalam kriptografi, proses utama yang
paling banyak digunakan adalah enkripsi dan deksripsi. Enkripsi adalah
proses yang digunakan untuk menyandi plaintext (teks terang) yaitu
mengubah teks terang menjadi teks yang tidak dapat dibaca oleh pihak
yang tidak berhak (ciphertext). Sedangkan dekripsi merupakan proses
kebalikannnya, yaitu mengubah ciphertext menjadi plaintext sehingga
dapat dibaca oleh pihak yang berhak dengan menggunakan kunci yang sah.
Idealnya ciphertext hasil enkripsi hanya dapat dibuka oleh pemegang
kunci yang sah, akan tetapi sekarang ini banyak teknik – teknik yang
digunakan untuk membobol ciphertext tanpa menggunakan kunci ataupun
mendapatkan kunci secara tidak sah. Proses ini disebut dengan
cryptanalyisis. Teknik – teknik serangan pada cryptanalysis akan saya
jelaskan pada tulisan selanjutnya.
Telah dijelaskan sebelumnya bahwa pada
kriptografi terdapat proses enkripsi dan dekripsi. Sekarang saya akan
mencoba memberikan contoh proses penyandian tersebut.
- Algoritma : Caesar
- Plaintext : Indonesia Raya
- Kunci : 13
- Enkripsi : Proses enkripsi pada algoritma Caesar sangatlah mudah. Kita cukup merubah huruf dengan algoritma Encrypt = (Plaintext + Kunci) mod 26. Jika huruf A bernilai 1 dan kunci adalah 2, maka A+2 = C. Karena plaintext nya adalah Indonesia Raya dan kunci 13, maka Ciphertext =Vaqbarfvn Enln
- Dekripsi : Proses dekripsi adalah kebalikan dari proses enkripsi. Algoritma yang digunakan adalah Decrypt = (Ciphertext – Kunci) mod 26, sehingga Vaqbarfvn Enln – 13 dan Plaintext = Indonesia Raya
Algoritma caesar merupakan algoritma yang
mudah karena hanya menggunakan operasi (+) dan (-) serta kemungkinan 26
kunci. Kita dapat membobolnya dengan mudah menggunakan brute force attack atau frequency analysis. Oleh
karena itu, kita dapat melakukan variasi terhadap informasi yang akan
kita encrypt sehingga dapat menambah kesulitan bagi si penyerang untuk
mendapatkan plaintext. Cara – cara yang dapat digunakan diantaranya
adalah menyingkat informasi. Sebagai contoh terdapat sebuah kalimat
“Kita serang Indonesia besok”, maka kalimat tersebut dapat kita singkat
menjadi ”kta srng ndnsa bsk”. Jika penyerang menemukan plaintext
“srngnds” ketika mencoba membuka ciphertext, maka penyerang akan
menganggap bahwa dia belum menemukan plaintext karena informasi maih
belum dapat dibaca. Sama halnya ketika kita menambahkan huruf tidak
berarti seperti “cksblabrv” pada depan dan belakang informasi menjadi
”cksblabrvindonesiarayahkbsdvb”. Penyerang akan
kesulitan karena terkadang penyerang hanya mencoba beberapa huruf
pertama atau terakhir pada informasi untuk mengetahui plaintext. Cara
lain yang dapat dilakukan adalah menggunakan random key (contoh pada
algoritma viginere). Biasanya seseorang akan menyandi pesan mereka
dengan kunci yang mudah dibaca seperti
“garudaindonesia”,”jakarta”,”majalengka” dll. Kunci – kunci tersebut
dapat dengan mudah ditebak karena kata tersebut terdapat dalam kamus.
Oleh karena itu, dalam penyandian kita dapat menggunakan random key
seperti “hebvbevibeiuvbenovuebrv”, “tfygifyubyvbeeuyveu”, dll
Algoritma yang telah saya jelaskan diatas
seperti caesar dan viginere adalah sistem sandi klasik dengan kunci
yang sama untuk membuka dan menyandi. Perkembangan teknologi saat ini
menyebabkan komputasi menjadi cepat sehingga banyak algoritma sandi yang
mudah sekali dibobol keamanannya. Oleh karena itu, sekarang ini banyak
diciptakan algoritma sandi dengan perhitungan yang kompleks yang dapat
menambah kesulitan penyerang dalam melakukan break terhadap algoritma. Contoh algoritma kriptografi modern saat ini adalah AES, DES, RSA, RC4, MICKEY dll.