Kombinasi Algoritma AES, RC4 Dan Elgamal Dalam Skema Kriptografi Hybrid Untuk Keamanan Data

BAB 2
TINJAUAN PUSTAKA

2.1. Data dan Informasi
Data dapat didefenisikan sebagai kenyataan yang digambarkan oleh nilai-nilai
bilangan-bilangan, untaian karakter atau simbol-simbol yang membawa arti tertentu.
Dalam perusahaan, data tersebut identik dengan perubahan nilai atau sering disebut
dengan istilah “transaksi”. Informasi sendiri dapat didefenisikan sebagai hasil dari
pengolahan data dalam bentuk yang lebih berguna bagi penerimanya, yang digunakan
sebagai alat bantu dalam pengambilan keputusan.

2.2. Keamanan Data
Keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi.
Masalah keamanan sering kurang mendapat perhatian dari para perancang dan
pengelola sistem informasi. Masalah keamanan sering berada diurutan setelah
tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting.
Keamanan adalah keadaan bebas dari bahaya. Istilah ini dapat digunakan
dengan hubungan kepada kejahatan, dan segala bentuk kecelakaan. Keamanan
merupakan topik yang luas termasuk keamananan nasional terhadap serangan teroris,
keamanan komputer terhadap hacker, keamanan rumah terhadap maling dan
penyelusup lainnya, keamanan finansial terhadap kehancuran ekonomi dan banyak

situasi berhubungan lainnya (Kristianto, 2003). Host/ komputer yang terhubung
kenetwork, mempunyai ancaman keamanan lebih besar dari pada host yang tidak
terhubung kemana-mana. Dengan mengendalikan network security, risiko tersebut
dapat dikurangi.
Kebutuhan keamanan untuk sebuah sistem komputer berbeda – beda
bergantung kepada aplikasi – aplikasi yang dikandungnya, antara lain sistem transfer
keuangan elektronik, akan berbeda kebutuhannya dengan sistem reservasi atau
sistem–sistem kontrol lainnya. Pada saat ini data storage merupakan suatu komponen
utama yang sangat vital, dimana data storage sangat penting nilainya jika didalamnya
disimpan file atau data yang sifatnya sangat penting dan rahasia. Oleh karena jaringan
komputer yang bersifat multiuser, maka dibutuhkan suatu metode pengamanan

Universitas Sumatera Utara

tersendiri. Pada saat ini banyak bentuk ancaman danpenyerangan terhadap jaringan
komputer itu sendiri, termasuk salah satunya adalah ancaman dan penyerangan
terhadap data yang terdapat pada alat penyimpanan data itu sendiri.

2.3. Kriptografi
2.3.1. Definisi Kriptografi

Kriptografi

adalah

ilmu

yang

mempelajari

teknik-teknik

matematika yang

berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data,
keabsahan data,

integritas

data,


serta

autentikasi

data

(Menezes

dkk.,1996).Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti
secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya
kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari
suatu tempat ke tempat yang lain (Ariyus, 2008).
Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga
keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi
pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak untuk
mengetahui isi pesan tersebut. Untuk menjaga pesan, maka pesan tersebut dapat
diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak lain.
2.3.2. Konsep Dasar Kriptografi
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan

dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
Algoritma kriptografi terdiri dari fungsi dasar yaitu:
1. Enkripsi, yaitu merupakan hal yang sangat penting dalam kriptografi yang
merupakan pengamanan data yang dikirimkan terjaga rahasianya, pesan asli
disebut plainteks yang dirubah menjadi kode-kode yang tidak dimengerti.
Enkripsi bisa diartikan dengan cipher atau kode.
2. Dekripsi, yaitu merupakan kebalikan dari enkripsi dimana pesan yang telah
dienkripsi dikembalikan kebentuk asalnya (plainteks) disebut dengan dekripsi
pesan.
3. Kunci, yaitu kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci
terbagi menjadi 2 bagian yaitu kunci pribadi (private key) dan kunci umum
(public key).

Universitas Sumatera Utara

Secara umum, proses enkripsi dan dekripsi dapat dilihat seperti pada gambar dibawah
ini.

Gambar 2.1 Proses enkripsi dan dekripsi


Secara matematis, operasi enkripsi dan dekripsi dapat diterangkansebagai berikut:

