Kamis, 11 November 2010

Prinsip Dasar Kriptografi Modern

Jelajah Kriptologi
Lemsaneg 2007

Menurut taksonominya, pada dasarnya kriptografi (cryptographic tools/primitives) terbagi dalam tiga kategori yaitu :
1. Unkeyed Primitives: fungsi hash (MDC), permutasi satu-arah dan barisan acak;
2. Symmetric-key Primitives: sistem sandi kunci-simetris, fungsi hash (MACs), digital signature, barisan pseudo-random, teknik identifikasi;
3. Asymmetric (Public-key) primitives: sistem sandi asimetris, signature, teknik identifikasi.

Berdasarkan taksonomi di atas, maka secara prinsip ada 3 (tiga) aplikasi yaitu aplikasi simetris, aplikasi asimetris dan fungsi hash. Sebelum mempelajari sistem kriptografi modern, di bawah ini akan dibahas terlebih dahulu konsep dan prinsip dasar yang harus dipahami dalam pengembangan sistem kriptografi modern.

SISTEM KRIPTO SIMETRIS VS ASIMETRIS

Sistem Kripto Simetris
Sistem kripto simetris adalah sistem penyandian dengan menggunakan algoritma simetris yang menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Sering juga disebut algoritma kunci-tunggal atau algoritma satu-kunci atau algoritma kunci-rahasia.

Bila E adalah fungsi enkripsi (encryption), D adalah fungsi dekripsi (decryption), K adalah kunci rahasia (key), sedangkan M adalah pesan orisinil yang akan dikirimkan (message) dan C adalah pesan sandinya (crypt).

Dalam aplikasinya, antara pengirim dan penerima harus ada persetujuan atau sinkronisasi kunci agar bisa saling berkomunikasi. Jadi, keamanan algoritma sistem kripto simetris terletak pada kunci. Siapapun yang memperoleh kunci, akan dapat membuka pesan yang dikomunikasikan. Karena itu selama komunikasi bersifat rahasia, maka kunci harus tetap dirahasiakan.

Kelemahan lain sistem kripto simetris adalah manajemen kunci yang cukup rumit, khususnya dalam proses distribusi kunci ke semua pengguna yang masuk dalam jaringan komunikasi rahasia. Setiap pasang pengguna dalam jaringan harus memiliki kunci rahasia yang unik, sehingga jumlah total kunci yang harus dipunyai oleh masing-masing pengguna adalah n(n-1)/2 kunci, dengan n adalah jumlah pengguna dalam jaringan. Karena keamanan algoritma terletak pada kunci, maka proses distribusi kunci harus bersifat rahasia dan harus dijamin keamanannya.

Sistem kripto simetris yang menjamin “perfect secrecy” adalah One Time Pad (OTP). Proses penyandian pada OTP menggunakan rangkaian kunci “trully random” yang hanya boleh digunakan satu kali. Permasalahannya adalah bagaimana menghasilkan rangkaian kunci yang benar-benar acak, bagaimana proses pendistribusian kunci harus dilakukan dengan aman? Dan bagaimana proses pengelolaan kunci harus dilakukan agar dijamin hanya satu kali pakai? Dalam jaringan yang relatif kecil, aplikasi OTP masih dapat diaplikasikan, tetapi permasalahan muncul pada saat jaringan komunikasi menjadi semakin besar dan kompleks.

Sebagai salah satu alternatif, muncul ide pengembangan sistem kriptografik berbasis simetris yang menyediakan keamananan bersyarat (conditionally secure). Parameter dari sistem kriptografik tersebut adalah aman dari aspek komputasi, kriptografis dan aspek statistik/matematis. Pada sistem kriptografik ini digunakan algoritma stream (stream cipher) dan algoritma blok (block cipher).

Secara umum sistem sandi simetris dapat diaplikasikan untuk berbagai layanan pengamanan, yaitu:

1. Konfidensialitas data dengan menggunakan sistem sandi stream atau sistem sandi blok;
2. Pertukaran kunci, misalnya untuk proses distribusi kunci rahasia dengan menggunakan algoritma stream atau blok;
3. Otentikasi pesan, dengan teknik message authentication codes (MACs). Nilai hash yang dihasilkan merupakan fungsi dari domain dan kunci rahasia. Algoritma MACs dapat dibangun dari algoritma blok;
4. Identifikasi pengguna, biasanya digunakan dalam aplikasi access control misalnya challenge-response dengan algoritma DES;
5. Pembangkit bilangan pseudo-random, biasanya menggunakan algoritma stream; dan;
6. Signature atau otentikasi pengguna, contohnya adalah dengan skema digital signature trees.

Sistem Kripto Asimetris

Sistem kripto asimetris atau sering disebut sistem public key adalah sistem kriptografik yang menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Berarti ada 2 kunci di sini, yang disebut kunci publik untuk kunci enkripsi dan kunci privat untuk kunci dekripsi.

Bila E adalah fungsi enkripsi, D adalah fungsi dekripsi, K1 adalah kunci publik, K2 adalah kunci privat, M adalah pesan orisinil yang akan dikirim dan C adalah pesan sandi, maka sistem kripto asimetris dapat diformulasikan menjadi:

Kunci publik dapat disebarkan secara umum kepada entitas lain yang dianggap perlu berkomunikasi secara rahasia, sedangkan kunci privat hanya diketahui oleh pemiliknya dan harus dirahasiakan. Siapa pun yang memiliki kunci publik A, dapat menyandi pesan yang akan dikirim kepada A dan hanya A yang akan dapat mendekripsi pesan tersebut dengan kunci privatnya.

Secara teknis, sistem asimetris menggunakan konsep yang terdapat dalam teori bilangan seperti logaritma diskrit; perkalian, pangkat atau faktorisasi bilangan prima besar, yang dalam proses perhitungannya sangat sulit, sehingga kecepatan dalam proses penyandiannya sangat bergantung dari kemampuan komputasi yang digunakan. Karena itu, aplikasi komunikasi real-time seperti voice, penggunaan algoritma public-key untuk enkripsi tidak dianjurkan.
Dalam aplikasinya otentikasi dari kunci publik dan pemiliknya sangat penting, karena adanya kemungkinan pihak-pihak yang tidak berwenang yang berpura-pura menjadi pemilik kunci publik orang lain. Khususnya pada jaringan sistem public key yang besar, diperlukan pihak ketiga yang dapat menjamin otentikasi atas kunci publik dan pemiliknya.

Aplikasi dari algoritma asimetris sangat bervariasi seperti halnya sistem kripto simetris, yaitu:

1. konfidensialitas data, dengan menggunakan K1 untuk menyandi dan K2 untuk membuka sandi;
2. digital signature, dengan menggunakan K2 untuk proses signing (pembuatan signature) yang unik dari pengguna kepada pengirim. Pembuatan signature tersebut bergantung pada pesan yang akan dikirim. Selanjutnya hasil sign dikirim beserta pesan kepada penerima. Pihak penerima akan memverifikasi dengan menggunakan kunci publik si pengirim;
3. key-agreement atau key-transfer, untuk perjanjian/pertukaran kunci atau distribusi kunci rahasia dalam manajemen kunci simetris;
4. user-identification, misal pada mesin ATM untuk identifikasi dapat digunakan algoritma public key sebagai aplikasi dari access control.

Beberapa contoh dari algoritma asimetris adalah RSA, Diffie Hellman, Knapsack Merkle-Hellman, El-Gamal, Elliptic Curve dan lain-lain.


KEAMANAN SEMPURNA VS KEAMANAN PRAKTIS

Menurut teori Shannon dalam papernya “Communication Theory of Secrecy System”, sistem pengamanan berbasis kriptografik pada prinsipnya terbagi 2 (dua) yaitu “perfect secrecy” (keamanan sempurna) yaitu sistem kriptografik yang menjamin keamanan tanpa syarat (unconditionally secure) dan keamanan praktis (practical secrecy) yaitu sistem kriptografik yang menjamin keamanan dengan beberapa syarat (conditionally secure), baik dari aspek komputasi, matematis/statistik maupun kriptografis. Masing-masing istilah tersebut akan dijelaskan di bawah ini.

Perfect Secrecy: Unconditional Secure System

