• Tidak ada hasil yang ditemukan

Implementasi Kombinasi Algoritma RSA dan ElGamal Dalam Pengamanan Data Pada File Dokumen

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Kombinasi Algoritma RSA dan ElGamal Dalam Pengamanan Data Pada File Dokumen"

Copied!
82
0
0

Teks penuh

(1)

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

(2)

function tombolKeluar_Callback(hObject, eventdata, handles)

(3)

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)

(4)

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');

(5)

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');

(6)

val = isprime(e_RSA);

val1 = mod((d_RSA*e_RSA),phi_RSA);

end

pjg_binerERSA = length(biner_eRSA);

(7)

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;

(8)

y_El = 1;

pjg_binerKel = length(biner_kEl);

(9)

61

cipB1_El = mod(cipher_RSA(o_El),p_El);

(10)

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');

(11)

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)

(12)

return;

else

cipher = fileread (fullpathname);

set(handles.kolomCipherteks, 'String', cipher)

(13)

65

pjg_binerPangkat = length(biner_pangkat);

psn_El = 1;

cipher_El(o_El) = mod(psn_El*psnA_El,p_El);

(14)

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)

(15)

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');

(16)

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.

(17)

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.

(18)

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

(19)

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

(20)

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)

(21)

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

(22)

Tidak

Ya

Gambar 3.3 Flowchart Pembangkit Kunci ElGamal Mulai

Input ; bilangan prima

Kunci publik ( ,�, ) Kunci privat ( , )

=�

�, ; bilangan acak

Selesai �< ;

(23)

22

Tidak

Ya

Gambar 3.4 Flowchart Enkripsi ElGamal

(24)

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

(25)

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

(26)

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

(27)

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.

(28)

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.

(29)

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.

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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:

(39)

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

(40)

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

(41)

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

(42)

� = 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:

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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:

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

(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

(55)

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)

(56)

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

(57)

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

(58)

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

(59)

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

(60)

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)

(61)

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

(62)

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)

(63)

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

(64)

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,

(65)

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.

(66)

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

(67)

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

(68)

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.

(69)

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.

(70)

SKRIPSI

M BUDIMAN KHANAFI M

120803008

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(71)

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

(72)

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,

(73)

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

(74)

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

(75)

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.

(76)

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.

(77)

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

(78)

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

(79)

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

(80)

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

(81)

4.12 Halaman dekripsi 3 30

(82)

DAFTAR LAMPIRAN

Nomor Judul Halaman

1 Fungsi utama 51

2 Fungsi enkripsi 52

Gambar

Gambar 3.1 Flowchart Pembangkit Kunci RSA
Gambar 3.2 (a) Flowchart Enkripsi RSA; (b) Flowchart Dekripsi RSA
Gambar 3.3 Flowchart Pembangkit Kunci ElGamal
Gambar 3.5 Flowchart Dekripsi ElGamal
+7

Referensi

Dokumen terkait

Oleh karena itu penulis membuat situs Sekolah Menengah Umum 113 yang dibangun dengan menggunakan kombinasi bahasa pemrograman yaitu PHP, JavaScript, HTML, serta XML yang di dukung

ACUAN PENETAPAN REKOMENDASI PUPUK N, P, DAN K PADA LAHAN SAWAH.

48 ASRM ASURANSI RAMAYANA Tbk BSRE1 - BSR INDONESIA PT... BSRE1 - BSR

Variation linking models the ten- dency of individuals to associate with others based on occupational rela- tions; acquaintance relation forma- tion occurs on the basis of individual

Setiap Pemegang saham public DVLA yang secara tegas memberikan suara tidak setuju atas rencana Penggabungan Usaha pada saat RUPSLB DVLA dan bermaksud untuk

persentase tertinggi konsepsi siswa yang benar pada saat post-test terdapat pada konsep hubungan antara luas penampang dengan tekanan hirostatis, yaitu sebesar 96,77

[r]

Ditemukan bahwa kemampuan menafsirkan grafik kinematika siswa sebesar 19,09 % (tergolong rendah). Beberapa bentuk kesalahan penafsiran grafik kinematika adalah: a) pada