Implementasi Super Enkripsi Algoritma Elgamal Dengan Teknik Transposisi Segitiga

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi
dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan
graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu
dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke
tempat lain. Dalam perkembangannya, kriptografi juga digunakan untuk
mengindentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian
pesan dengan sidik jari digital (fingerprint). (Ariyus, 2006)

Berikut adalah gambar sistem kriptografi konvensional:

Gambar 2.1: Sistem Kriptografi Konvensional (Sadikin, 2012)

Sistem kriptografi seperti yang ditunjukkan pada gambar 2.1 di atas terdiri dari 5
bagian yaitu (Sadikin, 2012) :
1.


Plaintext (M) adalah pesan atau data dalam bentuk aslinya yang dapat
terbaca. Plaintext adalah masukan bagi algoritma enkripsi.

Universitas Sumatera Utara

6

2.

Sumber kunci juga merupakan masukan bagi algoritma enkripsi
merupakan nilai yang bebas terhadap teks asli dan menentukan hasil
keluaran algoritma enkripsi.

3.

Ciphertext (C) adalah keluaran algoritma enkripsi. Ciphertext dapat
dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma yang baik
akan manghasilkan ciphertext yang terlihat acak.


4.

Algoritma enkripsi memiliki 2 masukan, teks asli (M) dan kunci rahasia
(K). Algoritma enkripsi melakukan transformasi terhadap plaintext
sehingga menghasilkan ciphertext.

5.

Algoritma dekripsi memiliki 2 masukan yaitu ciphertext (C) dan kunci
rahasia (K). Algoritma dekripsi memulihkan kembali ciphertext menjadi
plaintext bila kunci rahasia yang dipakai algoritma dekripsi sama dengan
kunci rahasia yang dipakai algoritma enkripsi.

Diasumsikan dalam sistem kriptografi klasik, pihak pengirim dan pihak
penerima memiliki kunci rahasia yang sama. Sistem ini disebut sistem kriptografi
simetris. Kunci rahasia harus dibangkitkan secara rahasia dan didistribusikan ke
pengirim dan penerima melalui saluran yang diasumsikan aman. Kebutuhan
saluran untuk mendapatkan kunci rahasia menjadi kelemahan utama sistem
simetris. Asumsi ini diatasi sistem kriptografi kunci publik yaitu dengan tidak
dbutuhkan saluran aman untuk distribusi kunci. (Sadikin, 2012)


Kunci yang dimiliki oleh proses enkripsi dan dekripsi pada sistem
kriptografi kunci publik berbeda. Kunci pada proses enkrips bersifat tidak rahasia
sehingga disebut kunci publik yang dapat didistribusikan melalui saluran yang
tidak aman. Kunci pada proses dekripsi bersifat rahasia yang disebut kunci private
yang kerahasiaannya harus dijaga oleh pemegang kunci. (Sadikin, 2012)

Kriptografi kunci publik dapat dianalogikan seperti kotak surat yang
terkunci dan

memiliki lubang untuk memasukkan surat. Kotak surat yang

diletakkan di depan rumah pemiliknya sehingga setiap orang dapat memasukkan
surat ke dalam kotak tersebut, tetapi hanya pemilik kotak yang dapat membuka

Universitas Sumatera Utara

7

dan membaca surat yang ada di dalam kotak tersebut. Kriptografi kunci publik

berkembang menjadi sebuah revolusi baru dalam sejarah kriptografi, tidak seperti
pada kunci simetris yang hanya didasarkan pada subtitusi dan permutasi saja, akan
tetapi kriptografi kunci public didasarkan pada fungsi matematika seperti
perpangkatan dan modulus. (Tamam, 2010)

Diagram berikut memperlihatkan perbedaan dari kriptografi simetris dan
kriptografi asimetris.
Plaintext

Ciphertext

Plaintext

Enkripsi

Dekripsi

Kunci

Kunci


Gambar 2.2: Diagram Kriptografi Simetris

Pada kriptografi simetris yang dapat dilihat pada gambar 2.2, kunci pada proses
enkripsi dan dekripsi adalah sama. Berikut diagram pada kriptografi asimetris.
Plaintext

Ciphertext

Plaintext

Enkripsi

Dekripsi

Kunci Publik

Kunci Private

Gambar 2.3 : Diagram Kriptografi Asimetris


Sedangkan pada kriptografi asimetris yang dapat dilihat pada gambar 2.3, kunci
dari proses enkripsi dan dekripsi berbeda. Untuk proses enkripsi digunakan kunci
publik sedangkan untuk proses dekripsi digunakan kunci private.

Dalam kriptografi kunci asimetris, hampir semua algoritma kriptografinya
menggunakan konsep kunci publik, kecuali algoritma Pohlig˗Hellman karena
kunci enkripsi maupun kunci dekripsinya bersifat rahasia. Skema algoritma
kriptografi asimetris nirkunci publik (dengan asumsi kunci sudah diketahui oleh
kedua belah pihak sebelumnya) dapat dilihat pada Gambar 2.4.

Universitas Sumatera Utara

8

Teks Asli

Algoritma
Enkripsi


Ciphertext

Algoritma
Dekripsi

Teks Asli

B

A
Kunci Rahasia A

Kunci Rahasia B

Gambar 2.4 : Skema Kriptografi Asimetris Nirkunci Publik

2.2 Tujuan Kriptografi

Berikut ini adalah tujuan adanya kriptografi (Munir, 2006):
1. Kerahasiaan Data

Dengan adanya kriptografi, kerahasiaan data dapat ditingkatkan. Data
penting yang dimiliki hanya akan dapat dibuka atau dibaca oleh orang-orang
tertentu yang memiliki akses untuk membukanya.
2. Integritas Data
Data yang benar atau asli tanpa ada rekayasa dari pihak ketiga atau pihak
yang tidak memiliki akses terhadap data tersebut.
3. Autentikasi
Autentikasi dilakukan untuk membuktikan data yang dikirim adalah data
asli atau data yang benar. Autentikasi mencegah adanya data palsu.
4. Nir-penyangkalan
Nir-penyangkalan adalah salah satu tujuan kriptografi. Dengan ini si
pengirim tidak dapat menolak bahwa pesan tersebut benar berasal dari si
pengirim.

2.3 Ancaman Keamanan

Berikut beberapa ancaman yang dapat mempengaruhi keamanan data (Stallings,
2011):

Universitas Sumatera Utara


9

1. Interruption
Interruption merupakan ancaman yang dilakukan dengan merusak dan
menghapus data sehingga data tidak dapat ditemukan lagi.
2. Interception
Interception adalah ancaman yang dilakukan pihak ketiga dengan menyadap
ataupun mengakses data. Data yang seharusnya rahasia dapat diakses oleh
pihak yang tidak memiliki akses.
3. Modification
Modification adalah ancaman yang lebih berbahaya, pihak yang tidak
memiliki akses tidak hanya dapat mengakses data namun dapat
memodifikasi atau mengubah data.
4. Fabrication
Fabrication merupakan ancaman yang paling berbahaya, pihak yang tidak
memiliki akses tidak hanya dapat membaca data, juga dapat mengubah dan
memalsukan data, sehingga data seolah berasal dari pengirim sebenarnya.

2.4 Kriptografi Asimetris


Sistem kriptografi kunci publik atau sering disebut sebagai kunci asimetrik
pertama kali diusulkan oleh Diffie dan Hellman pada tahun 1976. Ide kriptografi
kunci publik sebenarnya mirip dengan cara kerja kunci gembok. Dimisalkan
terdapat sebuah peti yang berisi pesan rahasia, lalu peti dikunci dengan gembok,
kemudian dikirim kepada penerima. Gembok hanya dapat dibuka oleh penerima,
apabila kunci yang dipegang olehnya merupakan pasangan gembok. (Sadikin,
2012)

Algoritma pertukaran kunci Diffie-Hellman (protokol Diffie-Hellman)
berguna untuk mempertukarkan kunci rahasia untuk komunikasi menggunakan
kriptografi simetris. Langkah-langkahnya adalah sebagai berikut (Ramdan
Mangunpraja, 2007):

Universitas Sumatera Utara

10

1. Misalkan Alice dan Bob adalah pihak-pihak yang berkomunikasi. Mula-mula
Alice dan Bob menyepakati 2 buah bilangan yang besar (sebaiknya prima) P

dan Q, sedemikian sehingga P < Q. Nilai P dan Q tidak perlu rahasia, bahkan
Alice dan Bob dapat membicarakannya melalui saluran yang tidak aman
sekalipun.
2. Alice membangkitkan bilangan bulat acak x yang besar dan mengirim hasil
perhitungan berikut kepada Bob:
X = Px mod Q .
3. Bob membangkitkan bilangan bulat acak y yang besar dan mengirim hasil
perhitungan berikut kepada Alice :
Y = Py mod Q .
4. Alice menghitung K = Yx mod Q .
5. Bob menghitung K’ = Xy mod Q .
Jika berhitungan dilakukan dengan benar maka K = K’. Dengan demikian Alice
dan Bob telah memiliki sebuah kunci yang sama tanpa diketahui pihak lain.
Gambar 2.5 mendeskripsikan diagram protokol pertukaran kunci DiffieHellman:
ALICE

BOB
P,Q
Bangkitkan Bilangan y

Bangkitkan Bilangan x
X

Hitung X = Px mod Q

Hitung Key = Yx mod Q

Y

Hitung X = Py mod Q

Hitung Key = Xy mod Q

Gambar 2.5 Pertukaran Kunci Deffie –Hellman (Ramdan Mangunpraja, 2007)
Kriptografi asimetris memiliki kunci enkripsi dan kunci dekripsi yang
berbeda. Salah satu algoritma yang dikembangkan sesuai kriptografi asimetris
adalah algoritma RSA. Algoritma ini memiliki kelebihan melakukan pemfaktoran
bilangan yang besar.

Universitas Sumatera Utara

11

2.5 Akar primitif
Jika ada suatu bilangan bulat m dan order dari m modulo n adalah �(n), maka m

disebut akar primitif modulo n. Dapat juga dituliskan sebagai ordn(m) = �(n).

(Mollin, 2007)

Sebagai contoh, akan dicari akar primitif modulo 7.
�(7) = 7 – 1 = 6

Ord7(1) = 1  �(7), maka 1 bukan akar primitif modulo 7

Ord7(2) = 3  �(7), maka 2 bukan akar primitif modulo 7

Ord7(3) = 6 = �(7), maka 3 adalah akar primitif modulo 7
Apabila p adalah bilangan prima, maka  disebut akar primitf modulo p
apabila pemetaan r(mod p) terhadap r  {1, 2, 3, …, p-1} akan menghasilkan
permutasi dari r.

Sebagai contoh, apakah 3 adalah akar primitif modulo 7?
r
1
2
3
4
5
6

r(mod p)
3
2
6
4
5
1

Karena hasil r(mod p) merupakan permutasi dari r, maka 3 merupakan akar
primitif modulo 7.

Teorema: Banyaknya jumlah akar primitif modulo n adalah tepat sebanyak
�(�(n)) akar primitif yang tidak saling kongruen. (Mollin, 2007)
Dari teorema ini, maka banyaknya akar primitif modulo 7 adalah:
�(�(7)) = �(6) = 2 akar primitif.

Universitas Sumatera Utara

12

2.6 Fermat’s Little Theorem
Teorema : Untuk bilangan prima p dan bilangan bulat a, ap ≡ a(mod p) dan jika a
tidak dapat dibagi oleh p, maka ap-1 ≡ 1 (mod p).
Teorema ini dapat digunakan untuk mempermudah kalkulasi pemangkatan
modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 274 (mod 13). Karena
13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat
digunakan untuk mengkalkulasi
212 ≡ 213-1 (mod 13) ≡ 1 (mod 13).
Jadi
274 = (212)6 × 22 ≡ 16 × 22 ≡ 4 (mod 13).
Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi,
peran terpenting dari Fermat’s little theorem adalah sebagai dasar dari berbagai
teknik enkripsi asimetris. Untuk memudahkan pembuatan program untuk
pembangkitan bilangan prima maka digunakan teknik iterasi. Untuk bilangan
yang lebih kecil dari 100 maka akan dilakukan pengujian sebanyak tiga kali,
untuk bilangan yang lebih besar dari 100 maka dilakukan pengujian sebanyak
digit bilangan tersebut. (Kromodimoeljo. 2010)

2.7 Modulus Exponential

Dalam kriptografi, perhitungan modulus exponential sering dijumpai. Sistem
kriptografi asimetris seperti RSA dan ElGamal menggunakan modulus
exponential dalam perhitungan enkripsi dan dekripsinya. Persamaan modulus
exponential adalah (Sadikin, 2012):
y = ax mod n
Salah satu metode untuk menghitung modulus exponential adalah Square and
Multiply. Langkah-langkah untuk menghitung modulus exponential menggunakan
Square And Multiply (Sadikin, 2012):
1. Ubah nilai x ke dalam nilai biner.
2. Tentukan y = 1.
3. Lakukan perhitungan sebanyak panjang biner, jika xi = 1 maka,

Universitas Sumatera Utara

13

y = (y2 * a) mod n
Jika xi = 0 maka,
y = y2 mod n

Perhitungan modulus exponential menggunakan Square And Multiply dicontohkan
sebagai berikut:
Hitung nilai 1725 mod 11.
Penyelesaian:
Ubah 25 ke dalam nilai biner, maka didapat 11001, y = 1
Untuk nilai x1 = 1
y = y2 * 17 mod 11
= 12 * 17 mod 11
=6
Untuk nilai x2 = 1
y = y2 * 17 mod 11
= 62 * 17 mod 11
=7
Untuk nilai x3 = 0
y = y2 mod 11
= 72 mod 11
=5
Untuk nilai x4 = 0
y = y2 mod 11
= 52 mod 11
=3
Untuk nilai x5 = 1
y = y2 * 17 mod 11
= 32 * 17 mod 11
= 10
Maka, didapat hasil 1725  10 mod 11

Universitas Sumatera Utara

14

2.8 Algoritma ElGamal

Algoritma

ElGamal

merupakan

algoritma

kriptografi

asimetris

yang

menggunakan dua jenis kunci, yaitu kunci publik dan kunci rahasia. Kunci publik
berfungsi untuk mengenkripsi pesan sedangkan kunci rahasia berfungsi untuk
mendekripsi pesan. Tingkat keamanan algoritma ini didasarkan atas masalah
logaritma diskrit pada grup pergandaan bilangan bulat modulo prima. (Singh,
2012)

Algoritma ElGamal mempunyai kunci publik berupa urutan tiga bilangan
dan sebuah bilangan sebagai kunci rahasia. Algoritma ElGamal merupakan cipher
block, yaitu melakukan proses enkripsi pada blok-blok plaintext dan
menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan
hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti.
Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci,
proses enkripsi dan proses dekripsi. Kelebihan algoritma ElGamal adalah suatu
plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda, tetapi
pada proses dekripsi akan diperoleh plaintext yang sama. (Bahary, 2010)

ElGamal dapat digunakan untuk tanda tangan digital dan enkripsi,
algoritma ini memberikan keamanan dari sulitnya menghitung logaritma diskrit
yang digunakan dalam tempat terbatas. Untuk membangkitkan pasangan kunci,
dilakukan langkah berikut (Mollin, 2007):
1. Pilih bilangan prima p dan cari akar primitif  mod p
2. Pilih bilangan random a dimana 2 < a < p – 1, dan hitung nilai a
3. Public key yang diperoleh adalah p, , dan a sedangkan private key adalah a

Setelah didapatkan public key yang disepakati, maka dilakukan enkripsi dengan
langkah berikut (Mollin, 2007):
1. Pilih bilangan random b dengan syarat b < p -1
2. Hitung nilai b mod p untuk C1 dan m*ab mod p untuk C2, dimana m adalah
plaintext

Universitas Sumatera Utara

15

3. Maka setiap satu karakter plaintext memiliki dua ciphertext. (Mollin, 2007)

Proses selanjutnya adalah dekripsi. Setelah memperoleh ciphertext, maka
penerima pesan akan mengubah ciphertext menjadi plaintext. Sehingga dapat
dengan mudah membaca isi dari pesan tersebut. Untuk mendekripsi pesan,
penerima membutuhkan kunci private a. Dan dilakukan perhitungan berikut:
1. Kunci yang digunakan adalah nilai a
2. Hitung nilai dengan menggunakan C1 dengan cara C1p-1-a mod p yang disebut
m1
3. Dari hasil perhitungan m1 maka untuk memperoleh hasil dilakukan
perhitungan m1*C2 mod p, langkah-langkah ini dilakukan per karakter.
Maka akan didapat plaintext yang disampaikan oleh pengirim. (Mollin, 2007)

2.9 Transposisi Segitiga

