Pengamanan Data Tekstual dengan Kombinasi Vigenere Cipher dan Caesar Cipher
on
JNATIA Volume 2, Nomor 2, Februari 2024
Jurnal Nasional Teknologi Informasi dan Aplikasinya
p-ISSN: 2986-3929
Pengamanan Data Tekstual dengan Kombinasi Vigenere Cipher dan Caesar Cipher
Luh Arimas Pertiwia1, Ngurah Agus Sanjaya ERa2
aProgram Studi Informatika, Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana, Bali
Jln. Raya Kampus UNUD, Bukit Jimbaran, Kuta Selatan, Badung, 08261, Bali, Indonesia 1arimaspertiwi@gmail.com 2agus_sanjaya@unud.ac.id
Abstract
Problems in data security is an important aspect in maintaining data storage, especially data stored in digital form. This is due to very rapid progress in the field of computer science with the open-system concept that has been widely used, so that this can make it easier for someone to destroy data, especially data stored in digital form without having to be known by the data custodian. In this case the researcher found a problem in using one algorithm, namely the Caesar cipher in data security, where there is a Brute force attack that tries all possible key combinations to crack a password. In the context of the Caesar Cipher, brute force can be used to try all possible shifts of letters and find a key that produces a plausible decrypted text. This study aims to maximize the security of textual data by combining two algorithms in it, in which the algorithm used is the Vigenere Cipher and the Caesar Cipher. The result of this research is that textual data that is secured becomes more difficult to understand for third parties who may want to manipulate data.
Keywords: Textual Data, Vigenere Cipher, Caesar Cipher
Pengamanan data adalah suatu aspek penting terutama data yang berbentuk digital, dalam hal ini data yang diamanankan lebih difokuskan pada data yang berbentuk teks. Pengamanan dapat dilakukan dengan enkripsi dan dekripsi data. Peneliti menemukan satu permasalahan dalam pengamanan data hanya dengan menggunakan 1 algoritma, yaitu Caesar cipher. Dikatakan bahwa Caesar cipher mempunyai kelemahan karena mudah diretas dengan metode brute force. Metode brute force yang paling sering digunakan adalah dengan menggunakan statistika frekuensi kemunculan huruf yang paling sering muncul. [4] Karena Caesar Cipher bekerja hanya dengan melakukan pergeseran karakter, sehingga memungkinkan untuk dipecahkan dengan menggunakan brute force. Karena hal ini maka peneliti mencoba meningkatkan pengamanan data tekstual dengan menggabungkan dua algoritma yaitu Vigenere Cipher dengan Caesar Cipher.
Kajian sebelumnya telah menggunakan Caesar Cipher pada fitur pesan teks (Samsuriah, 2023), menyatakan bahwa Proses penyandian dengan algoritma Caesar Cipher berhasil digunakan untuk menyembunyikan pesan dan dapat mengembalikan pesan tersebut seperti semula. Program hanya memproses karakter A hingga Z di karenakan penggunaan angka 26. Namun, penelitian ini masih sangat minim, karena peneliti mungkin belum menelusuri lebih dalam bahwa jika dengan menggunakan 1 algoritma saja apalagi algoritma Caesar cipher, data akan mudah diretas dengan metode brute force. [4]
Penelitian ini akan menggabungkan 2 algoritma yaitu Vigenere Cipher dengan Caesar Cipher dalam pengamanan data tekstual. Hal yang akan dilakukan yaitu enkripsi dan dekripsi data trekstual. Langkah – Langkah yang dilakukan saat enkripsi yaitu, pertama teks akan di proses pada vigenere cipher, dimana di tahap ini akan dimasukkan plainteks (p1) dan akan dibuatkan kunci. Setelah dihasilkan hasil enkripsi berupa cipherteks (c1) pada tahap pertama, Cipherteks
(c1) akan dienkripsi lagi dengan Caesar cipher sehingga akan menghasilkan Cipherteks akhir (c2). Kedua, ada tahapan dekripsi yaitu mengubah cipherteks menjadi plainteks (teks asli). Langkah yang dilakukan pada tahap dekripsi yaitu cipherteks (c2) akan diproses terlebih dahulu pada Caesar Cipher, dengan melakukan pergeseran kunci lagi maka akan mendapatkan plainteks (p2), setelah itu plainteks (p2) akan diproses lagi dalam vigenere cipher, sehingga mendapapatkan hasil akhir yaitu plainteks awal (p1). Dengan adanya tingkat keamanan data yang rendah pada data berupa teks maka penelitian ini diharapkan dapat memberikan prosedur pengamanan data yang lebih kuat dengan kombinasi vigenere cipher dan Caesar cipher ini.
System ini menggunakan dua buah algoritma untuk pengamanan data teks. Yang pertama yaitu Algoritma Vegenere Cipher, sedangkan yang kedua yaitu Algoritma Caesar Cipher.
-
• Pertama plainteks akan diproses melalui Vigenere Cipher, lalu dilakukan pemilihan kata kunci. Kata kunci ini dapat terdiri dari alfabet dan dapat berulang atau memiliki panjang yang sama dengan pesan yang akan dienkripsi.
-
• Selanjutnya, plainteks dan kata kunci akan dikonversi menjadi angka sesuai dengan posisi huruf dalam alfabet pada gambar 2.1.
-
• Setelah terbentuk cipherteks (c1), maka akan dilanjutkan enkripsi kedua dengan Algoritma Caesar Cipher.
-
• Enkripsi kedua (c1) yang dilakukan pada Algoritma Caesar Cipher ini dilakukan dengan pengacakan pergeseran kunci yang ditetapkan.
-
• Setelah melakukan kedua tahap tersebut, maka akan terbentuk cipherteks akhir (c2)
-
• Sekarang untuk dekripsi cipherteks, dilakukan dengan kebalikan semua proses enkripsi tadi
-
• Pertama, lakukan dekripsi dengan algoritma cipherteks dengan penggeseran kata
menggunakan kunci yang digunakan, sehingga mendapatkan plainteks (p2)
-
• Plainteks (p2) selanjutnya akan diproses dengan algoritma Vigenere cipher Kembali
dengan menggunakan kata kunci sesuai dengan yang digunakan pada tahap dekripsi.
-
• Sehingga setelah melalui semua tahap dekripsi diatas, akan dihasilkan plainteks awal (teks asli).
Abcdefgh i Jklmnoporstuvwxyz n i n n n n k n i n k i n i κ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1B 17 18 19 20 21 22 23 24 25
Gambar 1. Konversi huruf alfabet
-
2.2 Rumus yang digunakan
-
a. Vigenere Cipher
Sandi Vigenère adalah metode menyandikan teks alfabet dengan menggunakan deretan sandi Caesar berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi substitusi polialfabetik. Kelebihan sandi ini dibanding sandi Caesar dan sandi monoalfabetik lainnya adalah sandi ini tidak begitu rentan terhadap metode pemecahan sandi yang disebut analisis frekuensi. [5]
Rumus enkripsi dan dekripsi vegenere cipher:
Enkripsi: Ci = (Pi + Ki ) mod 26
Dekripsi: Pi = (Ci -Ki ) mod 26
Keterangan:
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
-
3. Caesar Cipher
Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran Caesar adalah salah satu teknik enkripsi paling sederhana dan paling terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang (plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. [3]
Rumus enkripsi dan dekripsi caesar cipher:
Enkripsi: Ci = (Pi + Key) mod 26
Dekripsi: Pi = (Ci - Key) mod 26
Keterangan:
Ci = ciphertext ke-i
Pi = plaintext ke-i
Key = kunci
Contoh:
Pi = UJIAN PROPOSAL
Ki = SNATIA
Key = 3
Jawab:
Perhitungan manual dengan table konversi pada gambar 2.1
Enkripsi:
Tabel 1. Enkripsi
Pi |
U |
J |
I A |
N |
P |
R |
O |
P |
O |
S |
A |
L |
20 |
9 |
8 0 |
13 |
15 |
17 |
14 |
15 |
14 |
18 |
0 |
11 | |
Ki |
S |
N |
A T |
I |
A |
S |
N |
A |
T |
I |
A |
S |
18 |
13 |
0 19 |
8 |
0 |
18 |
13 |
0 |
19 |
8 |
0 |
18 | |
+ |
12 |
22 |
8 19 |
21 |
15 |
9 |
1 |
15 |
7 |
0 |
0 |
3 |
Ci |
M |
W |
I T |
V |
P |
J |
B |
P |
H |
A |
A |
D |
Key =3 (Ci2) |
P |
Z |
L W |
Y |
S |
M |
E |
S |
K |
D |
D |
G |
Jadi cipherteks yang didapat dari hasil enkripsi yaitu PZLWYSMESKDDG
Dekripsi:
Tabel 2. Dekripsi
Ci2 P Z L W Y S M E S K D D G
Ci |
M |
W I |
T |
V |
P |
J |
B |
P |
H |
A |
A |
D |
12 |
22 8 |
19 |
21 |
15 |
9 |
1 |
15 |
7 |
0 |
0 |
3 | |
Ki |
S |
N A |
T |
I |
A |
S |
N |
A |
T |
I |
A |
S |
18 |
13 0 |
19 |
8 |
0 |
18 |
13 |
0 |
19 |
8 |
0 |
18 | |
Pi |
U |
J I |
A |
N |
P |
R |
O |
P |
O |
S |
A |
L |
20 |
9 8 |
0 |
13 |
15 |
17 |
14 |
15 |
14 |
18 |
0 |
11 |
Jadi plainteks yang didapat dari hasil dekripsi yaitu Ujian Proposal
Perhitungan manual dengan rumus:
Pi = UJIAN PROPOSAL
Ki = SNATIA
Enkripsi dengan vigenere cipher:
-
• Ci = (Pi + Ki) mod 26
= ( U + S ) mod 26
= ( 20 + 18) mod 26
= 38 mod 26
= 12 => M
-
• Ci = (Pi + Ki) mod 26
= ( J + N ) mod 26
= ( 9 + 13) mod 26
= 22 mod 26
= 22 => W
-
• Ci = (Pi + Ki) mod 26
= ( I + A ) mod 26
= ( 8 + 0) mod 26
= 8 mod 26
= 8 =>I
-
• Ci = (Pi + Ki) mod 26
= ( A + T ) mod 26
= ( 0 + 19) mod 26
= 19 mod 26
= 19 => T
-
• Ci = (Pi + Ki) mod 26
= ( N + I ) mod 26
= ( 13 + 8) mod 26
= 21 mod 26
= 21 =>V
-
• Ci = (Pi + Ki) mod 26
= ( P + A ) mod 26
= ( 15 + 0) mod 26
= 15 mod 26
= 15 =>P
-
• Ci = (Pi + Ki) mod 26
= ( R + S ) mod 26
= ( 17 + 18) mod 26
= 35 mod 26
= 9 => J
-
• Ci = (Pi + Ki) mod 26
= ( O + N ) mod 26
= ( 14 + 13) mod 26
= 27 mod 26
= 1 =>B
-
• Ci = (Pi + Ki) mod 26
= ( P + A ) mod 26
= ( 15 + 0) mod 26
= 15 mod 26
= 15 =>P
-
• Ci = (Pi + Ki) mod 26
= ( O + T ) mod 26
= ( 14 + 19) mod 26
= 33 mod 26
= 7 =>H
-
• Ci = (Pi + Ki) mod 26
= ( S + I ) mod 26
= ( 18 + 8) mod 26
= 26 mod 26
= 0 => A
-
• Ci = (Pi + Ki) mod 26
= ( A+ A ) mod 26
= ( 0 + 0) mod 26
= 0 mod 26
= 0 => A
-
• Ci = (Pi + Ki) mod 26
= ( L + S ) mod 26
= ( 11 + 18) mod 26
= 29 mod 26
= 3 => D
Hasil cipherteks dengan algoritma vigenere cipher: MWITVPJBPHAAD
Enkripsi dengan caesar cipher:
-
• Ci = (Pi + Key) mod 26
= ( M + 3 ) mod 26
= ( 12+ 3) mod 26
= 15 mod 26
= 15 => P
-
• Ci = (Pi + Key) mod 26
= ( W + 3 ) mod 26
= ( 22 + 3) mod 26
= 25 mod 26
= 25 => Z
-
• Ci = (Pi + Key) mod 26
= ( I + 3 ) mod 26
= ( 8 + 3) mod 26
= 11 mod 26
= 11 => L
-
• Ci = (Pi + Key) mod 26
= ( T + 3 ) mod 26
= ( 19 + 3) mod 26
= 22 mod 26
= 22 => W
-
• Ci = (Pi + Key) mod 26
= ( V + 3 ) mod 26
= ( 21 + 3) mod 26
= 24 mod 26
= 24 => Y
-
• Ci = (Pi + Key) mod 26
= ( P + 3 ) mod 26
= ( 15 + 3) mod 26
= 18 mod 26
= 18 => S
-
• Ci = (Pi + Key) mod 26
= ( J + 3 ) mod 26
= ( 9 + 3) mod 26
= 12 mod 26 |
= 18 => S |
• Ci = (Pi + Key) mod 26 |
= 12 => M |
• Ci = (Pi + Key) mod 26 |
= ( A + 3 ) mod 26 |
Ci = (Pi + Key) mod 26 |
= ( H + 3 ) mod 26 |
= ( 0 + 3) mod 26 |
= ( B + 3 ) mod 26 |
= ( 7 + 3) mod 26 |
= 3 mod 26 |
= ( 1 + 3) mod 26 |
= 10 mod 26 |
= 3 => D |
= 4 mod 26 |
= 10 => K |
• Ci = (Pi + Key) mod 26 |
= 4 => E |
• Ci = (Pi + Key) mod 26 |
= ( D + 3 ) mod 26 |
Ci = (Pi + Key) mod 26 |
= ( A + 3 ) mod 26 |
= ( 3 + 3) mod 26 |
= ( P + 3 ) mod 26 |
= (0 + 3) mod 26 |
= 6 mod 26 |
= ( 15 + 3) mod 26 |
= 3 mod 26 |
= 6 => G |
= 18 mod 26 |
= 3 => D |
Jadi hasil cipherteks akhir yaitu PZLWYSMESKDDG
Dekripsi dengan caesar cipher:
• |
Pi = (Ci - Key) mod 26 |
= ( 24 - 3) mod 26 |
= 15 => P | ||
= ( P - 3 ) mod 26 |
= 21 mod 26 |
• |
Pi = (Ci - Key) mod 26 | ||
= ( 15 - 3) mod 26 |
= 21 => V |
= ( K - 3 ) mod 26 | |||
= 12 mod 26 |
• |
Pi = (Ci - Key) mod 26 |
= ( 10 - 3) mod 26 | ||
= 12 => M |
= ( S - 3 ) mod 26 |
= 7 mod 26 | |||
• |
Pi = (Ci - Key) mod 26 |
= ( 18 - 3) mod 26 |
= 7 => H | ||
= ( Z - 3 ) mod 26 |
= 15 mod 26 |
• |
Pi = (Ci - Key) mod 26 | ||
= ( 25 - 3) mod 26 |
= 15 => P |
= ( D - 3 ) mod 26 | |||
= 22 mod 26 |
• |
Pi = (Ci - Key) mod 26 |
= ( 3 - 3) mod 26 | ||
= 22 => W |
= ( M - 3 ) mod 26 |
= 0 mod 26 | |||
• |
Pi = (Ci - Key) mod 26 |
= ( 12 - 3) mod 26 |
= 0 => A | ||
= ( L - 3 ) mod 26 |
= 9 mod 26 |
• |
Pi = (Ci - Key) mod 26 | ||
= ( 11 - 3) mod 26 |
= 9 => J |
= ( D - 3 ) mod 26 | |||
= 8 mod 26 |
• |
Pi = (Ci - Key) mod 26 |
= ( 3 - 3) mod 26 | ||
= 8 => I |
= ( E - 3 ) mod 26 |
= 0 mod 26 | |||
• |
Pi = (Ci - Key) mod 26 |
= ( 4 - 3) mod 26 |
= 0 => A | ||
= ( W - 3 ) mod 26 |
= 1 mod 26 |
• |
Pi = (Ci - Key) mod 26 | ||
= ( 22 - 3) mod 26 |
= 1 => B |
= ( G - 3 ) mod 26 | |||
= 19 mod 26 |
• |
Pi = (Ci - Key) mod 26 |
= ( 6 - 3) mod 26 | ||
= 19 => T |
= ( S - 3 ) mod 26 |
= 3 mod 26 | |||
• |
Pi = (Ci - Key) mod 26 |
= ( 18 - 3) mod 26 |
= 3 => D | ||
= ( Y - 3 ) mod 26 |
= 15 mod 26 | ||||
Hasil plainteks dengan algoritma caesar cipher: MWITVPJBPHAAD | |||||
Dekripsi dengan vigenere cipher: | |||||
• |
Pi = (Ci - Ki) mod 26 |
= 8 => I |
= 15 mod 26 | ||
= ( M - S ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 |
= 15 => P | ||
= ( 12 - 18) mod 26 |
= ( T - T ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 | ||
= 20 mod 26 |
= ( 19 - 19) mod 26 |
= ( J - S ) mod 26 | |||
= 20 => U |
= 0 mod 26 |
= ( 9 - 18) mod 26 | |||
• |
Pi = (Ci - Ki) mod 26 |
= 0 => A |
= 17 mod 26 | ||
= ( W - N ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 |
= 17 => R | ||
= ( 22 - 13) mod 26 |
= ( V - I ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 | ||
= 9 mod 26 |
= ( 21 - 8) mod 26 |
= ( B - N ) mod 26 | |||
= 9 => J |
= 13 mod 26 |
= ( 1 - 13) mod 26 | |||
• |
Pi = (Ci - Ki) mod 26 |
= 13 => N |
= 14 mod 26 | ||
= ( I – A ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 |
= 14 => O | ||
= ( 8 - 0) mod 26 |
= ( P - A ) mod 26 |
• |
Pi = (Ci - Ki) mod 26 | ||
= 8 mod 26 |
= ( 15 - 0) mod 26 |
= ( P - A ) mod 26 |
Jurnal Nasional Teknologi Informasi dan Aplikasinya
= ( 15 - 0) mod 26
= 15 mod 26
= 15 => P
-
• Pi = (Ci - Ki) mod 26
= ( H - T ) mod 26
= ( 7 - 19) mod 26
= 14 mod 26
= 14 => O
-
• Pi = (Ci - Ki) mod 26
= ( A - I ) mod 26
= ( 0 - 8) mod 26
= 18 mod 26
= 18 => S
-
• Pi = (Ci - Ki) mod 26
= ( A - A ) mod 26
= ( 0 - 0) mod 26
= 0 mod 26
= 0 => A
-
• Pi = (Ci - Ki) mod 26
= ( D - S ) mod 26
= ( 3 - 18) mod 26
= 11 mod 26
= 11 => L
Jadi hasil dekripsi menjadi plainteks asli yaitu Ujian Proposal
-
2.3 Perancangan System
Perancangan system dijelaskan dengan flowchart. Secara garis besar jalannya system dibagi menjadi 2 proses yaitu proses enkripsi dan proses dekripsi, yang dijelaskan pada gambar 2 untuk enkripsi dan gambar 3 untuk dekripsi.
-
2.4 Pengujian System
Pengujian sistem dimaksudkan untuk mengetahui seberapa jauh tingkat keberhasilan dalam mengamankan file yang berupa teks serta untuk menguji apakah sistem yang telah dibuat berjalan tanpa mengalami error. Pengujian kali ini tidak serta mengujikan aplikasi dikarenakan aplikasi untuk sistem ini masih dalam tahap perancangan.
Gambar 2. Flowchart Enkripsi Plainteks
Proses enkripsi dimulai dengan memasukkan plainteks dan juga kunci vigenere cipher. Kunci yang dimasukkan berupa huruf alfabet yang nantinya akan diproses bersamaan
dengan plainteks. Setelah itu dilanjutkan dengan pembangkitan kunci Caesar cipher.
Setelah semua proses tadi dilakukan maka akan terbentuk cipherteks akhir.
b. Dekripsi

Gambar 3. Flowchart Dekripsi Cipherteks
Proses dekripsi dimulai dengan menginputkan kunci Caesar cipher dengan membangkitkan kuncinya. Setelah itu dilanjutkan dengan pembangkitan kunci Vigenere Cipher, maka setelah melalui proses tadi akan dihasilkan plainteks awal.
-
4.2 Pengujian Sistem
Masukkan teks: UJIAN PROPOSAL
Apa yang ingin Anda lakukan? (enkripsi/dekripsi): enkripsi
Masukkan kunci Vigenere: SNATIA
Masukkan pergeseran Caesar: 3
Teks terenkripsi: PZLWY SMESKDDG
Gambar 4. Output Hasil Enkripsi
Diberikan salah satu contoh output hasil enkripsi teks seperti pada gambar 4. Dimasukkan plainteks UJIAN PROPOSAL dengan kunci vigenere SNATIA dan kunci pergeseran Caesar cipher sebanyak 3 kali maka akan menghasilkan Cipherteks PZLWY SMESKDDG
Masukkan teks: PZLWY SMESKDDG
Apa yang ingin Anda lakukan? (enkripsi/dekripsi): dekripsi
Masukkan kunci Vigenere: SNATIA
Masukkan pergeseran Caesar: 3
Teks terdekripsi: UJIAN PROPOSAL
Gambar 5. Output Hasil Dekripsi
Selanjutkan diberikan contoh output hasih dekripsi cipherteks seperti pada gambar 5. Diinputkan Chiperteks PZLWY SMESKDDG dengan kunci vigenere dan ciperteks yang sama saat enkripsi tadi, maka akan menghasilkan plainteks awal.
Dari penelitian yang telah dilakukan, kombinasi algoritma Vigenere Cipher dengan Caesar Cipher dapat diimplementasikan dalam enkripsi dan dekripsi teks. Tahap enkripsi dijalankan dengan algoritma vigenere terlebih dahulu, lalu dilanjutkan dengan algoritma Caesar cipher. Sedangkan tahap dekripsi dijalankan dengan algoritma Caesar cipher dahulu lalu dilanjutkan dengan algoritma vigenere cipher. Dengan penggabungan kedua algoritma ini membuktikan bahwa keamanan data akan semakin kuat terjaga, karena tidak hanya menggunakan 1 algoritma saja untuk melindungi data.
Daftar Pustaka
-
[1] Alasi, T. S., & Fitriani, P. (2022). Peningkatan Keamanan untuk Password menggunakan
Algoritma Vigenere Cipher. Jurnal Mantik Penusa, 6(1), 1-10.
-
[2] Gunawan, I. (2018). Kombinasi algoritma Caesar cipher dan algoritma RSA untuk
pengamanan file dokumen dan pesan teks. InfoTekJar: Jurnal Nasional Informatika dan Teknologi Jaringan, 2(2), 124-129.
-
[3] Kriptografi untuk Keamanan Data. (2018). (n.p.): Deepublish
-
[4] Samsuriah, Ida. (2023). Penerapan Kriptografi Caesar Cipher Pada Fitur Pesan Teks.
Nusantara Hasana Journal : Volume 2 No. 9 (Februari 2023), Page: 254-259 E-ISSN : 2798-1428
-
[5] Wikipedia.com. (2022, 11). Diambil kembali dari
https://id.wikipedia.org/wiki/Sandi_Vigen%C3%A8re (2022, November).
422
Discussion and feedback