EK (M) = C (Proses Enkripsi)
DK (C) = M (Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan pesan M dengan suatu
kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut
diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama
seperti pesan sebelumnya.

2.3.3. Tujuan Kriptografi
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamananinformasi (Munir, 2006), yaitu:
1. Kerahasiaan, adalah aspek yang berhubungan dengan penjagaan isi
informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia
untuk membuka informasiyang telah dienkripsi.
2. Integritas data, adalah aspek yang berhubungan dengan penjagaan dari
perubahan data secara tidak sah.

Universitas Sumatera Utara


3. Autentikasi, adalah aspek yang berhubungan dengan identifikasi atau
pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri.
4. Non-repudiation (menolak penyangkalan), adalah usaha untuk mencegah
terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang
mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal
dari seseorang, apabila ia menyangkal mengirim informasi tersebut.

2.4. Jenis Kriptografi
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, algoritma kriptografi
dibedakan menjadi dua macam algoritma kriptografi, yaitu: (Munir, 2006).
2.4.1. Kriptografi Kunci Simetri
Kriptografisimetriadalahalgoritma kriptografi yang menggunakan kunci enkripsi yang
sama dengan kunci dekripsinya. Keamanan algoritma simetri tergantung pada
kuncinya. Apabila kuncinya diketahui orang lain, maka orang tersebut dapat
mengenkrip dan mendekrip pesan.Gambar dibawah ini mengilustrasikan kinerja dari
proses enkripsi dan dekripsi kunci simetri.

Gambar 2.2 Skema kriptografi simetri


Kriptografi simetri yang utama adalah melindungi kerahasiaan data yang
dikirim melalui saluran tidak aman dan melindungi kerahasiaan data yang disimpan

Universitas Sumatera Utara

pada media yang tidak aman. Masalah utama yang dihadapi kriptografi simetri adalah
membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada orang lain yang
mengetahuinya.
Kelebihan kriptografi simetri adalah:
1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi dan dekripsi
membutuhkan waktu yang singkat.
2. Ukuran kunci algoritma simetri relatif pendek.
3. Algoritma kriptografi simetri dapat disusun untuk menghasilkan cipher yang
lebih kuat.
4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima,
karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

Kelemahan algoritma kriptografi simetri adalah:
1. Kunci algoritma simetri harus dikirim melalui saluran yang aman. Dua entitas
yang berkomunikasi harus menjaga kerahasiaan kunci ini.

2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.

Salah satu cotoh algoritma kunci simetri adalah algoritma AES, RC4 dan
lain-lain.Dua kategori yang termasuk pada algoritma simetris ini adalah algoritma
blockcipher dan stream cipher.
a. Block Cipher

Algoritma block cipher adalah algoritma yang masukan dan keluarannya berupa satu
block, dan setiap blocknya terdiri dari banyak bit. Beberapa mode operasi enkripsi
block cipher:
b. Stream Chipher

Stream cipher ( Cipher aliran ) adalah cipher yang berasal dari hasil XOR antara bit
plaintext dengan setiap bit kuncinya. Stream cipher sangat rawan terhadap attack
pembalikan bit.
Beberapakelemahanstreamcipherantaralain (Kromodimoeljo, 2010):


Jika naskah asli dan naskah acak diketahui, maka menggunakan xor kita
bisa dapatkan keystream.




Stream cipher rentan terhadap tampering. Seseorang yang mengetahui
posisi data tertentu dalam naskah acak dan mengetahui nilai data tersebut bisa

Universitas Sumatera Utara

mengubahnyamenggunakanxor.Contohnya,angka50bisadiubah menjadi angka
99denganmelakukanx⊕(50⊕99),dimanaxmerepresentasikan 50 dalam naskah

acak.

2.4.2. Kriptografi Kunci Asimetri
Kriptografi kunci asimetri yang sering disebut juga kriptografi kunci publik
adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi
dan dekripsinya. Algoritma asimetri ini disebut kunci publik karena kunci untuk
enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya.Pada
kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci,
yaitu kunci privat dan kunci publik.Pengirim mengenkripsi pesan dengan

menggunakan kunci publik si penerima pesan (receiver). Hanya penerima pesan yang
dapat mendekripsi pesan karena hanya dia yang mengetahui kunci privatnya
sendiri(Munir, 2006). Dalam sistem ini, kunci enkripsi disebut kunci publik,
sementara kunci dekripsi sering disebut kunci privat.Contoh algoritma asimetri
ditunjukkan pada gambar 2.3.

Gambar 2.3Skema algoritma kriptografi asimetri

Kelebihan algoritma kriptografi asimetri adalah:
1. Hanya kunci pribadi yang perlu dijaga kerahasiaannya oleh setiap entitas yang
berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin).
2. Pasangan kunci publik dan kunci private tidak perlu diubah, bahkan dalam
periode waktu yang panjang.

Universitas Sumatera Utara

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan
digital pada pesan.


Kelemahan algoritma kriptografi asimetri adalah:
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri,
karena enkripsi dan dekripsi menggunakan bilangan yang besar dan
melibatkan operasi perpangkatan yang besar.
2. Ukuran cipherteks lebih besar dari pada plainteks.
3. Ukuran kunci relatif besar daripada ukuran kunci simetri.

2.5. Enkripsi Hibrid (Hybrid Encryption)
Metode ini menggabungkan konsep simetrik dan asimetrik, dengan menggunakan key
random data dienkripsi dengan metode simetrik. Tahap berikutnya keyrandom yang
dipakai untuk proses enkripsi data juga dienkripsi, tetapi menggunakan metode
asimetrik dengan menggunakan public key dari penerima. Ciphertext yang dihasilkan
masing-masing metode digabungkan dan dikirimkan ke penerima. Penerima akan
membuka ciphertext untuk key word dengan menggunakan private key yang
dimilikinya. Bentuk blok diagram metode ini diperlihatkan pada gambar 2.4 dan 2.5.

Plaintext

Chiperte
xt

E
Key
Random

Chiperte
xt

Chiperte
xt

E
Public
Key

Gambar 2.4 Proses Enkripsi Hybrid

Universitas Sumatera Utara

D

Chipertext

Plaintext

Key

Chipertext

D
Private
Key

Gambar 2.5 Proses Deskripsi Hybrid
2.6. Algoritma AES (Advanced Encryption Standard)
Algoritma AES diperoleh melalui kompetisi yang dilakukan pada tahun 1997 oleh
NIST (National Institute of Standard and Technology) untuk mencari standar
algoritma enkripsi yang dapat dipergunakan dalam berbagai aplikasi. Proses seleksi
ini amat ketat dan membutuhkan waktu yang cukup lama. Pada akhirnya, tanggal2
Oktober 2000 terpilihlah algoritma Rijndael yang dibuat oleh Rijmen dan Daemen
dari Belgia sebagai standar algoritma enkripsi yang biasa disebut AES.
AES menjadi standard melalui proses seleksi. Dari beberapa teknik enkripsi
yang dicalonkan untuk menjadi AES, yang terpilih adalah enkripsi Rijndael.
AES merupakan salah satu algoritma terpopuler yang digunakan dalam kriptografi
kunci simetrik.AES ini merupakan algoritma block cipher dengan menggunakan
sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel
sebagaiman block cipher pada umumnya. Tidak seperti DES yang berorientasi
bit, Rijndael beroperasi dalam orientasi byte. Setiap putaran mengunakan kunci
internal yang berbeda (disebut round key). Enciphering melibatkan operasi substitusi
dan permutasi. Jenis AES terbagi 3, yaitu :
1.

AES-128

2.

AES-192

3.

AES-256
Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang

digunakan. Angka-angka di belakang kata AES menggambarkan panjang kunci yang
digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing
AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round,
AES-192 sebanyak 12 round, dan AES-256 sebanyak 14 round.

Universitas Sumatera Utara

Tabel 1. Blok Jenis AES
Panjang Kunci

Ukuran Blok

Jumlah Putaran

AES-128

(Nk Words)
4

(Nb Words)
4

(Nr)
10

AES-192

6

4

12

AES-256

8

4

14

Catatan 1 words=32bit
Algoritma Rijndael mempunyai 3 parameter yaitu :
1. Plainteks adalah array yang berukuran 16 byte, yang berisi data masukan.
2. Cipherteks adalah array yang berukuran 16 byte, yang berisi hasil enkripsi.
3.Key adalah array yang berukuran 16 byte, yang berisi kunci ciphering (disebut juga
cipher key).
Garis besar enkripsi algoritma Rijndael yang beroperasi pada blok 128-bit
dengan kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round key):
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key.
Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah:
a. SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
b. ShiftRows: pergeseran baris-baris array state secara wrapping.
c. AddRoundKey: melakukan XOR antara state sekarang round key.
d. Final round: proses untuk putaran terakhir:
3. Final round : proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c. AddRoundKey

Universitas Sumatera Utara

Blok diagram proses enkripsi algoritma AES-128 dapat dilihat pada dibawah ini.

Gambar 2.6 Blok Diagram Enkripsi Algoritma AES-128(Munir,2006)