Menurut Henry Baker dan Fred Piper, suatu sistem penyandian (cipher system) dikatakan memenuhi syarat cukup dan syarat perlu sebagai sistem yang menawarkan keamanan sempurna (perfect secrecy) tanpa syarat, jika dan hanya jika jumlah kunci yang digunakan untuk menyandi serta jumlah teks terang dan teks sandi hasil transformasinya adalah sama. Sistem ini menggunakan tepat satu kunci yang mentransformasikan setiap teks terang menjadi teks sandi, dan semua kunci mempunyai peluang yang sama atau acak.

Sementara menurut Rueppel, suatu sistem kriptografik dikatakan menyediakan kemananan sempurna (atau aman tanpa syarat), jika informasi mutual antara pesan teks terang dan teks sandi yang berkorespondensi adalah nol, yang independen terhadap panjang dari pesan teks terang tersebut. Dalam hal ini semua parameter kriptografis yang digunakan harus aman tanpa syarat adalah dengan spesifikasi sebagai berikut:

1. Kunci yang digunakan untuk menyandikan harus benar-benar acak (trully random).
2. Proses penyandian setiap bit harus independen, artinya penyandian tiap-tiap bit harus saling lepas dan saling bebas (tidak saling mempengaruhi) dengan bit yang lain. Dengan perkataan lain, tidak boleh ada hubungan linier antara bit-bit pada kunci, antara bit-bit pada teks sandi ataupun hubungan linier antara bit-bit kunci dengan bit-bit pada teks sandi. Dalam hal ini, berapapun banyaknya infomasi tentang bit kunci sebelumnya sudah diketahui, tetap tidak ada kemungkinan untuk memprediksi bit kunci selanjutnya.
3. Kunci yang sudah dipakai tidak boleh dipakai lagi (hanya sekali pakai).
4. Kelemahan: secara praktis sulit dilakukan, terutama pembangkitan barisan yang benar-benar acak dalam kurun waktu tak terbatas, proses distribusi kunci yang harus dijamin keamanannya dan cukup dengan komunikasi seminimum mungkin.
5. Contoh sistem yang menyediakan keamanan sempurna adalah One Time Pad (OTP).
6. Solusi: biasa digunakan untuk level kerahasiaan tertinggi dan untuk pesan yang relatif pendek untuk memudahkan proses manajemen kuncinya.

Practical Secrecy: Conditionally Secure

Mengingat aplikasi dari sistem yang aman tanpa syarat relatif sangat sulit, diperlukan suatu sistem yang aman dengan beberapa syarat yang harus dipenuhi namun praktis dalam aplikasinya. Dalam hal ini sistem aman dengan beberapa kondisi dipandang dari aspek kriptografis dan parameter batasan lainnya. Pembatasan atau syarat dari sistem ini diukur dengan beberapa parameter antara lain:

1. Computationally secure, secara komputasi cukup kompleks, sehingga membutuhkan sumber komputasi yang cukup besar untuk memecahkan kunci. Dengan kata lain, pencarian kunci akan berhasil, tetapi dengan waktu yang relatif sangat lama dan telah melebihi masa validasi dari pesan atau bahkan algoritma tersebut.
2. Cryptographically secure, secara kriptografis tetap memenuhi kriteria keamanan dan mempunyai kompleksitas yang besar, sehingga membutuhkan waktu yang relatif lama untuk memecahkan kuncinya. Dalam hal ini Shannon mensyaratkan bahwa sistem harus memenuhi konsep difusi dan konfusi, misalnya: periode kunci panjang dan maksimum, kompleksitas linier yang maksimum dan imunitas yang tinggi terhadap berbagai metode serangan (pendekatan linier, diferensial, korelasi dan lain-lain).
3. Statistically secure, secara statistik dapat dipertanggungjawabkan; misalnya keacakan yang mendekati trully random (atau disebut pseudorandom), entropy yang maksimum dan lain-lain.
4. Contoh: stream cipher, block cipher dan public key.
5. Lebih fisibel untuk diaplikasikan dan lebih mudah dalam pengelolaan kuncinya baik kunci seed (untuk stream/block cipher) atau pun kunci publik/privat untuk aplikasi sistem public key.

2 komentar: