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
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