Implementasi Algoritma Elgamal Untuk Keamanan Sms Pada Android

BAB 2
LANDASAN TEORI

2.1. Kriptografi

Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

2.1.1. Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa Yunani yang terdiri dari dua suku kata
yaitu kryptos yang artinya tersembunyi dan graphein yang artinya tulisan. Pesan asli
disebut plaintext dan pesan yang disamarkan disebut ciphertext. Pesan yang telah
disandikan dan dikirim disebut kriptogram. Proses mengubah plaintext menjadi
ciphertext dosebut encryption atau enciphering atau enkripsi.Proses kebalikan dari
mengubah ciphertext menjadi plaintext, yang dilakukan olehpenerima disebut
dekripsi. Siapapun yang terlibat dalam kriptografi disebut cryptographer(Mollin, R.
A. 2007).

Menurut Munir,R. (2006), Kriptografi (cryptography) merupakan ilmu dan
seni untuk menjaga pesan agar aman. (Cryptography is the art and science of keeping
messages secure) “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing”

(tulisan).

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, S. 2010).

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai
berikut:“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan

7

menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode
lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua
hal yang ditulis dengan cara seperti ini”(Haq, H. A. 2013).

2.1.2. Terminologi Kriptografi

Seorang pengirim (sender) ingin mengirim pesan (plaintext; kadang-kadang disebut
cleartext) kepada orang yang dituju (receiver). Selain itu, pengirim ingin pesan yang
dikirim tidak dapat dibaca oleh orang lain yang menyadap percakapan (eavesdropper)

atau

pesan

tersebut.

Proses

menyamarkan

pesan

sedemikian

rupa

untuk

menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut
ciphertext. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi.

Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan
decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi
ditunjukkan secara umum pada Gambar 1 (Schneier, 1996).

Ciphertext

Plaintext
Enkripsi

Plaintext
Dekripsi

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Schneier, 1996)

2.1.3. Tujuan Kriptografi

Kriptografi bertujuan untuk memberikan layanan keamanan kepada pengguna sebagai
berikut:

1. Kerahasiaan (Confidentiality)

Informasi dirahasiakan dari semua pihak yang tidak berwenang.
2. Keutuhan Data (Integrity)
Pesan tidak berubah dalam proses pengiriman hingga pesan diterima oleh
penerima.

8

3. Autentikasi (Message Authentication)
Kepastian terhadap identitas setiap entitas yang terlibat dan keaslian sumber data.
4. Nirpenyangkalan (Nonrepudiation)
Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data
yang telah dikirim atau diterima.

2.1.4. Sistem Kriptografi

Sistem kriptografi terdiri dari 5 bagian yaitu sebagai berikut :
1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca.
2. Secret Key: merupakan masukan bagi algoritma enkripsi yang berupa nilai bebas
terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
3. Ciphertext: keluaran algoritma enkripsi yang dianggap sebagai pesan dalam

bentuk tersembunyi.
4. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan yaitu teks asli dan
teks kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli
sehingga menghasilkan teks sandi.
5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan
kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks
asli bila kunci rahasia yang dipakai sesuai dengan algoritma dekripsi.

Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga, yaitu
algoritma simetri (menggunakan satu kunci untuk enkripsi dan dekripsi), algoritma
asimetri (menggunakan kunci yang berbeda untuk enkripsi dan dekripsi) dan fungsi
hash (Ariyus, 2008).

2.1.5. Sistem Kriptografi Asimetris

Kriptografi asimetris ini dikenal juga sebagai kriptografi kunci publik (public key) dan
merupakan bagian sistem kriptografi modern, yaitu kunci enkripsi (public key)
dimiliki oleh pengirim dan kunci dekripsi (private key) dimiliki oleh penerima pesan.

9


Diffie-Hellman adalah sistem kriptografi public key yang pertama, DifieHellman tidak sepopuler RSA dan ElGamal karena hanya dapat digunakan untuk key
agreement. Menggunakan Difie-Hellman, dua pengguna, sebut saja A dan B, dapat
membuat kunci privat yang hanya diketahui oleh A dan B, meskipun komunikasi
antara A dan B dapat dilihat semua orang.
Diffe-Hellman menggunakan finite field GF(q) yang sangat besar. A dan B keduanya
mengetahui GF(q) dan elemen g ∈ GF(q). GF(q) dan g tidak perlu dirahasiakan, jadi

boleh saja diketahui semua orang. Meskipun tidak harus, g sebaiknya merupakan
generator untuk GF(q)* , atau setidaknya memiliki order yang besar agar range untuk
pembuatan kunci cukup besar.

Kriptografi yang termasuk algoritma asimetris adalahDiffie-Hellman, RSA,
ElGamal, DSA dan sebagainya. Skema algoritma kriptografi asimetri dengan kunci
publik dapat dilihat pada Gambar 2.2. berikut ini.

TeksAsli

AlgoritmaEnkri
psi


Ciphertext

AlgoritmaDekri
psi

A
KPrivatB

TeksAsli

PembangkitK
unci

B
KPublikB
Gambar 2.2. Skema Kriptografi Asimetri Kunci Publik (Sadikin, 2012)

2.1.6. Bilangan Prima


Bilangan positif p (�>1) disebut bilangan prima jika pembaginya hanya 1 dan p.
Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan
23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima
dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan
ganjil, kecuali dua yang merupakan bilangan genap.

10

2.1.7. Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang
digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a
dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan
menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat
dinotasikan sebagai berikut (Harahap, A. A. 2014).
a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b