Analisis Kombinasi Algoritma One Time Pad Dan Algoritma Elgamal Dalam Pengamanan Pesan

BAB 2
TINJAUAN PUSTAKA

2.1

Pengertian Kriptografi

Kriptografi adalah merupakan ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data
serta otentikasi. Kriptografi adalah proses penggunaan berbagai teknik dan atau ilmu
dan seni untuk menjaga keamanan pesan. Cryptographic algorithm adalah fungsi
matematika yang digunakan untuk enkripsi dan dekripsi. Terdapat dua fungsi yang
saling berhubungan yaitu satu untuk enkripsi dan satu lagi untuk dekripsi.
Enkripsi merupakan proses pengkodean sebuah pesan sehingga isi dari pesan
tersebut tidak diketahui. Dekripsi adalah proses kebalikan dari enkripsi yaitu
mentransformasi pesan yang dienkripsi kembali menjadi bentuk semula. Sebuah
sistem enkripsi dan dekripsi disebut cryptosystem. Bentuk asli dari sebuah pesan
disebut plaintext dan bentuk asli yang dienkripsi disebut ciphertext.

2.2


Ancaman Keamanan

Terjadi banyak petukaran informasi setiap detiknya di internet. Juga banyak terjadi
pencurian atas informasi oleh pihak ketiga. Ancaman keamanan yang terjadi terhadap
informasi adalah : (Ariyus, 2008)
1. Interruption, yakni suatu ancaman terhadap ketersediaan suatu informasi, dari
yang asalnya ada menjadi tidak ada atau rusak (ancaman terhadap aspek
keamanan availability).
2. Interception, yakni suatu ancaman keamanan komputer terhadap kerahasian
informasi, sehingga informasi tersebut menjadi diketahui atau diakses oleh
orang lain yang tidak berhak.

Universitas Sumatera Utara

6

3. Modification, yakni ancaman terhadap keaslian suatu informasi, yang
mengakibatkan informasi yang diperoleh menjadi tidak asli karena telah
mengalami perubahan / modifikasi oleh orang lain.
4. Fabrication, yakni suatu ancaman keamanan komputer pemalsuan informasi

yang kita peroleh, sehingga kita menyangka bahwa informasi yang kita
peroleh adalah asli padahal merupakan hasil tiruan informasi atau informasi
palsu.

2.3

Pengenalan Kriptografi

2.3.1

Sejarah kriptografi

Kriptografi (cryptography) berasal dari bahasa yunani: “ cryptos” yang artinya
“ secret” (rahasia) dan “ graphein” yang artinya “ writing” (tulisan). Jadi Kriptografi
adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and
science of keeping message secure). (Munir, 2008) Kriptografi adalah ilmu yang
mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan
informasi seperti kerahasiaan, integritas data, serta otentikasi.
Kata “ seni” didalam definisi diatas berasal dari fakta sejarah bahwa pada
masa-masa awal sejarah kriptografi, setiaporang mungkin mempunyai cara yang

unikuntuk merahasiakan pesan. Cara-caraunik tersebut berbeda-beda pada setiap
pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan mempunyai nilai
estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan
pesan. Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi
sudah digunakan lebih dari 4000 tahun yang lalu, diperkenalkan olehorang-orang
mesir lewat hieroglyph. Jenis tulisan ini bukanlah bentuk standard untuk menulis
pesan. Dikisahkan pada zaman romawi kuno, pada suatu saat JuliusCaesar ingin
mengirimkan pesan rahasia kepada seorang jenderal di medan perang. Pesan tersebut
harus di kirim melalui seorang kurir. Karena pesan tersebutmengandung rahasia,
Julius Caesar tidak ingin pesan rahasia tersebut sampai terbuka di jalan. Julius Caesar
kemudian memikirkan bagaimana mengatasinya. Kemudian mengacak pesan tersebut
hingga menjadi suatu pesan yang tidak dapat dipahami oleh siapapun terkecuali oleh
Jenderalnya saja. Tentu Sang Jenderal telah diberi tahu sebelumnya bagaiman cara
membaca pesan teracak tersebut yang dilakukan Julius Caesar adalah mengganti
Universitas Sumatera Utara

7

semua susunan alfabet dari a, b, cyaitu a menjadi b, b menjadi c dan c menjadi d dan
seterusnya hingga kalimat tersebut tidak bisa dibaca siapapun.


2.3.2

