53
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function UTAMA_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function tombolKeluar_Callback(hObject, eventdata, handles)
55
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function ENKRIPSI_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = ENKRIPSI_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pilihFile_Callback(hObject, eventdata, handles)
[filename pathname] = uigetfile ({'*.txt'},'Pilih File');
fullpathname = strcat (pathname, filename);
if isequal (filename,0)
return;
else
pesan = fileread (fullpathname);
set(handles.kolomPlainteks, 'String', pesan)
handles.plainteks = pesan;
set(hObject,'BackgroundColor','white');
end
function inputQRSA_Callback(hObject, eventdata, handles)
function inputQRSA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
57
break;
end
end
if prim == 0
respon = pTidakPrima('Title','formPTidakPrima');
return;
respon = qTidakPrima('Title','formQTidakPrima');
return;
end
if p_RSA == q_RSA
respon = pqSAMA('Title','formPQSama');
val = isprime(e_RSA);
val1 = mod((d_RSA*e_RSA),phi_RSA);
end
pjg_binerERSA = length(biner_eRSA);
59
acak = randint (100,1,[cipherRSA_Besar 10000]);
for i = 1:100
g_El = randint (1,1,[1 p_El-1]);
set(handles.nilaiGEL,'string',g_El)
x_El = randint (1,1,[1 p_El-2]);
set(handles.nilaiXEL,'string',x_El)
biner_xEl = dec2bin(x_El);
pjg_binerXEl = length(biner_xEl);
y_El = 1;
y_El = 1;
pjg_binerKel = length(biner_kEl);
61
cipB1_El = mod(cipher_RSA(o_El),p_El);
cipher_El = reshape(cip_El,1,pjg_cipEl);
function nilaiNRSA1_CreateFcn(hObject, eventdata, handles)
function kunciPublikRSA_CreateFcn(hObject, eventdata, handles)
function nilaiNRSA2_CreateFcn(hObject, eventdata, handles)
function kunciPrivatRSA_CreateFcn(hObject, eventdata, handles)
function nilaiPEL1_CreateFcn(hObject, eventdata, handles)
function nilaiGEL_CreateFcn(hObject, eventdata, handles)
function nilaiXEL_CreateFcn(hObject, eventdata, handles)
function nilaiYEL_CreateFcn(hObject, eventdata, handles)
function nilaiPEL2_CreateFcn(hObject, eventdata, handles)
function kolomCipherteks_Callback(hObject, eventdata, handles)
function simpanFile_Callback(hObject, eventdata, handles)
cipher_El = handles.cipherteks;
[filename, pathname] = uiputfile ({'*.txt'},'Simpan File');
63
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function DEKRIPSI_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = DEKRIPSI_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pilihFile_Callback(hObject, eventdata, handles)
[filename pathname] = uigetfile ({'*.txt'},'Pilih File');
fullpathname = strcat (pathname, filename);
if isequal (filename,0)
return;
else
cipher = fileread (fullpathname);
set(handles.kolomCipherteks, 'String', cipher)
65
pjg_binerPangkat = length(biner_pangkat);
psn_El = 1;
cipher_El(o_El) = mod(psn_El*psnA_El,p_El);
psn1_RSA = c;
function inputDRSA_Callback(hObject, eventdata, handles)
function inputDRSA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function inputNRSA_Callback(hObject, eventdata, handles)
function inputNRSA_CreateFcn(hObject, eventdata, handles)
67
set(hObject,'BackgroundColor','white');
end
function inputXEL_Callback(hObject, eventdata, handles)
function inputXEL_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function inputPEL_Callback(hObject, eventdata, handles)
function inputPEL_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function simpanFile_Callback(hObject, eventdata, handles)
pesan = handles.pesan;
[filename, pathname] = uiputfile ({'*.txt'},'Simpan File');
DAFTAR PUSTAKA
Aribowo, Eko. 2008. Aplikasi Pengamanan Dokumen Office Dengan Algoritma Kriptografi Kunci Asimetris ElGamal. Universitas Ahmad Dahlan. Yogyakarta.
Buchmann, Johannes A. 2000. Introduction to Cryptography. Germany.
Haq, Hasnan Aulia. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi Algoritma Kriptografi. Medan.
Ifanto, Mukhammad. 2009. Metode Enkripsi dan Dekripsi Dengan Menggunakan Algoritma ElGamal. Bandung.
Ihsan, Ahmad. 2015. Implementasi Kombinasi Rivest Shamir Adleman (RSA) dan ElGamal dalam Penyandian Citra Bitmap. Medan.
Iswari, Ni Made Satvika. 2011. Rancangan dan Implementasi Algoritma Pembangkitan Kunci kombinasi Antara RSA dan ElGamal. Bandung.
Kromodimoeljo, Sentot. 2009. Teori dan Aplikasi Kriptografi. SPK IT Consulting.
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet & Jaringan Telekomunikasi. Informatika. Bandung.
Munir, Rinaldi. 2006. Kriptografi. Informatika. Bandung.
Panjaitan, Wahyu Oloan. 2015. Kombinasi Algoritma Kriptografi RSA dengan Steganografi CLSB untuk Pengamanan Data. Medan.
Permana, Aditya. Santoso, Edi. Ratnawati, Dian Eka. Kriptografi Pada File Dokumen Microsoft Office Menggunakan Metode RSA. Universitas Brawijaya. Malang.
52
Sianipar, R.H. 2013. Pemrograman MATLAB dalam Contoh dan Penerapan. Informatika. Bandung.
Sitompul, Opim Salim. 2012. Pemrograman C di Lingkungan Linux Edisi Kedua. USU Press. Medan.
Supriyono. 2008. Pengujian Sistem Enkripsi-Dekripsi Dengan Metode RSA Untuk Pengamanan Dokumen. Yogyakarta.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Permasalahan
Pada algoritma kriptografi, dalam hal keamanan hampir seluruhnya berbasis pada
permasalahan teori bilangan, seperti permasalahan faktorisasi bilangan atau
logaritma diskrit. Meskipun permasalahan tersebut sulit dipecahkan pada saat ini,
tidak menutup kemungkinan pada masa yang akan datang permasalahan tersebut
akan menemukan pemecahannya dengan lebih mudah.
Dalam penelitian ini dilakukan proses kriptografi dengan menggunakan
kombinasi algoritma RSA dan ElGamal dalam pengamanan data pada file
dokumen untuk menjamin bahwa file yang akan dikirim aman dan terhindar dari
pihak yang tidak memiliki hak untuk mengetahui isi dari file tersebut sebelum
sampai ke tujuan.
Masalah utama pada penelitian ini adalah bagaimana meningkatkan
keamanan pada file dokumen dengan menggunakan kombinasi algoritma RSA dan
ElGamal sehingga tingkat keamanannya lebih baik.
3.2 Analisis Kebutuhan
Berdasarkan analisa permasalahan, maka hasil dari sistem yang didapat adalah
cipherteks dari proses enkripsi dan plainteks dari proses dekripsi. Untuk
memenuhi kebutuhan tersebut, maka sistem ini dibangun oleh sistem operasi
18
3.3 Perancangan Sistem
Perancangan sistem merupakan suatu tahapan yang sangat penting untuk
menentukan tahap awal dari kondisi akhir pada sistem yang akan dibangun untuk
memperoleh hasil melalui implementasinya.
Sistem ini mengkombinasikan dua algoritma untuk mengamankan file
yang diinput user langsung. File yang diinput kemudian dilakukan proses enkripsi
dengan menggunakan kombinasi algoritma RSA dan ElGamal, dengan menginput
nilai kunci publik RSA untuk dilakukan proses pembangkitan kunci, dan
selanjutnya dilakukan proses enkripsi untuk menghasilkan cipherteks. Cipherteks
hasil file yang diinput kemudian dilakukan proses dekripsi dengan menginput nilai
kunci privat ElGamal dan RSA dan selanjutnya dilakukan proses dekripsi untuk
menghasilkan file semula.
3.3.1 Perancangan Flowchart
Untuk mempermudah perancangan sistem pada implementasi kombinasi
algoritma RSA dan ElGamal, diperlukan langkah-langkah yang dikelompokkan ke
dalam flowchart.
Flowchart adalah bagan yang menunjukkan alur suatu sistem yang tiap
alur dihubungkan secara logika sesuai dengan ketentuan komponen alur yang
telah disepakati.
3.3.2 Flowchart Algoritma RSA
Algoritma RSA memiliki 3 buah proses yaitu proses pembangkit kunci, proses
enkripsi, dan proses dekripsi. Dimana proses-proses tersebut akan dijelaskan pada
Tidak
Ya
Tidak
Ya
Gambar 3.1 Flowchart Pembangkit Kunci RSA =(1+�� ) ;
∈ � �
gcd ,�( ) = 1,
Selesai �= 1,2,3,…,
Input
Kunci publik ( , ) Kunci privat ( , )
Mulai
Input , ; bilangan prima
= ∗
�( ) = −1 ∗( −1)
20
(a) (b)
Gambar 3.2 (a) Flowchart Enkripsi RSA; (b) Flowchart Dekripsi RSA
3.3.3 Flowchart Algoritma ElGamal
Algoritma ElGamal juga memiliki 3 buah proses yaitu proses pembangkit kunci,
proses enkripsi, dan proses dekripsi. Dimana proses-proses tersebut akan
dijelaskan pada flowchart-flowchart berikut: Mulai
Plainteks , Kunci publik ( , )
Pecah plainteks menjadi blok 1, 2,…, −1
� = �
Cipherteks
Selesai
Mulai
Cipherteks , Kunci privat ( , )
Pecah cipherteks menjadi blok 1, 2,…, −1
� = �
Plainteks
Tidak
Ya
Gambar 3.3 Flowchart Pembangkit Kunci ElGamal Mulai
Input ; bilangan prima
Kunci publik ( ,�, ) Kunci privat ( , )
=�
�, ; bilangan acak
Selesai �< ;
22
Tidak
Ya
Gambar 3.4 Flowchart Enkripsi ElGamal
3.3.4 Flowchart Kombinasi Algoritma RSA dan ElGamal
Pada kombinasi algoritma RSA dan ElGamal terdapat 2 proses yaitu proses
enkripsi dan proses dekripsi, seperti ditunjukkan pada flowchart berikut:
(a) (b)
Gambar 3.6 (a) Flowchart Enkripsi Kombinasi RSA dan ElGamal;
(b) Flowchart Dekripsi Kombinasi RSA dan ElGamal
BAB 4
IMPLEMENTASI
Pada bab ini akan diperlihatkan hasil dan pembahasan dari penelitian yang
diperoleh berdasarkan penjelasan – penjelasan yang telah dipaparkan pada bab -
bab sebelumnya. Hasil dan pembahasan dari penelitian ini adalah mengenai
implementasi kombinasi algoritma RSA dan ElGamal dalam pengamanan data
pada file dokumen.
4.1 Kebutuhan Perangkat Lunak dan Perangkat Keras
Penelitian ini menggunakan perangkat lunak berupa:
1. Sistem Operasi Windows 7
2. MATLAB R2009a
Spesifikasi perangkat keras yang digunakan berupa:
1. Processor Intel core i3 1.7 GHz
2. RAM 2 GB
3. Harddisk 500 GB
4. Monitor 14.0 inch
4.2 Implementasi
Pada implementasi sistem ini secara keseluruhan penulis membuat tiga buah
halaman antarmuka, yang terdiri dari halaman utama yang berisikan tentang
pilihan proses apa yang akan dilakukan. Bentuk antarmuka halaman utama dapat
Gambar 4.1 Halaman utama
Dari Gambar 4.1 dapat dilihat bahwa di dalam halaman utama terdapat
tiga buah tombol yaitu tombol enkripsi, dekripsi dan keluar. Tombol enkripsi
digunakan untuk memulai proses enkripsi, tombol dekripsi digunakan untuk
memulai proses dekripsi, dan tombol keluar digunakan untuk keluar dari program.
4.2.1 Proses Enkripsi
File pesan yang akan dienkripsi berisikan “Selamat Budiman, kamu lulus di
jurusan matematika FMIPA USU, Password anda untuk login adalah
Budiman1912”.
26
Untuk memulai proses enkripsi, tekan tombol enkripsi pada halaman
utama, maka akan muncul halaman enkripsi seperti pada Gambar 4.3.
Gambar 4.3 Halaman enkripsi 1
Selanjutnya yang dilakukan adalah masukan file pesan yang akan
dienkripsi dengan mengklik Pilih File pada kolom yang telah disediakan seperti
pada Gambar 4.4.
Setelah file dipilih akan ditampilkan pada halaman enkripsi.
Gambar 4.5 Halaman enkripsi 2
Selanjutnya pada kunci RSA input nilai dan pada kolom yang
disediakan. Kemudian klik kolom bangkitkan kunci sehingga masing-masing
kunci publik dan kunci privat pada kunci RSA dan kunci ElGamal akan terpilih
secara otomatis. Selanjutnya klik proses enkripsi, maka file telah selesai
dienkripsi.
28
Kemudian simpan file yang telah terenkripsi seperti yang terlihat pada
Gambar 4.7.
Gambar 4.7 Pop-up window simpan file
File pada Gambar 4.8 merupakan file hasil proses enkripsi.
4.2.2. Proses Dekripsi
Untuk proses dekripsi dilakukan dengan menekan tombol dekripsi pada halaman
utama, maka akan muncul halaman dekripsi seperti pada Gambar 4.9
Gambar 4.9 Halaman dekripsi 1
Selanjutnya yang dilakukan adalah pilih file hasil enkripsi dengan cara
mengklik tombol Pilih File, maka akan muncul pop-up window untuk mengakses
30
Setelah file dipilih akan ditampilkan pada halaman dekripsi.
Gambar 4.11 Halaman dekripsi 2
Langkah selanjutnya adalah masukan kunci pada kolom yang disediakan
Gambar 4.12 Halaman dekripsi 3
Setelah kunci dimasukkan, klik tombol proses dekripsi untuk memulai
proses dekripsi. Setelah diklik maka akan muncul pesan asli pada kolom yang
Gambar 4.13 Halaman dekripsi 4
4.3 Analisis Dalam Aplikasi
Pada tahap ini dijelaskan bagaimana proses aplikasi tersebut berjalan dari saat
pengamanan sampai saat pengungkapan.
4.3.1 Pengamanan Pesan
Pesan yang diamankan dari contoh kasus pada penelitian ini adalah “Selamat
Budiman, kamu lulus di jurusan matematika FMIPA USU, Password anda untuk
login adalah Budiman1912”. Pesan yang dipakai adalah “Budiman1912” untuk
menyederhanakan proses analisis aplikasi ini.
Proses 1:
Pada tahap ini plainteks diubah menjadi kode ASCII yaitu sebagai berikut:
Tabel 4.1 Kode ASCII Plainteks 1
� Plainteks Kode ASCII
32
Untuk Tahap ini dilakukan proses pembangkitan kunci pada algoritma RSA:
6. Pilih dua buah bilangan prima sembarang dan . (Sebaiknya ≠ , sebab
Misalnya terpilih = 293 yang relatif prima terhadap 3220.
Bukti:
3220 = 10 (293) + 290
293 = 1 (290) + 3
290 = 96 (3) + 2
10. Bangkitkan kunci privat dengan menggunakan persamaan ⋅ ≡
Sehingga diperoleh nilai adalah 1077.
Dari proses pembangkitan kunci maka diperoleh:
Kunci publik (293, 3337)
Kunci privat (1077, 3337)
Proses 3:
Plainteks yang sudah bernilai kode ASCII tersebut dienkripsi dengan
menggunakan kunci publik pada algoritma RSA yaitu (293, 3337).
34
7 = 110293 3337 = 2891 10 = 49293 3337 = 1352
8 = 49293 3337 = 1352 11 = 50293 3337 = 1271
9 = 57293 3337 = 522
Jadi, cipherteks yang dihasilkan adalah:
= 1295 1628 166 1443 499 1177 2891 1352 522 1352 1271
Proses 4:
Pada tahap ini cipherteks yang dihasilkan pada proses 3 menjadi plainteks yang
dienkripsi dengan menggunakan algoritma ElGamal:
Tabel 4.2 Plainteks ElGamal
Untuk tahap ini dilakukan proses pembangkitan kunci pada algoritma ElGamal:
4. Pilih sembarang bilangan prima . (dengan syarat nilai harus lebih besar dari
nilai plainteks terbesar).
Karena nilai plainteks terbesar adalah 2891, maka nilai harus lebih besar
5. Pilih dua buah bilangan acak � dan , dengan syarat �< dan 1≤ ≤ −
Dari proses pembangkitan kunci maka diperoleh:
Kunci publik (626, 28, 3593)
Kunci privat (12, 3593)
Proses 6:
Plainteks dienkripsi dengan menggunakan kunci publik pada algoritma ElGamal
36
Jadi cipherteks yang dihasilkan adalah:
= 498 2787 2408 1853 279 157 1905 1056 567 1888 101 3434 2007 3448
3165 1945 286 865 2750 3030 2436 2213
4.3.2 Pengungkapan Pesan
Pengungkapan pesan adalah proses mengembalikan cipherteks menjadi plainteks
semula.
Proses 1:
Pada tahap ini dilakukan proses dekripsi untuk cipherteks ElGamal dengan
menggunakan kunci privat (12, 3593).
9 = 865∙2863593−1−12 3593 = 522
10 = 3030∙27503593−1−12 3593 = 1352
11 = 2213∙24363593−1−12 3593 = 1271
Jadi plainteks yang dihasilkan adalah:
= 1295 1628 166 1443 499 1177 2891 1352 522 1352 1271
Proses 2:
Pada tahap ini plainteks yang dihasilkan pada proses 1 menjadi cipherteks yang
didekripsi dengan menggunakan algoritma RSA:
Tabel 4.3 Cipherteks RSA
menggunakan kunci privat (1077, 3337).
Dengan rumus:
Maka diperoleh:
38
2 = 16281077 3337 = 117
3 = 1661077 3337 = 100
4 = 14431077 3337 = 105
5 = 4991077 3337 = 109
6 = 11771077 3337 = 97
7 = 28911077 3337 = 110
8 = 13521077 3337 = 49
9 = 5221077 3337 = 57
10 = 13521077 3337 = 49
11 = 12711077 3337 = 50
Tabel 4.4 Kode ASCII Plainteks 2
� Kode ASCII Plainteks
1 66 B
2 117 u
3 100 d
4 105 i
5 109 m
6 97 a
7 110 n
8 49 1
9 57 9
10 49 1
11 50 2
4.4 Pengujian Sistem
Pengujian sistem dilakukan dengan membandingkan hasil dan waktu proses dari
kombinasi algoritma RSA dan ElGamal dengan hasil dari masing-masing
algoritma RSA dan ElGamal.
4.4.1 Hasil Algoritma RSA
Dengan mnggunakan pesan yang sama yaitu “Budiman1912”.
4.4.1.1 Pengamanan Pesan
Proses 1:
Pada tahap ini plainteks diubah menjadi kode ASCII yaitu sebagai berikut:
Tabel 4.5 Kode ASCII Plainteks 3
� Plainteks Kode ASCII
1 B 66
2 u 117
3 d 100
4 i 105
5 m 109
6 a 97
7 n 110
8 1 49
9 9 57
10 1 49
40
Proses 2:
Untuk Tahap ini dilakukan proses pembangkitan kunci:
1. Pilih dua buah bilangan prima sembarang dan . (Sebaiknya ≠ , sebab
Misalnya terpilih = 293 yang relatif prima terhadap 3220.
Bukti:
3220 = 10 (293) + 290
293 = 1 (290) + 3
290 = 96 (3) + 2
3 = 1 (2) + 1
5. Bangkitkan kunci privat dengan menggunakan persamaan ⋅ ≡
� = 2, maka:
Sehingga diperoleh nilai adalah 1077.
Dari proses pembangkitan kunci maka diperoleh:
Kunci publik (293, 3337)
Kunci privat (1077, 3337)
Proses 3:
Plainteks yang sudah bernilai kode ASCII tersebut dienkripsi dengan
menggunakan kunci publik pada algoritma RSA yaitu (293, 3337).
Dengan rumus:
Jadi, cipherteks yang dihasilkan adalah:
42
4.4.1.2 Pengungkapan Pesan
Pada tahap ini dilakukan proses dekripsi dengan menggunakan kunci privat (1077,
3337).
Tabel 4.6 Kode ASCII Plainteks 4
� Kode ASCII Plainteks
10 49 1
11 50 2
Dari proses-proses tersebut didapat kan kembali pesan asli yaitu: “Budiman1912”.
4.4.2 Hasil Algoritma ElGamal
Dengan menggunakan pesan yang sama yaitu “Budiman1912”.
4.4.2.1 Pengamanan Pesan
Proses 1:
Pada tahap ini plainteks diubah menjadi kode ASCII yaitu sebagai berikut:
Tabel 4.7 Kode ASCII Plainteks 5
� Plainteks Kode ASCII
1 B 66
2 u 117
3 d 100
4 i 105
5 m 109
6 a 97
7 n 110
8 1 49
9 9 57
10 1 49
44
Proses 2:
Untuk tahap ini dilakukan proses pembangkitan kunci:
1. Pilih sembarang bilangan prima . (dengan syarat nilai harus lebih besar dari
nilai plainteks terbesar).
Karena nilai plainteks terbesar adalah 117, maka nilai harus lebih besar dari
117. Misalnya terpilih nilai adalah 127.
2. Pilih dua buah bilangan acak � dan , dengan syarat �< dan 1≤ ≤ −
Dari proses pembangkitan kunci maka diperoleh:
Kunci publik (19, 28, 127)
Kunci privat (12, 127)
Proses 3:
Plainteks dienkripsi dengan menggunakan kunci publik (19, 28, 127).
3 = 2811 127 = 105 3 = 1911100 127 = 32
4 = 2845 127 = 126 4 = 1945105 127 = 105
5 = 2852 127 = 52 5 = 1952109 127 = 39
6 = 2863 127 = 126 6 = 1963 97 127 = 97
7 = 2835 127 = 59 7 = 1935110 127 = 86
8 = 2821 127 = 108 8 = 192149 127 = 49
9 = 2816 127 = 52 9 = 191657 127 = 67
10 = 2832 127 = 37 10 = 193249 127 = 36
11 = 2841 127 = 90 11 = 194150 127 = 16
Jadi cipherteks yang dihasilkan adalah:
= 22 77 24 64 105 32 126 105 52 39 126 97 59 86 108 49 52 67 37 36 90
16.
4.4.2.2 Pengungkapan Pesan
Pada tahap ini dilakukan proses dekripsi dengan menggunakan kunci privat (12,
127).
Dengan rumus:
Maka diperoleh:
1 = 77∙22127−1−12 127 = 66
2 = 64∙24127−1−12 127 = 117
3 = 32∙105127−1−12 127 = 100
4 = 105 ∙126127−1−12 127 = 105
5 = 39∙52127−1−12 127 = 109
46
7 = 86∙59127−1−12 127 = 110
8 = 49∙108127−1−12 127 = 49
9 = 67∙52127−1−12 127 = 57
10 = 36∙37127−1−12 127 = 49
11 = 16∙90127−1−12 127 = 50
Jadi plainteks yang dihasilkan adalah:
= 66 117 100 105 109 97 110 49 57 49 50
Tabel 4.8 Kode ASCII Plainteks 6
� Kode ASCII Plainteks
1 66 B
2 117 u
3 100 d
4 105 i
5 109 m
6 97 a
7 110 n
8 49 1
9 57 9
10 49 1
11 50 2
4.4.3 Perbandingan Hasil Kombinasi Algoritma RSA dan ElGamal dengan Hasil Masing-Masing Algoritma
Dalam penelitian ini, penulis menggunakan kombinasi algoritma RSA dan
ElGamal yang bertujuan untuk memberikan perlindungan ganda yang lebih baik
dalam menjaga kerahasiaan dari isi file dokumen. Hasil enkripsi dari kombinasi
algoritma RSA dan ElGamal adalah cipherteks dan hasil dari dekripsinya adalah
plainteks.
Cipherteks hasil dari kombinasi algoritma RSA dan ElGamal memiliki
panjang 2 kali dari plainteks dan juga menggunakan proses sebanyak 2 kali.
Sedangkan jika hanya menggunakan algoritma RSA saja, cipherteks yang
dihasilkan hanya sepanjang plainteks dan hanya menggunakan proses sebanyak 1
kali saja, begitu pula dengan menggunakan algoritma ElGamal, walaupun
cipherteks yang dihasilkan 2 kali panjang plainteks namun proses yang dilakukan
hanya sebanyak 1 kali.
Berikut ini merupakan cipherteks hasil kombinasi algoritma RSA dan
ElGamal, hasil algoritma RSA, dan hasil algoritma ElGamal.
Plainteks: “Budiman1912”
Cipherteks Kombinasi Algoritma RSA dan ElGamal:
498 2787 2408 1853 279 157 1905 1056 567 1888 101 3434 2007 3448 3165
1945 286 865 2750 3030 2436 2213
Cipherteks Algoritma RSA:
1295 1628 166 1443 499 1177 2891 1352 522 1352 1271
Cipherteks Algoritma ElGamal:
48
Setelah dilakukan pengujian sistem, dapat dikethui lamanya waktu proses
dari masing-masing algoritma. Hasil pengujian ditampilkan pada Tabel 4.9.
Tabel 4.9 Waktu Proses
50 0,0046705 0,0042781
100 0,01025 0,0083691
200 0,014965 0,01413
500 0,023604 0,032107
1000 0,03533 0,053949
ElGamal
50 0,0096671 0,0060127
100 0,018856 0,012341
200 0,032104 0,023931
500 0,05211 0,054426
1000 0,11024 0,081849
Dilihat dari waktu prosesnya, kombinasi algoritma RSA dan ElGamal
membutuhkan waktu yang lebih lama dibandingkan algoritma RSA dan ElGamal.
Sehingga waktu yang dibutuhkan untuk memecahkan kombinasi algoritma RSA
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pada implementasi yang telah penulis lakukan, maka dapat
disimpulkan bahwa kombinasi algoritma RSA dan ElGamal mampu menutupi
kekurangan yang dimiliki dari algoritma RSA yaitu dengan melakukan proses
enkripsi pada cipherteks hasil RSA dengan menggunakan algoritma ElGamal
sehingga apabila cipherteks hasil RSA dapat dipecahkan maka kunci publik dan
kunci privat tidak akan dapat langsung diketahui dikarenakan harus mencari
cipherteks hasil ElGamal. Oleh karena itu, proses kombinasi algoritma RSA dan
ElGamal membutuhkan waktu yang lebih lama dibandingkan masing – masing
algoritma, sehingga waktu yang dibutuhkan untuk memecahkan kombinasi
algoritma RSA dan ElGamal juga semakin lama.
5.2 Saran
Adapun saran – saran yang dapat penulis berikan untuk pengembangan dan
perbaikan penelitian ini adalah sebagai berikut:
1. Perlu dilakukan penelitian lebih lanjut dalam implementasi algoritma
kriptografi yang sudah ada saat ini.
2. Perlu dilakukan penelitian lebih lanjut dalam bentuk plainteks yang berbeda.
Contohnya berupa gambar, video dan sebagainya.
3. Pesan rahasia dapat berupa file dengan format .doc, .pdf, dan lain sebagainya.
4. Kombinasi dua algoritma atau lebih dapat dilakukan sebagai salah satu solusi
50
5. Mengimplementasikan algoritma kriptografi dengan menggunakan bahasa
pemograman yang lain, seperti JAVA, C/C++, Visual Basic dan sebagainya.
6. Penelitian ini agar dapat dikembangkan lebih lanjut dengan menggunakan
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
pihak-pihak 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
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
(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
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)
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
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
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
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
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 dan . (Sebaiknya ≠ , sebab
jika = maka = 2, sehingga dapat diperoleh dengan menarik akar
pangkat dua dari ).
2. Hitung = ∙ .
3. Hitung �( ) = −1 ∙( −1).
4. Pilih kunci yang relatif prima terhadap �( ).
5. Bangkitkan kunci privat dengan menggunakan persamaan ⋅ ≡
1( �( )). Perhatikan bahwa ⋅ ≡1( �( )). Hitung hingga
⋅ ≡1( �( )) ekivalen ∙ = 1 +��( ), sehinnga secara
sederhana dapat dihitung dengan = 1+��( ).
Hasil dari algoritma diatas:
- Kunci publik adalah pasangan ( , )
- Kunci privat adalah pasangan ( , )
Algoritma RSA memiliki besaran-besaran sebagai berikut:
1. dan bilangan prima (rahasia)
2. = ∗ (tidak rahasia)
3. �( ) = −1 ∗( −1) (rahasia)
4. (kunci enkripsi/kunci publik) (tidak rahasia)
5. (kunci dekripsi/kunci privat) (rahasia)
6. (plainteks) (rahasia)
14
2.2.1.2 Proses Enkripsi
Proses enkripsi pesan sebagai berikut:
1. Ambil kunci publik ( , ).
2. Nyatakan plainteks menjadi blok-blok 1, 2,…, � dimana � menyatakan
jumlah karakter plainteks.
3. Setiap blok � dienkripsi menjadi blok �dengan rumus � = � ,
sehingga didapat cipherteks 1, 2,…, �.
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
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 �< dan 1≤ ≤ −
2.
3. Hitung = �
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, � (�< ) (tidak rahasia)
3. Bilangan acak, ( < ) (kunci privat) (rahasia)
4. = � (kunci publik) (tidak rahasia)
5. (plainteks) (rahasia)
16
2.2.2.2 Proses Enkripsi
Proses enkripsi pesan sebagai berikut:
1. Susun plainteks menjadi blok-blok 1, 2,…, � dimana � menyatakan jumlah
karakter plainteks.
2. Pilih bilangan acak � yang dalam hal ini 1≤ �� ≤ −2.
3. Setiap blok 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 untuk mendekripsi dan menjadi plainteks dengan
BAB 1
PENDAHULUAN
1.1Latar Belakang
Kemajuan dan perkembangan teknologi dewasa ini telah mempengaruhi segala
aspek kehidupan, tak terkecuali aspek penyimpanan data, seperti dalam
penyimpanan data pada file dokumen. Keamanan dan kerahasiaan merupakan
aspek penting dalam proses penyimpanan data pada file dokumen.
Untuk menjaga keamanan dan kerahasiaan terutama bagi perusahaan,
instansi, atau organisasi yang mempunyai dokumen-dokumen rahasia dan penting.
Mereka mengamankan dokumen-dokumen tersebut agar terhindar dari gangguan
orang lain. Saat ini, sebagian besar dokumen-dokumen menggunakan aplikasi
Microsoft office yang sangat memudahkan siapa saja ketika menggunakan aplikasi
ini. Microsoft Office telah mempunyai sistem pengamanan tersendiri, namun
sistem keamanan tersebut masih sangat mudah untuk diketahui oleh pihak lain.
Dengan semakin meningkatnya pengguna aplikasi Microsoft office ini maka
dibutuhkan pula cara untuk meningkatkan keamanan pada data terhadap dokumen
tersebut. Hal ini dikarenakan setiap perusahaan atau instansi memiliki suatu data
yang tidak semua orang boleh mengetahuinya. Banyak cara yang dilakukan untuk
mengamankan data dari ancaman pihak luar yang tidak memiliki hak untuk
mengolah data dokumen tersebut.
Salah satu cara untuk mempertahankan kerahasiaan dari data tersebut
adalah dengan menggunakan teknik penyandian. Dengan menggunakan cara ini,
2
sehingga bila ada pihak luar yang ingin mengetahui ataupun merubahnya akan
kesulitan dalam menterjemahkan isi data yang sebenarnya. Teknik tersebut
dikenal dengan kriptografi (Munir, 2006).
Dalam penelitian ini algoritma yang digunakan dalam proses enkripsi dan
dekripsi adalah algoritma RSA dan ElGamal, dimana kedua algoritma ini
termasuk algoritma asimetris atau penggunaan dua kunci dalam proses enkripsi
dan dekripsinya. 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. Sedangkan pada algoritma ElGamal sulitnya menghitung logaritma
diskrit pada bilangan modulo prima yang besar. Dari kekurangan algoritma RSA
tersebut penulis melakukan kombinasi algoritma RSA dan ElGamal yang
diharapkan agar lebih sulit untuk dipecahkan.
Berdasarkan penjelasan di atas, maka penulis melakukan penelitian dengan judul “Implementasi Kombinasi Algoritma RSA dan ElGamal dalam Pengamanan Data pada File Dokumen”.
1.2Perumusan Masalah
Permasalahan yang dibahas adalah bagaimana meningkatkan keamanan pada file
dokumen dengan menggunakan kombinasi algoritma RSA dan ElGamal sehingga
tingkat keamanannya lebih baik.
1.3Batasan Masalah
Untuk menghindari meluasnya materi pembahasan dalam penelitian ini, maka
penulis membatasi permasalahan hanya mencakup pada hal-hal berikut:
a. Algoritma yang digunakan adalah algoritma RSA dan ElGamal.
c. Tidak dilakukan teknik-teknik untuk melakukan pemecahan mekanisme
(kriptanalis).
d. Software yang digunakan adalah MATLAB.
1.4Tujuan Penelitian
Tujuan penelitian ini adalah mengkombinasikan algoritma RSA dan ElGamal
untuk memberikan perlindungan ganda yang lebih baik dalam menjaga
kerahasiaan dari isi file dokumen.
1.5Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut:
1. Dapat mengamankan data tanpa diketahui oleh pihak luar.
2. Dapat digunakan sebagai tambahan informasi dan referensi bacaan untuk
mahasiswa Matematika, terlebih bagi mahasiswa yang akan melakukan
penelitian serupa.
1.6Kerangka Pemikiran
Berikut ini adalah flowchart proses kombinasi algoritma RSA dan ElGamal dalam
4
Gambar 1.1 Flowchart pengamanan data pada file dokumen
1.7Metodologi Penelitian
Penelitian ini disusun dengan langkah – langkah sebagai berikut:
1. Melakukan studi literatur mengenai algoritma RSA dan ElGamal yang
bersumber dari buku, jurnal, dan penelitian terdahulu.
2. Analisis terhadap studi literatur untuk mengetahui dan mendapatkan
pemahaman mengenai algoritma RSA dan ElGamal.
3. Melakukan perancangan dan menerapkan kombinasi algoritma RSA dan
ElGamal pada file dokumen dengan menggunakan MATLAB.
4. Hasil dan pembahasan dari kombinasi algoritma RSA dan ElGamal dilakukan
dengan membandingkan hasil dari masing-masing algoritma.
5. Menarik kesimpulan dari hasil dan pembahasan yang telah diperoleh dan
IMPLEMENTASI KOMBINASI ALGORITMA RSA DAN
ELGAMAL DALAM PENGAMANAN DATA
PADA FILE DOKUMEN
ABSTRAK
Kriptografi merupakan teknik pengamanan dengan menyandikan pesan menjadi sederetan karakter yang tidak bermakna. Algoritma Kriptografi terus mengalami perkembangan, pegembangan dilakukan untuk mengatasi celah keamanan yang semakin terbuka. Algoritma RSA dan ElGamal adalah algoritma yang cukup populer digunakan saat ini. Dimana kedua algoritma ini memiliki 2 buah kunci yaitu kunci publik dan kunci privat dalam proses enkripsi dan dekripsi. Pada penelitian ini, algoritma RSA dan ElGamal dikombinasikan untuk dapat mengamankan data pada file dokumen yang bertujuan agar dapat memberikan perlindungan ganda yang lebih baik dalam menjaga kerahasiaan dari isi file dokumen tersebut. Hasil akhir dari penelitian ini adalah sebuah program yang dapat diaplikasikan untuk mengamankan data pada file dokumen.
IMPLEMENTATION COMBINATION OF RSA AND
ELGAMAL ALGORITHM OF SECURING DATA
ON THE DOCUMENT FILE
ABSTRACT
Cryptography is a security technique to encode the message into a series of characters that don’t have meaning. Cryptographic algorithm continues to go through development, development was done to resolve the security gaps that increasingly open. RSA and ElGamal algorithm are algorithms that are quite popular to be used nowadays, where these two algorithms have two keys, namely a public key and a private key in encryption and description process. In this research, the RSA and ElGamal algorithms are combined to be able to secure data on a file document that aims to provide a better double protection in maintaining the confidentiality of the contents of the document file. The end result of this research is a program that can be applied to secure the data on document file.
SKRIPSI
M BUDIMAN KHANAFI M
120803008
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI KOMBINASI ALGORITMA RSA DAN
ELGAMAL DALAM PENGAMANAN DATA
PADA FILE DOKUMEN
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat untuk mencapai gelar Sarjana Sains
M BUDIMAN KHANAFI M
120803008
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : Implementasi Kombinasi Algoritma RSA dan ElGamal Dalam Pengamanan Data Pada File Dokumen
Kategori : Skripsi
Nama : M Budiman Khanafi M
Nomor Induk Mahasiswa : 120803008
Program Studi : Sarjana (S1) Matematika
Departemen : Matematika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam (FMIPA) Universitas Sumatera Utara
Disetujui di Medan, Juli 2016
Komisi Pembimbing:
Pembimbing 2, Pembimbing 1,
Dr. Mardiningsih, M.Si Dr. Syahriol Sitorus, M.IT NIP. 19630405 198811 2 001 NIP. 19710310 199703 1 004
Disetujui oleh
Departemen Matematika FMIPA USU Ketua,
PERNYATAAN
IMPLEMENTASI KOMBINASI ALGORITMA RSA DAN
ELGAMAL DALAM PENGAMANAN DATA
PADA FILE DOKUMEN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2016
PENGHARGAAN
Assalamu’alaikum Wr. Wb.
Puji syukur penulis ucapkan kehadirat Allah SWT atas rahmat dan hidayah-Nya
sehingga penulis dapat menyelesaikan skripsi yang berjudul Implementasi
Kombinasi Algoritma RSA dan ElGamal Dalam Pengamanan Data Pada File Dokumen ini dalam waktu yang telah ditetapkan. Terimakasih penulis sampaikan kepada:
1. Bapak Dr. Syahriol Sitorus, M.IT dan Ibu Dr. Mardiningsih, M.Si selaku
dosen pembimbing yang berkenan dan rela mengorbankan waktu, tenaga dan
pikiran guna memberikan petunjuk dan bimbingannya dalam penulisan skripsi
ini.
2. Bapak Drs. Marihat Situmorang, M.Kom dan Bapak Dr. Sawaluddin, M.IT
selaku dosen pembanding atas kritik dan saran yang membangun dalam
penyempurnaan skripsi ini.
3. Bapak Prof. Dr. Tulus, M.Si dan Ibu Dr. Mardiningsih, M.Si selaku Ketua dan
Sekretaris Departemen Matematika FMIPA USU beserta staf pegawai.
4. Bapak Dr. Kerista Sebayang, MS selaku Dekan FMIPA USU beserta staf
pegawai.
5. Terkhusus untuk Ayahanda Kardimad Manurung, Ibunda Suriati Sirait, serta
keluarga besar penulis yang telah memberikan banyak bantuan baik materi,
moral maupun spiritual.
6. Hasina Toni yang selalu memberikan semangat dan dukungannya.
7. Teman-teman penulis Rahmat, Fahmi, Viki, Wanda dan teman-teman
Matematika 2012 lainnya yang tidak dapat disebutkan satu per satu atas segala
bentuk dukungannya.
Semoga segala bentuk bantuan yang telah diberikan kepada penulis
mendapatkan balasan yang lebih baik dari Allah SWT. Akhir kata penulis
IMPLEMENTASI KOMBINASI ALGORITMA RSA DAN
ELGAMAL DALAM PENGAMANAN DATA
PADA FILE DOKUMEN
ABSTRAK
Kriptografi merupakan teknik pengamanan dengan menyandikan pesan menjadi sederetan karakter yang tidak bermakna. Algoritma Kriptografi terus mengalami perkembangan, pegembangan dilakukan untuk mengatasi celah keamanan yang semakin terbuka. Algoritma RSA dan ElGamal adalah algoritma yang cukup populer digunakan saat ini. Dimana kedua algoritma ini memiliki 2 buah kunci yaitu kunci publik dan kunci privat dalam proses enkripsi dan dekripsi. Pada penelitian ini, algoritma RSA dan ElGamal dikombinasikan untuk dapat mengamankan data pada file dokumen yang bertujuan agar dapat memberikan perlindungan ganda yang lebih baik dalam menjaga kerahasiaan dari isi file dokumen tersebut. Hasil akhir dari penelitian ini adalah sebuah program yang dapat diaplikasikan untuk mengamankan data pada file dokumen.
IMPLEMENTATION COMBINATION OF RSA AND
ELGAMAL ALGORITHM OF SECURING DATA
ON THE DOCUMENT FILE
ABSTRACT
Cryptography is a security technique to encode the message into a series of
characters that don’t have meaning. Cryptographic algorithm continues to go
through development, development was done to resolve the security gaps that increasingly open. RSA and ElGamal algorithm are algorithms that are quite popular to be used nowadays, where these two algorithms have two keys, namely a public key and a private key in encryption and description process. In this research, the RSA and ElGamal algorithms are combined to be able to secure data on a file document that aims to provide a better double protection in maintaining the confidentiality of the contents of the document file. The end result of this research is a program that can be applied to secure the data on document file.
DAFTAR ISI
1.7 Metodologi Penelitian 4
BAB 2 LANDASAN TEORI
2.1 Kriptografi 5
2.1.1 Pengertian Kriptografi 5
2.1.2 Sejarah Kriptografi 6
2.1.3 Terminologi Kriptografi 8
2.1.4 Tujuan Kriptografi 10
2.1.5 Jenis-Jenis Kriptografi 10
2.2 Algoritma Kriptografi 12
2.2.1 Algoritma RSA 12
2.2.1.1 Proses Pembangkitan Kunci 13
2.2.1.2 Proses Enkripsi 14
2.2.1.3Proses Dekripsi 14
2.2.2 Algoritma ElGamal 14
2.2.2.1 Proses Pembangkitan Kunci 15
2.2.2.2 Proses Enkripsi 16
2.2.2.3 Proses Dekripsi 16
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Permasalahan 17
3.2 Analisis Kebutuhan 17
3.3 Perancangan Sistem 18
3.3.1 Perancangan Flowchart 18
3.3.3 Flowchart Algoritma ElGamal 20 3.3.4 Flowchart Kombinasi Algoritma RSA dan ElGamal 23
BAB 4 IMPLEMENTASI
4.1 Kebutuhan Perangkat Lunak dan Perangkat Keras 24
4.2 Implementasi 24
4.2.1 Proses Enkripsi 25
4.2.2 Proses Dekripsi 29
4.3 Analisis dalam Aplikasi 31
4.3.1 Pengamanan Pesan 31
4.3.2 Pengungkapan Pesan 36
4.4 Pengujian Sistem 39
4.4.1 Hasil Algoritma RSA 39
4.4.1.1 Pengamanan Pesan 39
4.4.1.2 Pengungkapan Pesan 42
4.4.2 Hasil Algoritma ElGamal 43
4.4.2.1 Pengamanan Pesan 43
4.4.2.2 Pengungkapan Pesan 45
4.4.3 Perbandingan Hasil kombinasi Algoritma RSA dan ElGamal dengan Hasil Masing-Masing Algoritma 47
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan 49
5.2 Saran 49
DAFTAR PUSTAKA 51
DAFTAR TABEL
Nomor Judul Halaman Tabel
4.1 Kode ASCII Plainteks 1 31
4.2 Plainteks ElGamal 34
4.3 Cipherteks RSA 37
4.4 Kode ASCII Plainteks 2 38
4.5 Kode ASCII Plainteks 3 39
4.6 Kode ASCII Plainteks 4 42
4.7 Kode ASCII Plainteks 5 43
4.8 Kode ASCII Plainteks 6 46
DAFTAR GAMBAR
Nomor Judul Halaman Gambar
1.1 Flowchart pengamanan data pada file dokumen 4
2.1 (a) Sebuah scytale, (b) Pesan ditulis secara horizontal, baris
3.1 Flowchart pembangkit kunci RSA 19
3.2 (a) Flowchart enkripsi RSA, (b) Flowchart dekripsi RSA 20
3.3 Flowchart pembangkit kunci ElGamal 21
3.4 Flowchart enkripsi ElGamal 22
3.5 Flowchart dekripsi ElGamal 22
3.6 (a) Flowchart enkripsi kombinasi RSA dan ElGamal,
(b) Flowchart dekripsi kombinasi RSA dan ElGamal 23
4.12 Halaman dekripsi 3 30
DAFTAR LAMPIRAN
Nomor Judul Halaman
1 Fungsi utama 51
2 Fungsi enkripsi 52