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