Artikel Ilmiah
Peneliti :
Febryan Christy Winaryo (672009082)
Alz Danny Wowor, S.Si., M.Cs.
Indrastanti R. Widiasari, M.T.
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh gelar Sarjana Komputer
Peneliti :
Febryan Christy Winaryo (672009082)
Alz Danny Wowor, S.Si., M.Cs.
Indrastanti R. Widiasari, M.T.
ii
iii
iv
1)
Electronic and digital media has become a trend to transmit information both public and
confidential. To maintain the security of data sent diperlukkan special security. Security
in this study using the algorithm One Time Pad (OTP) which is modified by doing three
times the process and use bit shifting to the key and the plaintext. The key to the process
that generated the second and the third increased by characters in plaintext. The results
of this study are cryptographic techniques that can be applied to the security file in a text.
Keywords : Cryptography, One Time Pad (OTP), Bit Shifting.
Abstrak
Media elektronik dan digital sudah menjadi tren untuk mengirimkan informasi baik yang
bersifat umum maupun rahasia. Untuk menjaga keamanan data yang dikirim diperlukan
pengamanan khusus. Pengamanan dalam penelitian ini menggunakan algoritma One Time
Pad (OTP) yang dimodifikasi dengan melakukan tiga kali proses dan menggunakan bit
shifting pada kunci dan plainteks. Kunci pada proses kedua dan ketiga digenerate agar
bertambah sebanyak karakter dalam plainteks. Hasil dari penelitian ini adalah teknik
kriptografi yang dapat diaplikasikan pada pengamanan file berbasis teks.
Kata Kunci : Kriptografi, One Time Pad, Bit Shifting.
1
1)
1.
Pendahuluan
Saat ini orang lebih suka menggunakan media elektronik seperti email dan
digital untuk saling bertukar informasi. Informasi yang dibagikan tidak hanya
informasi umum saja tetapi juga informasi rahasia. Dalam bertukar informasi yang
bersifat rahasia dibutuhkan keamanan agar informasi rahasia tidak jatuh ke pihak
yang tidak berhak. Disinilah kriptografi berperan menjaga informasi-informasi
rahasia tersebut agar pengguna atau pihak yang berhak saja yang dapat
mengetahui informasi tersebut.
Salah satu darialgoritma kriptografi yang dapat digunakan adalah One Time
Pad (OTP). OTP memiliki keunggulan dalam melakukan proses enkripsi dan
dekripsi yaitu setiap karakter dalamkunci digunakan untuk mengenkripsi dan
mendekripsi setiap karakter dalam plainteks [1]. Hal ini membuat kriptanalis
kesulitan dalam menemukan plainteks asli jika kunci yang digunakan adalah kunci
yang acak.
Sisi yang lain, OTP memiliki kelemahan dalam penggunaannya untuk
melakukan enkripsi dan dekripsi yaitu OTP hanya cocok digunakan untuk
melakukan enkripsi dan dekripsi pesan yang berukuran kecil atau pesan singkat
saja [1]. Hal ini dikarenakan panjang kunci yang digunakan harus sama dengan
panjang pesan, sehingga semakin besar panjang pesan akan berakibat semakin
besar pula panjang kunci. Hal ini juga menyebabkan OTP menjadi tidak praktis
jika digunakan / diimplementasikan ke dalam aplikasi / program kriptografi.
Penelitian ini memodifikasi OTP agar dapat melakukan enkripsi dan
dekripsi file, dan mengatasi masalah penggunaan kunci dalam enkripsi dan
dekripsi dengan menggunakan bit shifting untuk mengubah kunci secara acak,
menggenerate kunci supaya dapat bertambah sejumlah karakter dalam file dan
menambah proses enkripsi dan dekripsi serta membuat aplikasi agar OTP dapat
diimplementasikan untuk melakukan enkripsi dan dekripsi file khususnya file
bertipe txt, doc, docx, dan pdf.
2.
Tinjauan Pustaka
memegang peranan penting dalam strategi peperangan yang terjadi dalam sejarah
manusia, mulai dari sistem kriptografi Caesar Chiper yang terkenal pada
zaman Romawi kuno [5].
Sebuah sistem kriptografi dikatakan sudah terpenuhi jika sudah memenuhi
kondisi dari lima tuple (five-tuple), yaitu P, C, K, E, D[6]:
1. P adalahhimpunanberhinggadariplainteks.
2. C adalahhimpunanberhinggadaricipherteks.
3. K merupakanruangkunci (keyspace), adalahhimpunanberhinggakunci.
4. Untuk setiap
, terdapat aturan enkripsi
dan berkorespodensi
dengan aturan dekripsi
. Setiap ek : P C dan dk : C P adalah
fungsi sedemikian hingga dk(ek( x )) = x untuk setiap plainteks
.
Beberapa terminologi yang umum digunakan dalam kriptografi adalah
pesan, plainteks, dan cipherteks. Pesan (message) atau yang juga disebut dengan
plainteks merupakan data atau informasi yang dapat dimengerti maknanya. Pesan
dapat berupa citra (image), suara (audio), dan video, atau berkas biner lainnya.
Sedangkan cipherteks adalah hasil dari pesan yang sudah disandikan [1].
Proses penyandian yang merubah pesan dari yang dapat dimengerti
(plainteks) menjadi yang tidak dapat dimengerti (cipherteks) disebut enkripsi.
Sedangkan proses kebalikannya disebut dekripsi.
(1)
Dimana :
= cipher teks
Ci
Pi
= plainteks
= kunci
Ki
(2)
: SATYAWACANA
: UNIVERSITAS
: MNBTENSKTNS
mod 26 = M
mod 26 = N
mod 26 = B
mod 26 = T
mod 26 = E
mod 26 = N
mod 26 = S
mod 26 = K
mod 26 = T
mod 26 = N
mod 26 = S
mod 26 = S
mod 26 = A
mod 26 = T
mod 26 = Y
mod 26 = A
mod 26 = W
mod 26 = A
mod 26 = C
mod 26 = A
mod 26 = N
mod 26 = A
Kelebihan dari algoritma One Time Pad adalah sistem One Time Pad tidak
dapat dipecahkan, karena [1]:
1. Barisan kunci acak yang ditambahkan ke pesan plainteks yang tidak acak
menghasilkan cipherteks yang seluruhnya acak.
2. Beberapa barisan kunci yang digunakan untuk mendekripsi cipherteks
mungkin menghasilkan pesan-pesan plainteks yang mempunyai makna,
sehingga kriptanalis tidak punya cara untuk menentukan plainteks mana yang
benar.
Sedangkan bit shifting adalah operasi yang dilakukan pada semua bit dari
nilai biner di mana mereka dipindahkan oleh sejumlah tempat-tempat yang
ditentukan ke kiri ataupun ke kanan. Bit shifting digunakan ketika operan sedang
digunakan sebagai rangkaian bit daripada sebagai keseluruhannya. Dengan kata
lain, operan diperlakukan sebagai bit individu yang berdiri sebagai sesuatu hal dan
bukan sebagai suatu nilai. Bit shifting sering digunakan dalam pemrograman dan
memiliki setidaknya satu variasi dalam setiap bahasa pemrograman. Bit shifting
mungkin juga dikenal sebagai operasi bitwise [7].
Ada dua variasi bit shifting, bergeser ke kanan dan bergeser ke kiri, dan itu
lebih ditentukan oleh jumlah tempat di mana pergeseran harus terjadi. Sebagai
contoh, menggeser operan satu nilai ke kiri atau menggeser bit sebesar n ke
kanan. Ada juga dua jenis bit shifting, logical dan arithmetics. Logical bit shifting
mungkin berguna untuk mengalikan atau membagi integer tidak bertanda dengan
dua. Misalnya, jika nilai "0001" atau "1" digeser kiri, akan menjadi "0010" atau
"2", digeser ke kiri lagi menjadi "0100" atau "4". Pergeseran ke kanan memiliki
efek berlawanan dari membagi nilai dengan dua tiap pergeseran. Dalam
kebanyakan kasus, pergeseran diberlakukan secara melingkar sehingga ketika
bergeser ke kiri, nilai paling kiri menjadi nilai paling kanan, dan sebaliknya [7].
3.
Plain File
>10 KB
Baca Sebanyak 10 KB
Memasukkan ke File
Hasil
Alokasi Memori
Sebanyak Sisa
Sisa > 10 KB
Selesai
Plain File
Key
Binerisasi
Binerisasi
Geser Kiri
Geser Kanan
Plain File1
Key1
Plain File2
Key1
Binerisasi
Binerisasi
Geser Kiri
Geser Kanan
Plain File3
Key2
Plain File4
Key2
Binerisasi
Binerisasi
Geser Kiri
Geser Kanan
Plain File5
Key3
apakah Plainfile5 lebih besar dari Key3, apabila benar maka akan dilakukan
proses Plainfile5 mod Key3 kemudian Plain File5 XOR Key3. Apabila
Plainfile5 lebih kecil atau sama dengan Key3 maka akan dilakukan proses
Plainfile5 XOR Key3.
6. Hasil dari XOR Plainfile5 disebut Plainfile6, kemudian Plainfile6 di mod 256
sehingga dihasilkan Cipherfile.
Setelah melakukan proses enkripsi, perlu dilakukan proses dekripsi yaitu
proses pengembalian file dalam bentuk file awal dan kunci awal. Dekripsi juga
bertujuan sebagai proses yang digunakan sebagai tolok ukur keberhasilan proses
enkripsi. Berikut ini merupakan langkah-langkah skema dekripsi file yang terdapat
pada Gambar 5:
1. Menyiapkan Cipherfile hasil proses enkripsi.
2. Melakukan identifikasi ukuran file, apakah lebih dari 10 KB atau tidak.
Apabila lebih dari 10KB, maka maka file akan diproses secara berkala, mulamula 10 KB terlebih dahulu kemudian buat file dekripsinya. Apabila file sisa
hasil dekripsi berukuran lebih dari 10 KB maka proses dekripsi akan
dilakukan kembali sampai sisa hasil dekripsi tidak ada lagi. Pembacaan
ukuran sebesar 10 KB ini digunakan untuk memudahkan dalam proses
dekripsi dengan tahapan per prosesnya 10 KB.
3. File hasil dekripsi ini kemudian dimasukkan dalam file hasil.
Untuk penjelasan lebih lanjut dapat dilihat pada Gambar 5 :
Start
Chiper File
>10 KB
Baca Sebanyak 10 KB
Memasukkan ke File
Hasil
Alokasi Memori
Sebanyak Sisa
Sisa > 10 KB
Selesai
Chiper File
Key
Binerisasi
Geser Kanan
Chiper File1
Key1
Chiper File1 XOR Key3
Binerisasi
Chiper File2
Geser Kanan
Binerisasi
Key2
Geser Kanan
Binerisasi
Geser Kanan
Chiper File3
Key3
Y
Plain File
1.
2.
3.
4.
5.
6.
7.
8.
9.
4.
yang dibangun untuk melakukan enkripsi dan dekripsi data file bertipe txt, doc,
docx. Proses modifikasi OTP yang pertama ialah melakukan proses enkripsi.
Proses enkripsi ini terdiri dari tiga tahap. Untuk mengetahui tahapan dalam
melakukan enkripsi dapat dilihat pada Gambar 15.
Gambar 15, plaintext dan key dibagi pada setiap blok-blok bit yang akan
dijumlahkan. Plainteks digeser satu bit ke kiri dan Key digeser satu bit ke kanan
dan menghasilkan P1 dan K1 untuk dijumlahkan. Hasil dari dari penjumlahan
tersebut akan menghasilkan bilangan XOR pertama (P 2). K1 digeser ke kanan satu
bit, dan hasil penggeseran digunakan untuk melakukan penjumlahan dengan P2
yang juga dilakukan penggeseran satu bit ke kiri. Hasil penjumlahan akan
menghasilkan bilangan XOR kedua (P3). Kemudian K2 digeser ke kanan satu bit,
dan hasil penggeseran digunakan untuk melakukan penjumlahan dengan P3 yang
juga dilakukan penggeseran satu bit ke kiri. Hasil penjumlahan akan
menghasilkan Cipherteks.
Kode Program 1 Perintah untuk Proses Enkripsi Menggunakan Modifikasi Algoritma OTP
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Proses yang kedua modifikasi OTP ialah melakukan proses dekripsi. Proses
dekripsi ini juga terdiri dari tiga tahap. Untuk mengetahui tahapan dalam
melakukan dekripsi dapat dilihat pada Gambar 16.
Gambar 16, plaincipher dan key dibagi pada setiap blok bit yang akan
dijumlahkan.Key digeser 3 bit ke kanan dan menghasilkan K3 untuk di jumlahkan
dengan plaincipher (C1). Hasil dari dari penjumlahan tersebut akan menghasilkan
bilangan XOR pertama (C2). K3 digeser ke kirisatu bit menjadi K2, dan hasil
penggeseran digunakan untuk melakukan penjumlahan dengan C2 yang juga
dilakukan penggeseran satu bit ke kanan. Hasil penjumlahan akan menghasilkan
bilangan XOR kedua (C3). Kemudian K2 digeser ke kiri 1 bit, dan hasil
penggeseran digunakan untuk melakukan penjumlahan dengan C3 yang juga
dilakukan penggeseran satu bit ke kanan. Hasil penjumlahan akan menghasilkan
C4, kemudian C4 digeser satu bit ke kanan untuk mengembalikan ke teks asli
menjadi Plainteks.
Kode Program 2 Perintah untuk Mengubah K1 Menjadi K3.
1.
2.
3.
4.
5.
=
=
=
=
b
01100010
11000100
r
01110010
11100100
i
01101001
11010010
Kode Program 3 Perintah untuk Menambah Jumlah Karakter Kunci agar Sama Panjang dengan
Karakter Plainteks.
1.
2.
3.
4.
5.
6.
7.
8.
9.
y=0
For i = 1 To Len(chiper)
c = i Mod Len(plainkey2)
If y > c Then
y=1
Else
y=y+1
End If
plain1 = plain1 & Chr(Asc(Mid(chiper, i, 1)) Xor Asc(Mid(plainkey2, y, 1))
Mod (256))
10. Next
12
(2) y = 1
c = 2 mod 3 = 2; y < c
y=1+1=2
(3) y = 2
c = 3 mod 3 = 0; y > c
y=1
(4) y = 1
c = 4 mod 3 = 1; y < c
y=1+1=2
(5) y = 2
c = 5 mod 3 = 2; y = c
y = 2+1 = 3
(6) y = 3
c = 6 mod 3 = 0; y > c
y=1
(7) y = 1
c = 7 mod 3 = 1; y < c
y=1+1=2
Hasil modulo diperoleh 1, 2, 1, 2, 3, 1, 2.Hasil modulo ini digunakan untuk
nomor urut kunci yang diambil agar menjadi kunci baru, sehingga kunci baru
yang diperoleh adalah b, r, b, r, i, b, r.
13
14
Gambar 8 merupakan tampilan proses enkripsi dan dekripsi file data untuk
mengamankan file. Pada bagian atas yaitu menu untuk enkripsi file data yang
terdiri dari sub menu browse plain file untuk memilih file yang akan dienkripsi,
sub menu input key untuk memberikan kunci pada file sebelum dilakukan proses
enkripsi dan sub menu extention untuk memberikan pilihan ekstensi setelah
proses enkripsi selesai. Pada bagian bawah terdapat menu untuk melakukan
dekripsi file data yang sub menunya hampir mirip dengan sub menu pada
enkripsi. Perbedaannya adalah pada sub menu browse cipherfile untuk mengambil
file enkripsi yang sebelumnya telah diproses kemudian pada sub menu input key
untuk memberikan kunci pada cipherfile sebelumnya. Kunci yang diinputkan
harus sesuai dengan kunci pada enkripsi sebelumnya dan pada bagian sub menu
terakhir ada extention yaitu untuk memberikan ekstensi setelah terjadi proses
dekripsi tersebut.
Gambar 9merupakan tampilan untuk melakukan enkripsi file dengan nama
TES.txt dan kunci FTI.
15
16
Pada penelitian ini dilakukan juga perbandingan antara OTP standar dengan
modifikasi OTP dalam melakukan proses enkripsi dan dekripsi terhadap file
bertipe .txt, .docx, dan .pdf. Perbandingan dilakukan dengan melihat lama waktu
17
melakukan enkripsi dan dekripsi terhadap ukuran file yang dapat dilihat pada
Gambar 19 sampai Gambar 24.
80
80
60
60
40
40
20
20
0
53 287 408 752 1120 1580 1768 2351
OTP
53
MOTP
OTP
MOTP
60
60
40
40
20
20
0
0
97
OTP
97
MOTP
OTP
MOTP
80
60
60
40
40
20
20
0
62
251
453
OTP
62
MOTP
OTP
MOTP
18
Simpulan
Hasil dari penelitian ini adalah teknik kriptografi yang dapat diaplikasikan
pada pengamanan file berbasis teks, di mana algoritma One Time Pad telah
dimodifikasi dengan menambahkan proses baik dalam enkripsi maupun dekripsi,
dan melakukan generate pada kunci serta melakukan binerisasi dan bitshifting,
sehingga dalam implementasi OTP tidak perlu input kunci dalam jumlah yang
besar (sebanyak karakter teks di dalam file). Dalam penelitian ini algoritma OTP
yang telah dimodifikasi juga telah memenuhi tujuan kriptografi terhadap
kerahasiaan data, dan integritas data, serta telah memenuhi sistem kriptografi
berdasarkan lima tuple yang ada.
6.
[1]
[2]
[3]
Daftar Pustaka
Munir, R.,2006,Kriptografi,Bandung: Informatika.
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.
S. P. Agustanti, Pengamanan Kunci Enkripsi One Time Pad (OTP)
Menggunakan Enkripsi RSA, Jurnal Media Teknik, vol. 7, no. 1, pp. 95100, 2010.
19
[4]
Menezes, Alfred J., van Oorschot, Paul C., dan Vanstone, Scott A., 1997,
Handbook of Applied Cryptography, Florida: CRC Press.
[5] Kromodimoeljo, S., 2010,Teori dan Aplikasi Kriptografi, Jakarta : SPK IT
Consulting.
[6] Stinson, D.R., 1995, Cryptography Theory and Practice, Florida: CRC
Press, Inc.
[7] Janssen, Cory, 2010, Bit Shifting,
http://www.techopedia.com/definition/26846/bit-shifting 8 Januari 2014, 04.00
pm.
[8] Hasibuan, Zainal., 2007,Metodologi Penelitian Pada Bidang Ilmu Komputer
Dan Teknologi Informasi, Jakarta: Ilmu Komputer Universitas Indonesia.
[9] Wowor, A.D., 2013, Modifikasi Kriptografi Hill Cipher Menggunakan
Convert Between Base, Seminar Nasional Sistem Informasi Indonesia
(SESINDO) 2-4 desember, Bali: Institut Teknologi Sepuluh November.
Indonesia.
20