Konsep kriptografi

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban
Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari
kriptografi yakni:
1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari
informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia
untuk membuka/mengupas informasi yang telah disandi.
2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data
secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data
lain kedalam data yang sebenarnya
3. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik
secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang
saling berkomunikasi harus saling memperkenalkan diri. Informasi yang
dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu

pengiriman, dan lain-lain.
4. Non repudiasi, adalah usaha untuk mencegah terjadinya penyangkalan
terhadap

pengiriman/terciptanya

suatu

informasi

oleh

yang

mengirimkan/membuat informasi tersebut.

2.3.3

Elemen kriptografi


Pada dasarnya kriptografi terdiri dari beberapa elemen seperti : (Dony Ariyus, 2008)
1. Pesan, Plainteks dan Cipherteks.
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plainteks. Agar pesan tidak bisa
dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke
bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut
cipherteks
Universitas Sumatera Utara

8

2. Pengirim dan Penerima
Pengirim adalah entitas yang mengirim pesan kepada entitas lainnya.
Penerima adalah entitas yang menerima pesan. Entitas di sini dapat berupa
orang, mesin (komputer), kartu kredit dan sebagainya.
3. Enkripsi dan dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi.
Sedangkan proses mengembalikan cipherteks menjadi plainteks semula
dinamakan dekripsi
4. Cipher

Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering
dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi
dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi
adalah relasi antara dua buah himpunan yaitu himpunan yang berisi
elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi
dan dekripsi adalah fungsi yang memetakan elemen-elemen antara kedua
himpunan tersebut.
5. Sistem kriptografi
Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma
kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci.
6. Penyadap
Penyadap adalah orang yang berusaha mencoba menangkap pesan selama
ditransmisikan
banyaknya

dengan

mengenai

tujuan

sistem

mendapatkan
kriptografi

informasi

yang

sebanyak-

digunakan

untuk

berkomunikasi dengan maksud untuk memecahkan cipherteks.
7. Kriptanalisis dan kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan
cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan.
Pelakunya disebut kriptanalis. Kriptologi adalah studi mengenai

kriptografi dan kriptanalisis.

Universitas Sumatera Utara

9

2.3.4

Algoritma kriptografi

Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan
pesan dari orang-orang yang tidak berhak atas pesan tersebut. Algoritma kriptografi
terdiri dari tiga fungsi dasar yaitu : (Ariyus, 2008)
1. Enkripsi merupakan hal yang sangat penting dalam kriptografi, merupakan
pengamanan data yang dikirimkan agar terjaga kerahasiannya. Pesan asli
disebut plaintext, yang diubah menjadi kode-kode yang tidak dimengerti.
Enkripsi bisa diartikan dengan cipher atau kode. Untuk mengubah teks asli
ke bentuk teks kode digunakan algoritma yang dapat mengkodekan data.
2. Dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi
dikembalikan ke bentuk asalnya (teks asli/plaintext) disebut dengan

dekripsi.
3. Kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi
menjadi dua bagian yaitu kunci rahasia (private key) dan kunci umum
(public key)
Biasanya algoritma kriptografi dapat dinotasikan sebagai berikut :
￿

Plaintext(M)
￿

Ciphertext(C)
￿

Enkripsi (fungsi E)
￿

Dekripsi (fungsi D)
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses

dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi

ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut
sukar dimengerti. Adapun alur dari proses enkripsi dan dekripsi pada kriptografi dapat dilihat
pada gambar 2.1
Plaintext

enkripsi

Kunci enkripsi

ciphertext

plaintext

dekripsi

Kunci Dekripsi

Gambar 2.1Diagram proses enkripsi dan dekripsi

Universitas Sumatera Utara

10

Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi
(disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah
penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.
Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi)
menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext),
notasinya :
Ee(M) – C

(2.1)

Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi)
menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M
(plaintext), notasinya :
Dd(C) = M

(2.2)

Sehingga dari dua hubungan diatas berlaku :
(2.3)

Dd(Ee(M)) = M

2.4

Kriptografi Klasik

Kriptografi klasik adalah kriptografi yang paling sederhana, mengingat kriptografi ini
sudah ada sejak ribuan tahun yang lalu, bahkan salah satu kriptografi paling tua yang
ditemukan adalah kriptografi yang digunakan oleh Julius Caesar dan scytale
kriptografi dengan melilitkan pesan pada tabung yang digunakan oleh bangsa Sparta.
Kriptografi klasik terbagi atas dua jenis cipher, substitusi dan transposisi.

2.4.1

Cipher substitusi

Sistem cipher substitusi adalah sebuah algoritma enkripsi dan dekripsi yang
mensubstitusi unit-unit sebuah text dengan unit-unit lain berdasarkan aturan tertentu.
Unit-unit ini bisa saja sebuah huruf, sepasang huruf, sebuah kata, dan sebagainya.
Cipher subtitusi ini memiliki beberapa jenis, di antaranya adalah sebagai
berikut:
-

Monoalfabetik : Sistem cipher substitusi monoalfabetik memetakan tiap
huruf satu per satu dimana tiap huruf alfabet dipetakan ke huruf
setelahnya.

-

Polialfabetik : Pada cipher ini, beberapa alfabet cipher digunakan
sekaligus yang kemudian ditulis di sebuah tabel.
Universitas Sumatera Utara

11

-

Homofonik : Cipher ini memetakan huruf pada plaintext yang sering
keluar ke dalam lebih dari sebuah huruf ciphertext dengan tujuan
mengacaukan hasil analisa frekuensi (yang cara kerjanya adalah dengan
menganalisa huruf yang paling sering muncul).

-

Polygram : suatu teknik dimana blok karakter dienkripsi dalam
kelompok.

2.4.2

Cipher tranposisi

Sistem cipher transposisi adalah sebuah metode enkripsi dan dekripsi dengan cara
mengubah susunan huruf pada plaintext berdasarkan aturan tertentu.

2.5

Kriptografi Modern

Setelah adanya komputer berkembanglah Kriptografi modern yang merupakan suatu
metoda kriptografi yang menggunakan algoritma matematika dan suatu kunci.
Informasi atau berita asli yang belum mengalami perubahan oleh proses kriptografi
dikenal sebagai plaintext, dan berita hasil dari perubahan atau proses kriptografi
dikenal sebagai ciphertext. Ada dua jenis algoritma pada kriptografi modern yaitu
algoritma simetris dan algoritma asimetris.

2.5.1

Algoritma simetris

Algoritma simetrisatau disebut juga secret key algorithm adalahalgoritma yang kunci
enkripsinya dapat dihitung dari kunci dekripsi dan begitupula sebaliknya, kunci
dekripsi dapat dihitung dari kunci enkripsi. Pada sebagianbesar algoritma simetris
kunci enkripsi dan kunci dekripsi adalah sama. algoritma simetris memerlukan
kesepakatan antara pengirim dan penerima pesan pada suatu kunci sebelum dapat
berkomunikasi secara aman.
Mekanismenya dapat digambarkan melalui contoh sebagai berikut :
1.

Rudi dan Alice menyepakati suatu algoritma kriptografi.

2.

Rudi dan Alice menyepakati sebuah kunci

3.

Rudi

mengambil

plaintextnya

dan

mengenkripsikannya

dengan

menggunakan algoritma kriptografi dan kunci yang sudah disepakati.
4.

Rudi mengirimkan ciphertext tersebut kepada Alice
Universitas Sumatera Utara

12

5.

Alice mendekripsikan ciphertext tersebut dengan algoritma dan kunci
yang sama. Alice kemudian mendapatkan plaintext dan membacanya.
Adapaun proses enkripsi dan dekripsi pada algoritma simetris dapat
dilihat pada gambar 2.2

Gambar 2.2 Proses Enkripsi dan Dekripsi pada algoritma simetris
Keamanan algoritma simetris tergantung pada rahasia kunci. Pemecahan kunci
berartimemungkinkan setiap orang dapat mengenkripsi dan mendekripsi pesan dengan
mudah. Symmetric algorithm dapat dikelompokkan menjadi dua jenis, yaitu stream
cipher dan block cipher. Stream cipher beroperasi bit per bit (atau byte per byte) pada
satu waktu. Sedangkan block cipher beroperasi per kelompok. Kelompok bit yang
disebut blok (block) pada satu waktu.
Adapun beberapa algoritma yang menggunakan algoritma asimetris adalah
sebagai berikut :

2.5.2

-

Data Encryption Standard (DES)

-

Advance Encryption Standard (AES)

-

International Data Encryption Algorithm (IDEA)

-

A5

-

RC4

Algoritma asimetris

Algoritma Asimetris atau disebut juga algoritma public key didesain agar
memudahkan dalam distribusi kunci yang digunakan untuk enkripsi dan dekripsi.
Kunci dekripsi pada public key algorithm secara praktis tidak dapat dihitung dari
kunci enkripsi. Algoritma ini disebut “ public key” karena kunci dapat dibuat menjadi
Universitas Sumatera Utara

13

publik. Setiap orang dapat menggunakan kunci enkripsi untuk mengenkripsi pesan,
tetapi hanya orang yang memiliki kunci dekripsi yang dapat mendekripsi pesan
tersebut. Pada sistem ini kunci enkripsi sering disebut kunci publik (public key), dan
kunci dekripsi disebut kunci rahasia (private key).

2.5.3

Perbandingan Algoritma Simetris dan Algoritma Asimetris

Baik kriptografi kunci simetris maupun kunci asimetris, keduanya mempunyai
kelebihan dan kelemahan masing-masing yaitu :

Kelebihan kriptografi kunci simetris
1. Algoritma kriptografi simetris dirancang sehingga proses enkripsi/dekripsi
membutuhkan waktu yang singkat.
2. Ukuran kunci simetris relatif pendek. Algoritma kriptografi simetris dapat
digunakan untuk membangkitkan bilangan acak.
3. Algoritma kunci simetris dapat disusun untuk menghasilakan 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 kriptografi kunci simetris
1. Kunci simetris harus dikirim melalui saluran yang aman. Kedua entitas yang
berkomunikasi harus menjaga kerahasiaan kunci ini.
2. Kunci harus sering diubah, mungkin setiap sesi komunikasi.

Kelebihan kriptografi kunci asimetris
1. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang
berkomunikasi (tetapi otentikasi kunci public harus tetap terjamin). Tidak ada
kebutuhan untuk mengirim kunci privat sebagaimana kriptografi kunci
simetris.
2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode
waktu yang panjang.

Universitas Sumatera Utara

14

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

Kelemahan kriptografi kunci asimetris
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem kriptografi
simetris, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan
melibatkan operasi perpangkatan yang besar.
2. Ukuran cipherteks lebih besar daripada plainteks.
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang
maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim.
Karena kelebihan dan kelemahan yang ada pada masing-masing kriptografi,
maka belum tentu benar bahwa kriptografi kunci publik dapat menggantikan
kriptografi kunci simetris. Karena kriptografi kunci publik mempunyai kelemahan
terutama dari segi waktu komputasi dan ukuran cipherteks dibandingkan dengan
kriptografi kunci simetris, maka hal ini mempunyai implikasi dalam praktek dan
penggunaan.

2.6

Konsep Acak

Yang dimaksud dengan sifat acak (randomness) dalam kriptografi adalah sifat bebas
dari kecendrungan sehingga tidak mudah untuk diterka. Dari segi matematika, jika
sudau variabel dianggap bersifat acak, maka teori probabilitas dapat digunakan untuk
memprediksi “ kelakuan” dari variabel tersebut, antara lain variabel akan memenuhi
beberapa kreteria statistic. Metode statistika dapat digunakan, berdasarkan apa yang
sudah terjadi, untuk menilai apakah variabel memenuhi kriteria statistik untuk variabel
acak. Akan tetapi jika kriteria statistik terpenuhi, belum tentu variabel benar acak,
karena sesuatu yang deterministik seperti pseudo-random number generator dapat
memenuhi kriteria statistik untuk variabel acak. Jadi kriteria statistik bukan
merupakan definisi untuk variabel acak.(Kromodimoeljo, 2010)
Sifat acak dapat dikaitkan dengan urutan event,

dimaka event berikutnya

dalam suatu urutan tidak mudah untuk diterka berdasarkan apa yang sudah lalu. Sifat
Universitas Sumatera Utara

15

ini diperlukan dalam pembuatan kunci (key generator) supaya kunci dekripsi tidak
mudah untuk diterka.
Sifat acak juga dikaitkan dengan tidak adanya korelasi(atau korelasi yang
mendekati nol). Dalam kriptografi, tidak diinginkan adanya korelasi antara naskah asli
dengan naskah acak atau kunci dengan naskah acak. Ini untuk mempersulit analisa
seperti analisa frekuensi (frequency analysis) atau analisa lebih canggih seperti linear
cryptanalysis atau differential cryptanalysis.
Meskipun tidak sebenarnya acak, sesuatu yang pseudo-random berguna dan
digunakan dalam kriptografi, tetapi harus dikombinasikan dengan sesuatu yang benar
acak. Sebagai contoh, pseudo-random number generator dikombinasikan dengan
sumber entropi yang benar acak sebagai seed,

untuk mendapatkan sesuatu yang

praktis bersifat random number generator.

2.7.

Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak-Semu atau yang biasa dikenal dengan singkatan PRNG
(Pseudo-Random Number Generator) adalah sebuah algoritma untuk menghasilkan
suatu urutan bilangan yang terlihat acak, namun sebenarnya urutan tersebut tidak
benar-benar acak karena urutan tersebut ditentukan oleh suatu nilai awal. Urutan
bilangan yang terlihat acak ini sangat penting karena bisa dimanfaatkan untuk suatu
parameter bagi percobaan atau simulasi dan juga menjadi pusat pake praktik
kriptografi.
Sebuah pembangkit bilangan acak-semu bisa dimulai dengan memberikan nilai
umpan. Pembangkit bilangan acak-semu ini akan selalu memberikan urutan bilangan
yang sama jika diberikan nilai umpan yang sama, dengan jumlah bilangan yang
dihasilkan bergantung kepada besar nilai umpan yang diukur dengan satuan bit.
Keuntungan dari penggunaan pembangkit bilangan acak-semu ini adalah
efisien, algoritma ini mampu menghasilkan banyak angka dalam waktu singkat, dan
tertentu, urutan yang digunakan bisa dimunculkan kembali dengan mudah jika nilai
awalnya diketahui. Efisien adalah karakteristik yang sangat baik jika aplikasi kita
membutuhkan banyak angka. Tertentu juga akan berguna jika kita perlu mengulang
suatu urutan bilangan.

Universitas Sumatera Utara

16

Berikut ini beberapa contoh PRNG pembangkit bilangan acak semu :
1. Linear Congruential Generators (LCG)
2. Blum Blum Shub
3. Lagged Fibonacci generators
4. Linear feedback shift registers
5. Generalised feedback shift registers
6. Mersenne twister
7. Well Equidistributed Long-period Linear

2.8.

Linier Congruential Generator (LCG)

Bilangan acak adalah bilangan yang tidak dapat diprediksi kemunculannya. Tidak ada
komputasi yang benar-benar menghasilkan deret bilangan acak secara sempurna.
Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan
acak salah satunya adalah pembangkit bilangan acak Linear Congruential Generators
(LCG). Linear Congruential Generators (LCG) adalah salah satu pembangkit
bilangan acak tertua dan sangat terkenal. LCG adalah algoritma yang sering
diimplementasikan pada beberapa bahasa pemrograman untuk membangkitkan
bilangan acak. LCG didefinisikan dalam relasi rekurens :

Xn = (aXn -1+ b) mod m

(2.4)

yang dalam hal ini,

Xn= bilangan acak ke-n dari deretnya
Xn - 1 = bilangan acak sebelumnya
a = factor pengali
b = penambah (increment)
m = modulus
( a , b , dan m semuanya konstans)

Universitas Sumatera Utara

17

Kunci pembangkit adalah X0yang disebut seed (secret seed).Dalam hal ini x0 bersifat
rahasia .LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan
kasus periodenya kurang dari itu. kasus periodenya kurang dari itu. Periode penuh (m1) kepunyaan LCG dapat terjadi jika memenuhi syarat sebagai berikut:
1. b relative prima terhadap m
2. a–1 dapat dibagi dengan semua faktor prima dari m
3. a–1 adalah kelipatan 4 jika m adalah kelipatan 4
4. m > maks (a, b, X0)
5. a > 0, b > 0
Meskipun LCG secara teoritis mampu menghasilkan bilangan acak yang
lumayan, namun terhadap pemilihan nilai-nilai a, b, dan m sangatlah sensitive.
Implementasi pada LCG dapat terpengaruhi jika pemilihan nilainya tidak sesuai.

2.9.

Probabilistic Encryption

Probabilistic encryption adalah penggunaan keadaan acak pada sebuah algoritma
kriptografi, sehingga ketika mengenkripsi pesan yang sama beberapa kali, secara
umum akan menghasilkan cipher text yang berbeda. Bentuk probabilistic encryption
secara khusus digunakan pada algoritma kriptografi kunci public. Ide probabilistic
encryption pertama kali ditemukan oleh Shafi Gold Wasser dan Silvia Micali.
Inti dari metode probabilistic encryption adalah untuk meminimalisasi
kebocoran informasi dengan kriptografi kunci public, karena metode ini menerapkan
konsep acak dalam proses enkripsinya sehingga setiap kali proses enkripsi terhadap
pesan yang sama

akan menghasilkan nilai cipher text yang berbeda. Hal ini

menyebabkan cryptanalyst tidak dapat menerka bentuk pesan dari ciphertext yang
diperolehnya, karena setiap kali proses percobaan akan selalu menghasilkan yang
berbeda-beda

2.10.

Pembangkit Bilangan Prima

