One Time Pad

One Time Pad adalah salah satu contoh metode kriptografi dengan algoritma jenis simetri. Ditemukan pada tahun 1917 oleh Major Yoseph Mouborgne dan Gilbert Vernam pada perang dunia ke dua. Metode ini telah diklaim sebagai satu-satunya algoritma kriptografi sempurna yang tidak dapat dipecahkan.

Suatu algoritma dikatakan aman, apabila 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. Algoritma One Time Pad adalah salah satu jenis algorima simetri (konvensional).


Jumlah kunci sama panjangnya dengan jumlah plaintext. Jika anda ingin agar ciphertext sulit untuk di pecahkan maka pemakaian kunci seharusnya :
* Jangan gunakan kunci yang berulang
* Pilihkan kunci yang random

Rumus melakukan One Time Pad ini yaitu :
Enkripsi : E(x) = (P(x) + K(x) ) Mod 26
Dekripsi : D(x) = (C(x) - K(x) ) Mod 26

CARA I
Pemakaian One Time Pad digunakan pada sederetan abjad A..Z dengan memberikan nilai urutan abjad yaitu A=0, B=1, C=2, D=3, E=4 ..sampai Z.
Contoh Enkripsi Pesan :

Pesan : ZENSHIFU
Kunci : OTIMEPAD

maka perhatikan langkahnya seperti di bawah ini :

Plaintext 25(Z) 4(E) 13(N) 18(S) 7(H) 8(I) 5(F) 20(U)
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
-------------------------------------------- +
Hasil mod 26 13 23 21 4 11 23 5 23
Chipertext N X V E L X F X

Jadi Chipertext yang di hasilkan yaitu : NXVELXFX

Dekripsi pesan, perhatikan langkah di bawah ini

Chipertext 13(N) 23(X) 21(V) 4(E) 11(L) 23(X) 5(F) 23(X)
Kunci 14(O) 19(T) 8(I) 12(M) 4(E) 15(P) 0(A) 3(D)
------------------------------------------------ -
Hasil mod 26 25 4 13 18 7 8 5 20
Plaintext Z E N S H I F U

Jadi Plaintext yaitu : ZENSHIFU

Encrypt One Time Pad
Decrypt One Time Pad

Untuk mempermudah pemahaman dan melihat algoritmanya, maka saya menggunakan yang gampang-gampang aja, yaitu dengan memanfaatkan Ms. Excel. File One Time Pad on Excel tersebut bisa di download. Disitu bisa merubah plaintext, chipertext maupun kuncinya. Klik aja linknya :D Dengan algoritma ini, enkripsi dekripsi one time pad bisa diterapkan dalam bahasa pemrograman apapun, baik visual basic, php, delphi maupun java. Karena intinya adalah merubah character ke desimal kemudian melakukan perhitungan dan mod. Lalu hasilnya mengembalikannya lagi dari desimal ke character. Saya pernah membuat program one time pad menggunakan visual basic dengan algoritma yang sama.


CARA II
Cara yang ini lebih simple, karena urutan hurufnya merupakan bilangan desimal yang sesuai dengan standard internasional, yaitu sesuai dengan ASCII Table. Bisa dilihat di http://www.asciitable.com/. Namun prinsipnya sama saja yaitu melakukan penjumlahan kemudian mod 26 untuk encrypt, dan melakukan pengurangan kemudian mod 26 untuk decrypt. Semuanya ada di dalam File One Time Pad on Excel.

Algoritma One Time Pad nya adalah :
1. Merubah huruf-huruf (Character) tersebut menjadi bilangan desimal.
Function yang digunakan : CODE(Character)
2. Melakukan penjumlahan jika Enkripsi, dan melakukan pengurangan jika dekripsi
3. Hasil pengurangan atau penjumlahan di mod 26
Function yang digunakan : MOD(Bilangan;26)
4. Hasilnya dikembalikan lagi menjadi Huruf / Character
Function yang digunakan : CHAR(Bilangan)

Enkripsi One Time Pad




Dekripsi One Time Pad