Sabtu, 16 November 2013

Metode Enkripsi One-Time Pad (OTP)

Metode Enkripsi One-Time Pad (OTP)
Dalam dunia kriptografi dikenal sebuah metode penyandian yang sangat kuat sehingga tidak mudah dipecahkan, yaitu metode penyandian One Time Pad (OTP). Metode penyandian OTP pertama kali diperkenalkan oleh Gilbert Vernam dalam perang dunia pertama.
Metode penyandian OTP merupakan salah satu variasi dari metode penyandian substitusi dengan cara memberikan syarat-syarat khusus terhadap kunci yang digunakan yaitu terbuat dari karakter / huruf yang acak (kunci acak atau pad), dan pengacakannya tidak menggunakan rumus tertentu.
Jika kunci tersebut benar-benar acak, digunakan hanya sekali, serta terjaga kerahasiannya dengan baik, maka metode penyandian OTP ini sangat kuat dan tidak dapat dipecahkan.
Dalam kriptografi klasik, yaitu kriptografi jaman dulu yang dikenal dengan sebutan kriptografi kertas dan pensil, teks sandi dari metode penyandian OTP ini diperoleh dengan menjumlahkan / mengurangkan teks aslinya terhadap kunci. Penggunaan kunci ini hanya dan harus hanya sekali pakai. Sedangkan untuk mendapatkan kembali teks aslinya dilakukan pengurangan / penjumlahan teks sandi terhadap kunci tersebut, sebagai kebalikan dari proses menyandi.
Untuk memudahkan dalam operasionalnya huruf-huruf diterjemahkan dahulu kedalam angka 1 sampai 26 dengan A = 1; B = 2; dst sampai Z = 26. Dan dalam perhitungan aljabarnya berupa bilangan modulus 26.
Untuk memudahkan pemahaman, bisa diperhatikan contoh berikut :
Kunci acak :
FGHJV
Pesan yang akan disandi :
DUNIA 
Algoritma : Teks sandi = Teks asli + Kunci
Proses :
Penjumlahan ini dengan bilangan modulus 26
Kunci :                            F= 6            G= 7                  H= 8      J=10      V =22 
Teks Asli/ Plaintext :         D= 4            U=21                 N=14     I= 9       A = 1 
Teks Sandi/Chippertext  :  (6 +4)=10=J  (7+21-26)=2=B  22=V     19=S      23=W 
Teks sandi hasil penyandian :
JBVSW
Metode penyandian OTP ini kekuatannya bertumpu pada keacakan kuncinya, sehingga kunci yang digunakan untuk proses penyandian tersebut harus dilindungi dengan baik. 
Metode enkripsi one-time pad merupakan salah satu golongan metode enkripsi kunci simetris, kategori stream cipher. Metode ini sering disebut Vernam Cipher, yang merupakan metode enkripsi kunci simetris yang tidak terpecahkan (unbreakable by exhaustive search). Metode enkripsi one-time pad merupakan metode yang sempurna (perfect methods) yang paling sederhana.
Metode ini disebut sebagai perfect methods karena beberapa hal, yaitu:
1.      Tidak mungkin bisa dipecahkan dengan melakukan perhitungan matematis.
2.      Tidak mungkin ada dua buah pesan (plaintext) yang berbeda menjadi dua buah ciphertext yang sama.( karena seperti contoh di atas huruf B pada teks sandi bisa didapat dari penjumlahan dengan hasil 2 dan 28)
Metode enkripsi one-time pad memiliki beberapa sifat, yaitu :
1.      Kunci yang digunakan hanya diketahui oleh pengirim dan penerima informasi / pesan.
2.      Kunci dibuat dengan menggunakan PRNG (Pseudo-Random Number Generator) dan bersifat acak, meskipun keadaan proses pembuatan kunci diketahui.
3.      Panjang kunci yang sama dengan panjang pesan.
4.      Kunci hanya digunakan untuk satu kali proses enkripsi (session key).
Metode enkripsi one-time pad disebut metode yang aman dan tidak mungkin dipecahkan karena ada beberapa hal, yaitu :
1.      Plaintext, ciphertext, dan kunci merupakan rangkaian huruf (string) dengan panjang tertentu dan hasil enkripsi berupa ciphertext, yang merupakan hasil XOR plaintext dengan kunci.
2.      Kunci hanya digunakan untuk satu kali proses enkripsi dan setelah kunci selesai digunakan, kunci segera dihancurkan atau dibuang.
3.      Mudah dibuktikan secara matematis, dimana pada metode ini no-nontrivial single ciphertext attacks, diasumsikan pendistribusian kunci secara seragam.
Metode one-time pad atau Vernam Cipher tidak akan bisa dipecahkan apabila digunakan dengan tepat. Apabila setiap karakter pada kunci benar – benar acak, kriptanalis hanya bisa mencoba setiap kunci yang mungkin untuk setiap posisi ciphertext. Proses ini merupakan proses tanpa arti, karena ini sama dengan mencoba semua pesan yang mungkin, yang bisa dienkrip oleh kunci. Sebagai contoh, dengan panjang kunci 14 karakter atau 14 byte = 112 bit, jumlah pesan yang mungkin adalah pada daerah 2112. Ciphertext tidak bisa menyediakan penunjuk, yang mana dari kemungkinan – kemungkinan tersebut merupakan pesan yang sebenarnya.
Algoritma enkripsi-dekripsi dalam metode OTP  :
1.      Plaintext diubah ke dalam bentuk bit sehingga P : {0, 1} l , dimana l adalah panjang pesan dalam bit
2.      Bentuk bilangan random biner sebanyak panjang pesan untuk menjadi kunci. K : {0, 1}l, dimana K adalah kunci
3.      Chipertext didapat dengan melakukan exclusive or (XOR) dari P dan K.
Secara matematik maka
C = Enc(K, P) = P K, dimana “” adalah lambang XOR.
P = Dec(K,C) = C K = ((P K) K) = (P (K K)) = P
Operasi XOR :
 0 = 0,        0 ⊕ 1 = 1,        1 ⊕ 0 = 1,         1   1 = 0  
Rancangan sistem enkripsi an dekripsi dengan algoritma OTP diperlihatkan pada langkah berikut:


Perancangan Sistem dan Penerapannya
Rancangan sistem enkripsi an dekripsi dengan algoritma OTP diperlihatkan pada langkah berikut:
1. Mengambil berkas text dengan ukuran tertentu.
2. Membentuk berkas kunci yang berukuran sama dengan ukuran berkas masukan.
3. Melakukan enkripsi dengan melakukan proses XOR pada berkas masukan dan berkas kunci yang sudah diubahkan ke dalam bentuk ASCII.
4. Berkas chipertext didapat dengan melakukan konversi hasil proses XOR enkripsi ke dalam bentuk berkas text.
5. Proses dekripsi dilakukan dengan proses yang sama tetapi dengan melakukan proses XOR antara chipertext

dengan berkas kuncinya.

Tidak ada komentar: