bab ii tinjauan pustaka dan landasan teorieprints.mercubuana-yogya.ac.id/3608/3/bab ii.pdf · 2018....
TRANSCRIPT
3
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1. Histori Penelitian
Penelitian yang berjudul A Hybrid RSA and RC6 Based Secure Image
Cryptography to Minimize Entropy and Enhance Correlation, melakukan
penggabungan antara algoritma RSA dan RC6 untuk meningkatkan keamanan
kriptografi pada file gambar. Kesimpulan dari penelitian ini menjelaskan bahwa
adanya struktur keamanan pada basis data gambar. Enkripsi dengan RSA dan RC6
yang digunakan dapat memberdayakan variabilitas kunci dan ukuran sehingga
keamanannya dapat berkembang (Chaturvedi & Jain, 2016).
Penelitian lain yang berjudul Polynomial Functions dan Implementasinya
dalam Algoritma Advanced Encryption Standard pada Database Accounting,
melakukan implementasi algoritma AES untuk mengenkripsi database khususnya
database accounting. Tujuannya yaitu memberi keamanan pada informasi yang
terdapat dalam database agar tidak diketahui orang lain. Adapun kesimpulan yang
diambil dalam penelitian ini bahwa AES merupakan algoritma kriptografi yang
menggunakan fungsi polynomial dalam tahapan proses enkripsi dan dekripsinya.
Algoritma AES banyak diimplementasikan pada database accounting dengan
tujuan untuk mengamankan data atau informasi yang terdapat didalam database,
sehingga walaupun data tersebut diketahui atau bahkan dicuri oleh pihak yang tidak
berhak namun pihak tersebut tidak bisa mengetahui isinya (Winarno, Cahyanto, &
Mulyadi, 2012).
Penelitian yang berjudul Aplikasi Pengamanan Dokumen Office Dengan
Algoritma Kriptografi Blowfish, melakukan implementasi algoritma Blowfish
untuk mengamankan teks dokumen office. Kesimpulan dari penelitian ini yaitu,
aplikasi ini dapat mengenkripsi dan mendekripsi teks dokumen Microsoft Office
2003 yang berekstensi .doc dan xls. namun ukuran file yang terenkripsi masih
terlalu besar, dan hanya dapat mengenkripsi dan mendekripsi file dengan format
.doc dan xls saja (Pratama, 2013).
4
Selain itu, penelitian dengan judul Rancang Bangun Sistem Keamanan Data
dengan Menerapkan Modifikasi Penggabungan Algoritma AES 256 dan BASE64,
telah membuat rancangan keamanan data dengan menggunakan modifikasi
penggabungan dua algoritma yaitu AES 256 dan BASE64. Kesimpulan dari
penelitian ini yaitu waktu yang diperlukan untuk melakukan enkripsi dan dekripsi
tidak jauh berbeda. Variasi jumlah karakter dan variasi kunci tidak memerlukan
waktu yang lama dalam memproses enkripsi dan dekripsi (Ramadhan, Andriani,
Puspasari, & Widiyanto, 2014).
Penelitian yang berjudul Analisis Aplikasi Kriptografi untuk Sistem Keamanan
Penyimpanan Data atau Informasi Hasil-Hasil Penelitian yang Bersifat Rahasia,
telah melakukan analisis aplikasi yang menggunakan algoritma MARS dengan
modus ECB (Electronic Code Book). MARS sebagai salah satu kandidat AES,
memiliki kelebihan yaitu mempunyai tingkat keamanan dan proses kecepatan yang
tinggi. Kesimpulan dari penelitian tersebut yaitu, bahwa data yang diproses dapat
dipercaya kerahasiaannya karena telah diacak menggunakan iterasi sebanyak 32
round dan masing-masing round mengalami fungsi feistel, fungsi E dan Sbox
dengan panjang kunci 128 bit. (Ekaputra, 2014)
Penelitian lain yang berjudul Kriptografi Teks dengan Menggunakan
Algoritma LUC, mengimplementasikan algoritma LUC untuk mengamankan teks.
Penelitian tersebut menyimpulkan bahwa operasi pada Algoritma LUC dilakukan
dalam domain bilangan, oleh karena itu sebelum dilakukan enkripsi, teks terlebih
dahulu di konversi kedalam bentuk bilangan. Hasil enkripsi berupa teks yang telah
disandikan dalam bentuk bilangan (Saputra, Bambang, & Suhartono, 2006).
2.2. Landasan Teori
2.2.1. Kriptografi
Kriptografi berasal dari bahasa Yunani, terdiri dari kata kripto dan graphia.
kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi
memiliki 4 komponen utama yaitu plaintext (pesan yang dapat dibaca), ciphertext
(pesan acak yang tidak dapat dibaca), key (kunci untuk melakukan teknik
kriptografi) algorithm (metode untuk melakukan enkrispi dan dekripsi).
5
Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari tentang
pnyembunyian pesan. Namun, pada saat ini kriptografi diartikan sebagai ilmu yang
bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi
seperti kerahasiaan, keutuhan data dan otentikasi entitas (Sadikin, 2012).
Kriptografi merupakan teknik dalam upaya mengamankan suatu data dalam
jaringan. Jenis-jenis layanan keamanan jaringan berdasarkan rekomendasi ITU-T
pada dokumen X.800 yaitu Otentikasi, Kendali Akses, Kerahasiaan Data, Keutuhan
Data, Non-Repudiation, Ketersediaan (ITU, 1991).
Secara umum, berdasarkan kesamaan kunci algoritma kriptografi dapat
dibedakan menjadi dua, yaitu algoritma simetrik dan algoritma asimetrik.
Algoritma simetrik merupakan algoritma yang menggunakan kunci enkripsi sama
dengan kunci dekripsi, algoritma ini disebut juga single-key algorithm. Contoh
algoritma simetrik yaitu algoritma RC2, RC4, RC5, RC6, DES, AES, Rijndael,
Blowfish dan Twofish. Sedangkan algoritma asimetrik adalah suatu algoritma yang
memiliki kunci enkripsi dan dekripsi tersendiri, yaitu menggunakan kunci publik
dan kunci privat. Contoh algoritma asimetrik antara lain RSA, El Gamal dan Rabin.
Dalam sistem kriptografi, terdapat empat aspek penting yang merupakan tujuan
fundamental (Schneier, 1996), antara lain:
a. Kerahasiaan (confidentiality)
Kerahasiaan adalah layanan yang digunakan untuk menjada informasi
dari setiap pihak yang tidak berwenang dan hanya dapat diakses oleh orang
yang memiliki hak akses.
b. Integritas data (data integrity)
Integritas data adalah layanan yang bertujuan untuk mencegah
terjadinya pengubahan informasi oleh pihak yang tidak berwenang.
Manipulasi data yang dihindari adalah penyisipan, penghapusan dan
penggantian data.
c. Autentikasi (authentication)
Autentikasi adalah layanan yang terkait dengan identifikasi baik
terhadap pihak yang ingin mengakses sistem informasi ataupun terhadap
keaslian data dari sistem informasi itu sendiri.
6
d. Ketiadaan penyangkalan (non repudiation)
Ketiadaan penyangkalan adalah layanan yang berfungsi untuk
mencegah terjadinya penyangkalan terhadap suatu aksi yang dilakukan
oleh pelaku sistem informasi.
2.2.2. Rivest Code 6
Rivest Code 6 (RC6) adalah Algoritma yang didasari oleh generasi
sebelumnya, yaitu algoritma RC5. RC6 termasuk dalam algoritma kunci simetris,
dimana kunci enkripsinya sama dengan kunci dekripsinya. Algoritma RC6
dirancang oleh beberapa orang diantaranya: Ronald L Rivest, M.J.B. Robshaw, R.
Sidney dan Y.L. Yin. RC6 mulai dipublikasikan pada tahun 1998.
Algoritma RC6 merupakan salah satu kandidat Advanced Encryption
Standard (AES) yang diajukan oleh RSA Laboratoriest kepada NIST. Ketika
algoritma ini masuk sebagai kandidat AES, maka ditetapkan nilai parameter w =
32, r = 20 dan b bervariasi antara 16, 24, dan 32 byte (Prayudi & Halik, 2017).
Dalam Algoritma RC6, blok data yang diolah ditempatkan dalam register
pada algoritma sehingga data diolah pada tiap register yang ada. Perbedaan RC6
dan RC5 (varian sebelum RC6) yaitu RC5 hanya membagi plaintext menjadi dua
register, sedangkan RC6 memecah bit blok 128 bit plaintext menjadi 4 register.
Karakter-karakter dalam teks yang dienkripsi akan diubah dalam sistem
ASCI. Satu karakter ASCI akan diwakili 8 bit, dimana 28=256, sehingga dalam satu
blok plaintext (32 bit) akan menyimpan 4 karakter, maka akan diambil 16 karakter
dari plaintext.
Seperti pada AES, dalam RC6 juga dikenal istilah padding. Apabila panjang
plaintext dan panjang kunci kurang dari 16 karakter, maka akan dilakukan padding.
Padding dilakukan dengan cara menambahkan bit 0 (nol) pada akhir teks, untuk
mencukupi panjang teks sebanyak 16 karakter.
Proses enkripsi pada RC6 hampir sama dengan proses dekripsi, hanya urutan
prosesnya saja yang dibalik, yaitu: blok data yang diolah sebesar 128 bit yang dibagi
menjadi 4 register. Pada proses enkripsi, inputan berupa plaintext kemudian data
dienkripsi untuk menghasilkan output chipertext. Masing-masing blok data inputan
7
berukuran 32 bit disimpan dalam register A, B, C dan D, lalu dioperasikan dengan
kunci-kunci yang telah ditentukan. Sedangkan pada proses dekripsi, inputan berupa
chipertext (hasil dari proses enkripsi) kemudian data didekripsi untuk dikembalikan
menjadi plaintext. Kunci yang digunakan dalam proses dekripsi sama dengan kunci
yang digunakan dala proses enkripsi, hanya saja urutan sub kunci pada tiap iterasi
yang dibalik.
2.2.3. Proses Enkripsi RC6
Proses enkripsi pada algoritma RC6 akan mengubah karakter kedalam nilai
ASCII terlebih dahulu. Satu karakter ASCII diwakili 8 bit, dimana 28 =256. Dalam
1 blok plaintext (32 bit) akan menyimpan 4 karakter untuk setiap kali iterasi, maka
akan diambil 16 karakter dari plaintext. Proses padding akan dilakukan jika panjang
plaintext atau panjang kunci kurang dari 16 karakter. Padding dilakukan dengan
cara menambah bit “0” (nol) di akhir teks, sehingga panjang teks dapat mencukupi
16 karakter. Urutan langkah proses enkripsi algoritma RC6 dapat dilihat pada
Gambar 2.1.
Gambar 2. 1 Proses Enkripsi RC6 (Wahyuni, 2017)
8
Sebelum karakter diubah dalam nilai ASCII, langkah pertama dalam enkripsi
dengan algoritma RC6 yaitu pembagian plaintext kedalam 4 blok, yaitu Blok A, B,
C dan D yang masing-masing blok terdiri dari 4 karakter. Setelah masing-masing
blok mendapatkan nilai, dilanjutkan dengan langkah whitening awal. Dalam proses
ini terjadi penjumlahan B dengan sub kunci S(o), dan D dengan sub kunci S(1).
Penjumlahan ini dilakukan dalam modulo 232.
Pada proses transformasi, nilai t dan u didapat dari blok B dan D diproses
dengan fungsi f(x)=x(2x+1), kemudian dilanjutkan dengan menggeser nilai t dan u
ke kiri sejauh 5 bit. Nilai 5 bit terakhir dari t akan dipergunakan sebagai penggeser
blok C pada proses berikutnya. Sedangkan nilai 5 bit terakhir dari u akan
dipergunakan sebagai pergeseran blok A pada proses selanjutnya.
Proses selanjutnya yaitu mixing, yaitu memproses blok A dan C dengan nilai
yang telah dihasilkan sebelumnya. Nilai A dijumlahkan dengan subkunci S(2)
dalam modulo 232, dan nilai C dijumlahkan dengan subkunci S(3) dalam modulo
232. Sehingga akan didapat nilai masing-masing blok.
Selanjutnya akan dijalankan proses swap register, yaitu mempertukarkan nilai
blok dengan aturan (A,B,C,D) (B, C, D, A), sehingga pada iterasi pertama akan
didapat nilai pada masing-masing blok, dan akan dilanjutkan pada iterasi
berikutnya.
2.2.4. Proses Dekripsi RC6
Proses dekripsi pada algoritma RC6 adalah proses kebalikan dari proses
enkripsi algoritma RC6. Blok data yang diproses adalah 4 blok, pembagiannya
sama seperti pada proses enkripsi. Hal yang membedakan adalah masukan yang
diproses. Jika pada proses enkripsi yang diolah adalah plaintext, sedangkan pada
proses dekripsi yang diolah adalah chiperteks yang akan diubah menjadi teks
aslinya. Urutan langkah proses dekripsi algoritma RC6 dapat dilihat pada Gambar
2.2.
9
Gambar 2. 2 Proses Dekripsi RC6 (Wahyuni, 2017)
Masing-masing blok yang berisi chiperteks tersimpan dalam register A,B,C
dan D. Kunci yang digunakan pada proses enkripsi sama dengan kunci pada proses
dekripsi. Sub kunci yang digunakan pun sama dengan yang digunakan pada saat
enkripsi, namun urutan sub kunci yang digunakan dibalik.
2.2.5. Advanced Encrytion Standard
Advanced Encryption Standard (AES) merupakan pemenang dalam sayembara
pencarian pengganti algoritma DES yang dianggap sudah tidak aman lagi. National
Institute of Standards and Technology (NIST) telah memilih system penyandian
Rijndael yang dikembangkan oleh Joan Daemen dan Vincent Rijment sebagai
system penyandian AES pada tahun 2000 (Prayudi & Halik, 2017).
10
Rijndael memenuhi kriteria sebagai berikut:
a. Keamanan
Sistem penyandian harus tahan terhadap serangan analisis sandi selain
serangan secara brute force.
b. Biaya
Sistem penyandian harus memiliki biaya komputasi dan memori yang
efisien sehingga dapat diimplementasikan secara perangkat keras maupun
perangkat lunak.
c. Karakteristik algoritma dan implementasi
Sistem penyandian harus bersifat terbuka, fleksibel, dan sederhana.
AES adalah system penyandian blok yang bersifat non-Fiestel karena
menggunakan komponen yang selalu memiliki invers dengan panjang blok 128 bit.
Kunci AES dapat memiliki panjang kunci 128, 192 dan 256 bit. AES menggunakan
5 unit ukuran data, yaitu: bit, byte, word, blok dan state. Bit merupakan satuan data
terkecil, yaitu nilai digit sistem biner, byte berukuran 8 bit, word berukuran 4 byte
(32 bit), blok berukuran 16 byte (128 bit), dan state adalah blok yang membentuk
matriks byte berukuran 4x4 (Sadikin, 2012).
Penyandian AES menggunakan proses berulang yang disebut dengan round.
Setiap round membutuhkan round key dan masukan dari round berikutnya. Round
key dibangkitkan berdasarkan key yang diberikan. Relasi antara jumlah round dan
panjang kunci diberikan oleh tabel berikut ini:
Tabel 2. 1 Perbandingan jumlah kunci dan round AES (Sadikin, 2012)
Panjang Kunci AES (bit) Jumlah round (Nr)
128 10
192 12
256 14
Tiga parameter Algoritma Rijndael antara lain:
1. Plaintext, array yang berukuran 16 byte, yang berisi data masukan.
2. Ciphertext, array yang berukuran 16 byte, yang berisi hasil enkripsi.
3. Kunci, array yang berukuran 16 byte, yang berisi kunci cipher.
11
Dalam AES dikenal dengan istilah padding, yaitu penambahan bit dummies
untuk menggenapi panjang blok yang tidak sama. Karena blok chipper sifatnya
harus sama panjang. Padding biasanya dilakukan pada blok terakhir plaintext, yaitu
dapat dilakukan dengan cara penambahan bit tertentu.
AES sampai saat ini masih dianggap aman untuk digunakan. Keamanan sistem
AES salah satunya disebabkan oleh penggunaan kunci yang
besar (128 bit, 192 bit, dan 256 bit) apabila dibandingkan dengan sistem DES
yang hanya menggunakan 64 bit. Jadi bruce attack terhadap sistem AES 256
bit memiliki ruang kunci 2256 yang merupakan nilai yang sangat besar (Sadikin,
2012).
2.2.6. Proses Enkripsi AES
Proses enkripsi teks pada algoritma AES dimulai dengan input bit pertama
kali yang disusun menjadi suatu array byte. Array byte inilah yang akan
dimasukkan atau disalin ke dalam state dengan urutan dimana r (row/baris ) dan c
(column/kolom). Selanjutnya dilakukan dalam 4 jenis transformasi byte, yaitu
SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey secara berulang-ulang
sebanyak Nr-1. Namun pada round (iterasi) yang terakhir tidak mengalami
transformasi MixColumns. Banyaknya iterasi pada AES 128 adalah 10 iterasi.
Proses enkripsi ditunjukkan oleh Gambar 2.3.
Gambar 2. 3 Ilustrasi proses Enkripsi AES (Munir, 2006)
12
a. AddRoundKey (Initial round)
Pada proses enkripsi dan dekripsi AES proses AddRoundKey sama, yaitu
melakukan operasi XOR antara state awal dengan chiper key. Proses ini disebut
juga Initial Round.
b. SubBytes
SubBytes mensubstitusikan satu state pada tabel substitusi (S-Box) yang telah
ditentukan nilainya. Tabel substitusi untuk SubBytes dapat dilihat pada Tabel 2.2
berikut ini:
Tabel 2. 2 Tabel substitusi untuk transformasi SubBytes (S-Box) (Kamil, 2016)
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
00 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
20 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
60 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c0 ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d0 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
Untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini xy
adalah digit heksadesimal dari nilai S[r, c], maka nilai substitusinya, dinyatakan
dengan S’[r, c], yang merupakan perpotongan baris x dengan kolom y.
13
Gambar 2. 4 Ilustrasi SubBytes
c. ShiftRows
Transformasi permutasi pada state disebut dengan transformasi ShiftRows.
ShiftRows dilakukan dengan cara memutar elemen matriks hasil proses transformasi
SubByte pada baris 1, 2, dan 3 ke kiri dengan jumlah perputaran yang berbeda-beda.
Baris pertama akan diputar sebanyak 1 kali, baris kedua sebanyak 2 kali, dan baris
ke 3 akan diputar sebanyak 3 kali. Sedangkan baris ke 0 tidak diputar. Proses
pergeseran Shiftrow dapat dilihat pada Gambar 2.5 berikut:
Gambar 2. 5 Ilustrasi Shiftrows
Pada proses ini MixColumns menjalankan operasi perkalian matriks pada setiap
kolom yang berada dalam state. MixColumns untuk perkalian dengan kunci 128
adalah sebagai berikut:
Gambar 2. 6 Ilustrasi MixColumns
14
d. AddRoundKey
Setelah proses MixColumns, dilakukan proses AddRoundKey lagi dengan cara
yang sama seperti sebelumnya, namun proses XOR nya menggunakan sub-kunci
yang bersesuaian tiap iterasi.
2.2.7. Proses Dekripsi AES
Proses dekripsi AES merupakan kebalikan dari proses enkripsi AES, yaitu
mengubah ciphertext menjadi plaintext. Dalam proses dekripsi pada algoritma AES
menggunakan transformasi byte antara lain: InvShiftRows, InvSubBytes,
InvMixColumns, dan AddRoundKey. Proses dekripsi dengan menggunakan
algoritma AES ditunjukkan oleh Gambar 2.7.
Gambar 2. 7 Ilustrasi Proses Dekripsi AES (Munir, 2006)
a. InvShiftRows
Proses InvShiftRows pada dasarnya merupakan transformasi kebalikan dari
transformasi ShiftRows pada proses Enkripsi AES. Jika transformasi ShiftRow
menggeser bit ke kiri, pada transformasi InvShiftRows melakukan penggeseran ke
kanan. Pada baris kedua penggeseran bit dilakukan tiga kali, pada baris ketiga
dilakukan penggeseran bit sebanyak dua kali, dan baris keempat dilakukan
penggeseran bit sebanyak satu kali. Ilustrasi transformasi InvShiftRows dapat dilihat
pada Gambar 2.8.
15
Gambar 2. 8 Ilustrasi transformasi InvShiftRows (Munir, 2006)
b. InvSubBytes
Proses InvSubBytes juga merupakan transformasi kebalikan dari transformasi
SubBytes. Pada InvSubBytes, dilakukan substitusi satu state pada tabel Inverse S-
Box yang telah ditentukan nilainya. Tabel substitusi untuk InvSubBytes dapat
dilihat pada Tabel 2.3.
Tabel 2. 3 Tabel Inverse S-Box (Kamil, 2016)
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
00 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb
10 7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb
20 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e
30 08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25
40 72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92
50 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84
60 90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06
70 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b
80 3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73
90 96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e
a0 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b
b0 fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4
c0 1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f
d0 60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef
e0 a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61
f0 17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d
16
c. InvMixColumns
Proses InvMixColumn dilakukan pada setiap kolom dalam state, yaitu
dikalikan dengan matrik perkalian dalam AES. Perkalian dalam matrik dapat
dituliskan seperti Gambar 2.9.
Gambar 2. 9 Perkalian pada InvMixColumns
d. AddRoundKey
Proses transformasi AddRoundKey pada proses dekripsi merupakan
transformasi yang bersifat self-invers dengan syarat menggunakan kunci yang sama
(Sadikin, 2012).
2.2.8. Penggabungan Algoritma RC6 dan AES
Keamanan data pesan merupakan fokus dari kriptografi dalam penelitian ini.
Semakin aman sistem keamanannya akan semakin baik data pesan tersimpan.
Algoritma hybrid dengan menggabungkan beberapa algoritma baik algoritma
simetri maupun algortima asimetri akan menambah keamanan sehingga menjadi
lebih aman dan kuat (Chaturvedi & Jain, 2016).
Algoritma RC6 dan AES merupakan algoritma yang sama-sama termasuk
dalam kategori algoritma simetris, dimana kunci enkripsinya sama dengan kunci
dekripsinya. Penggabungan kedua algoritma tersebut sangat mungkin dilakukan.
Dengan Algoritma RC6 ditambah algoritma AES yang telah diakui keamanannya
akan membentuk sistem keamanan yang lebih kuat. Algoritma ini akan bekerja
secara bergantian sehingga akan ada dua kali proses enkripsi dan juga dua kali
dekripsi pada satu pesan. Proses enkripsi dan dekripsi dengan penggabungan RC6
dan AES dapat dilihat pada Gambar 2.10.
17
Gambar 2. 10 Proses enkripsi dan dekripsi penggabungan RC6 dan AES
Pesan yang akan dikirim akan melalui proses enkripsi 1 yaitu menggunakan
algoritma AES dengan memasukkan kunci AES. Setelah memperoleh ciphertext
dari proses enkripsi 1, proses selanjutnya adalah enkripsi 2 yaitu mengenkripsi
ciphertext dari hasil proses enkripsi 1 menggunakan algoritma RC6 dengan
memasukkan kunci RC6. Maka akan diperoleh cipertext akhir yang akan dikirim
sebagai pesan kepada penerima.
Pesan yang diterima akan melalui proses dekripsi 1 yaitu menggunakan
algoritma RC6 dengan memasukkan kunci RC6. Lalu cipertext hasil dekripsi 1 akan
melalui proses dekripsi 2 menggunakan algoritma AES dengan kunci AES.
Sehingga akan diperoleh plaintext sebagai pesan yang telah terdekripsi.
2.2.9. Pesan Teks
Teks adalah naskah yang berupa a) kata-kata asli dari pengarang; b) kutipan
dari kitab suci untuk pangkal ajaran atau alasan; c) bahan tertulis untuk dasar
memberikan pelajaran, berpidato, dan sebagainya. Dalam dunia digital, teks dapat
dihasilkan dari dokumen pengolah kata atau angka yang digunakan dalam
perhitungan (Kemendikbud, 2018).
Teks merupakan himpunan huruf yang membentuk kata dan kalimat, yang
dirangkai dengan sistem tanda baca yang disepakati oleh masyarakat, sehingga teks
tersebut memiliki makna ketika dibaca. Oleh karena itu, teks digunakan untuk
berkomunikasi dan berisi informasi-informasi yang terkandung di dalamnya.
Plaintext Enkripsi 1
AES
Ciphertext
AES
Enkripsi 2
RC6
Ciphertext
RC6
Kunci
AES
Kunci
RC6
Plaintext Dekripsi 2
AES
Ciphertext
RC6
Dekripsi 1
RC6
18
Teks yang mengandung makna dapat dikirim kepada orang lain melalui pesan
singkat yang disebut Short Message Service (SMS), yang ada pada aplikasi dalam
perangkat Android. SMS memungkinkan pengguna untuk bertukar pesan yang
berisi teks singkat (Hondro, 2015).
SMS tersebut dapat menampung 160 karakter untuk satu buah pesan. Jika isi
pesan lebih dari 160 karakter, maka pesan tersebut akan dilanjutkan pada hitungan
pesan kedua, dan seterusnya. Satu pesan SMS akan dikenakan biaya berbeda-beda
pada setiap operator seluler.
Ada tiga macam set karakter yang umum digunakan untuk masukan dan
keluaran pada komputer, yaitu ASCII, EBCDIC, dan Unicode. ASCII (American
Code for Information Interchange) merupakan suatu standar internasional dalam
kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat
universal. ASCII digunakan oleh komputer dan alat komunikasi lain untuk
menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit,
dimulai dari 00000000 hingga 11111111. Total kombinasi yang dihasilkan
sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal.