Implementasi Kombinasi Algoritma RSA dan ElGamal Dalam Pengamanan Data Pada File Dokumen

BAB 2

LANDASAN TEORI

2.1 Kriptografi

2.1.1 Pengertian Kriptografi
Kriptografi (cryptography) berasal dari Bahasa Yunani “criptos” yang artinya
adalah rahasia, sedangkan “graphein” artinya tulisan. Jadi kriptografi berarti
tulisan rahasia. Secara umum, kriptografi adalah ilmu dan seni untuk menjaga
kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak
dapat dimengerti lagi maknanya (Munir, 2006).

Kriptografi didefenisikan sebagai sebuah teknik rahasia dalam penulisan,
dengan karakter khusus, dengan menggunakan huruf dan karakter di luar bentuk
aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihakpihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini
(Hasnan, 2010).

Dalam prosesnya, Kriptografi memiliki dua konsep utama, yaitu proses
enkripsi (encryption) dan dekripsi (decryption). Enkripsi adalah proses
penyandian plainteks menjadi cipherteks, sedangkan dekripsi adalah proses

mengembalikan cipherteks menjadi plainteks semula. Enkripsi dan dekripsi
membutuhkan kunci sebagai parameter yang digunakan untuk transformasi
(Kurniawan, Yusuf. 2004).

Universitas Sumatera Utara

6

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak
menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh
seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2009)

2.1.2 Sejarah Kriptografi

Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai
sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The
Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah

kriptografi, mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun
yang lalu hingga penggunaan kriptografi abad ke – 20.

Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik,
yaitu metode enkripsi yang menggunakan kertas dan pensil atau menggunakan
alat bantu mekanik sederhana. Kriptografi klasik secara umum dikelompokkan
menjadi dua kategori, yaitu algoritma transposisi (transposition cipher ) dan
algoritma substitusi (substitution cipher ). Algoritma transposisi adalah algoritma
yang mengubah susunan – susunan huruf di dalam pesan, sedangkan algoritma
substitusi yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf
atau kelompok huruf yang lain.

Penggunaan algoritma transposisi yaitu oleh tentara Sparta di Yunani pada
permulaan tahun 400 SM. Mereka menggunakan alat yang namanya scytale.
Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada

sebuah silinder dengan diameter tertentu (diameter silinder merupakan kunci dari
penyandian). Pesan ditulis baris per baris dan secara horizontal. Apabila kertas
dilepas, maka setiap huruf akan tersusun secara acak membentuk pesan rahasia.
Agar pesan tersebut dapat dibaca, maka kertas harus kembali dililitkan ke silinder
yang diameternya sama dengan diameter silinder pengirim.

Universitas Sumatera Utara


7

(a)

(b)

Gambar 2.1 (a) Sebuah scytale; (b) Pesan ditulis secara horizontal, baris per baris.

Sedangkan algoritma substitusi paling awal dan paling sederhana adalah
Caesar Cipher , yaitu digunakan oleh raja Yunani kuno, Julius Caesar. Caranya

adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang
terletak pada tiga posisi berikutnya di dalam susunan alfabet. Pada perang dunia
ke – 2, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan dengan
Enigma . Mesin ini melakukan proses enkripsi yang sangat rumit. Namun Enigma

berhasil dipecahkan oleh pihak sekutu dan keberhasilan memecahkan Enigma
sering dikatakan sebagai faktor yang memperpendek perang dunia ke – 2.


Gambar 2.2 Mesin enigma

Perkembangan

peralatan

komputer

digital

memicu

terbentuknya

kriptografi modern. Dengan komputer digital, akan sangat mungkin untuk
menghasilkan cipher yang lebih kompleks dan rumit. Tidak seperti kriptografi
klasik yang mengenkripsi karakter per karakter, kriptografi modern beroperasi
pada string biner. Cipher yang lebih kompleks seperti DES dan RSA adalah
algoritma modern yang sangat dikenal di dunia kriptografi. Kriptografi modern
tidak hanya berkaitan dengan teknik menjaga kerahasiaan pesan, tetapi juga


Universitas Sumatera Utara

8

melahirkan konsep seperti tanda-tangan digital dan sertifikat digital. Dengan kata
lain,

kriptografi

modern

tidak

hanya

memberikan

aspek


keamanan

(confidentiality), tetapi juga aspek keamanan lain seperti otentikasi dan integritas
data.

2.1.3 Terminologi Kriptografi

Di dalam kriptografi akan sering ditemukan beberapa istilah atau terminologi.
Berikut merupakan istilah penting untuk diketahui dalam memahami kriptografi
(Munir, 2006).

a.

Plainteks dan Cipherteks

Pesan merupakan data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plainteks. Pesan tersebut dapat dikirim
(melalui kurir, saluran telekomunikasi, dan lain – lain) dan dapat juga disimpan
dalam media penyimpanan. Pesan dapat berupa teks, gambar, suara, atau video.


Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan
perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang
telah tersandikan tersebut dinamakan dengan cipherteks. Cipherteks harus dapat
ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima
bisa dibaca. Perbandingan antara plainteks dan cipherteks dapat dilihat pada
Gambar 2.3.

(a)

(b)

Gambar 2.3 (a) Plainteks; (b) Cipherteks

Universitas Sumatera Utara

9

b. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim adalah

entitas yang mengirim pesan kepada entitas lainnya. Penerima adalah entitas yang
menerima pesan. Entitas disini dapat berupa orang, mesin (komputer), kartu
kredit, dan sebagainya.

c.

Enkripsi dan Dekripsi

Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi
(encryption). Sedangkan proses mengembalikan pesan dari cipherteks ke plainteks
dinamakan dengan deskripsi (decryption). Proses enkripsi dan deskripsi
membutuhkan kunci sebagai parameter yang digunakan untuk transformasi.

(a)

(b)

Gambar 2.4 (a) Skema enkripsi; (b) Skema dekripsi

d. Kriptanalisis


Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang
berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni
untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang
digunakan.

Pelakunya

disebut

kriptanalis.

Jika

seorang

kriptografer

(cryptographer ) mentransformasikan plainteks menjadi cipherteks dengan suatu
algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk

memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci.

Universitas Sumatera Utara

10

2.1.4 Tujuan Kriptografi

Munir (2006) merangkum tujuan dari kriptografi adalah sebagai berikut:
1. Kerahasiaan (Confidentiality), adalah layanan yang ditujukan untuk menjaga
agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Istilah
lainnya adalah secrecy dan privacy. Banyak pendekatan untuk menghadirkan
kerahasiaan, mulai dari perlindungan secara fisik sampai perlindungan melalui
algoritma matematika yang menerjemahkan data sehingga sulit dipahami.
2. Integritas Data (Data Integrity), adalah layanan yang menjamin bahwa pesan
masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.
Manipulasi data dapat berupa menyisipkan, menghapus dan menukar data
tersebut.
3. Otentikasi (Authentication), adalah layanan yang berhubungan dengan
identifikasi baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi

(entity authentication) maupun mengidentifikasi asal usul pesan (data origin
authentication).

Dua

pihak

yang

saling

berkomunikasi

harus

dapat

mengotentikasi satu sama lain sehingga ia dapat memastikan asal usul pesan.
Otentikasi asal usul pesan secara implisit juga memberikan kepastian integritas
data, sebab jika pesan telah dimodifikasi berarti asal usul pesan sudah tidak
benar.
4. Penyangkalan (Non-Repudiation), adalah layanan untuk mencegah entitas yang
berkomunikasi

melakukan

penyangkalan

yaitu

pengirim

pesan

telah

menyangkal melakukan pengiriman atau penerima pesan menyangkal telah
menerima pesan.
2.1.5 Jenis – Jenis Kriptografi
Berdasarkan kunci enkripsi dan deskripsinya algoritma kriptografi terbagi menjadi
dua bagian (Munir, 2006) yaitu:

Universitas Sumatera Utara

11

1.

Kriptografi simetri

Konsep dasar dari kriptografi kunci simetri adalah di mana kunci untuk enkripsi
sama dengan kunci untuk deskripsi. Istilah lain dari kriptografi simetri ini adalah
kriptografi kunci privat (privat-key cryptography), kriptografi kunci rahasia
(secret-key

cryptography),

atau

kriptografi

konvensional

(conventional

cryptography). Dalam kriptografi kunci simetri dapat diasumsikan bahwa si

penerima dan pengirim pesan telah terlebih dahulu berbagi kunci sebelum pesan
dikirimkan. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya. Skema
kriptografi simetri dapat dilihat pada Gambar 2.5.

(a)

(b)

Gambar 2.5 (a) Skema enkripsi kriptografi simetri;
(b) Skema dekripsi kriptografi simetri

2.

Kriptografi asimetri

Berbeda dengan kriptografi kunci simetri, kriptografi asimetri memiliki dua buah
kunci yang berbeda pada proses enkripsi dan deskripsinya. Nama lain dari kunci
asimetri ini adalah kriptografi kunci publik (public – key cryptography). Kunci
untuk enkripsi pada kriptografi asimetri ini tidak rahasia (diketahui oleh publik),
sedangkan kunci untuk deskripsi bersifat rahasia (kunci privat). Pengirim akan
mengenkripsi

dengan

menggunakan

kunci

publik,

sedangkan

penerima

mendeskripsi menggunakan kunci privat. Skema kriptografi asimetri dapat dilihat
pada Gambar 2.6.

Universitas Sumatera Utara

12

(a)

(b)

Gambar 2.6 (a) Skema enkripsi kriptografi asimetri;
(b) Skema dekripsi kriptografi asimetri

2.2 Algoritma Kriptografi

2.2.1 Algoritma RSA

Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of
Technology) pada tahun 1976, yaitu Ron (R)ivest, Adi (S)hamir, dan Leonard
(A)dleman. RSA adalah algoritma kriptografi modern yang menggunakan sistem
kriptografi asimetri (kunci publik). Algoritma RSA yang dibuat oleh para
ilmuwan pada tahun 1976 ini, melakukan pemfaktoran bilangan yang sangat besar
untuk mendapatkan kunci privat (Munir, 2006).

Keunggulan dari algoritma RSA adalah tingkat kesulitannya dalam
memfaktorkan bilangan besar menjadi faktor primanya dan kekurangan algoritma
ini adalah jika bilangan tidak cukup besar maka dengan mudah dapat difaktorkan.
(Permana, Aditya dkk.) dalam jurnalnya yang berjudul “Kriptografi Pada
File Dokumen Microsoft Office Menggunakan Metode RSA” menjelaskan bahwa

algoritma RSA dapat diterapkan dalam proses enkripsi dan dekripsi file dokumen
Microsoft Office yang dapat digunakan untuk melakukan proses kriptografi

terhadap file .doc, .xls, .ppt.
(Supriyono. 2008) dalam jurnalnya yang berjudul “Pengujian Sistem
Enkripsi-Dekripsi Dengan Metode RSA Untuk Pengamanan Dokumen”

Universitas Sumatera Utara

13

menjelaskan bahwa algoritma RSA dapat diaplikasikan untuk teks-teks dengan
ukaran kecil maupun besar.

2.2.1.1 Proses Pembangkitan Kunci

Algoritma membangkitkan pasangan kunci:
1.

Pilih duah buah bilangan prima sembarang
=

jika

=

maka

2

, sehingga

dan . (Sebaiknya

≠ , sebab

dapat diperoleh dengan menarik akar

pangkat dua dari ).
=

∙ .

2.

Hitung

3.
4.

Hitung �( ) =

5.

Bangkitkan

Pilih kunci

yang relatif prima terhadap �( ).
kunci

privat

dengan

�( )). Perhatikan bahwa

1(


− 1 ∙ ( − 1).

≡ 1(

sederhana

�( ))

ekivalen

dapat dihitung dengan

menggunakan





=

≡ 1(

persamaan

�( )). Hitung

= 1 + ��( ),

sehinnga





hingga

secara

1+�� ( )

.

Hasil dari algoritma diatas:
- Kunci publik adalah pasangan ( , )
- Kunci privat adalah pasangan ( , )

Algoritma RSA memiliki besaran-besaran sebagai berikut:
1.

dan

2.

=

bilangan prima


3. �( ) =

(rahasia)
(tidak rahasia)

− 1 ∗ ( − 1)

(rahasia)

4.

(kunci enkripsi/kunci publik)

(tidak rahasia)

5.

(kunci dekripsi/kunci privat)

(rahasia)

6.

(plainteks)

(rahasia)

7.

(cipherteks)

(tidak rahasia)

Universitas Sumatera Utara

14

2.2.1.2 Proses Enkripsi

Proses enkripsi pesan sebagai berikut:
1. Ambil kunci publik ( , ).
2. Nyatakan plainteks

menjadi blok-blok

1,

jumlah karakter plainteks.
3. Setiap blok



dienkripsi menjadi blok

sehingga didapat cipherteks

1, 2, … , � .



2, … ,



dimana � menyatakan

dengan rumus



=



,

2.2.1.3 Proses Dekripsi

Setiap blok cipherteks


.



didekripsi kembali menjadi blok



dengan rumus

�=

2.2.2 Algoritma ElGamal

Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma
ElGamal juga adalah algoritma kriptografi kunci-publik. Algoritma ini pada
mulanya digunakan untuk digital signature, namun kemudian dimodifikasi
sehingga juga bisa digunakan untuk enkripsi dan dekripsi. Kekuatan algoritma ini
terletak pada sulitnya menghitung logaritma diskrit pada bilangan modulo prima
yang besar (Munir, 2006).
(Ifanto, Mukhammad. 2009) dalam jurnalnya yang berjudul “Metode
Enkripsi dan Dekripsi dengan Menggunakan Algoritma ElGamal” menjelaskan
bahwa tingkat keamanan algoritma ini didasarkan pada kesulitan pemecahan
masalah logaritma diskrit pada penggandaan bilangan bulat modulo prima yang
besar.
(Aribowo, Eko. 2008) dalam jurnalnya yang berjudul “Aplikasi
Pengamanan Dokumen Office Dengan Algoritma Kriptografi Kunci Asimetris

Universitas Sumatera Utara

15

ElGamal” menjelaskan bahwa aplikasi yang dihasilkan dapat digunakan untuk
dokumen Microsoft Office dengan ekstensi .doc, .txt, .ppt dan .mdb.

2.2.2.1 Proses Pembangkitan Kunci

Algoritma membangkitkan pasangan kunci:
1. Pilih sembarang bilangan prima . (dengan syarat nilai

harus lebih besar dari

nilai plainteks terbesar).
2. Pilih dua buah bilangan acak � dan , dengan syarat � <
2.

3. Hitung

dan 1 ≤





= �

Hasil dari algoritma diatas :
-kunci publik adalah ( , �, )
-kunci privat adalah ( , )

Algoritma ElGamal memiliki besaran-besaran sebagai berikut:
1.

bilangan prima

(tidak rahasia)

2. Bilangan acak, � (� < )
3. Bilangan acak,

(tidak rahasia)

( < ) (kunci privat)

(rahasia)

5.

= �

(plainteks)

(rahasia)

6.

dan

(tidak rahasia)

4.

(kunci publik)

(cipherteks)

(tidak rahasia)

Universitas Sumatera Utara

16

2.2.2.2 Proses Enkripsi

Proses enkripsi pesan sebagai berikut:
1. Susun plainteks menjadi blok-blok

1,

karakter plainteks.

2, … ,



dimana � menyatakan jumlah

2. Pilih bilangan acak � yang dalam hal ini 1 ≤ �� ≤
3. Setiap blok

− 2.

dienkripsi dengan rumus:
= �� �

=
Pasangan

dan

��

adalah cipherteks untuk blok pesan

. Jadi, ukuran cipherteks

dua kali ukuran plainteks.

2.2.2.3 Proses Dekripsi

Gunakan kunci privat
persamaan

=

untuk mendekripsi

dan

menjadi plainteks

dengan

.

Universitas Sumatera Utara