1
PENERAPAN ALGORITMA KRIPTOGRAFI RC6, VIGENERE DAN CAESAR PADA APLIKASI
NOTES BERBASIS ANDROID
Septiyono Adi Putro1, Ali Akbar Rismayadi2, Abdurahman Fauzi3
1Teknik Informatika, Universitas BSI E-mail : [email protected]
2Teknik Informatika, Universitas BSI E-mail : [email protected]
3Teknik Informatika, Universitas BSI E-mail : [email protected]
Abstract
Abstract - In this digital era, the development of technology, especially smartphones, is so sophisticated and widespread. Every circle of society such as parents, teenagers and even children have used Android smartphones. Inside android smartphone many applications are often used by users, one of them notes application is to facilitate the users save a note. But if only rely on the default notes from android itself, the contents of the notes are written only to the extent saved without any security. The purpose of this research is to make the security of Notes application with cryptography algorithm method RC6, Vigenere and Caesar. Cryptography is a technique for maintaining data confidentiality by means of an encryption process whereby this process transforms the contents of the data into a form that is almost unrecognized as the initial data and decryption transforms back the disguised shape into initial data. This method used because it can provide security to the contents of Notes by encrypting contents of Notes that have been made by the user. So the contents of Notes saved in the database is not legible and very safe to store Notes that are important or confidential. And also adds double information security, that is by login the password and password timeout so that users can keep the contents of Notes secret better. Result of the questionnaire in this research, positive appreciation by respondents was 87%. It can be concluded the existence this Notes can provide benefits for users in the security on this Notes.
Keywords: Notes, RC6, Vigenere, Caesar, Encryption
Abstrak - Di era digital ini, perkembangan teknologi khususnya smartphone begitu canggih dan tersebar luas. Setiap kalangan masyarakat seperti orang tua, remaja bahkan anak-anak telah menggunakan smartphone android. Di dalam smartphone android banyak aplikasi yang sering digunakan oleh pengguna, salah satunya aplikasi notes yaitu untuk memudahkan para pengguna menyimpan sebuah catatan. Namun jika hanya mengandalkan aplikasi notes bawaan dari android itu sendiri, isi dari catatan yang ditulis hanya sebatas tersimpan tanpa suatu pengamanan. Tujuan penelitian ini adalah membuat pengamanan pada aplikasi notes dengan metode algoritma kriptografi RC6, Vigenere dan Caesar. Kriptografi adalah teknik untuk menjaga kerahasiaan data dengan cara proses enkripsi dimana proses ini mengubah isi data menjadi bentuk yang hampir tidak dikenali sebagai data awalnya dan dekripsi mengubah kembali bentuk tersamar tersebut menjadi data awal. Metode ini digunakan karena dapat memberikan keamanan pada isi notes dengan cara mengenkripsi isi notes yang telah dibuat oleh user. Sehingga isi notes yang tersimpan pada database aplikasi notes tidak dapat terbaca dan sangat aman untuk menyimpan notes yang bersifat penting atau rahasia. Dan juga menambahkan pengamanan informasi ganda yaitu dengan cara login password dan password timeout sehingga user dapat merahasiakan isi notes lebih baik. Berdasarkan hasil kuesioner pada penelitian ini, mendapatkan apresiasi positif oleh responden sebesar 87%. Dapat diambil kesimpulan bahwa dengan adanya aplikasi Notes ini dapat memberikan manfaat bagi user dari segi keamanan yang ada pada aplikasi Notes ini.
Key kunci: Notes, RC6, Vigenere, Caesar, Enkripsi
1. Pendahuluan
Beberapa dekade terakhir terjadi perkembangan teknologi secara pesat dan masif sehingga berpengaruh pada kebutuhan hidup manusia. Salah satu teknologi paling berpengaruh yang hampir tidak pernah lepas dari setiap kegiatan kita dan selalu dibawa kemana pun yaitu smartphone. Smartphone merupakan kombinasi telepon genggam dengan fungsional dan personal digital assistant (PDA) yang memungkinkan pengguna untuk menyimpan dan membalas email, mengakses internet, mengirim dan menerima pesan, bermain games, file multimedia, fitur GPS dan berbagai fitur lainnya(Kharisma & Rachman, 2017).
Sistem operasi smartphone memiliki berbagai macam platform diantaranya Android, iOS dan Windows Phone. Salah satu fasilitas yang dimiliki oleh smartphone android dan hampir setiap pengguna smartphonepasti pernah memakainya yaitu notes. Notes merupakan aplikasi bawaan smartphone kegunaannya untuk menulis data penting agar pengguna smartphone tidak lupa apabila ada sesuatu yang penting seperti kata sandi, nomor pin dan lainnya.
Akan tetapi isi dariNotes yang telah ditulis hanya sebatas tersimpan tanpa suatu pengamanan. Jadi, orang lain dapat dengan mudah membaca isi dari Notes yang telah tersimpan tanpa sepengetahuan kita (Rachman, 2018).
Salah satu metode dalam pengamanan data atau informasi adalah menggunakan metode enkripsi. Enkripsi adalah proses dimana informasi atau data yang akan disimpan diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal.
Sebuah pesan atau data yang masih asli dan belum mengalami penyandian dikenal istilah plaintext. Kemudian setelah disamarkan dengan suatu cara penyandian, maka plaintext ini disebutciphertext. Proses penyamaran dari plaintext ke ciphertext disebut enkripsi dan proses pengembalian dari ciphertext menjadi plaintext kembali disebut dekripsi (Pabokory, Astuti, &
Kridalaksana, 2015).
Metode enkripsi yang digunakan dalam penilitian ini adalah enkripsi RC6,Vigenere danCaesarmerupakan algoritma kriptografi yang dapat digunakan untuk mengamankan
data. Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan pesan, data atau informasi dengan cara menyamarkannya menjadi bentuk tersandi yang tidak mempunyai makna. Dengan membuat algoritma berlapis diyakini akan membuat data dan informasi tersebut memilikilevelkemanan lebih tinggi (Basuki, Paranita, & Hidayat, 2016).
Berdasarkan latar belakang masalah yang telah dikemukakan, maka permasalahan yang dapat dirumuskan : 1. Bagaimana meningkatkan keamanan
pada isiNotesyang akan disimpan?
2. Bagaimana menerapkan algoritma kriptografi RC6, Vigenere dan Caesar pada aplikasinotesberbasisandroid?
Tujuan dari penelitian ini dimaksudkan untuk membuat aplikasi notes berbasis androiddengan kerahasiaan isi notes lebih terjaga karena data atau informasi yang dibuat akan dienkripsi dengan algoritma kriptografi RC6,VigeneredanCaesar. A. Tinjauan Pustaka
(Rachman, 2018), dalam jurnalnya yang berjudul “Perancangan AplikasiMemo Menggunakan Algoritma Kriptografi Caesar Cipher dan RSA Berbasis Android”
membahas mengenkripsi dan mendekripsi data yang tersimpan di aplikasi Memo. Algoritma kriptografi yang digunakan untuk melakukan enkripsi adalah algoritmaCaesar Cipher dan RSA. Setelah menggunakan aplikasi ini data yang tersimpan di Memo tidak dapat dibaca dan disalahgunakan oleh orang lain.
(Laurentinus, 2017), dalam jurnalnya yang berjudul “Implementasi Kriptografi dan Kompresi SMS Menggunakan Algoritma RC6 dan Algoritma Huffman Berbasis Android” membahas mengenkripsi, mendekripsi dan kompresi isi pesan pada aplikasi sms. Algoritma kriptografi yang digunakan untuk melakukan enkripsi adalah algoritma RC6 dan algoritma untuk melakukan kompresi data adalah algoritma Huffman. Setelah menggunakan aplikasi ini isi pesan tersebut tidak dapat dibaca dan setelah proses enkripsi isi sms tersebut akan dikompresi agar hasil hurufnya menjadi sedikit.
(Alawiyah & Hikmah, 2016), dalam jurnalnya yang berjudul “Modifikasi KriptografiHill CipherKunci Matriks Persegi Panjang Menggunakan Fungsi XOR dan Fungsi XNOR” membahas memodifikasi algoritmahill cipherdengan matriks persegi panjang menggunakan operasi biner
dengan menambahkan fungsi logika X-OR dan XNOR. Dengan penambahan fungsi logika X-OR dan XNOR, kripnatalis sulit menemukan persemaan linier untuk menemukanplaintextdan matriks kuncinya.
B. Algoritma RC6
Algoritma RC6 merupakan salah satu kandidat Advanced Encryption Standard (AES) yang diajukan oleh RSA Security Laboratiorieskepada NIST. Dirancang oleh Renald L Rivest, M.J.B. Robshaw, R. Sidney dan Y.L. Yin, algoritma ini adalah pengembangan dari algoritma RC5 dan telah memenuhi semua persyaratan yang diajukan oleh NIST. RC6 adalah algoritma yang menggunakan ukuran blok hingga 128 bit, dengan ukuran kunci yang digunakan bervariasi antara 128, 192 dan 256 bit (Laurentinus, 2017).
C. AlgoritmaVigenere
Algoritma Vigenere adalah suatu algoritma yang tergolong ke dalam algoritma subtitusi abjad majemuk. Ini artinya setiap huruf yang sama dalam plaintext tidak dipetakan atau disubtitusi oleh satu huruf.
Melainkan di subtitusi oleh huruf berlainan bergantung dari kunci yang digunakan yang melakukan enkripsi. Vigenere Cipher merupakan bentuk sederhana dari sandi subtitusi polialfabetik. Algoritma ini ditemukan oleh diplomat sekaligus kriptologis dari Prancis, Blaise de vigenere pada tahun 1856, tetapi algoritma ini baru dikenal luas 200 tahun kemudian (Basuki, Paranita, & Hidayat, 2016).
D. AlgoritmaCaesar
Algoritma Caesar merupakan teknik penyandian pertama di dunia dengan menggunakan teknik subtitusi. Algoritma klasik ini juga dikenal dengan algoritma ROT3. Pada awalnya teknik ini digunakan oleh Julius Caesar untuk berkomunikasi dengan tentaranya di garis depan. Agar pesannya aman, Caesar melindungi data yang dikirim dengan melakukan pergeseran pada setiap huruf dalam pesannya atau pun mengubah huruf menjadi angka (Rachman, 2018).
2. Metode Penelitian
Dalam melakukan penelitian diperlukan metode penelitian, dalam metode tersebut dilakukan beberapa tahapan untuk mendapatkan hasil yang baik. Sehingga
penelitian ini dapat berjalan dengan lancar.
Tahapan-tahapan tersebut adalah perencanaan, analisis, desain, implementasi dan hasil
A. Perencanaan
Penulis menerapkan enkripsi pada isi Notes untuk mengamankan data yang akan disimpan dengan menggunakan algoritma RC6,VigeneredanCaesar.
B. Analisis
Dalam langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini penulis melakukan sebuah penelitian, wawancara dan study literatur.
C. Desain
Penulis menggunakan algoritma RC6, VigeneredanCaesar sebagai desain untuk keamanan enkripsi yang akan digunakan pada aplikasinotes.Android studio sebagai software untuk membuat aplikasi berbasis android serta database dengan menggunakanSQLite.
D. Implementasi
Penulis menggunakan bahasa pemrograman java untuk membuat aplikasi Notes berbasis Android, dengan minimal Versi 4.4 atauKitkat.
3. Hasil dan Pembahasan
3.1. Analisis Kebutuhan Non-Fungsional Kebutuhan Non-fungsional adalah jenis kebutuhan yang menjelaskan tentang kebutuhan diluar sistem seperti kebutuhan operasional, performance, keamanan, politik dan budaya. Adapun kebutuhan operasional aplikasi notes algoritma kriptografi RC6, Vigenere dan Caesar ini adalah sebagai berikut :
Kebutuhan perangkat keras perangkat keras yang digunakan penulis dalam pembuatan aplikasi notes kriptografi RC6, Vigenere dan Caesar ini adalah sebagai berikut :
1. Processor Intel® Core™ i7-860 CPU
@2.8GHz x 8 2. Memory RAM 12GB
3. Graphic NVIDIA GeForce GTS 250 Kebutuhan minimal device yang digunakan untuk menjalankan aplikasinotes algoritma kriptografi RC6, Vigenere dan Caesar adalah sebagai berikut :
1. Processor ARM Cortex (ARMv7) single core 1.6GHz
2. Sistem operasiandroid 4.4 (kitkat).
3. Memory RAM 512MB 4. Graphic Adreno 206
Perangkat lunak yang digunakan dalam pembuatan aplikasi notes algoritma kriptografi RC6, Vigenere dan Caesar ini adalah sebagai berikut :
1. Sistem operasi Windows 10 Pro 64bit.
2. Android Studio.
3. Android Software Development Kit (SDK).
4. Android Development Tools (ADT).
3.2. Perancangan UML A. Use Case Diagram
Use Case diagrammerupakan metode berbasis teks yang menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem dan menggambarkan serta mendokumentasikan proses yang kompleks. Adapun use case diagram aplikasi notes algoritma kriptografi RC6, Vigenere dan Caesar adalah sebagai berikut.
Gambar 1.Use Case Diagram B. Activity Diagram
Activity diagram menggambarkan berbagai alur aktifitas dalam sistem yang sedang dirancang, dan bagaimana mereka berakhir. Adapun activity diagram aplikasi
notes algoritma kriptografi RC6, Vigenere danCaesaradalah sebagai berikut.
Gambar 2.Activity diagram menu notes C. Sequence Diagram
Sequence diagram digunakan untuk menggambarkan interaksi antara objek dalam dan sekitar sistem (termasuk pengguna,displaydan sebagainya) berupa message yang digambarkan terhadap waktu. Adapun sequence diagram aplikasi notes algoritma kriptografi RC6, Vigenere danCaesaradalah sebagai berikut.
Gambar 3.Sequence diagram menu notes D. Deployment Diagram
Deployment diagram menggambarkan arsitektur fisik dari perangkat keras dan perangkat lunak sistem, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Adapundeployment diagram
aplikasi notes algoritma kriptografi RC6, Vigenere dan Caesar adalah sebagai berikut.
Gambar 4.Deployment diagramaplikasi notes
3.3. Perancangan Algoritma
Pada sistem enkripsi aplikasi notesini diterapkan algoritma enkripsi yaitu RC6, Vigenere dan Caesar. Dalam rancangan algoritma yang akan dibangun, penulis memilih algoritma RC6 untuk proses pertama enkripsi, setelah berhasil dienkripsi menggunakan algoritma RC6, dilakukan proses kedua yaitu menggunakan algoritma Vigenere untuk dienkripsi kembali. Setelah berhasil dienkripsi menggunakan algoritma Vigenere maka proses terakhir yaitu dienkripsi kembali menggunakan algoritma Caesar. Dan untuk dekripsinya, kebalikan dari proses enkripsi dimana algoritma Caesar yang pertama dekripsi, dilanjutkan proses dekripsi kedua menggunakan algoritma Vigenere dan terakhir di dekripsi kembali menggunakan algoritma RC6.
A. Algoritma RC6
Tahap pertama menggunakan Algoritma RC6, yang merupakan algoritma sederhana, fungsi yang digunakan merupakan fungsi yang sederhana dan hanya mengandalkan prinsip teknik cipher berulang (iterated cipher) untuk keamanan.
Tampilan hasil enkripsi dan data hasil enkripsi yang diterima setiap karakternya memiliki panjang 8 bit, sedangkan sebagian telepon seluler hanya dapat menampilkan karakter dengan panjang 7 bit. Dengan demikian dalam penerapan algoritma RC6 pada isi Notes yang akan dienkripsi diubah kedalam nilai ASCII, dimana nilai karakter dalam tabel ASCII ditambah tabel karakter specialadalah 0 sampai dengan 255, artinya satu karakter ASCII akan diwakili oleh 8 bit, dimana 28 = 256. Sehingga, dalam 1 blok plaintext (32 bit) akan menyimpan 4 karakter dan setiap kali iterasi, maka akan diambil 16 karakter dari plaintext. Apabila panjang plaintextatau panjang kunci kurang dari 16
karakter, maka akan dilakukan padding, yaitu dengan menambah bit “0” (nol) di akhir teks, sehingga panjang teks mencukupi 16 karakter. Layar pada sebagian besar telepon selular hanya dapat menampilkan karakter dengan panjang 7 bit dan isinotes yang telah terenkripsi akan berbentuk binary, sehingga layar tidak akan menampilkan dengan semestinya. Oleh karena itu pada aplikasi yang dibangun, untuk menampilkan pesan yang telah terenkripsi, ditambah informasi karakter yang terdapat isi notes tersebut dengan heksadesimal agar dapat ditampilkan dilayar dan informasinya lebih terbaca.
Algoritma RC6 yang digunakan dalam proses pertama enkripsi di aplikasi notes akan dibangun dengan w sebesar 32 bit, r sebesar 20 kali putaran dan panjang kunci beragam lebih dari 1 karakter (8 bit). Berikut ini merupakan pseudocode enkripsi dan dekripsi algoritma RC6 :
1. Algoritma Pembangkit Sub Kunci Kamus
Type Word32 : 32 bit (tipe data 32 bit) Kunci : String { kunci yang dimasukkan oleh pengguna}
I, j, c, s, v : integer A :integer
B : Integer
S : array [0..43] of word 32 L : array [0..43] of word 32 Function
ROTL (X:Word32; y: integer) – Word 32 {fungsi untuk merotasi bit
sebanyak variable kedua}
Algoritma Input (kunci) S(0) – b7e15163 For I – 1 to 43 do S[i] – s[i-1] + 9e3779b9 Endfor
A – B – I – j – 0 V – 44
If {c>v} then v – c v v*3
For s – 1 to v do
A – S[i] – ROTL ((S[i] + A + B). 3 S – L[j] = ROTL (L[j] + A + B, A + B) I – (i+1) mod 44
J – (j+1) mod c Endfor
2. Algoritma Baca File Masukan Proses Enkripsi
Prosedur
Baca_Masukan_proses_Enkripsi {Input : Field masukan belum dibaca}
{Output : Field masukan dibaca per 16 karakter dan ditampung dalam
buffer. Pada proses ini pesan, filed nya adalah isi pesan }
Kamus
Field_masukan ; string Buff : array [0..15] of char i : integer
algoritma
Input (field_masukan) i – 0
while (I <=15) and not (EOF) do Read (field_masukan, Buff [i]) Endwhile
3.1 Prosedur Whitening_awal
{input : blok kedua dan keempat belum dijumlahkan dengan sub kunci}
{output : blok kedua dan keempat yang telah dijumlahkan dengan sub
kunci}
Kamus
Type word32 : 32 bit (tipe data sebesar 32 bit)
I : word32 array [0..3] (blok enkripsi/planteks)
E : Array [0..43] of word 32 (sub kunci) Algoritma
K[1] – X[1] + S[0]
K[3] – X[3] + S[1]
3.2 Algoritma Iterasi Prosedur Iterasi
{input : keempat blok setelah whitening awal belum diproses}
{Output : keempat blok yang telah diproses dan saling dipertukarkan}
Kamus
Type word32 : 32 bit {tipe data sebesar 32 bit}
X : word array [0..3] {blok enkripsi/planteks}
Function
ROTL(X : Word32; Y : integer} – word32 {merotasi bit kekiri sebanyak variable kedua}
Temp : word32 U, t : word32 I : integer Algoritma
For I – 1 to 20 do
t – ROTL ( (X[1]*(2*X[1]+1)), 5) u – ROTL ( (X[3]*(2*X[3]+1)), 5)
X[0] – (ROTL ( (X[0] XOR t), u)) + S[2*i}
X[2] – (ROTL ( (X[2] XOR u), t)) + S[2*I + 1]
Temp – X[0]
X[1] – X[1]
X[2] – X[2]
X[3] – Temp End for
3.3 Algoritma Whitening Akhir Prosedur Whitening_akhir
{input : blok pertama dan ketiga belum dijumlahkan dengan sub kunci}
Output : blok pertama dan ketiga yang telah dijumlahkan dengan sub kunci}
Kamus
Type word32 : 32 bit (tipe data sebesar 32 bit)
X : word32 array [0..3] blok enkripsi/planteks
S : Array [0..43] of word 32 (sub kunci) Algoritma
X[0] – X[0] + S[42]
X[2] – X[0] + S[43]
4. Algoritma Baca File Masukan Proses Dekripsi
Prosedur
Baca_File_Masukan_Proses_Dekripsi {input : Field masukan berupa chiperteks}
(output : Field pada isi pesan yang berupa chiperteks dibaca per 16 karakter
dan ditampung dalam buffer}
Kamus
Field_masukan : string Buff : array [0..15]
i : integer Algoritma
Input (field_masukan) i – 0
while (i <= 15) and not (field_masukan.EOF) do
Read (isi_kolom, Buff [i]) Endwhile
5. Algoritma Dekripsi Prosedur Dekripsi
{input : keempat blok belum diproses}
{output : keempat blok yang telah diproses dans aling dipertukarkan}
Kamus
Type word32 : 32 bit {tipe data sebesar 32 bit}
X : word32 array [0..3] {blok dekripsi/ciperteks}
Function
ROTL (X:word32; Y:integer) – word32 {merotasi bit kekiri sebanyak variable kedua}
Temp : word32 u, t :word32 I : integer Algoritma
X[2] – X[2] – S[43]
X[0] – X[0] – S[42]
For I – 20 down to 1 do Temp – X[3]
X[3] – X[2]
X[2] – X[1]
X[1] – X[0]
u – ROTL ( (X[3]*(2*X(3)+1)), 5) t – ROTL ( (X[1]*(2*X[1]+1}}, 5)
X[2] – (ROTL (X[2] – S(2*1+1]), t) XOR u) X[0] – (ROTL (X[0] – S[2*i]), u) XOR t) End for
X[3] – X[3] – S[1]
X[1] – X[1] – S[0]
B. AlgoritmaVigenere
Tahap kedua menggunakan algoritma Vigenere dimana proses ini mengenkripsi dari hasil algoritma RC6. Kunci pada kriptografi Vigenere adalah sebuah kata bukan sebuah huruf. Kata kunci ini akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf padaplaintextakan ditentukan oleh huruf pada kunci yang mempunyai posisi yang sama dengan huruf pada plaintext. Cara pertama yang dilakukan yaitu ubah plaintext ke dalam urutan bilangan integer lalu konversikan urutan bilangan ke dalam karakter dengan mengacu pada tabel konversi ASCII pada gambar dibawah ini :
Gambar 5. Tabel ASCII
Berikut ini merupakan pseudocode enkripsi dan dekripsi algoritmaVigenere:
//proses enkripsi Deklarasi
Key, newKey, plaintext : string;
i, j : integer;
Dekripsi input (key);
input (plaintext);
for (int i ← 0; i < plaintext.length)do j ← i mod key.length();
newKey ← key(j);
end for;
write(newKey);
karakter [i] ← plaintext;
key ← get(key.plaintext)-97;
for (int i ← 0; i < karakter.length)do ciphertext←(char) (((256((karakter[i]+‘
’)+key(i)+‘ ‘)) mod 256+’ ’);
end for
write (ciphertext);
//proses dekripsi Deklarasi
Key, newKey, ciphertext : string;
i, j : integer;
Dekripsi input (key);
input (ciphertext);
for (int i ← 0; i < ciphertext.length)do j ← i mod key.length();
newKey ← key.charAt(j);
end for;
write(newKey);
karakter [i] ← ciphertext;
key ← get(key. ciphertext)-97;
for (int i ← 0; i < karakter.length)do plaintext ← (char) (((256+((karakter[i] – ‘
’)-key.charAt(i) – ‘ ‘)) mod 256)+’ ’);
end for
write (plaintext);
C. AlgoritmaCaesar
Tahap terakhir menggunakan algoritma Caesardimana proses ini mengenkripsi dari hasil algoritma RC6 dan algoritmaVigenere. Caesar Cipher merupakan sistem persandian klasik berbasis substitusi yang sederhana. Enkripsi dan dekripsi pada sistem persandian caesar menggunakan operasi shift. Dalam algoritma ini tiap huruf disubtitusi dengan huruf dengan jarak yang telah ditentukan dalam susunan abjad yang sama. Berikut ini merupakan pseudocode enkripsi dan dekripsi algoritmaCaesar:
//proses enkripsi Deklarasi
key : integer;
ciphertext : string;
Dekripsi input key;
input plaintext;
karakter [i] ← plaintext;
for (int i ← 0; i < karakter.length)do ciphertext←(char)(((karakter[i]-‘’) + key));
end for;
write (ciphertext);
//proses dekripsi Deklarasi
key : integer;
ciphertext : string;
Dekripsi input (key);
input (ciphertext);
karakter [i] ← ciphertext;
for (int i ← 0; i < karakter.length)do plaintext←(char)(((karakter[i]-‘’) - key));
end for
write (plaintext);
D. Penggabungan Algoritma
Berikut adalah class penggabungan algoritma RC6,VigeneredanCaesar.
public class NotesXCrypto { //proses enkripsi
public String Encrypt(String content) {
DatabaseHandler db =
NotesXApplication.getDatabase();
String
key=GenerateKey(db.getPassword());
RC6 rc=new RC6();
VigenereCipher vg=new
VigenereCipher();
CaesarCipher cs=new
CaesarCipher();
String EncryptedContent;
String rc6=rc.encrypt(content,key);
String vigenere=vg.encrypt(rc6,key);
String
caesar=cs.encrypt(vigenere,key.length())
;
EncryptedContent= caesar;
return EncryptedContent;
//proses dekripsi}
public String Decrypt(String cipher,String Key) {
if ( cipher==null ){
return cipher;
}
if (cipher.equals("\n" +
"\n" +
"\n" +
"\n" +
"\n") ){
return cipher;
}
DatabaseHandler db =
NotesXApplication.getDatabase();
String key=GenerateKey(Key);
RC6 rc=new RC6();
VigenereCipher vg=new
VigenereCipher();
CaesarCipher cs=new
CaesarCipher();
String DecryptedContent;
String
caesar=cs.decrypt(cipher,key.length());
String
vigenere=vg.decrypt(caesar,key);
String rc6=rc.decrypt(vigenere,key);
DecryptedContent= rc6;
return DecryptedContent;
//generate kunci}
public String GenerateKey( String s) { final String MD5 = "MD5";
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance (MD5);
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuilder hexString = new StringBuilder();
for (byte aMessageDigest : messageDigest) {
String h =
Integer.toHexString(0xFF &
aMessageDigest);
while (h.length() < 2) h = "0" + h;
hexString.append(h);
} return
hexString.toString().substring(0,16);
} catch (Exception e) {
Log.e("Generate Key", e.getMessage());
}
return "";
} }
3.4. Implementasi A. Tampilan Aplikasi
Berikut beberapa tampilan aplikasi notesyang telah dirancang.
Gambar 6.Login
Gambar 7. Halaman utama
Gambar 8. Menu membuatnoteteks biasa
Gambar 9. Menu membuatnote formkartu
Gambar 10. Menu membuatnote form login
Gambar 11. MenuNotes
Gambar 12. Menu Pengaturan B. Hasil enkripsi
Berikut ini merupakan hasil enkripsi dari algoritma RC6, Vigenere dan Caesar pada aplikasinotes.
Gambar 13. Hasil enkripsi didatabase notes
4. Kesimpulan
Berdasarkan uraian yang telah dibahas sebelumnya mengenai penerapan algoritma kriptografi RC6,VigeneredanCaesarpada aplikasi notes berbasis android, baik secara teoritis maupun penerapannya, maka penulis dapat mengambil kesimpulan sebagai berikut :
1. Aplikasi Notes ini memiliki fitur pengamanan informasi ganda yaitu login password, password timeoutdan enkripsi isinotes sehingga user dapat merahasiakan isinoteslebih baik.
2. Aplikasi Notes ini menerapkan metode algoritma RC6, Vigenere dan Caesar untuk enkripsi isi notes. Sehingga isi notes yang tersimpan pada database aplikasi notes ini tidak dapat terbaca dan sangat aman untuk menyimpan notes yang bersifat penting atau rahasia.
Berikut beberapa saran yang dapat dipergunakan sebagai pertimbangan untuk pengembangan aplikasi pada penelitian selanjutnya.
1. Aplikasi Notes ini membutuhkan pengembangan kembali agar bisa menyimpan catatan berupa gambar maupun suara.
2. Selanjutnya dapat menggunakan metode enkripsi lain yang lebihmodern dari metode enkripsi yang digunakan saat ini.
3. Notes yang dienkripsi baru sebatas teks saja, untuk kedepannya perlu dibuat enkripsi untuk penyimpanan gambar maupun suara.
4. AplikasiNotesini membutuhkan proses enkripsi tambahan ketika user
melakukan share note dan dibuatkannya menu khusus untuk mendekripsi hasil terimashare note. 5. Aplikasi Notes ini diperlukannya fitur
lupa password dan menambahkan beberapa menu seperti reminder dan to-do list.
5. Referensi
Alawiyah, T., & Hikmah, A. B. (2016).
MODIFIKASI KRIPTOGRAFI HILL CIPHER KUNCI MATRIKS PERSEGI PANJANG MENGGUNAKAN FUNGSI XOR DAN FUNGSI XNOR.Indonesian Journal on Computer and Information Technology,1(1), 68–82.
Basuki, A., Paranita, U., & Hidayat, R.
(2016). PERANCANGAN APLIKASI
KRIPTOGRAFI BERLAPIS
MENGGUNAKAN ALGORITMA
CAESAR, TRANSPOSISI,
VIGENERE, DAN BLOK CIPHER BERBASIS MOBILE. Seminar Nasional Teknologi Informasi Dan Multimedia,1(2), 31–35.
Kharisma, R. S., & Rachman, M. A. F.
(2017). PEMBUATAN APLIKASI
NOTES MENGGUNAKAN
ALGORITMA KRIPTOGRAFI
POLYALPHABETIC SUBTITUTION CIPHER KOMBINASI KODE ASII DAN
OPERASI XOR BERBASIS
ANDROID.Jurnal Teknologi Informasi, 35, 1–7.
Laurentinus. (2017). IMPLEMENTASI KRIPTOGRAFI DAN KOMPRESI SMS MENGGUNAKAN ALGORITMA RC6
DAN ALGORITMA HUFFMAN
BERBASIS ANDROID. Jurnal Ilmiah Informatika Global,8(1), 36–42.
Pabokory, F. N., Astuti, I. F., & Kridalaksana, A. H. (2015). IMPLEMENTASI KRIPTOGRAFI PENGAMANAN DATA PADA PESAT TEKS, ISI FILE DOKUMEN, DAN FILE DOKUMEN
MENGGGUNAKAN ALGORITMA
ADVANCED ENCRYPTION
STANDARD. Jurnal Informatika Mulawarman,10(1), 20–31.
Rachman, M. A. F. (2018). PERANCANGAN APLIKASI MEMO MENGGUNAKAN
ALGORITMA KRIPTOGRAFI
CAESAR CIPHER DAN RSA
BERBASIS ANDROID. Seminar Nasional Inovasi Dan Aplikasi Teknologi Di Industri, 121–127.