Untuk selanjutnya akan dijelaskan setiap iterasi tahapan rounds dari proses enkripsi
algoritmaAES – 128.
1. AddRoundKey
Tahapan AddRoundKey pada algoritma enkripsi AES sesungguhnya hanyalah operasi
X-or terhadap komponen byte plaintext dengan acuan cipher key (W) yang dihasilkan
pada prosedur key schedule. Masing-masing komponen byte diubah ke dalam bentuk
biner untuk kemudian dioperasikan masing – masing bit dengan fungsi logika X-or.
Bilangan biner yang terbentuk kemudian dikonversi lagi menjadi komponen byte yang
mewakili.
2. Transformasi Subtitusi Bytes(SubBytes)
Dalamoperasi ini, setiap byte yang akan dienkripsi disubtitusikan dengan nilai
byte lain dengan menggunakan S-box. AES-128 merupakan algoritma simetri, yang
berarti tabel subtitusi yang dibutuhkan untuk enkripsi berbeda dengan dekripsi. Tabel
S-boxdapat dilihat pada tabel dibawah ini.

Universitas Sumatera Utara

Tabel 2. S-Box Enkripsi AES

3. Transformasi Pergeseran Baris (ShiftRows)
Pada operasi ini, byte-byte (128 bit) pada setiap baris digeser secara memutar dengan
pergeseran yang berbeda dari tiap-tiap baris sesuai aturan. Baris ke-satu tidak akan
mengalami proses pergeseran, sedangkan untuk baris ke-dua di geser satu kali ke kiri.
Baris ketiga digeser ke kiri sebanyak dua kali dan baris ke-empat digeser ke kiri
sebanyak tiga kali. Pada algoritma enkripsi akan dilakukan pergeseran ke arah kiri,
tetapi pada algoritma dekripsi pergeseran dilakukan ke arah kanan. Untuk lebih
jelasnya dapat dilihat pada gambar dibawah ini.

Gambar 2.7 Proses ShiftRows

Universitas Sumatera Utara

4. Transformasi Pencampuran Kolom(MixColumns)
Transformasi

menggunakan MixColumns

adalah

proses

ketiga

dalam

satu

round enkripsi AES. Di sini, kolom-kolom pada array state akan diperlukan sebagai
suatu polynomial yang berada dalam GF(28) dan akan dikalikan dengan modulo x4 +
1 , dengan suatu polynomial tertentu seperti terlihat pada tabel berikut :

Tabel 3. Bilangan Polynominal untuk MixColumn

02

01

01

03

03

02

01

01

01

03

02

01

01

01

03

02

Proses MixColumnsini mengoperasikan blok pada masing-masing kolomnya.
Setiap kolom akan dilakukan perkalian dengan matriks seperti berikut ini.

s’0,c

02

03

01

01

s0,c

01

02

03

01

s1,c

s’2,c

01

01

02

03

s2,c

s’3,c

03

01

01

02

s3,c

s’1,c

=

Dengan c adalah letak kolom, sehingga hasilnya adalah sebagai berikut :
s’0,c = ({02}•s0,c) xor ({03}•s1,c) xor (s2,c) xor(s3,c)
s’1,c = (s0,c) xor({02}•s1,c) xor ({03}•s2,c) xor (s3,c)
s’2,c = (s0,c) xor (s1,c) xor({02}•s2,c) xor ({03}•s3,c)
s’3,c = ({03}•s0,c) xor (s1,c) xor (s2,c) xor({02}•s3,c)

Jika hasil perkalian memiliki lebih dari 8 bit, bit yang lebih tidak begitu saja
dibuang. Hasil tersebut dilakukan operasi XOR dengan 100011011.Operasi
transformasi ini tidak digunakan dalam putaran terakhir, baik untuk enkripsi maupun
dekripsi.

Universitas Sumatera Utara

Sedangkan algoritma dekripsi AES yang beroperasi pada blok 128- bit adalah sebagai
berikut :
1. AddRoundKey : melakukan XOR antara state awal (cipherteks) dengan cipher
key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah :
a. InvShiftRow : pergeseran baris-baris array state secara wrapping.
b. InvSubByte : substitusi byte dengan menggunakan tabel substitusi Inverse S-box.
c. AddRoundKey : melakukan operasi X-or antara state sekarang dengan
round key.
d. InvMixColumn : mengacak data pada masing-masing kolom array state.
3. Final round : proses untuk putaran terakhir:
a. InvShiftRow.
b. InvSubByte.
c. AddRoundKey
Blok diagram algoritma dekripsi AES – 128 dapat dilihat pada gambar dibawah ini:

Gambar 2.8Blok Diagram Dekripsi Algoritma AES

Universitas Sumatera Utara

Tahapan proses dekripsi algoritma AES-128 dijelaskan sebagai berikut:
1. InvShiftRows
InvShiftRows adalah kebalikan dari transformasi ShiftRows.Bytes dalam tiga baris
terakhir dari state bergeser memutar. Baris pertama, r = 0 tidak bergeser. Proses
InvShiftRows diilustrasikan pada gambar dibawah ini.

Gambar 2.9 Proses InvShiftRows

2. InvSubBytes
InvSubBytes adalah kebalikan dari transformasi SubBytes dimana invers S-Box
diterapkan untuk setiap byte dari state. Tabel invers S-Box digunakan dalam
transformasi InvSubBytes seperti ditunjukkan pada table berikut ini.

Tabel 4. S-Box Invers Dekripsi AES

Universitas Sumatera Utara

3. InvMixColumns
InvMixColumnsadalah transformasi inverse MixColumnpada setiap kolom dari state.
InvMixColumnmembalik transformasi MixColumndengan cara memindahkan ruas
matriks

pengali

sehingga

dapat

dikatakan

bahwa

matriks

pengali

InvMixColumnsadalah invers dari matriks pengali pada MixColumn.

pada
Proses

MixColumns ini mengoperasikan blok pada masing-masing kolomnya. Setiap kolom
akan dilakukan perkalian dengan matriks seperti berikut ini.

s’0,c

0e

0b

0d

09

s0,c

09

0e

0b

0d

s1,c

s’2,c

0d

09

0e

0b

s2,c

s’3,c

0b

0d

09

0e

s3,c

s’1,c

=

Dengan c adalah letak kolom, sehingga hasilnya adalah sebagai berikut :
s’0,c = ({0e}•s0,c) xor ({0b}•s1,c) xor ({0d}•s2c) xor ({09}•s3,c)
s’1,c = ({09}•s0,c) xor ({0e}•s1,c) xor ({0b}•s2c) xor ({0d}•s3,c)
s’2,c = ({0d}•s0,c) xor ({09}•s1,c) xor ({0e}•s2c) xor ({0b}•s3,c)
s’3,c = ({0b}•s0,c) xor ({0d}•s1,c) xor ({09}•s2c) xor ({0e}•s3,c)

5. Prosedur Key Expansion(Ekspansi Kunci)
Ekspansi cipher key digunakan untuk membentuk round key yang akan digunakan
pada langkah-langkah enkripsi dan dekripsi.Ekspansi kunci ini memiliki tahapan
khususyangdikenalsebagaiRijndael’skeyschedule.Iterasi tahapan AddRoundKey pada
algoritma AES – 128 diulang sebanyak sebelas kali. Oleh karenanya, terdapat sepuluh
kali round key yang dibutuhkan dalam satu kali enkripsi state. Melalui key schedule
tersebut, key yang menjadiparameter masukan akan diekspansi menjadi beberapa
round key.
Tabel 5. Rcon
01

02

04

08

10

20

40

80

1b

36

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

Universitas Sumatera Utara

Proses ekspansi kunci diilustrasikan pada gambar berikut ini.

Gambar 2.10 Proses ekspansi kunci

Karena setiap key merupakan representasi dari empat word maka proses ini
dapat juga dikatakan sebagai proses ekspansi word. Pada kasus ini dibangkitkan 44
buah word, yaitu word ke-0 (w0) hingga word ke-43 (w43). Empat word pertama (w0w3) dihasilkan dari penyalinan langsung key asli, sedangkan 40 word selanjutnya
dibangkitkan dengan menggunakan w(i-1) sebagai input word serta urutan langkah
transformasi sebagai berikut:
1. Proses rot word yaitu transformasi input word (b0, b1, b2, b3) menjadi (b1, b2,
b3, b0 )
2. Proses sub word yaitu proses subtitusi hasil dari rot word menggunakan kaidah
S-box(SubBytes)
3. Proses XOR hasil sub word dengan suatu nilai konstan Rcon[j] bersesuaian bagi
setiap round.
Rcon[j] = (RC[j], 0, 0, 0)
dan
RC[j]=2*RC[j-1]
RC[1] = 01
Dengan sifat operasi * merupakan perkalian yang terdefinisikan pada field
GF(28).
4. Lakukan proses XOR hasil langkah 3 dengan w (i-4)

Universitas Sumatera Utara

2.7. Algoritma RC4
RC4 adalah stream cipher yang dirancang di RSA Security oleh Ron
Rivesttahun1987. Pada mulanya cara kerja RC4 dirahasiakan oleh RSA Security,akan
tetapi inidibocorkan di internet tahun 1994 di milis Cypherpunks. RSASecurity tidak
pernahmerilis RC4 secara resmi, akibatnya banyak yang menyebutnya sebagai
ARC4(alleged RC4 atau tersangka RC4) untuk menghindarimasalah trademark.
Berbeda

dengan

mayoritas

stream

cipher

sebelumnya

yang

