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, 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.