• Tidak ada hasil yang ditemukan

Keamanan Algoritma Kriptograf

TINJAUAN PUSTAKA

2.4 Keamanan Algoritma Kriptograf

Sebuah algoritma kriptografi dikatakan aman (computationally secure) bila ia memenuhi tiga kriteria berikut :

1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.

2. Biaya untuk memecahkan ciphertext melampaui nilai informasi yang terkandung di dalam ciphertext tersebut.

3. Waktu yang diperlukan untuk memecahkan ciphertext melampaui lamanya 4. Waktu informasi tersebut harus dijaga kerahasiaannya.

2.5 One Time Pad

Algoritma One Time Pad (OTP) merupakan algoritma berjenis symetric key yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher yang berasal dari hasil XOR antara bit plaintext dan bit key. Pada metode ini plain text diubah kedalam kode ASCII dan kemudian dikenakan operasi XOR terhadap kunci yang sudah diubah ke dalam kode ASCII.

(pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Aslinya, satu buah one time pad adalah sebuah pita (tape) yang berisi barisan karakter-karakter kunci. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan supaya tidak dipakai kembali untuk mengenkripsi pesan yang lain. Aturan enkripsi yang digunakan persis sama seperti pada Cipher Vigenere. Pengirim pesan menggunakan setiap karakter kunci untuk mengenkripsikan satu karakter plaintext. (Munir, 2006)

Enkripsi dapat digambarkan sebagai penjumlahan modulo 26 dari satu karakter plainteks dengan satu karakter kunci one time pad. Secara matematis proses ini dapat dijelaskan dengan persamaan berikut : (Mollin, 2007)

ci = (pi + ki) mod 26 ... (10)

keterangan :

pi : karakter plainteks ki : karakter kunci ci : karakter Cipherteks

Setelah pengirim mengenkripsikan pesan dengan one time pad, ia menghancurkan one time pad tersebut (makanya disebut satu kali pakai atau one time). Penerima pesan menggunakan one time pad yang sama untuk mendekripsikan karakter-karakter cipherteks menjadi karakter-karakter plainteks dengan persamaan:

Suatu algoritma dikatakan bagus keamanannya, apabila belum ada atau tidak ada cara untuk menemukan plaintext-nya. Sampai saat ini, hanya algoritma One Time Pad (OTP) yang dinyatakan tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas.

Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan masing- masing karakter pada plaintext dengan satu karakter pada kunci. Oleh karena itu, panjang kunci setidaknya harus sama dengan panjang plaintext. Secara teori, adalah hal yang tak mungkin untuk mendeskripsi ciphertext tanpa mengetahui kuncinya.

Sebab jika kunci yang digunakan salah, akan diperoleh hasil yang salah juga, atau bukan plaintext yang seharusnya. Kemudian setiap kuncinya hanya boleh digunakan untuk sekali pesan. Pengambilan kunci harus dilakukan secara acak supaya tidak dapat diterka lawan dan jumlah karakter kunci harus sebanyak jumlah karakter pesan.

Contoh : Plainteks : MESRAN Kunci : ALDYAN Maka Plainteks : M E S R A N Kunci : A L D Y A N Hasil : M P V P A A

Fungsi untuk mengenkrip pesan juga dapat dilakukan dengan cara meng-XOR-kan plaintext dengan kunci yang telah disiapkan untuk menghasilkan ciphertext

Sedangkan fungsi untuk mendekripsi tinggal meng-XOR-kan ciphertext dengan kunci yang sudah disepakati

contohnya :

Sebuah plaintext yaitu RUSDI dan memiliki sebuah kunci yaitu CRASH. Perlu diingat panjang kunci harus sama dengan plaintext dan sebaiknya tidak ada karakter yang diulang.

Pertama kita harus mendapatkan kode ASCII dari plaintext kemudian diubah ke bentuk biner.

Karakter ASCII Biner

R 82 0101 0010

U 85 0101 0010

S 83 0101 0011

D 68 0100 0100

I 73 0100 1001

Hal yang sama juga harus dilakukan pada kunci yang dipilih.

Karakter ASCII Biner

C 67 0100 0011 R 82 0101 0010 A 65 0100 0001 S 83 0101 0011 H 72 0100 1000

Setelah itu masing-masing karakter di XOR-kan dengan Key

R = 0101 0010 U = 0101 0101 S = 0101 0011 D = 0100 0100 I = 0100 1001 C = 0100 0011 R = 0101 0010 A = 0100 0001 S = 0101 0011 H = 0100 1000 XOR --- Cipher: 0001 0001 0000 0111 0001 0010 0001 0111 0000 0001 --- ASCII : Ctrl-Q Ctrl-G Ctrl-R Ctrl-W Ctrl-A

Proses dekripsi pesan juga melakukan operasi yang sama yaitu XOR antara Cipher dengan key. Cipher: 0001 0001 0000 0111 0001 0010 0001 0111 0000 0001 Key : 0100 0011 0101 0010 0100 0001 0101 0011 0100 1000 XOR --- Plain : 0101 0010 0101 0101 0101 0011 0100 0100 0100 1001 --- ASCII : R U S D I 2.6. Manajemen Kunci

Proses pembuatan kunci sangat penting dan sebaiknya harus benar-benar acak. Sumber acak dapat diambil dari berbagai kejadian (events) yang muncul secara acak. Aplikasi kriprografi dapat menggunakan random number generator yang disediakan operating system untuk pmbuatan kunci, akan tetapi ini sebaiknya dilakuan jika random number generator yang disediakan cuku acak. (Kromodimoeljo, 2010)

Kunci adalah parameter yang digunakan untuk melakukan transformasi enkripsi dan dekripsi. Karenanya kunci perlu dilindungi selama fase kebaradaannya. Siklus kunci sendiri dimulai dari pembangkitan kunci (generation) sampai kunci tidak diperlukan lagi untuk kemudian dihancurkan (destruction). Secara garis besar, siklus digambarkan sebagai berikut: (Munir, 2006)

Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di dalam daur hidupnya. Pada umumnya setiap kunci akhirnya diganti dengan kunci lain. Jadi, keseluruhan fase membentuk siklus (lingkaran) karena penghancuran kunci biasanya diikuti dengan penggantiannya dengan kunci baru (garis putus-putus). (Munir, 2006)

Pada tahapan pembangkitan kunci adalah bagaimana membuat kunci yang tidak dapat diprediksi. Pada algoritma kunci-publik, pembangkitan kunci merupakan masalah tersendiri, karena pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu, pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci. Oleh karena itu, pada algoritma kunci-publik dibutuhkan program khusus untuk membangkitkan kunci. Pembangkitan kunci pada algoritma simetri jauh lebih mudah daripada pembangkitan kunci pada algoritma kunci-publik. Karena kunci simetri umumnya terdiri dari rangkaian bit atau rangkaian karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri.

Pada tahapan penyebaran kunci, protokol kriptografi dapat digunakan untuk mendistribusikan kunci. Sementara pada tahapan penyimpanan kunci, kunci harus disimpan di tempat yang aman yang tidak memungkinkan pihak lawan untuk mengaksesnya. Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik.

Pada tahapan penyimpanan kunci, kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah ini. Pertama, kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Kedua, kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat terpisah.

Pada tahapan penggunaan kunci, Sistem kriptografi harus mempunyai kemampuan untuk mengubah kunci. Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya dimata penyerang. Setiap kunci seharusnya diubah jauh sebelum dapat ditemukan.

Pada fase penghancuran kunci, Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara yang aman, sehingga ia tidak mungkin ditemukan kembali secara fisik maupun secara elektronik.

Dokumen terkait