Transposisi segitiga memiliki pola pada baris pertama dimulai dari satu karakter
dan baris selanjutnya bertambah 2 karakter dari baris sebelumnya. Bentuk ini
memberi pola bilangan ganjil baris pertama 1 karakter, baris kedua 3 karakter,
baris ketiga 5 karakter dan selanjutnya. Pola ini tergantung banyak digit dari
plaintext yang akan ditransposisikan. Untuk enkripsi, pola ini ditulis per baris
dimulai dari baris paling atas, kemudian dibaca per kolom yang dimulai dari
kolom paling kiri untuk menghasilkan ciphertext. (Department of The Army,
1990)
Seperti pada contoh berikut :
diberikan plaintext (M) : ILMU KOMPUTER
maka hasil transposisi yang didapat adalah

U

T

L
K
E

I
M
O
R

U
M
¿

P
¿

¿

Gambar 2.6: Enkripsi Transposisi

Universitas Sumatera Utara

16

Dari gambar 2.6 dapat dilihat hasil transposisi yang dilakukan dengan plaintext
yang diberikan. Dapat dilihat juga bahwa jika karakter tidak memenuhi semua
kolom pada baris terakhir maka akan dimasukkan karakter # sebagai pengisinya.
Untuk membaca hasil transposisi terlebih dahulu dibaca dari kolom paling kiri,
sehingga hasil yang didapat adalah U TLKEIMORUM¿P¿ ¿

Untuk mengembalikan plaintext yang telah ditransposisi, dilakukan
penyusunan kembali karakter kedalam segitiga, dengan karakter pertama
menduduki kolom paling kiri dan dibaca dari baris atas ke bawah. Sehingga dari
ciphertext “U TLKEIMORUM¿P¿ ¿” didapat hasil yang dapat dilihat pada
gambar 2.7.

U

T

L
K
E

I
M
O
R

U
M
¿

P
¿

¿

Gambar 2.7: Dekripsi Transposisi
dan hasilnya adalah ILMU KOMPUTER¿ ¿ ¿. Dan setiap karakter “¿” akan
dihapus dari plaintext sehingga menghasilkan ILMU KOMPUTER.

2.10

Penelitian Terdahulu

Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan
penelitian ini adalah:
1.

Penelitian yang dilakukan oleh Rininda Ulfa, dengan judul penelitian
Penerapan Sistem Kriptografi ElGamal Atas Zp* Dalam Pembuatan Tanda
Tangan Digital memberikan penjelasan sebagai berikut :
Tanda tangan digital dapat digunakan untuk melakukan pembuktian secara
matematis bahwa data tidak mengalami modifikasi secara ilegal, sehingga
bisa digunakan sebagai salah satu solusi untuk melakukan verifikasi data.
Tujuan dari penulisan skripsi ini adalah untuk mengetahui proses pembuatan
tanda tangan digital menggunakan sistem kriptografi ElGamal atas Zp*.

Universitas Sumatera Utara

17

Proses pembuatan tanda tangan digital diawali dengan pembuatan kunci
publik dan kunci privat. Proses pembuatan kunci menghasilkan kunci publik
(p, g, v ) dan kunci privat s. Kunci publik akan dikirimkan kepada penerima
pesan untuk memverifikasi tanda tangan. Pada proses perhitungan nilai hash
akan dihasilkan message digest, yang akan digunakan dalam pembuatan tanda
tangan. Proses penandatanganan dihasilkan sepasang tanda tangan (R, T).
Tanda tangan dan dokumen dikirimkan kepada penerima. Selanjutnya, pada
proses verifikasi, penerima akan mengecek apakah tanda tangan tersebut
cocok atau tidak dengan menggunakan kunci publik dan menghitung nilai
hash dokumen yang ia terima. (Ulfa. 2011)

2.

Penelitian yang dilakukan oleh Barra Rizky Bahary. Penelitian ini
mengangkat judul Pengamanan Pesan Teks Menggunakan Algoritma
ElGamal. Algoritma ElGamal mempunyai kunci publik berupa urutan tiga
bilangan dan sebuah bilangan sebagai kunci rahasia. Algoritma ElGamal
merupakan cipher block, yaitu melakukan proses enkripsi pada blok-blok
plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan
proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh
dan dapat dimengerti. Kelebihan algoritma ElGamal adalah suatu plaintext
yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda, tetapi pada
proses dekripsi akan diperoleh plaintext yang sama. Pada penelitian ini
pembahasan difokuskan pada pengaplikasian algoritma ElGamal dalam
pengamanan pesan teks dan pengimplementasian algoritma ElGamal kedalam
program sederhana menggunakan bahasa pemprograman pascal. (Bahary.
2010)

Universitas Sumatera Utara