implementasinyadioptimalkan untuk hardware menggunakan linear feedback shift
registers, RC4dirancang agar dapat diimplementasikan di software secara sangat
efisien. Inimembuat RC4 sangat populer untuk aplikasi internet, antara lain RC4
digunakandalam standard TLS (transport layer security) dan WEP (wirelessequivalent
privacy).

Gambar 2.11Blok Diagram Algortima RC4

Cara membuat keystream dalam RC4 adalah dengan state automaton
danterdiri dari duatahap yaitu tahap key scheduling dan tahap pseudo-random
generation.
1. Key Scheduling Algorithm (KSA)

Universitas Sumatera Utara

Proses KSA memberikan nilai inisialisasi pada tabel sbox, key dan selanjutnya
melakukan proses permutasi sebanyak 256 iterasi (dengan indeks 0 sampai dengan
255). Berikut adalahalgoritma KSA dalam bentuk pseudo-code dimanakey adalah
kunci enkripsi dankeylength adalah besar kunci enkripsi dalambytes (untuk kunci 128
bit, keylength = 16):

for i = 0 to 255
S[i] := i
j := 0
for i = 0 to 255
j := (j + S[i] + key[i mod keylength]) mod 256
swap(S[i],S[j])

2. Pseudo Random Generation Algorithm (PRGA)
Tabel sbox hasil dari KSA digunakan lagi dalam proses PRGA ini untuk
menghasilkan key stream yang akan di XOR kan dengan plaintext untuk
menghasilkan ciphertext. Proses untuk menghasilkan key stream dilakukan proses
permutasi pada tabel sbox berdasarkan nilai iterasi yang diambil secara random.
Setiap putaran, bagian keystream sebesar 1 byte(dengan nilai antara 0 sampai dengan
255) dioutput oleh PRGA berdasarkanstate S. Berikut adalah algoritma PRGA dalam
bentuk pseudo-code:

i := 0
j := 0
loop
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap(S[i],S[j])
output S[(S[i] + S[j]) mod 256]

2.8. Algoritma ElGamal
AlgoritmaElGamaldibuatolehTaher
padatahun1984,danalgoritmainimerupakanalgoritmayang

ElGamal
termasukdalamkategori

Universitas Sumatera Utara

algoritma asimetris.Padaawalnya algoritmaini digunakanuntukdigital

signature,

namun kemudian dimodifikasi sehingga bisa digunakanuntuk enkripsi dan dekripsi
(Munir, 2006). Algoritma ElGamal mempunyai kunci publikberupa tiga pasang
bilangan dan kunci rahasia berupa dua bilangan. Algoritma ini mempunyaikerugian
padacipherteksnya yang mempunyai panjang dua kali lipat dariplainteksnya.
Akantetapi, algoritma ini mempunyai kelebihan pada enkripsi. Untuk plainteks yang
sama, algoritmaini memberikan cipherteks yang berbeda pada saat setiap kali
plainteks tersebut dienkripsi. Haltersebut dikarenakan adanya pengaruh dari sebuah
variabel yang ditentukan secara acak padasaat proses enkripsi dilakukan. Berikut
adalah diagram blok dari algortima elgamal.

Gambar 2.12 Diagram blok algoritma Elgamal

AlgoritmaElGamalini terdiri dari 3 proses, yaitu proses pembentukan kunci,
prosesenkripsi, dan proses dekripsi.
1. Proses Pembentukan Kunci

Universitas Sumatera Utara

Proses

pembentukan

kunci

ini

terdiri

dari

pembentukan

kunci

publikdanjugapembentukankuncirahasia.Kuncipublikiniakandigunakanpadaprosespen
genkripsiansedangkan kunci rahasia digunakan pada saat proses pendeskripsian. Pada
proses ini dibutuhkansebuah bilangan prima p, bilangan acak g dan x, dengan syarat g
< p dan 1 ≤ x ≤ p-2. Kuncipublik algoritma ElGamal terdiri atas pasangan 3 bilangan
(y, g, p) di mana:
y = gx mod p

Sedangkan kunci rahasianya adalah bilangan (x, p)tersebut.
KarenapadaalgoritmaElGamal
menggunakanbilanganbulatdalamprosesperhitungannya, maka pesan harus dikonversi
ke dalam suatu bilangan bulat. Untuk mengubahpesan menjadi bilangan bulat,
digunakan kode ASCII (American Standard for InformationInterchange).KodeASCII
merupakan representasi numericdari karakter-karakteryangdigunakan pada komputer,
serta mempunyai nilai minimal 0 dan maksimal 255. Oleh karena itu,berdasarkan
sistem kriptografi ElGamal di atas maka harus digunakan bilangan prima yang
lebihbesar dari 255. Kode ASCII berkorespondensi 1-1 dengan karakter pesan.

