Good vs Bad Cryptography

Tidak sengaja nemu artikel lama dan menarik dari Bruce Schneier tentang kriptografi. Artikel ini memberikan beberapa panduan untuk membedakan algoritma kriptografi yang aman dan yang tidak. Singkatnya, Bruce memaparkan tanda-tanda apa saja yang membuat sebuah algoritma kriptografi layak untuk diragukan keamanannya. Artikel ini tampaknya ditulis oleh Bruce untuk menyikapi munculnya berbagai perangkat lunak kriptografi komersial yang memberikan klaim keamanan yang berlebihan. Berikut ini adalah beberapa hal (tidak semua saya tulis kembali) yang harus diperhatikan menurut Bruce (dengan beberapa komentar saya):

Pertama, kriptografi yg dibangun dengan metode matematika baru, misalnya chaos, neural-network dan cellular automata. Tiga hal ini memang belum lazim dipergunakan oleh komunitas kriptografi saat ini. Menurut saya: metode matematika baru seharusnya secara terbuka harus diterima oleh komunitas kriptografi dengan syarat algoritma tersebut harus dapat membuktikan klaim-klaim keamanannya berdasarkan beberapa kriteria yang telah dipergunakan oleh komunitas kriptografi. Penolakan terhadap metode matematikan baru tanpa kecuali dapat menghambat kemajuan riset kriptografi secara keseluruhan.

Kedua, proprietary cryptography. Yaitu algoritma kriptografi yang disembunyikan. Perusahaan yang memproduksinya menolak membuka algoritma kriptografi karena beberapa alasan, mungkin keamanan mungkin juga karena proses patent yang belum selesai. Apapun alasannya, kita harus menghindari produk kriptografi jenis ini. Menurut prinsip Kerckhoff, proses desain algoritma kriptografi harus mengasumsikan bahwa algoritma tersebut (termasuk kriteria-kriteria desainnya) terpublikasi, tidak dirahasiakan. There is no security by obscurity. Algoritma yang terpublikasi dapat dianalisa dan diuji oleh banyak pihak dalam komunitas kriptografi.

Ketiga, kunci yang sangat panjang. Beberapa contoh algoritma kunci simetrik yang dipaparkan Bruce menggunakan kunci 4096 bit, bahkan ada yg hingga satu juta bit! Panjang kunci dalam batas tertentu memang diperlukan dalam sistem kriptografi. Tujuannya adalah untuk membuat brute-force attack menjadi infeasible. Hitungan sederhana kebutuhan komputasi untuk brute-force attack menyatakan bahwa kunci 256-bit untuk symmetric-key cryptography dan 2048-bit untuk public-key cryptography. Membongkarnya dengan metode brute-force attack memerlukan waktu yang lebih panjang dari usia alam semesta. Jadi kunci yang lebih panjang dari ini sama sekali tidak berguna.

Keempat, klaim dengan OTP (one time pad). One time pad merupakan teknik enkripsi dengan menggunakan panjang kunci yang sama dengan panjang plaintext. Selanjutnya tiap karaker dari kunci ini dipergunakaan untuk me-masking tiap karakter plaintext (misal dengan XOR). Secara teori OTP bersifat provably secure (tidak ada teknik yang lebih efisien dari brute-force attack untuk membongkarnya). Namun teknik ini tidak dapat dipergunakan secara praktis, karena beberapa hal berikut:

  • Panjang kunci bergantung pada panjang plaintext, sehingga jika plaintext sangat panjang maka kita juga perlu kunci yang sangat panjang. Secara praktis hal ini sangat menyulitkan proses distribusi kunci.
  • One-time-pad bersifat provably secure jika dan hanya jika kunci yang dipergunakan benar-benar random artinya tidak boleh ada algoritma atau sistem yang dapat mereproduksi kunci tersebut. Secara praktis sangat sulit membuat atau menemukan truly random number generator.

Kelima, tidak ada bukti keamanan secara matematis. Ada dua kemungkinan untuk kasus ini, (1) ada bukti matematis yang sangat rinci dan kokoh yang tidak relevan dengan pembuktian keamanan sistem kriptografi, atau (2) bukti matematis palsu. Contoh yang dipaparkan bruce: sebuah produsen sistem kripto menjelaskan cara kerja dan tingkat keamanan OTP, kemudian produsen tersebut menyatakan bahwa algoritmanya memiliki perilaku yang serupa dengan OTP sehingga karena itu memiliki tingkat keamanan yang setara OTP. Kemudian dilanjutkan dengan serangkaian uji statistik untuk menunjukkan klaim tersebut. Menurut Bruce, cara pembuktian ini tidak valid dalam komunitas kriptografi

Artikel ini sangat penting bagi rekan-rekan yang sedang melakukan riset di bidang kriptografi, dan juga bagi kalangan praktisi yang akan mengimplementasikan sistem kriptografi dalam aplikasi-aplikasi yang mensyaratkan keamanan tinggi (misal: payment system, e-cash, settlement system dll)

Artikel lengkap dapat dilihat di sini.

16 pemikiran pada “Good vs Bad Cryptography

  1. Wah kok jadi gak nyambung….

    Saya kurang setuju (karena kurang mengerti mengenai apa yang sebenarnya yang inigin disampaikan dalam hal ini Om Bruce) dengan “algoritmanya memiliki perilaku yang serupa dengan OTP sehingga karena itu memiliki tingkat keamanan yang setara OTP. Kemudian dilanjutkan dengan serangkaian uji statistik untuk menunjukkan klaim tersebut. Menurut Bruce, cara pembuktian ini tidak valid dalam komunitas kriptografi”…..saya tidak mengerti di bagian “uji statistik tidak diterima di kalangan kriptografi”……….kenapa kriptografer tidak menerima pendapat ini…bukankah uji statistik adalah langkah2 rasional untuk membuktikan keacakan bilangan…random is “terlihat random”, “tidak dapat diprediksi”, “tidak berulang”…..mohon petunjuknya mas…cmiiw

  2. Salam kenal Mas Ian.

    Yang dimaksud om bruce kira2 adalah pembuktian statistik hanya merupakan syarat perlu (belum syarat cukup) dari keamanan sebuah algoritma, khususnya cipher). Misalnya, untuk kasus block cipher, pembuktian keamanan dilakukan dengan menguji algoritma dengan metode-metode analisa sandi yang sudah ada, bukan hanya dengan uji statistik keacakan.

  3. mmm…begitu ya….

    mas sebenernya dah ada yang bikin (riset atau standar apa lah atau semacam adisory) mengenai langkah2 membuktikan kekuatan/keamanan suatu algoritma kripto belum ya?langkah awal sampe langkah akhirnya gitu…
    karena kan masalahnya adalah sampe level berapa kita harus assestment suatu algoritma terus…klo terus2an kan bisa gak abis2…(apa emang gitu ya…cape dehhh :))

  4. Keamanan algoritma kripto ada dua jenis: 1.provable security dan 2. conditional/computational security. Untuk jenis yg pertama, keamanan dinyatakan secara matematis, selama pembuktian itu valid maka algoritma tersebut aman. Jenis 1 ini misalnya diterapkan untuk RSA dan Elliptic Curve.

    Untuk kasus block cipher, yg dipakai adalah jenis2. Singkatnya, suatu block cipher dinyatakan aman jika dibuktikan tahan terhadap beberapa metode serangan yang telah diketahui atau belum ditemukan metode baru yang membuktikan ketidakamanannya. Kaidah umumnya kira-kira: semakin banyak orang yang mereview/menguji keamanan suatu algoritma dan selama itu mereka belum menemukan kelemahan algoritma tersebut, maka semakin aman algoritma tersebut.

    Coba lihat juga tulisan ini

  5. Hmm…bagus juga artikelnya. saya ingin bertanya, mengapa algoritma simetris itu dianggap kurang aman ? trus kenapa jga yang asimetris dibilang lebih aman ?

    tolong diterangkan ya pak…hehe…

  6. Slm Hormat, ada program penyimpan data rahasia, support berbagai macam file, kunci enkripsi (password) dapat mencapai 256 karakter (2048 bit), program ini menggunakan algoritma enkripsi PR, GRATIS untuk penggunaan pribadi (personal). Dan ada juga file library DLL algoritma enkripsi PR dan contoh kode program pemakaian fungsi-fungsi librari algoritma enkripsi PR dalam bahasa delphi, file librari ini dapat juga diterapkan pada berbagai bahasa pemrograman lainnya, yang dapat mengakses librari DLL. Dan dapat juga mengevaluasi dan menganalisis keamanan dari algoritma enkripsi PR ini, Dapat didownload di http://www.ciauldownload.blogspot.com , terima kasih

  7. Little point is there in the world. And hot tubs jets prices are usually fixed, so you don’t have to
    hire an electrician to set up and install. They are strikingly sophisticated
    to look at North American ski resorts to see
    the Hot Tub. Spas are fun for everyone and sharing it with friends and family.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s