Saturday, June 30, 2007
Pemecahan algoritma vs pemecahan sistem kripto
Termasuk pemecahan algoritma adalah :
1. ciphertext only attack.
Hanya algoritma yang sangat buruk yang dapat dipecahkan dengan cara ini. Dalam kasus ini, analis sandi (cracker)
hanya mengetahui detil algoritma enkripsi ditambah sejumlah ciphertext dan berusaha mendapatkan plaintext atau
kuncinya. Bila tanpa mengetahui algoritmanya pun, analis sandi masih dapat menemukan kunci atau plaintexnya, maka
algoritma ini tentulah sangat lemah.
2. known plaintext attack. Dalam kasus ini analis sandi mengetahui algoritma enkripsi, beserta sejumlah ciphertext
yang diketahui plaintextnya yang digunakan target di masa lalu. Analis sandi bertugas mendapatkan kunci dan
plaintext yang digunakan target di masa kini.
3. chosen plaintext attack. Analis sandi mengetahui detil algoritma enkripsi yang digunakan target, mengetahui
sejumlah ciphertext beserta pasangan plaintext yang digunakan target di masa lalu, serta dapat memilih plaintext
yang diinginkan untuk dianalisis ciphertext dan algoritmanya. analisis ini dapat bermula dari pengetahuan
analis sandi terhadap sejumlah besar ciphertext yang diketahui plaintextnya, dan kemudian memilih plaintext
yang diinginkannya. Tugas analis sandi adalah mendapatkan kunci dan plaintext di masa kini.
Metode 2 dan 3 menjadi standar analisis sandi modern untuk memeriksa keamanan algoritma. Salah satu kriteria AES
adalah bahwa AES harus tahan terhadap metode 2 dan 3 di atas. Dari metode 2 diturunkan berbagai macam analis
sandi, diantaranya adalah analisis sandi linear. Sedangkan dari metode 3 terdapat analisis sandi diferensial.
Termasuk pemecahan sistem kripto (bukan pemecahan algoritma) adalah :
1. Social engineering. Pada kasus ini, tidak diperlukan keahlian kriptologi. Yang penting, pemecah sistem keamanan
dapat melakukan semacam "tipuan" agar korban mau menyebutkan passwordnya atau memenuhi permintaan cracker.
2. Menebak password yang digunakan. Penebakan ini dapat dilakukan secara manual dengan menerka password yang
digunakan korban, misalkan menebak passwordnya sama dengan user account-nya. Penebakan juga dapat dilakukan
dengan software yang dapat diperoleh secara gratis dari internet. Dengan cara ini, penerkaan password dapat
dilakukan dengan cepat. Penerkaan semacam ini juga dapat dilakukan oleh bukan ahli kriptologi. Yang penting
cracker ini mau bersabar menunggu dan mencari tool software cracker dari internet.
3. Mencari kelemahan implementasi. Misalkan password sebuah aplikasi disimpan dalam file tertentu. Cracker bertugas
mencari letak password tersebut. Contoh lain misalkan Kunci efektif WEP (pengaman WiFi versi awal) ternyata bukan
128 bit, akan tetapi
104 bit. Itupun dalam beberapa aplikasi, yang efektif hanyalah 24 bit karena penggunaan IV (Initialization Vector)
sebesar 24 bit. Untuk dapat menemukan kelemahan ini memang bukan hal yang mudah. Akan tetapi kita dapat
menggunakan tool software dari internet untuk membobol sistem WEP tersebut dengan cara yang relatif mudah, tanpa
harus susah-susah mencari kelemahan implementasinya sendiri.
4. Side channel attack. Di sini, Analis sandi berusaha memanfaatkan informasi yang terkait dengan implementasi
kriptografi
dan menggunakan informasi tersebut untuk mendapatkan kunci. Sebagai contoh, analis sandi berusaha mencari
hubungan antara operasi yang terdapat di dalam smart card dengan daya yang digunakan smart card tersebut ketika
menjalankan sebuah algoritma kriptografi. Dari pengukuran daya diharapkan analis sandi dapat menemukan kunci
yang digunakan di dalam smart card. Metode ini dikenal dengan nama simple (differential) power analysis.
Termasuk side channel attack adalah timing attack. Sebagai contoh, cracker mengukur waktu operasi di dalam SSL
dan berusaha mendapatkan kunci RSAnya. Perlu diingat bahwa dalam operasi RSA, semakin banyak jumlah bit "0" pada
kunci maka lama operasinya tidak akan sama dengan kunci yang menggunakan lebih banyak bit "1".
Catatan :
1. Kemampuan kriptografi terbatas. Kriptografi tidak bisa mencari virus dan menghilangkannya, untuk ini perlu
antivirus. Kriptografi juga tidak dapat memblok cracker yang mencoba menyusup ke dalam komputer kita, untuk ini
diperlukan firewall. Meskipun, kriptografi mungkin digunakan di dalam antivirus ataupun firewall, kriptografi ini
bukan untuk memfilter data dan juga tetap bukan untuk menghilangkan virus secara langsung.
2. Bila yang termasuk pemecahan sistem kripto di atas juga dianggap sebagai pemecahan algoritma, maka semua algoritma
kriptografi tidak akan digunakan lagi. Sebab, semua sistem yang dipecahkan, selalu berisi berbagai algoritma
kriptografi terbaik di dunia semacam RSA, DH, Bowfish, DES, dan AES.
Tuesday, April 17, 2007
pengantar kriptologi
Kriptologi adalah gabungan dari ilmu kriptografi dan analisis sandi. Kriptografi merupakan teknik untuk mengamankan data dari sisi kerahasiaan (confidentiality), keabsahan pengirim/penerima(authentication), keaslian data(integrity) dan pertanggungjawaban telah mengirim/menerima(nonrepudiation). Analisis sandi (cryptanalysis, attack) adalah teknik untuk memecahkan algoritma kriptografi.
Algoritma Kriptografi dapat dikategorikan ke dalam algoritma kunci simetri, kunci asimetri dan fungsi hash. Termasuk algoritma kunci simetri adalah block cipher dan stream cipher. Block cipher adalah algoritma enkripsi yang memiliki masukan/keluaran sebanyak 1 blok. Setiap blok pada umumnya terdiri atas 64 bit atau 128 bit. Algoritma enkripsi berfungsi untuk menjaga confidentiality (kerahasiaan) data. Stream cipher adalah algoritma enkripsi yang memiliki masukan/keluaran 1 bit atau 1 karakter.
Pesan yang menjadi masukan algoritma enkripsi biasanya dapat dibaca, dilihat dan dapat dipahami. Pesan ini disebut plaintext. Keluaran algoritma enkripsi disebut sebagai ciphertext. Ciphertext selalu sulit dibaca atau tidak dapat dipahami sama sekali.
Untuk merancang block cipher perlu diperhatikan hal-hal berikut:
- kecepatan vs keamanan : Semakin cepat biasanya semakin tidak aman
- efisiensi implementasi pada berbagai software dan hardware. Efisiensi pada suatu platform terkadang menimbulkan ketidakefisienan pada platform lain. Sebagai contoh, DES memiliki kecepatan yang tinggi pada hardware akan tetapi memiliki kecepatan yang lambat pada software akibat banyaknya penggunaan permutasi bit
- Kesederhanaan. Semakin rumit algoritma, semakin sulit pula pembuktian keamanannya. Yang ideal tentu saja membuat algoritma yang nampaknya sangat rumit bagi orang lain, namun sangat mudah bagi kita membuktikan keamanannya. Kemungkinan terburuk adalah sedemikian rumitnya bagi kita sehingga kita tidak dapat membuktikan keamanannya, akan tetapi sangat mudah bagi lawan untuk memecahkannya.
Perlukah algoritma enkripsi kita dipublikasikan?
- Kadangkala, algoritma yang kita sembunyikan dalam file exe ataupun dalam perangkat keras dapat di-reverse-engineering sehingga dapat dibaca orang lain. Dalam kasus ini, merahasiakan algoritma menjadi sesuatu yang sia-sia.
- Lebih mudah hanya menjaga kerahasiaan kunci (password) daripada harus menjaga kerahasiaan algoritmanya pula. Lebih mudah menjaga sedikit rahasia daripada banyak rahasia.
- Algoritma yang dipublikasikan dapat menerima banyak kritik dari para ahli untuk perbaikannya.
Jika kita telah menguasai teknik desain algoritma kelas dunia dengan baik, maka dengan menjaga kerahasiaan algoritma, mungkin semakin aman algoritma kita. Akan tetapi merahasiakan algoritma sekali lagi bukanlah tugas yang ringan. Untuk merahasiakan algoritma kita, kita harus mengimplementasikannya dalam hardware yang akan rusak begitu ada usaha untuk melakukan reverse engineering.
Bila kita membeli perangkat buatan asing yang mudah kita isi implementasi algoritma kita, maka tidak ada jaminan bahwa perangkat yang kita beli tersebut tidak akan mengirimkan password (key) yang kita simpan didalamnya kepada pembuat perangkat tersebut, misalnya dengan teknologi semacam RFID.
Terdapat beberapa jenis keamanan yang harus diperhatikan :
- Keamanan algoritma
- Keamanan implementasi
- Keamanan fisik
- Keamanan organisasi
Keamanan algoritma adalah cara memecahkan algoritma kriptografi tanpa memperhatikan lingkungannya. Teknik pemeriksaannya disebut sebagai analisis sandi. Ilmu ini belum banyak diminati di negeri kita, sementara itu di berbagai universitas di luar negeri dan berbagai lembaga penelitian lainnya, ilmu ini sangat diperhatikan. Sehingga kita merasa cukup mengatakan suatu algoritma dikatakan aman apabila para pakar asing mengatakannya demikian.
Keamanan implementasi adalah keamanan implementasi dari algoritma kriptografi. Kadangkala kita mengira sudah dapat meng-crack algoritma kriptografi, padahal yang kita lakukan adalah meng-crack implementasinya. Misalkan dengan tool software yang dapat kita peroleh dari internet kita dapat memperoleh password Windows orang lain. Ini bukan meng-crack algoritma, akan tetapi meng-crack implementasinya. Contoh lain adalah menerobos password pengaman WiFi versi WEP. Meng-crack implementasi seringkali lebih mudah daripada meng-crack algoritma kriptografinya.
First Indonesian Block Cipher Algorithm BC2
Welcome to First INDONESIA - Block Cipher Algorithm BC2. This Block Cipher is one of PhD programme result of Yusuf Kurniawan at School of Electrical Engineering and Informatics INSTITUT TEKNOLOGI BANDUNG. Dr. Yusuf Kurniawan got his Doctor of Engineering with cum-laude at March 2007. The description of BC2 as part of his dissertation can be access at the following link.
The C model and its Know Answer Test will be upload soon.
Dr.Ir. Yusuf Kurniawan
Sarwono Sutikno, Dr.Eng., CISA