2. Proses Enkripsi
Proses

enkripsi

menggunakan

kunci

publik

(y,g,p)

dan

sebuah

bilangan

acakkyangdalam hal ini 1 ≤ k ≤ p-2. Untuk setiap karakter dalam pesan dienkripsi
dengan

menggunakanbilangankyangberbeda-beda.Satukarakter

yangdirepresentasikandengan menggunakanbilangan bulat ASCII akan menghasilkan
kode dalam bentuk blok yang terdiri atas dua nilai (a,b). Berikut ini langkah-langkah
untuk proses enkripsi:
a. Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi
karaktertersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat m.
b.Hitung nilai a dan b dengan persamaan berikut:
a = gkmod p

(1)

k

b = y m mod p

(2)

c.Diperoleh cipherteks untuk karakter m tersebut dalam blok (a, b).

Universitas Sumatera Utara

d.Lakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter
spasi.
Salah satu kelebihan algoritma ElGamal adalah bahwa suatu plainteks yang
sama

akandienkripsimenjadicipherteksyangberbeda-

beda.Akantetapi,walaupuncipherteksyangdiperoleh berbeda-beda, tetapi pada proses
dekripsi akan diperoleh plainteks yang sama.

3. Proses Dekripsi
Dekripsi dari cipherteks ke plainteks menggunakan kunci rahasia x dan p yang
disimpankerahasiaanya oleh penerima pesan. Diberikan (y, g, p) sebagai kunci publik
dan x sebagai kuncirahasia pada algoritma ElGamal. Jika diberikan cipherteks (a, b),
maka :
m = b.c mod p

(3)

dengan m adalah plainteks. Di mana nilai dari variabel c dicari dengan menggunakan
persamaansebagai berikut :
c = ap-1-xmod p

(4)

Berikut ini langkah-langkah untuk proses dekripsi:
a.Ambil sebuah blok cipherteks dari pesan yang telah dienkripsikan pengirim.
b.Denganmenggunakanxyangdirahasiakanolehpenerima,hitungnilaiplainteksden
gan menggunakanpersamaan (3) danpersamaan (4).

2.9. Teori Bilangan
2.9.1. Teorema Euclidean
Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n> 0. Jika m dibagi
dengan n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder),
sedemikian sehingga
m = nq + r
dengan 0 ≤ r < n
Contoh :

Universitas Sumatera Utara

i.

1987 dibagi dengan 97 memberikan hasil bagi 20 dan sisa 47:
1987 = 97 ⋅ 20 + 47

ii.

–22 dibagi dengan 3 memberikan hasil bagi –8 dan sisa 2:
–22 = 3(–8) + 2

iii.

–22 = 3(–7) – 1 salah karena r = –1 tidak memenuhi syarat 0 ≤r 0. Operasi “a mod m” (di baca a modulo
m) memberikan sisa jika di bagi dengan m. Notasi : a mod m = r sedemikian sehingga
a= mg + r, dengan 0 ≤ r < m ( Munir, 2006)
Contoh beberapa hasil operasi dengan operasi modulo:
1.

13 mod 5

=3

(13 = 5.2 + 3)

2.

28 mod 3

=1

(28 = 3. 9 + 1 )

3.

6 mod 8

=6

( 6 = 8.0 + 6 )

4.

0 mod 12

=0

( 0 = 12.0 +0)

5.

-41 mod 9

=4

(-41 = 9 (-5) + 4)

6.

-39 mod 13

=0

(-39 = 13 (-3) + 0)

2.9.3. Bilangan Prima
Bilangan bulat positif p (p> 1) disebut bilangan prima jika pembaginya hanya 1 dan
p.23 adalah bilangan prima karena ia hanya habis dibagi oleh 1 dan 23. Karena
bilangan prima harus lebih besar dari 1, maka barisan bilangan prima dimulai dari 2.
(Munir, 2006)yaitu 2, 3, 5, 7, 11, 13, …. Seluruh bilangan prima adalah bilangan
ganjil, kecuali 2 yang merupakan bilangan genap.Bilangan selain prima disebut
bilangan komposit (composite). Misalnya 20 adalah bilangan komposit karena 20
dapat dibagi oleh 2, 4, 5, dan 10, selain 1 dan 20 sendiri.

2.9.4. Metode Fermat
Salah satu teknik yang dapat di gunakan untuk menguji apakah suatu bilangan itu
prima atau bukan adalah dengan menggunakan metode Fermat.
Secara formal, teorema Fermat menyatakan bahwa jika n adalah bilangan
yang akan di tes keprimanya dan 1 < a < n, maka :