Sebagian besar algoritma kunci-publik menggunakan bilangan prima sebagai salah
satu nilai parameternya. Bilangan prima yang disarankan berkuran besar sehingga
penggunaan tipe data bilangan bulat yang besar mutlak diperlukan.
Dalam menghasilkan bilangan prima dapat digunakan berbagai metode. Agar
dapat menghasilkan bilangan prima yang besar maka harus menggunakan ruang

Universitas Sumatera Utara

18

memori dan waktu.
Secara umum pembangkitan bilangan prima dapat dibagi menjadi dua, yaitu
dengan membangkitkan bilangan prima dari bilangan prima terkecil dengan pengujian
yang akan menghasilkan bilangan prima dengan persentase 100% atau dengan
menguji bilangan acak dan kemudian menguji apakah bilangan tersebut termasuk
bilangan prima.

2.11. One Time Pad
One Time Pad termasuk dalam kriptografi klasik yang berkunci simetris. One Time
Pad disebut juga sebagai algoritma yang tidak terpecahkan atau juga diketahui sebagai
holy grail algorithm. (Horstmeyer, Judkewitz, Vellekoop, Assawawarrarit & Yamg,
2013).
Algoritma One Time Pad mempunyai cara kerja dimana penerima pesan
mempunya salinan kunci yang sama dan kunci tersebut hanya dipakai satu kali (one
time) untuk enkripsi dan dekripsi dan setelah digunakan maka pad (kertas
blocknot)harus segera dihancurkan agar tidak bisa dipakai lagi untuk enkripsi dan
dekripsi pesan yang lain.Pengirim danpenerimaharus sama-samamemiliki satu set
materi kunci yang besar dan juga acak, selamakombinasi dari semuapesan yang
pernah dikirimkan. Jadi secara teori alasan OTP tidak dapat dipecahkan jika kuncinya
secara sempurna diacak, dirahasiakan dan hanya dipakai sekali saja. (Nemati & Yang,
2011)
Pada algoritma OTP mempunyai panjang kunci yang sama dengan panjang
plaintext.Sehingga tidak ada kebutuhan untuk mengulang penggunaaan kunci selama
proses enkripsi.

2.11.1. Sejarah One Time Pad
Algoritma One Time Pad (OTP) pertama kali ditemukan oleh Frank Miller pada tahun
1882. Pada tahun 1882 Frank Miller pertama kali menggunakan One Time Pad untuk
mengamankan pesan telegrap.
One Time Pad berikutnya berupa sistem elektrik. Gilbert Vernam pada tahun
1917 yang dipatenkan pada tahun 1919 menemukan sebuah cipher yang berdasarkan
teknologi teleprinter. Dimana setiap karakter dalam pesan dikombinasi secara elektrik
dengan karakter yang menggunakan kunci pita kertas. Joseph Mauborgne yang

Universitas Sumatera Utara

19

merupakan kapten dari U.S Army menyadari bahwa urutan pada karakter yang ada
pada kunci pita dapat benar-benar diacak dan jika benar maka kriptanalis akan sulit
dilakukan. Dengan begitu Joseph Mauborgne dan Gilbert Vernam bergabung dan
menciptakan sebuah sistem baru yang diberi nama one time tape.
Perkembangan selanjutnya adalah paper pad system. Para diplomat telah lama
menggunakan kode dan cipher untuk kerahasiaan dan untuk meminimalkan biaya
telegraf. Untuk kode, kata-kata dan frase yang dikonversi ke kelompok nomor
menggunakan codebook yang seperti kamus. Untuk keamanan, nomor rahasia dapat
dikombinasikan dengan setiap grup kode sebelum ditransmisi dengan cara nomor
rahasia berubah secara berkala. Di awal tahun 1920, Tiga orang ahli kriptografi yaitu
Werner Kunze, Rudolf Schauffler and Erich Langlotz, yang terlibat dalam
memecahkan sistem tersebut, menyadari bahwa mereka tidak akan pernah bisa
merusaknya jika sejumlah nomor terpisah yang dipilih secara acak digunakan untuk
setiap kelompok kode. Mereka membuat duplikasi pad yang dicetak dengan grup
nomor yang acak. Dimana setiap halaman mempunyai nomor seri dan delapan garis.
Setiap garis memiliki enam angka lima digit.Halaman akan digunakan sebagai lembar
kerja untuk mengkodekan pesan dan kemudian dihancurkan. Nomor seri dari halaman
tersebut akan dikirimkan bersamaan dengan pesan yang telah dikodekan. Penerima
akan membalikkan prosedurnya dan menghancurkan salinan dari halaman yang
dikirim. Kantor luar negeri Jerman menerapkan sistem ini pada tahun 1923.
Percobaan terakhir dilakukan oleh Claude Shannon pada tahun 1940 dia
mengetahui dan mencoba membuktikan signifikasi dari teori pada sistem one time
pad. Shannon mengirimkan hasilnya dalam bentuk laporan rahasia pada tahun 1945
dan mempublikasikannya ke masyarakat luar pada tahun 1949. Pada waktu yang
bersamaan Vladimir Kotelnikovmembuktikan keamanan yang sempurna secara
independen dari algoritma one time pad. Pada tahun 1941 hasil dari pembuktiannya
dikirimkannya dalam bentuk yang tetap dirahasiakan. (Dooley, 2013)

2.11.2. Proses Kerja One Time Pad
Pada algoritma OTP mempunyai panjang kunci yang sama dengan panjang plaintext.
Sehingga tidak ada kebutuhan untuk mengulang penggunaaan kunci selama proses
enkripsi.
Universitas Sumatera Utara

20

Adapun aturan enkripsi dan dekripsi dari one time pad adalah sebagai berikut:
1. Enkripsi Ci = (Pi + Ki)mod 26
2. Dekripsi Ci=(Pi – Ki) mod 26
Dimana Pi adalah plaintext dan Kiadalah kunci.
Contoh :
Bila diketahui Plainteks : FASILKOM
Dengan kunci : “ MFDAFGJF”
Jika kita asumsikan A = 0, B = 1, ….., Z = 25.
Dengan menggunakan rumus diatas maka diperolehlah ciphertext RFVIQQXR yang
didapat dari perhitung sebagai berikut :

(F + M) mod 26 = (5 + 12) mod 26 = 17 = R
(A + F) mod 26 = (0 + 5) mod 26 = 5 = F
(S + D) mod 26 = (18 + 3) mod 26 = 21 = V
(I + A) mod 26 = (8 + 0) mod 26 = 8 = I
(L + F) mod 26 = (11 + 5) mod 26 = 16 = Q
(K + G) mod 26 = (10 + 6) mod 26 = 16 = Q
(O + J) mod 26 = (14 + 9) mod 26 = 23 = X
(M + F) mod 26 = (12 + 5) mod 26 = 17 = R

Kemudian untuk mendekripsikannya lakukan lagi perhitungan diatas dengan
menggunakan ci =(pi – ki) mod 26

(R - M) mod 26 = (17 - 12) mod 26 = 5 = F
(F - F) mod 26 = (5 - 5) mod 26 = 0= A
(V - D) mod 26 = (21 - 3) mod 26 = 18 = S
(I - A) mod 26 = (8 - 0) mod 26 = 8 = I
(Q - F) mod 26 = (16 - 5) mod 26 = 11 = L
(Q - G) mod 26 = (16 - 6) mod 26 = 10 = K
(F - J) mod 26 = (23 - 9) mod 26 = 14 = O
(R - F) mod 26 = (17 - 5) mod 26 = 14 = M

Universitas Sumatera Utara

21

Skema OTP tidak dapat dipecahkan karena alasan sebagai berikut : (Ariyus, 2008)
1. Barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak.
2. Mendekripsi teks kode dengan berbagai kunci berbeda dapat menghasilkan
plainteks yang beragam sehingga kripnatalis tidak punya cara untuk menemukan
plainteks mana yang benar.
Meskipun OTP merupakan suatu algoritma yang sempurna dan aman, tetapi dalam
praktik modern jarang digunakan karena disebabkan oleh panjang kunci = panjang
pesan, sehingga timbul masalah dalam menjaga kerahasiaan kunci selama proses
pendistribusian kunci (Stamp, 2011).

2.12.

ElGamal

Algoritma ElGamal ditemukan pada tahun 1985 oleh ilmuwan Mesir yaitu Taher
ElGamal. Algoritma ElGamal merupakan algoritma berdasarkan konsep kunci publik.
Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian
dimodifikasi

sehingga

bisa

digunakan

untuk

enkripsi

dan

dekripsi.

Algoritma kriptografi kunci publik ElGamal merupakan algoritma blok chipper yaitu
algoritma yang melakukan proses enkripsi pada blok-blok plainteks yang kemudian
menghasilkan blok-blok chipertext, yang nantinya blok-blok chipertext tersebut akan
didekripsi kembali dan hasilnya kemudian digabungkan menjadi plainteks semula.
Keamanan algoritma ElGamal terletak pada kesulitan perhitungan logaritma diskrit
pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah
logaritma ini menjadi sulit untuk dipecahkan.Algoritma ini memiliki kelebihan yaitu
pembangkitan kunci yang menggunakan logaritma diskrit dan metode enkripsi
dekripsi yang menggunakan proses komputasi yang besar sehingga hasil enkripsinya
berukuran dua kali dari ukuran semula. Kekurangan algoritma ini adalah
membutuhkan resource yang baik dan processor yang mampu untuk melakukan
komputasi yang besar. (Caroline, 2011)
Dari beberapa banyak algoritma kriptografi kunci-publik yang pernah dibuat,
algoritma El-gamal juga termasuk algoritma yang populer. Algoritma ini melakukan
pemfaktoran bilangan yang sangat besar. Oleh karena alasan tersebut El-gamal
dianggap aman. Untuk membangkitkan dua kunci, dipilih dua bilangan prima acak
yang besar. (Ariyus, 2008).
Universitas Sumatera Utara

22

2.12.1. Prinsip kerja Algoritma Elgamal
2.12.1.1.

Proses pembentukan kunci

Proses pertama adalah pembentukan kunci yang terdiri dari kunci private dan kunci
public. Pada proses ini dibutuhkan sebuah bilangan prima p, bilangan acak g dan
sembarang bilangan acak x. kunci publik algoritma Elgamal berupa pasangan 3
bilangan, yaitu (p, g, y), dengan y = gx mod p sedangkan kunci rahasianya adalah
bilangan acak x. karena pada algoritma Elgamal menggunakan bilangan desimal
dalam prosesnya maka plaintext terlebih dahulu dikonversi ke dalam suatu bilangan
desimal.
Untuk mengubah plaintext, maka digunakan tabel ASCII (American Standard
for Information Interchange). Tabel ASCII merupakan representasi numerik dari
karakter-karakter yang digunakan pada komputer, serta memiliki nilai mulai dari 0
samapai dengan 255.
Algoritma pembangkitan kunci :
1. Pilih sembarang bilangan prima p besar dan bilangan acak dengan syarat g < p
2. Pilih bilangan bulat acak x, dengan syarat 1 ≤ x ≤ p – 2.
3. Hitung y = gx mod p.
4. Publikasikan nilai (p, g, y), dan rahasiakan nilai (x).

2.12.1.2.

Proses Enkripsi

Pada proses ini pesan dienkripsi menggunakan kunci publik (y, g, p) dan sembarang
bilangan acak rahasia x ∈ { 1, 2, ….., p-2}. Misalkan m adalah pesan yang akan
dikirim. Selanjutnya, m diubah ke dalam blok-blok karakter dan setiap karakter
dikonversikan ke dalam kode ASCII, sehingga diperoleh plainteks m1, m2, …., mn
dengan mi ∈ { 1, 2, …., p-1} , I = 1, 2, …, n. Proses emkripsi pada algoritma Elgamal
dilakukan dengan menghitung a= gk mod p dan b = yk.m mod p dengan k ∈ {1, 2,
….., p-2} dimana nilai k digunakan saat melakukan enkripsi dan tidak perlu disimpan.
Algoritma enkripsi pesan : (Caroline, 2011).
1. Susun plainteks menjadi blok-blok, m1, m2, …, mn sehingga setiap blok
mempresentasikan nilai di dalam rentang 0 sampai p – 1 (dengan mengubah nilai m
menjadi kode ASCII).
2. Pilih bilangan acak k, dengan syarat 0 < k < p – 1,
Universitas Sumatera Utara

23

3. Setiap blok m deienkripsi dengan rumus a = gk mod p dan b = yk.m mod p dimana
pasangan a dan b adalah cipherteks untuk blok pesan m.

2.12.1.3.

Proses Dekripsi

Setelah menerima cipherteks (a, b), proses selanjutnya adalah mendekripsi ciperteks
menggunakan kunci publik p dan kunci rahasia x
Diberikan (p, g, y) sebagai kunci publik dan x sebagai kunci rahasia pada
algoritma ElGamal. Jika diberikan cipherteks (a, b), maka untuk mendekripsi a dan b
digunakan kunci rahasia x, dan plainteks m diperoleh kebali dengan persamaan :
mi = bi . aip-1-x mod p
Alur dekripsi pesan : (Caroline, 2011).
1. Untuk I dari 1 sampai n :
Hitung mi = bi . aip-1-x mod p
2. Diperoleh plainteks m1, m2, …, mn.
3. Konversikan masing-masing bilangan m1, m2, …, mn ke dalam karakter sesuai
dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali.

Universitas Sumatera Utara