Archive for the ‘Cryptography’ Category

Symmetric dan Asymmetric Cryptography merupakan jenis algoritma kriptografi berdasarkan penggunaan kunci. Singkatnya, kriptografi symmetric menggunakan kunci yang sama untuk melakukan proses enkripsi dan dekripsi sedangkan kriptografi asymmetric menggunakan kunci yang berbeda untuk encrypt dan decrypt. Contoh algoritma symmetric adalah AES, DES, RC4 dll sedangkan asymmetric adalah RSA, Elgamal dll. Gambar dibawah ini merupakan proses enkripsi dan dekripsi algoritma symmetric dan asymmetric.

                     Symmetric Algorithm                                                                                         Asymmetric Algorithm

Pada algoritma asymmetric, terdapat dua buah kunci yaitu kunci publik untuk encrypt dan kunci private untuk decrypt. Ketika seseorang (misal Alice) akan mengirimkan pesan ke Bob, maka Alice akan mengenkripsi pesan tersebut menggunakan kunci publik Bob dan Bob akan membuka pesan yang diterimanya menggunakan kunci private. Hal tersebut merupakan kelebihan pada sistem asymmetric karena user cukup menyimpan secara rahasia kunci private miliknya, sedangkan kunci publik dapat disebarkan ke seluruh user yang ingin berkomunikasi dengannya tanpa perlu khawatir orang yang tidak berhak dapat membuka pesan menggunakan kunci publik yang telah disebar tersebut.

Pada sistem symmetric, kunci yang digunakan untuk encrypt dan decrypt adalah sama, sehingga user yang saling berkomunikasi menggunakan sistem symmetric harus saling berkirim kunci yang sama karena jika mereka tidak menggunakan kunci yang sama maka pesan tidak dapat terbuka di sisi penerima. Jika terdapat seseorang yang berada di tengah2 proses kirim terima kunci dan berhasil mendapatkan kunci tersebut maka maka semua pesan dapat terbuka. Berbeda dengan sistem asymmetric, user hanya perlu mengirimkan kunci publik supaya orang lain dapat berkomunikasi dengan dirinya. User tidak perlu takut penyerang dapat merekonstruksi private key dari kunci publik yang didapatkannya.

Kompleksitas pendistribusian kunci  pada symmetric lebih tinggi dibandingkan dengan asymmetric. Setiap satu kunci pada  symmetric digunakan oleh dua user atau satu grup untuk berkomunikasi. Saya ilustrasikan sebagai berikut, ketika user A akan berkomunikasi dengan user B mereka menggunakan kunci X dan ketika user A berkomunikasi dengan user C mereka akan menggunakan kunci Y. Maka ketika user B,C,D akan mengirimkan pesan ke user A, user A akan menggunakan 3 buah kunci yang berbeda untuk membuka pesan yang diterima. Berbeda dengan sistem asymmetric, user B,C,D cukup menggunakan kunci publik A untuk mengirimkan pesan dan A cukup menggunakan kunci private nya untuk membuka pesan tersebut.

Akan tetapi, sistem symmetric lebih cepat dalam komputasi dan ciphertext yang dihasilkan lebih sedikit sehingga tidak membebani bandwith pada saat proses pengiriman pesan. Biasanya symmetric dan asymmetric sering digunakan bersamaan pada suatu sistem. Sebagai contoh pada sistem video conference Agievic, asymmetric digunakan untuk pendistribusian kunci symmetric, kunci symmetric ini digunakan untuk untuk mengenkripsi komunikasi video conference.

Advertisements

Kriptografi – Introduction

Posted: April 26, 2012 in Cryptography
Tags: ,

Menurut  Bruce Schneier dalam bukunya Applied Cryptography (e-book bisa download di box.net file sharing saya), 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.