Universitas Sumatera Utara

an-1 mod n = 1
Dimana : a € Z

Jika kita ingin membuktikan apakan n adalah bilangan prima atau bukan,
langkah pertama yang harus di lakukan adalah dengan menentukan nilai a secara acak
pada interval antara 2 sampai n-1 dan membuktikan apakah n memenuhi persamaan
diatas. Jika persamaan tersebut tidak terpenuhi pada satu nilai a maka n adalah
bilangan komposit. Sedangkan jika persamaan tersebut terpenuhi pada banyak nilai a,
maka n adalah kemungkinan prima.
Contoh :
Jika n = 27
Dan 1 < a < 27, maka a adalah nilai yang diambil secara acak pada interval 2
sampai 26. Misal nilai a yang di gunakan adalah ( 2, 12 )
an-1 mod n
jika a = 2 maka :
227-1 mod 27 = 226 mod 27 = 13
Jika a = 12, maka :
1227-1 mod 27 = 1226 mod 27 = 0

Dengan demikian 27 bukan bilangan prima karena menggunakan nilai a yang
kecil tidak memenuhi persamaan fermat.

2.10. Aplikasi Client Server
Klien-server atau client-server merupakan sebuah paradigma dalam teknologi
informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua
pihak: pihak klien dan pihak server. Dalam model klien/server, sebuah aplikasi dibagi
menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni
komponen klien dan komponen server. Komponen klien juga sering disebut sebagai
front-end, sementara komponen server disebut sebagai back-end. Sebuah contoh dari
aplikasi client-server sederhana adalah aplikasi web yang didesain dengan
menggunakan Active Server Pages (ASP) atau PHP. Skrip PHP atau ASP akan
dijalankan di dalam web server (Apache atau Internet Information Services),

Universitas Sumatera Utara

sementara skrip yang berjalan di pihak klien akan dijalankan oleh web browser pada
komputer klien. Berikut gambar proses terjadinya antara klien dengan server.

Gambar 2.13 Ilustrasi proses client server

2.11. Riset Terkait
Terdapat beberapa riset terkait dalam penelitian ini yang telah dilakukan oleh peneliti
sebelumnya. Adapun beberapa riset tersebut adalah :

Tabel 6. Riset Terkait
Nama Peneliti
Indrastanti
Widiasari, (2012)

Judul
R. Combining
Encryption

Pembahasan

Advanced Membahas

Standard penggabungan algoritma AES

(AES) and One Time Pad dan
(OTP)

Encryption

Data Security.

tentang

OTP.

for dilakukan
kemudian

Proses
dengan
enkripsi

Enkripsi
OTP
dengan

AES. Hasil pembahasan berupa
waktu enkripsi dan dekripsi
dengan panjang kunci berbeda

Universitas Sumatera Utara

serta

kapasitas

file

setelah

tentang

desain

dienkripsi.

E.M.Islas-Mendoza,

Diffie-Hellman Protocol Membahas

C.A.Jimenez-Vazquez

Based on Elgamal and komunikasi keamanan pesan

& V.M Silva-Garcia, AES Cryptosystems.

melalui

LAN

dengan

(2013)

mengimplementasikan
kriptosistem hybrid algoritma
AES dan Elgamal untuk proses
enkripsi kunci serta protocol
Diffie-Hellman untuk distribusi
keamanan

kunci.

penelitian
proses

ini

Pada

melakukan

komunikasi

dengan

jumlah user yang berbeda serta
waktu respon yang dihasilkan.
Kurniadi,

Irwansyah Penerapan

& Fatmasari (2015)

RC4

untuk

Algoritma Pembahasan tentang enkripsi
Enkripsi dan

dekripsi

file

dengan

Keamanan Data (Studi algoritma RC4. Implementasi
Kasus: Dinas Pendidikan program dengan visual studio
dan Kebudayaan Kota 2008.
Sekayu)

Kesimpulan

hasil

penelitian yaitu yaitu file yang
dapat dienkripsi adalah txt,
excel, pdf dan jpg.

Purwadi, Hendra Jaya Aplikasi
dan Ahmad Calam, Asimetris
(2014)

Metode

Kriptografi Membahas

tentang

dengan perancangan sistem enkripsi
Diffie-Hellman dekripsi

dengan

Elgamal

dan Algoritma Elgamal dengan menggunakan metode
untuk Keamanan Teks

Diffie-Hellman,
penerapannya

kemudian
dengan

Universitas Sumatera Utara

membangun sebuah aplikasi.

Universitas Sumatera Utara