Modifikasi Kriptografi
One Time Pad
(
OTP
)
Menggunakan
Padding
Dinamis dalam Pengamanan
Data
File
Artikel Ilmiah
Peneliti:
Arie Eko Tinikar (672009015) M. A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana
Modifikasi Kriptografi
One Time Pad
(
OTP
)
Menggunakan
Padding
Dinamis dalam Pengamanan
Data
File
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
Untuk memperoleh gelar Sarjana Komputer
Peneliti:
Arie Eko Tinikar (672009015) M. A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana
_______________________________________________________________________________________________________________________________ 1)Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Satya
Wacana, Salatiga.
2)
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga.
3)
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga.
Modifikasi Kriptografi
One Time Pad
(
OTP
)
Menggunakan
Padding
Dinamis dalam Pengamanan
Data
File
1)
Arie Eko T 2)M. A. Ineke Pakereng 3)Alz Danny Wowor Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52 – 60, Salatiga 50711, Indonesia Email : 1) [email protected]
2)
[email protected], 3)[email protected]
Abstract
Properties of symmetric cryptography One Time Pad (OTP), which requires the number of characters key must be a plaintext character along its own weaknesses in its application to relatively large files. Application of padding is needed as one of the solutions that can be used in a symmetric cryptographic processing relatively large files. In this study has developed a padding character that maximize the use of the American Standard Code for Information Interchange (ASCII) as the key generated from the key input is done.
Keywords : Information Security, One Time Pad(OTP), Modified Padding,American Standard Code for Information Interchange (ASCII)
Abstrak
Sifat kriptografi simetris One Time Pad(OTP) yang mewajibkan jumlah karakter key harus sepanjang karakter plaintext menjadi suatu kelemahan tersendiri dalam penerapannya pada file yang relatif besar. Penerapan padding diperlukan sebagai salah satu solusi agar kriptografi simetris dapat digunakan dalam pemrosesan file yang relatif besar. Dalam penelitian ini telah dikembangkan sebuah padding yang memaksimalkan penggunaan karakter American Standard Code for Information Interchange (ASCII) sebagai key yang dibangkitkan dari inputan key yang dilakukan.
Pendahuluan
Sifat kriptografi simetris One Time Pad(OTP) yang mewajibkan jumlah karakter key harus sepanjang karakter plaintext menjadi suatu kekurangan tersendiri dalam penerapannya pada file yang relatif besar. Penerapan padding diperlukan sebagai salah satu solusi agar kriptografi simetris dapat digunakan dalam pemrosesan file yang relatif besar. Dalam penelitian ini telah dikembangkan sebuah padding yang memaksimalkan penggunaan karakter American Standard Code for Information Interchange (ASCII) sebagai key yang dibangkitkan dari inputan key yang dilakukan.
Algoritma OTP sendiri merupakan salah satu kriptografi klasik bersifat simetris yang difungsikan dalam pengamanan informasi dalam berbentuk teks. Penggunaan OTP biasa digunakan untuk mengamankan pesan singkat rahasia yang terdiri hanya beberapa kata atau karakter dengan panjang kunci yang digunakan sama panjang dengan panjang karakter yang akan dienkripsi. Keterbatasan yang diakibatkan sifat OTP yang simetris membuatnya sulit digunakan dalam pengamanan file dalam jumlah besar. Salah satu cara untuk membantu penggunaan OTP dalam pengamanan file yang besar dengan hanya menginputkan beberapa karakter sebagai key adalah mengaplikasikan padding untuk menyamakan panjang karakter key dengan file yang akan dienkripsi.
Penelitian sebelumnya telah dilakukan modifikasi implementasi padding pada algoritma OTP untuk memperpanjang kunci dengan cara mengundi pengulangan keluaran karakter key dengan melakukan modulus sejumlah key pada file text [1]. Hasil penelitian ini menghasilkan padding dengan karakter key yang akan dikeluarkan berulang secara acak sesuai hasil undian dari hasil modulus pada urutan karakter file yang akan dienkripsi. Pada modifikasi tersebut jenis karakter yang digunakan hanya sesuai yang diinputkan, sehingga pada modifikasi tersebut dilakukan pemanjangan kunci sesuai panjang file dengan keterbatasan macam karakter hanya sebanyak yang telah diinputkan.
Penelitian ini akan dilakukan teknik untuk mengembangkan bagaimana sebuah padding yang dilakukan bukan hanya menggandakan key dan merubah polanya, namun juga melibatkan karakter yang terdapat pada American Standard Code for Information Interchange (ASCII) dengan pola mengunakan key yang telah diinputkan. Maka key yang dihasilkan dapat menggunakan beragam karakter yang terdapat pada ASCII dengan menggunakan karakter key yang diinputkan sebagai awalan dan urutan dari ASCII yang akan dikeluarkan.
1. Tinjauan Pustaka
3
dapat digabungkan ke dalam algoritma Advanced Encryption Standard (AES) dalam melakukan enkripsi dan dekripsi, dengan memasukkan OTP ke dalam AES menghasilkan kriptografi baru dengan nama kriptografi OTP AES. Pada kriptografi OTP AES, panjang kunci tidak mempengaruhi lama waktu enkripsi dan dekripsi, ukuran file sebelum dan sesudah enkripsi tidak berubah atau sama, serta spesifikasi komputer mempengaruhi lama waktu proses enkripsi dan dekripsi [2].
Penelitian yang lain dengan judul “Implementasi Modifikasi Kriptografi One Time Pad (OTP) untuk Pengamanan Data File”, membahas modifikasi algoritma OTP pada penyamaan panjang kunci dengan memberikan undian urutan keluar pada tiap karakter kunci. Undian tersebut adalah hasil dari modulo urutan karakter pada plainteks, membuat karakter kunci dikeluarkan dengan urutan pengulangan karakter secara acak [1]. Berdasarkan penelitian terdahulu maka dilakukan penelitian untuk memodifikasi OTP dengan melakukan implementasi padding yang berfungsi untuk menambahkan karakter key dengan ASCII menggunakan karakter key yang ada sebagai awalan. Pada tabel 1 dapat dilihat apa yang telah dikembangkan pada penelitian sebelumnya dan yang telah dikembangkan lagi pada penelitian ini.
Tabel 1 Modifikasi yang Dilakukan
Penelitian Sebelumnya Penelitian ini Farian karakter key terbatas pada
inputan.
Farian karakter key lebih maksimal dengan memanfaatkan ASCII. Key yang digunakan hasil dari
pengundian inputan karakter key.
Karakter key inputan menjadi pola awalan ASCII yang kemudian
berfungsi sebagai key.
Padding dapat diartikan sebagai bantalan atau lapisan, berfungsi sebagai sisipan atau mengisi ruang kosong. Dalam penyimpanan, pengiriman atau pemrosesan file disisipkan beberapa blok data untuk memenuhi ukuran minimum, untuk memaksa bidang-bidang tertentu dari data kontrol atau data pengguna ke posisi ukuran tertentu, atau untuk mencegah dari penduplikasian pola bit yang memiliki arti kontrol tertentu[3].
Kriptografi secara umum merupakan ilmu dan seni untuk menjaga kerahasiaan berita [4]. Kriptografi (cryptography) berasal dari Bahasa Yunani dan terdiri dari dua suku kata, yaitu cryptos yang artinya rahasia (secret) dan writting yang artinya tulisan. Kriptografi kadang diartikan sebagai ilmu dan seni untuk menjaga keamanan pesan. Pengertian yang lain, kriptografi merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, otentikasi data [5]. William Stallings mendefinisikan kriptografi sebagai
“the art and science of keeping messages secure”.
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 [7]. Algoritma ini merupakan algoritma berjenis symmetric key yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara One Time Pad, dimana cipher berasal dari hasil XOR antara bit plaintext dan bit key [8]. Berikut adalah rumusan OTP original:
ci = ( pi+ki ) mod 26 (1)
Dimana:
pi = karakter plainteks
ki = karakter kunci
ci = karakter ciphrtteks
American Standard Code for Information Interchange (ASCII) merupakan kode standar Amerika untuk pertukaran informasi yang akhirnya menjadi standar internasional yang masih dipakai sampai sekarang. Kode-kode tersebut diwujudkan dalam huruf dan simbol yang biasanya digunakan dalam komputer untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 7 bit namun disimpan sebagai sandi 8 bit yang ditambahkan satu angka 0 sebagai signifikan paling tinggi.
2. Metode Penelitian
Perancangan modifikasi padding yang diimplementasikan pada OTP dilakukan dengan tahapan yang ditunjukkan pada Gambar 1.
Gambar 1 Tahap Penelitian
Analisa Kebutuhan
Pengumpulan Data
Perancangan Modifikasi dan Pembuatan Program
Evaluasi
5
Berdasarkan Gambar 1 terdapat lima tahap dalam penelitian yang akan dijelaskan sebagai berikut. Tahap pertama: Analisa kebutuhan, tahap analisa kebutuhan yaitu, melakukan analisa mengenai kebutuhan apa saja yang dibutuhkan dalam perancangan modifikasi ini, dan analisa bagaimana karakter OTP itu sendiri. Tahap kedua: pengumpulan data, dalam tahapan ini dilakukan pengumpulan terhadap data dari jurnal-jurnal terkait, buku, serta sumber mengenai pembahasan terkait penelitian tersebut. Tahap ketiga: Perancangan modifikasi dan Pembuatan Program perancangan modifikasi yang meliputi pembuatan flowchart untuk pengambilan keputusan, serta melakukan analisa-analisa hasil yang dapat diambil dari modifikasi yang telah dilakukan. Tahap keempat: Melakukan implementasi modifikasi ke dalam program, evaluasi terhadap keseluruhan perancangan dan modifikasi yang telah dibuat, apakah sudah berjalan dengan semestinya, jika belum maka dilakukan perbaikan-perbaikan yang diperlukan. Tahap kelima: Penulisan laporan mendokumentasikan proses penelitian yang sudah dilakukan dari tahap awal hingga akhir ke dalam tulisan yang nantinya akan menjadi laporan hasil penelitian.
Pada perancangan ini dilakukan dalam dua proses, yaitu proses enkripsi dan dekripsi. Pada masing-masing proses tersebut harus menyiapkan data(file) dan kunci(key). Secara umum proses enkripsi dapat dilihat pada Gambar 2 dan dekripsi pada Gambar 3.
Gambar 2 Skema Pemrosesan File untuk Enkripsi Secara Umum
Proses enkripsi-dekripsi diawali dengan memilih plaintext untuk enkripsi dan ciphertext untuk dekripsi dan menginputkan key. Kemudian key akan dipisahkan perkarakter, kemudian dilakukan pembacaan panjang plaintext/ciphertext. Selanjutnya key akan diproses dengan penyamaan yang akan berulang sebanyak panjang plaintext/ciphertext untuk menghasilkan key yang sama panjang dengan plaintext/ciphertext.
Gambar 3 Skema Pemrosesan File untuk Dekripsi Secara Umum
Penelitian ini melakukan proses padding ini memerlukan beberapa tahap yang harus dilakukan agar dapat dilaksanakan. Tahapan yang dibutuhkan sebagai berikut:
a. Menyiapkan plaintext yang dikonversi ke kode ASCII
p = {a1, a2, a3,..., an} (2)
b. Menyiapkan key
Yang akan dipisahkan dan dikonversi ke kode ASCII dan kemudian akan dijadikan sebagai patokan awalan pada proses padding.
j = {b1, b2, b3..., bm } (3)
setiap j yang dimasukkan akan dipisah sesuai urutan yang nantinya tiap j akan ditambahkan dengan diproses sebanyak i.
START
Pilih file(ciphertext)
Input kunci(key)
ciphertext XOR cipherkey
plaintext
END
Penambahan ASCII perkarakter
7 c. Persamaan pertama
Panjang ASCII (i) yang ditambahkan pada tiap karakter key.
i ={ c1, c2, c3..., c255 } (4)
d. Menyiapkan fungsi penambahan karakter
Digunakan sebagai fungsi utama untuk membangkitkan key sebagai penambahaan karakter.
pa = jb + i (5)
e. Menyiapkan fungsi pembatasan Jika pa ≤255 = pa
Jika pa >255 = pa –256 (6)
Gambar 4 Skema Padding yang Dilakukan
Pada Gambar 4 ditunjukkan bagaimana jalannya proses pembacaan dan penambahan karakter berlangsung. Setelah tahap persiapan selesai, maka proses pengecekan dan padding akan dijelaskan sebagai berikut:
1) Pertama adalah memilih plaintext yang akan diproses, kemudian dibaca berapa panjang karakternya.
p ={ a1, a2, a3,..., an} (7) START
Memisahkan karakter key
Mengambil karakter plainkey
Penambahan ASCII perkarakter
pa = jb + i
Cipherkey
END
2) Inputkan key yang masing-masing akan dikonversi menjadi kode ASCII dan dipisahkan sesuai urutan inputan.
j ={ b1, b2, b3..., bm} (8)
3) Menggunakan fungsi Persamaan karakter dengan tiap satu karakter key yang akan diproses sebanyak i dan akan dilakukan bergilir pada karakter berikutnya sesuai urutan inputan.
pa = jb + i (9)
Fungsi ini akan berjalan total sebanyak f untuk menghasilkan cipherkey dengan karakter sebanyak f.
4) Jika hasil dari pa = jb + i lebih besar dari 255, maka hasilnya akan di
kurangi dengan 256 agar hasil yang didapat tidak melebihi batasan pada ASCII.
3. Hasil dan Pembahasan
Algoritma OTP yang telah dimodifikasi dengan penambahan padding, dilakukan pengujian terhadap enkripsi dan dekripsi yang diimplementasikan pada file. Percobaan berikut ini digunakan file dengan format .txt yang berukuran 362 KB, key yang digunakan yaitu “FTI”. Isi file dapat dilihat pada Gambar 5.
Gambar 5 Isi File uji.doc
9
Gambar 6 Waktu yang Dibutuhkan Enkripsi
Pada Gambar 7 dapat terlihat hasil enkripsinya pada tiga halaman pertama yang tidak dapat terbaca dan tiap halaman hanya menampilkan beberapa karakter saja.
Gambar 7 Isi Ciphertext Hasil Enkripsi
Gambar 8 Waktu yang Dibutuhkan Dekripsi
Gambar 9 File Hasil Dekripsi
Sebagai contoh akan melakukan paddingpada nama “Arie Eko Tinikar.” sebagai file yang terdiri atas 17 karakter, dan “fti” berfungsi sebagai key yang terdiri atas 3 karakter yang akan ditunjukan sebagai berikut.
file = Arie Eko Tinikar. key = fti
Pertama dilakukan pemisahan pada masing-masing karakter key dengan pengambilan sesuai masukan inputan key yang ditunjukan pada Tabel 2.
Tabel 2 Pemisahan Key
Karakter F T I
Urutan masukan file
11
Kemudian dilakukan pembacaan pada panjang ciphertext untuk menentukan berapa kali fungsi akan dijalankan untuk menyamakan hasil panjang plainkey.
Tabel 3 KarakterPanjang File
A r i E E k o T i n i k a r . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Diambil karakter key sesuai urutan inputan, dimulai dari karakter “ f “ dan ditambahkan kode ASCII. Penambahan dilakukan dengan awalan karakter key yang telah diambil terlebih dahulu dengan kode ASCII f adalah 102 maka akan ditambahkan dan dihasilkan karakter baru sebanyak 255 seperti yang ditunjukan pada Tabel 4. Jika hasil dari penambahan kode lebih dari 255 maka akan dikurangi 256 agar kode yang dihasilkan masih dalam ketentuan ASCII yaitu mulai dari 0 sampai dengan 255.
Tabel 4 Proses Penambahan
f = 102 Penambahan
Gambar 10 Contoh Penambahan ASCII Secara Penuh
Karena proses dilakukan sebanyak karakter yang dimiliki oleh ciphertext, maka proses akan terhenti secara otomatis setelah karakter yang dihasilkan sudah sejumlah karakter pada ciphertext, seperti yang ditunjukan pada Tabel 5.
Tabel 5 Tabel Hasil Padding
A R i e E k o T i n i k a r . f G h i j k l m n o p q r s t u v
13
Gambar 11 Diagram Perbandingan Waktu Enkripsi
Berdasarkan Gambar 11 menunjukan perbandingan kecepatan proses enkripsi. Pada Tabel 6 dapat dilihat perbedaan rasio perbandingan dari hasil pada pemrosesan sepuluh file yang mempunyai beban isi yang berbeda. Nilai rasio ditentukan oleh selisih waktu yang dibutuhkan dalam satuan detik yang dibutuhkan tiap beban file, dan selisih memori beban file dalam satuan KB. Berikut sebagai contoh perhitungan rasio pada data pertama.
beban file = 127 KB waktu = 5,368 second 5,368
127 = 0,0422
Tabel 6 Nilai Rasio pada Proses Enkripsi
Beban file ModifikasiBaru ModifikasiLama
Gambar 12 Diagram Perbandingan Dekripsi
Pada Gambar 12 dapat dilihat perbedaan waktu dari hasil pada pemrosesan deskripsi sepuluh file yang mempunyai beban yang berbeda. Pada Tabel 7 dapat dilihat detail rasio pada tiap beban data yang diujikan pada proses dekripsi. Nilai rasio ditentukan oleh selisih waktu yang dibutuhkan dalam satuan detik yang dibutuhkan tiap beban file, dan selisih memori beban file dalam satuan KB. Berikut sebagai contoh perhitungan rasio pada data
Tabel 7 Nilai Rasio pada Proses Dekripsi
Beban file ModifikasiBaru Modifikasi Lama
15
Perbandingan waktu dekripsi pada modifikasi yang lama lebih cepat, selisih waktu ini diakibatkan karena adanya perbedaan proses pembangkitan kunci yang dilakukan. Pada padding yang dikembangkan sebelumnya membangkitkan key terbatas pada inputan jenis karakter key yang berjumlah sesuai inputan user tanpa harus memanggil karakter lain di luar inputan, sedangkan pada penelitian ini key yang dibangkitkan menggunakan seluruh karakter pada ASCII yang membuat tiap karakkter key melakukan penambahan dan pembacaan sebanyak 255 kali agar dapat memenuhi 256 karakter, sehingga membuat kinerja proses sedikit lebih berat dari yang sebelumnya.
4. Simpulan
Modifikasi padding yang diimplementasikan pada kriptografi OTP dengan menggunakan ASCII sebagai sisipan pada kunci untuk menyamakan panjang key dan ciphertext telah mampu menghasilkan farian key yang maksimal digunakan dalam proses enkripsi-dekripsi file berukuran besar. Inputan karakter key digunakan sebagai pola keluaran ASCII. Selisih waktu yang dihasilkan dari hasil proses enkripsi-dekripsi pada perbandingan kecepatan proses menunjukan bahwa proses sedikit lebih lama dibandingkan dengan penelitian sebelumnya, hal ini diakibatkan adanya perbedaan proses pembacaan dan pemanggilan pada pembangkitan kunci.
5. Daftar Pustaka
[1] Febryan C.W. 2014. Implementasi Modifikasi Kriptografi One Time Pad (OTP) untuk Pengamanan Data File. Salatiga: Skripsi S1 Universitas Kristen Satyawacana.
[2] I. R. Widiasari, “Combining Advanced Encryption Standard (AES) and
One Time Pad (OTP) Encryption for Data Security,” International
Journal of Computer Applications, vol. 57, no. 20, pp. 1-8, 2012.
[3] Bernadette, S. 2006. Webster's New World Hacker Dictionary. Santa Barbara, California:ABC-CLIO.
[4] Schneier, Bruce, 1996, Applied Cryptography, Second Edition, New York: John Wiley and Sons.
[5] Menezes, Alfred J., van Oorschot, Paul C., dan Vanstone, Scott A., 1997, Handbook of Applied Cryptography, Florida: CRC Press.
[6] S. P. Agustanti, “PENGAMANAN KUNCI ENKRIPSI ONE-TIME
PAD (OTP) MENGGUNAKAN ENKRIPSI RSA,” Jurnal Media Teknik, vol. 7, no. 1, pp. 95-100, 2010.
[7] N. Nagaraj, “One-Time Pad as a nonlinear dynamical system,” Communications in Nonlinear Science and Numerical Simulation, vol. 17, no. 11, pp. 4029-4036, Nov. 2012.