Anda di halaman 1dari 116

PENGAMANAN FILE PDF MENGGUNAKAN ALGORITMA

RSA DIGITAL SIGNATURE DAN FUNGSI HASH


SHA-3 BERBASIS WEB

SKRIPSI

ARYA DUTA DIAS

171401117

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2021

Universitas Sumatera Utara


PENGAMANAN FILE PDF MENGGUNAKAN ALGORITMA
RSA DIGITAL SIGNATURE DAN FUNGSI HASH
SHA-3 BERBASIS WEB

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana
Ilmu Komputer

ARYA DUTA DIAS

171401117

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2021

Universitas Sumatera Utara


ii

PERSETUJUAN

Universitas Sumatera Utara


Universitas Sumatera Utara
iii

PERNYATAAN

PENGAMANAN FILE PDF MENGGUNAKAN ALGORITMA RSA DIGITAL


SIGNATURE DAN FUNGSI HASH SHA-3 BERBASIS WEB

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 27 Desember 2021

Arya Duta Dias

171401117

Universitas Sumatera Utara


Universitas Sumatera Utara
iv

UCAPAN TERIMA KASIH

Puji dan syukur dipanjatkan kepada Tuhan Yang Maha Esa, karena atas rahmat
Nya, penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk
memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer
Universitas Sumatera Utara.

Pada kesempatan ini, penulis ingin mengucapkan banyak terimakasih kepada


pihak-pihak yang sudah membantu dalam pengerjaan skripsi ini. Dengan segala hormat
dan kerendahan hati penulis mengucapkan terimakasih kepada:

1. Bapak Dr. Muryanto Amin selaku Rektor Universitas Sumatera Utara.


2. Ibu Dr. Maya Silvi Lydia B. Sc., M.Sc. selaku dekan Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara.
3. Ibu Dr. Amalia ST. MT selaku Ketua Program Studi S1 Ilmu Komputer
Universitas Sumatera Utara.
4. Bapak Amer Sharif S. Si, M. Kom. Selaku Dosen Pembimbing I yang
memberikan bimbingan, saran dan masukan kepada penulis dalam penyusunan
skripsi ini.
5. Ibu Dewi Sartika br Ginting S.Kom, M.Kom. Selaku Dosen Pembimbing II
yang memberikan bimbingan, saran dan masukan kepada penulis dalam
penyusunan skripsi ini.
6. Bapak Dr. Syahril Efendi, S.Si, M.IT. Selaku Dosen Pembanding I yang
memberikan bimbingan, saran dan masukan kepada penulis dalam penyusunan
skripsi ini.
7. Bapak Handrizal S.Si, M.Comp.Sc. Selaku Dosen Pembanding II yang
memberikan bimbingan, saran dan masukan kepada penulis dalam penyusunan
skripsi ini.
8. Kedua orang tua penulis, Ayahanda Surya Hardi dan Ibunda Aminah br Siahaan,
Abang penulis, Muftie Dias, dan Kakak penulis, Ade Disa Dias yang terus
memberikan doa, dukungan, dan dorongan motivasi kepada penulis dalam
menyelesaikan skripsi ini.

Universitas Sumatera Utara


Universitas Sumatera Utara
v

9. Teman-teman penulis dari awal hingga akhir perkuliahan, Albert, Irwanto,


Azhar Bazla Rabbani, dan Mailan Roni Saputra yang memberikan dukungan
kepada penulis dalam menyelesaikan skripsi.
10. Teman-teman Kom C stambuk 2017 yang telah terlibat secara langsung maupun
tidak langsung yang tidak dapat disebutkan satu per satu dalam memberikan
pendukung penulis menyelesaikan skripsi ini.

Semoga Tuhan Yang Maha Esa memberikan berkat karunia kepada semua pihak
yang telah memberikan bantuan, semangat, perhatian, motivasi, serta dukungan kepada
penulis dalam menyelesaikan skripsi ini.

Medan, 27 Desember 2021

Penulis,

Arya Duta Dias

Universitas Sumatera Utara


Universitas Sumatera Utara
vi

ABSTRAK

Tanda tangan biasanya digunakan pada dokumen sebagai bukti tertulis bahwa dokumen
tersebut telah disahkan oleh orang yang bersangkutan. Tanda tangan juga membuktikan
apakah dokumen tersebut asli dari pemilik tanda tangan jika dokumen tersebut
diserahkan ke pihak lain. Dokumen bisa berupa cetakan fisik maupun digital. Namun,
pada cetakan digital diperlukan sebuah pengamanan dikarenakan dokumen dapat
diubah dengan mudah oleh siapapun melalui jaringan tanpa pembuktian dari pemilik
tanda tangan meskipun sudah ditandatangani dengan cara dipindai atau di foto. Salah
satu solusi pengamanan tersebut adalah menggunakan metode RSA Digital Signature
yang merupakan kombinasi algoritma RSA dengan Digital Signature. Algoritma RSA
adalah algoritma kriptografi kunci publik. Sedangkan Digital Signature adalah skema
keamanan yang menjamin keaslian file atau pesan dari segi otentikasi, anti
penyangkalan, dan integritas menggunakan fungsi hash. Penelitian ini
mengimplementasikan RSA Digital Signature dan fungsi hash SHA-3 berbasis web
untuk mengamankan keaslian file PDF menggunakan bahasa pemrograman PHP. Hasil
penelitian adalah sistem berbasis web yang dapat menjamin keaslian file menggunakan
RSA Digital Signature pada beberapa file PDF. Pengujian terhadap sejumlah file PDF
berukuran dari 6 KB, 245 KB, hingga 23285 KB dilakukan menggunakan tiga web
browser, yaitu Google Chrome, Microsoft Edge, dan Mozilla Firefox dengan total
waktu proses rata-rata antara pembangkitan kunci, tanda tangan, dan verifikasi pada
masing-masing web browser adalah 1,2562 detik, 1,2483 detik, dan 1,2775 detik.

Kata kunci: Algoritma RSA, Tanda Tangan Digital, Fungsi Hash, SHA-3, Keccak,
Tanda Tangan, Verifikasi, Otentikasi, Anti Penyangkalan, Integritas File

Universitas Sumatera Utara


Universitas Sumatera Utara
vii

WEB-BASED PDF FILE SECURITY USING RSA DIGITAL SIGNATURE


AND SHA-3 HASH FUNCTION

ABSTRACT

Generally, the signature is used to approve and show a document that has been approved
by the signer. The document can be a soft copy or hard copy. However, a soft copy
needs security since the document could be modified by a third person through network
without approval by the signer. Even though, their signature is from the image scanner
or photos. The solution to this problem is using RSA Digital Signature Algorithm
consisting of combination between RSA and Digital Signature. RSA Algorithm is
public key cryptography algorithm. While Digital Signature is a security scheme that
ensures the originality of file or message from authentication, non-repudiation, and file
or message integrity. This research implemented a web-based RSA Digital Signature
Algorithm and SHA-3 hash function to secure the originality of PDF files by using PHP
programming language. The result of this research is the web can run as well and ensure
security to the originality of PDF files from authentication, non-repudiation, and file
integrity on multiple PDF files with size from 6 KB, 245 KB, up to 23285 KB. The files
has tested using web browsers: Google Chrome, Microsoft Edge, and Mozilla Firefox
with the total average processing time between key generation, signatures, and
verification on the web browsers are 1.2562 seconds, 1.2483 seconds, and 1.2775
seconds.

Keywords: RSA Algorithm, Digital Signature, Hash Function, SHA-3, Keccak,


Signature, Verification, Authentication, Non-Repudiation, File Integrity

Universitas Sumatera Utara


Universitas Sumatera Utara
viii

DAFTAR ISI

Halaman

PERSETUJUAN ............................................................................................................ ii

PERNYATAAN ............................................................................................................ ii

UCAPAN TERIMA KASIH ......................................................................................... iv

ABSTRAK .................................................................................................................... vi

ABSTRACT ................................................................................................................. vii

DAFTAR ISI ............................................................................................................... viii

DAFTAR TABEL ......................................................................................................... xi

DAFTAR GAMBAR ................................................................................................... xii

DAFTAR GRAFIK ..................................................................................................... xiv

DAFTAR LAMPIRAN ................................................................................................ xv

BAB 1 ............................................................................................................................ 1

PENDAHULUAN ......................................................................................................... 1

1.1. Latar Belakang ................................................................................................ 1

1.2. Rumusan Masalah ........................................................................................... 3

1.3. Batasan Masalah .............................................................................................. 3

1.4. Tujuan Penelitian............................................................................................. 4

1.5. Manfaat Penelitian........................................................................................... 4

1.6. Metode Penelitian ............................................................................................ 4

1.7. Sistematika Penulisan ...................................................................................... 5

BAB 2 ............................................................................................................................ 7

LANDASAN TEORI ..................................................................................................... 7

2.1. Website ............................................................................................................ 7

2.2. Kriptografi ....................................................................................................... 8

Universitas Sumatera Utara


Universitas Sumatera Utara
ix

2.2.1. Jenis Kriptografi ......................................................................................... 8

2.3. Modulo .......................................................................................................... 10

2.3.1. Kongruensi Modulo .................................................................................... 10

2.4. Tanda Tangan ................................................................................................ 11

2.5. Digital Signature ........................................................................................... 11

2.6. RSA Kunci Publik dan RSA Digital Signature ............................................ 12

2.6.1. Pembentukan Kunci dan Enkripsi-Dekripsi RSA .................................. 13

2.6.2. RSA Digital Signature ........................................................................... 14

2.6.3. Proses RSA Digital Signature ............................................................... 16

2.7. Fungsi Hash ................................................................................................... 17

2.8. SHA-3............................................................................................................ 18

2.8.1. State .......................................................................................................... 19

2.8.2. Spons ........................................................................................................ 19

2.8.3. Fungsi Permutasi Keccak-f ....................................................................... 21

2.9. Penelitian yang Relevan .................................................................................. 25

BAB 3 .......................................................................................................................... 27

ANALISIS DAN PERANCANGAN .......................................................................... 27

3.1. Analisis Sistem .............................................................................................. 27

3.1.1. Analisis Masalah ....................................................................................... 27

3.1.2. Analisis Kebutuhan ................................................................................... 28

3.2. Pemodelan Sistem ......................................................................................... 29

3.2.1. Use Case Diagram ................................................................................. 29

3.2.2. Activity Diagram .................................................................................... 30

3.2.3. Sequence Diagram ................................................................................. 34

3.3. Flowchart ....................................................................................................... 36

3.3.1. Flowchart Bilangan Prima ..................................................................... 36

Universitas Sumatera Utara


Universitas Sumatera Utara
x

3.3.2. Flowchart Pembangkit Kunci RSA ....................................................... 39

3.3.3. Flowchart sistem .................................................................................... 40

3.4. Perancangan Interface ................................................................................... 42

3.4.1. Halaman Login ....................................................................................... 43

3.4.2. Halaman Registrasi ................................................................................ 44

3.4.3. Halaman utama home ............................................................................. 45

3.4.4. Halaman signature ................................................................................. 46

3.4.5. Halaman verification .............................................................................. 49

BAB 4 .......................................................................................................................... 52

IMPLEMENTASI DAN PENGUJIAN ....................................................................... 52

4.1. Implementasi sistem ...................................................................................... 52

4.1.1. Halaman Registrasi ..................................................................................... 52

4.1.2. Halaman Login............................................................................................ 53

4.1.3. Halaman Utama .......................................................................................... 53

4.1.4. Halaman Signature ..................................................................................... 54

4.1.5. Halaman Verification .................................................................................. 56

4.2. Pengujian sistem ............................................................................................ 57

4.2.1. Pengujian pembuatan kunci, signature, dan verifikasi ............................... 57

4.2.2. Pengujian dan analisis tujuan Digital Signature ......................................... 69

4.2.3. Pengujian waktu proses pada beberapa file PDF di berbagai web browser 74

BAB 5 .......................................................................................................................... 80

KESIMPULAN DAN SARAN.................................................................................... 80

5.1. Kesimpulan.................................................................................................... 80

5.2. Saran .............................................................................................................. 81

DAFTAR PUSTAKA .................................................................................................. 82

Universitas Sumatera Utara


Universitas Sumatera Utara
xi

DAFTAR TABEL

Halaman

Tabel 2. 1. Perbandingan RSA Digital Signature dan RSA untuk Enkripsi ............... 14
Tabel 2. 2. Perulangan d*5 mod 624 = 1 .................................................................... 15
Tabel 2. 3. Perhitungan b = 25 x 2^l dengan 0 ≤ l ≤ 6 ................................................ 21
Tabel 2. 4. Perhitungan Round Nr............................................................................... 21

Tabel 3. 1. Keterangan gambar halaman login (Gambar 3.13) ................................... 43


Tabel 3. 2. Keterangan halaman registrasi (Gambar 3.14) .......................................... 44
Tabel 3.3. Keterangan halaman utama home (Gambar 3.15) ...................................... 45
Tabel 3.4. Keterangan halaman signature (Gambar 3.16) ........................................... 46
Tabel 3.5. Keterangan halaman pop-up untuk membuat tanda tangan dan kirim
(Gambar 3.17) .............................................................................................................. 47
Tabel 3. 6. Keterangan halaman untuk membaca rincian signature (Gambar 3.18) ... 48
Tabel 3.7. Keterangan halaman verification (Gambar 3.19) ....................................... 49
Tabel 3.8. Keterangan halaman pop-up untuk verifikasi manual (Gambar 3.20) ....... 50
Tabel 3.9. Keterangan halaman untuk membaca rincian verifikasi (Gambar 3.21) .... 51

Tabel 4. 1. Perulangan untuk mendapatkan e .............................................................. 59


Tabel 4. 2. Perulangan untuk mendapatkan d ............................................................. 59
Tabel 4. 3. Hasil pengujian file4.pdf ........................................................................... 72
Tabel 4. 4. Perbandingan waktu proses beberapa file pdf (detik) ............................... 75
Tabel 4. 5. Rata-rata waktu proses signature dan verifikasi ketiga web browser tiap 6
file PDF (detik) ............................................................................................................ 78

Universitas Sumatera Utara


Universitas Sumatera Utara
xii

DAFTAR GAMBAR

Halaman

Gambar 2. 1. Proses Enkripsi Dekripsi Kunci Simetris ............................................... 9


Gambar 2. 2. Proses Enkripsi Dekripsi Kunci Asimetris ........................................... 10
Gambar 2. 3. Proses Tanda Tangan RSA Digital Signature ...................................... 16
Gambar 2. 4. Proses Verifikasi RSA Digital Signature ............................................. 17
Gambar 2. 5. Elemen-element State ........................................................................... 19
Gambar 2. 6. Konstruksi Spons .................................................................................. 20
Gambar 2. 7. Operasi Diffusion ................................................................................. 23
Gambar 2. 8. Operasi Inter-slice dispersion ............................................................... 24
Gambar 2. 9. Operasi Disturbing horizontal/vertical alignment ................................ 24
Gambar 2. 10. Operasi Non-linearity ......................................................................... 25

Gambar 3. 1. Diagram Ishikawa ................................................................................. 28


Gambar 3. 2. Use Case Diagram ................................................................................ 30
Gambar 3. 3. Activity Diagram registrasi .................................................................. 31
Gambar 3. 4. Activity Diagram login ......................................................................... 31
Gambar 3.5. Activity Diagram Tanda Tangan pdf ..................................................... 32
Gambar 3. 6. Activity Diagram Verifikasi ................................................................. 34
Gambar 3. 7. Sequence Diagram Pengirim ................................................................ 35
Gambar 3. 8. Sequence Diagram Penerima ................................................................ 36
Gambar 3. 9. Flowchart bilangan prima ..................................................................... 37
Gambar 3. 10. Flowchart pembangkit kunci algoritma RSA ..................................... 40
Gambar 3. 11. Flowchart Sistem RSA Digital Signature (Proses Signature) ............ 41
Gambar 3. 12. Flowchart Sistem RSA Digital Signature (Proses Verifikasi) ............ 42
Gambar 3. 13. Halaman Login ................................................................................... 43
Gambar 3. 14. Halaman registrasi .............................................................................. 44
Gambar 3. 15. Halaman Utama Home ....................................................................... 45
Gambar 3. 16. Halaman Signature ............................................................................. 46
Gambar 3. 17. Halaman pop-up untuk membuat tanda tangan dan kirim .................. 47

Universitas Sumatera Utara


Universitas Sumatera Utara
xiii

Gambar 3. 18. Halaman untuk membaca detail tanda tangan PDF ............................ 48
Gambar 3. 19. Halaman verification .......................................................................... 49
Gambar 3. 20. Halaman pop-up untuk verifikasi pdf secara manual ......................... 50
Gambar 3. 21. Halaman untuk membaca detail verifikasi PDF ................................. 51

Gambar 4. 1. Tampilan halaman registrasi ................................................................. 53


Gambar 4. 2. Tampilan halaman login ....................................................................... 53
Gambar 4. 3. Tampilan halaman Home...................................................................... 54
Gambar 4. 4. Tampilan halaman Signature ................................................................ 54
Gambar 4. 5. Halaman pop-up untuk mengupload dan mengirim PDF ..................... 55
Gambar 4. 6. Tampilan halaman rincian tanda tangan pada PDF .............................. 55
Gambar 4. 7. Tampilan halaman Verifikasi ............................................................... 56
Gambar 4. 8. Halaman pop-up untuk verifikasi PDF secara manual ......................... 56
Gambar 4. 9. Tampilan rincian verifikasi pada PDF .................................................. 57
Gambar 4. 10. Inputan signature ................................................................................ 58
Gambar 4. 11. Pengujian Signature dan verifikasi dalam bentuk raw ....................... 61
Gambar 4. 12. Pengujian source code signature dalam bentuk raw ........................... 63
Gambar 4. 13. Tampilan rincian tanda tangan pada file4.pdf .................................... 64
Gambar 4. 14. Halaman verification sebelum diverifikasi ......................................... 65
Gambar 4. 15. Halaman rincian file4.pdf sebelum diverifikasi ................................. 65
Gambar 4. 16. Halaman rincian verifikasi file4.pdf setelah diverifikasi.................... 69
Gambar 4. 17. Inputan verifikasi ................................................................................ 70
Gambar 4. 18. Tampilan halaman verification setelah pdf diverifikasi ..................... 70
Gambar 4. 19. Tampilan halaman rincian file pdf setelah diverifikasi ...................... 71
Gambar 4. 20. Perbandingan file pdf asli (kiri) dengan modifikasi berupa coretan
(kanan) ......................................................................................................................... 71
Gambar 4. 21. Tampilan inbox jika tidak valid (atas) dan rincian verifikasi (bawah)72
Gambar 4. 22. Skema pengujian beberapa file pdf .................................................... 75

Universitas Sumatera Utara


Universitas Sumatera Utara
xiv

DAFTAR GRAFIK

Halaman

Grafik 4. 1. Perbandingan Waktu Proses Signature.................................................... 77


Grafik 4. 2. Perbandingan Waktu Proses Verifikasi ................................................... 77
Grafik 4. 3. Perbandingan waktu proses signature dan verifikasi .............................. 79

Universitas Sumatera Utara


Universitas Sumatera Utara
xv

DAFTAR LAMPIRAN

Halaman

Lampiran 1 LISTING PROGRAM ............................................................................ A-1


Lampiran 2 CURRICULUM VITAE ........................................................................ B-1

Universitas Sumatera Utara


Universitas Sumatera Utara
BAB 1

PENDAHULUAN

1.1. Latar Belakang

Tanda tangan biasanya digunakan pada dokumen sebagai bukti tertulis bahwa dokumen
tersebut telah disahkan oleh orang yang bersangkutan. Tanda tangan juga membuktikan
apakah dokumen tersebut asli dari pemilik tanda tangan jika dokumen diserahkan ke
pihak lain. Dokumen bisa berupa cetakan fisik maupun secara digital. Namun, pada
cetakan digital diperlukan sebuah pengamanan dikarenakan dokumen dapat diubah
dengan mudah oleh siapapun melalui jaringan tanpa pembuktian dari pemilik tanda
tangan meskipun sudah ditandatangani dengan cara dipindai atau di foto.

Sebagai contoh permasalahan yaitu tentang RUU Cipta Kerja atau omnibus law
yang disahkan menjadi UU oleh Badan Legislasi DPR terus berubah isinya selama 3
pekan sejak 5 Oktober 2020 sebelum disahkan oleh presiden. Alasan terjadi perubahan
isi UU adalah isi UU mengalami tipo atau perbedaan format kertas yang mengakibatkan
jumlah halaman berbeda, namun terdapat pasal yang mengalami perubahan ketika
Menteri Sekretaris Negara (Mensetneg) menyerahkan draf UU ke MUI dan
Muhammadiyah diantaranya yaitu menghapus Pasal 40 angka 7 di dokumen RUU versi
812 halaman dan perubahan tersebut adalah kesepakatan sebelumnya antara pemerintah
dan DPR (Kompas.com, 2020). Hal tersebut menimbulkan kekeliruan apakah dokumen
yang diserahkan oleh Menteri Sekretaris Negara adalah dokumen asli dari DPR atau
tidak.

Salah satu cara untuk mengatasi permasalahan tersebut yaitu menggunakan tanda
tangan digital atau disebut Digital Signature. Digital Signature adalah sebuah skema
keamanan yang memastikan dokumen tersebut asli dengan memecah dokumen menjadi

Universitas Sumatera Utara


Universitas Sumatera Utara
2

bit hash, menggunakan kunci rahasia sebagai enkripsi untuk membuat otentikasi, lalu
otentikasi menjadi tanda tangan (Stallings, 2011). Tujuan dari Digital Signature adalah
memberikan jaminan bahwa dokumen dimiliki oleh penandatangan, dan penandatangan
tidak bisa membantah kepemilikannya terhadap dokumen tersebut. Untuk menangani
masalah isi dokumen yang berubah, Digital Signature menggunakan Fungsi hash
berupa Message Digest untuk menjamin isi dokumen tidak mengalami perubahan. Jika
dikaitkan dengan permasalahan diatas, Digital Signature dapat membuktikan dokumen
yang dikirimkan dari Mensetneg ke MUI dan Muhammadiyah adalah dokumen
terontetikasi asli dari DPR melalui tanda tangan digital dengan cara menverifikasinya.

Digital signature membutuhkan skema algoritma kunci rahasia untuk membuat


tanda tangan dan kunci publik pada verifikasi. Salah satu skema tersebut adalah
algoritma RSA (Rivest-Shamir-Adleman). Alhasil, kedua skema tersebut membentuk
RSA Digital Signature. Berbeda dengan RSA Enkripsi seperti pada umumnya enkripsi
Kunci Publik, RSA menggunakan kunci publik untuk mengenkripsi dan menggunakan
kunci rahasia untuk mendekripsi data. Sedangkan RSA Digital Signature sebaliknya
menggunakan kunci rahasia untuk ‘menandatangani’ data dan menggunakan kunci
publik untuk memverifikasi data. RSA Digital Signature juga memerlukan hash atau
Message Digest, hash digunakan untuk efisiensi pada bit, mencegah modifikasi
dokumen, dan mencegah pemalsuan dokumen (Martin, 2013).

Selain RSA, terdapat algoritma kunci publik lain yang bisa digunakan pada
Digital Signature seperti algoritma Ellipctic Curve El-Gamal. Berdasarkan penelitian
dari Adekunle Micheal Adeshina, meskipun algoritma RSA lebih lambat dibandingkan
Elliptic Curve El-Gamal dalam hal pembuatan kunci, tetapi algoritma RSA mempunyai
waktu yang lebih cepat dibandingkan Elliptic Curve El-Gamal dalam hal membuat
tanda tangan dan memverifikasi. Selain itu, algoritma RSA Digital Signature lebih
cocok digunakan pada file berukuran besar (Adeshina, 2020). Hal ini membuat penulis
memilih menggunakan RSA Digital Signature untuk mengamankan file dari berukuran
kecil hingga file berukuran besar seperti file UU Cipta Kerja dengan jumlah halaman
mencapai kurang lebih 1000 halaman.

Sedangkan pada fungsi hash, terdapat beberapa jenis fungsi hash yaitu MD5,
SHA-1, SHA-2, SHA-3, Whirlpool, dan sebagainya. Perbandingan yang dilakukan oleh

Universitas Sumatera Utara


Universitas Sumatera Utara
3

(Pittalia, 2019) pada fungsi hash tersebut dalam bentuk tabel perbandingan bahwa SHA-
3 yang merupakan secure hash algorithm terbaru untuk menggantikan SHA-2
mempunyai ukuran blok terbesar diantara MD5, SHA-1, SHA-2, dan Whirlpool, yaitu
sebesar 1600-2*bits. Oleh karena itu, penulis memilih SHA-3 sebagai integritas
dokumen ketika membuat tanda tangan.

Berdasarkan latar belakang diatas, penulis akan merancang sebuah sistem


berbasis web untuk membuat RSA Digital Signature berdasarkan tujuannya yaitu
otentikasi dan anti penyangkalan. Untuk menjaga integritas isi dokumen, penulis akan
menggunakan Message Digest dari fungsi hash SHA-3. Alasan penulis merancang
sistem berbasis web menggunakan bahasa pemrograman PHP agar sistem dapat
dijalankan pada perangkat komputer maupun smartphone.

1.2. Rumusan Masalah

Rumusan masalah yang akan dibahas adalah bagaimana mengimplementasikan website


untuk menjamin pengamanan pada keaslian file PDF dari segi otentikasi, anti
penyangkalan, dan integritas pada file PDF menggunakan algoritma RSA Digital
Signature dan fungsi hash SHA-3.

1.3. Batasan Masalah

Batasan masalah penelitian ini adalah sebagai berikut:


1. File yang diamankan adalah file dokumen berformat PDF.
2. Algoritma RSA dibangkitkan untuk membuat kunci rahasia dan kunci publik.
3. Fungsi hash yang digunakan adalah SHA-3 dengan panjang output 256 bit.
4. Website yang dibangun menggunakan HTML dan CSS untuk tampilan,
pengambilan bilangan prima menggunakan bahasa pemrograman Javascript, proses
RSA Digital Signature menggunakan bahasa pemrograman PHP, dan database
menggunakan MySql.

Universitas Sumatera Utara


Universitas Sumatera Utara
4

1.4. Tujuan Penelitian

Mengetahui cara mengimplementasikan RSA Digital Signature dan fungsi hash SHA-
3 pada website untuk menjamin pengamanan pada keaslian file PDF dari segi otentikasi,
anti penyangkalan, dan integritas file.

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah:

1. Menghasilkan sistem berbasis web untuk mengamankan dokumen PDF


menggunakan algoritma RSA Digital Signature dan fungsi hash SHA-3 untuk
menjamin pengamanan pada keaslian file dari segi otentikasi, anti penyangkalan,
dan integritas pesan.
2. Menambah pengetahuan penulis dalam membuat sistem untuk mengamankan
dokumen PDF dengan menggunakan algoritma RSA Digital Signature untuk
menjamin keaslian dari segi otentikasi dan anti penyangkalan. Serta fungsi hash
SHA-3 untuk integritas pesan.
3. Sebagai bahan referensi bagi peneliti lain yang ingin membahas topik yang
berkaitan dengan penelitian ini.

1.6. Metode Penelitian

Metode Penelitian yang digunakan penulis dalam penelitian ini adalah:

1. Studi Pustaka
Pada tahap ini dilakukan pencarian referensi sebagai pendukung penelitian yang
berhubungan dengan RSA, Digital Signature dan SHA-3 berupa jurnal, buku,
artikel ilmiah, situs internet, maupun makalah.
2. Analisis dan Perancangan
Pada tahap ini dilakukan analisis terhadap keperluan sistem penelitian dalam
rancangan diagram alir (flowchart), Use case diagram, Activity diagram, Sequence
diagram, dan diagram Ishikawa.
3. Implementasi

Universitas Sumatera Utara


Universitas Sumatera Utara
5

Pada tahap ini akan dilakukan pembuatan sistem berbasis web menggunakan
markup HTML, CSS, dan bootstrap untuk tampilan website. Bahasa pemrograman
Javasript untuk membuat bilangan prima. Bahasa pemrograman PHP untuk proses
RSA Digital Signature. Dan database menggunakan MySql.
4. Pengujian
Sistem yang dibangun akan dilakukan pengujian apakah sistem berjalan dengan
baik, pengujian berdasarkan contoh permasalahan, dan waktu sistem memproses
file PDF.
5. Dokumentasi
Pada tahap ini dilakukan pembuatan laporan dari hasil analisa dan perancangan
sistem dalam format penulisan berbentuk skripsi.

1.7. Sistematika Penulisan

BAB 1: PENDAHULUAN

Bab ini membahas tentang latar belakang masalah, rumusan masalah, batasan masalah,
tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan yang
akan digunakan.

BAB 2: LANDASAN TEORI

Bab ini membahas landasan teori mengenai kriptografi, website dan keamanan web,
modulo, tanda tangan, Digital Signature, algoritma RSA Kunci Publik dan RSA Digital
Signature, Fungsi Hash, dan SHA-3.

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini membahas tentang analisi kebutuhan dan perancangan sistem yang akan
dibangun berdasarkan dengan rumusan masalah dan batasan masalah dalam penelitian
ini

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Universitas Sumatera Utara


Universitas Sumatera Utara
6

Bab ini membahas tentang implementasi sistem RSA Digital Signature dan Fungsi
Hash SHA-3 berbasis web menggunakan Bahasa pemrograman PHP berdasarkan
analisis dan perancangan sistem kemudian dilakukan pengujian sistem.

BAB 5: KESIMPULAN DAN SARAN

Bab ini membahas kesimpulan dari hasil penelitian yang dilakukan beserta saran untuk
pengembangan penelitian selanjutnya.

Universitas Sumatera Utara


Universitas Sumatera Utara
BAB 2

LANDASAN TEORI

2.1. Website

Website adalah kumpulan halaman informasi yang dapat diakses di seluruh dunia
melalui jaringan internet dimanapun dan kapanpun melalui smartphone maupun
komputer. Informasi yang dapat dimasukkan ke website berupa teks, gambar, video,
suara, maupun media lainnya. Website dapat dimiliki oleh individu, organisasi, atau
perusahaan untuk menyimpan suatu informasi yang ingin disampaikan secara umum.
Selain menyediakan informasi, website juga digunakan sebagai penghubung antar
pengguna untuk saling berkomunikasi, misalnya penggunaan social media seperti
facebook, Instagram, twitter, whatsapp, dan sebagainya. Untuk menggunakan website,
pengguna memerlukan web browser yang tersedia di smartphone maupun komputer.

Pembangunan website mempunyai 2 bagian, yaitu front-end dan back-end. Front-


end adalah bagian pembangunan website untuk menampilkan interface agar pengguna
dapat menggunakan website dengan mudah. Front-end dibangun menggunakan HTML
(Hyper Text Markup Language) sebagai struktur website, CSS (Cascading Style Sheets)
untuk mempercantik tampilan website, dan bahasa pemrograman Javascript agar
tampilan website menjadi interaktif. Sedangkan back-end adalah bagian pembangunan
website yang mengatur sisi server agar tampilan website dapat bekerja dibelakang
tampilan. Back-end menggunakan Bahasa pemrograman node js, PHP (Hypertext
Preprocessor), python, atau sejenisnya. Selain itu, back-end juga menggunakan
database untuk menyimpan data yang dimasukan oleh pengguna.

Sisi server bertanggung jawab mengatur masukan, bacaan, edit, dan penghapusan
data di database, login, serta mengatur keamanan website. Keamanan sangat diperlukan

Universitas Sumatera Utara


Universitas Sumatera Utara
8

karena data yang dimasukkan melalui website bisa saja berupa data sensitif seperti
nomor kartu kredit, nomor induk penduduk, dokumen rahasia, dan sebagainya. Jika data
tersebut diambil atau diubah oleh pihak ketiga, data dapat disalahgunakan untuk
kepentingan pihak ketiga dan akan merugikan pengguna. Untuk mengatasinya, Bahasa
pemrograman untuk back-end dapat meminimalisir kebocoran informasi dari celah-
celah yang ada dengan menggunakan teknik kriptografi (Wadisman, Nozomi, &
Rahmawati, 2021).

2.2. Kriptografi
Kriptografi adalah istilah untuk teknik matematika yang menyediakan layanan
keamanan dengan menggunakan desain dan analisis (Martin, 2013). Kriptografi sudah
digunakan selama ribuan tahun yang lalu untuk mengamankan komunikasi dua arah.
Dimana pengirim dan penerima memiliki kunci masing-masing. Pengirim akan
mengirim pesan ke penerima dan kunci digunakan untuk mengubah pesan yang
berbentuk plaintext menjadi pesan teracak yang tidak dapat diketahui isi pesan pengirim
dan penerima oleh pihak lain yang disebut ciphertext. Proses tersebut disebut proses
enkripsi. Ketika penerima menerima pesan dari pengirim, penerima akan menggunakan
kuncinya untuk mengubah ciphertext kembali menjadi plaintext yang bisa dibaca.
Proses tersebut disebut sebagai proses dekripsi (Stinson & Paterson, 2018).

2.2.1. Jenis Kriptografi

1. Kunci Simetris
Kunci simetris adalah model klasik dari kriptografi yang menggunakan kunci
rahasia (private key) sebagai enkripsi pesan dan dekripsi pesan. Namun, jika
salah satu kunci enkripsi maupun dekripsi diketahui oleh pihak lain, hal ini
membuat kriptografi kunci simetris tidak aman digunakan untuk pertukaran
pesan (Stinson & Paterson, 2018).

Kunci simetris mempunyai ciri-ciri sebagai berikut (Stallings, 2011):


● Plaintext: pesan yang dapat dibaca sebagai input.
● Algoritma enkripsi: algoritma yang berperan dalam membuat kunci.
● Private key (Kunci Rahasia): kunci yang dibuat oleh algoritma kriptografi.

Universitas Sumatera Utara


Universitas Sumatera Utara
9

● Ciphertext: pesan yang diacak tergantung isi plaintext dan private key.

● Algoritma dekripsi: bekerja seperti algoritma enkripsi. Proses dekripsi


berjalan terbalik dari algoritma enkripsi.

Gambar 2. 1. Proses Enkripsi Dekripsi Kunci Simetris


2. Kunci Asimetris
Kunci asimetris atau disebut sebagai Kriptografi kunci publik datang untuk
mengatasi masalah keamanan pada kunci simetris. Kriptografi kunci publik
mempunyai kunci publik yang diketahui oleh semua pihak. Keuntungannya
adalah pengirim dapat mengirim pesan tanpa membuat private key dengan
penerima karena pengirim menggunakan enkripsi kunci publik untuk
mengamankan pesan. Hanya penerima yang bisa mendekripsikan pesan dari
pengirim menggunakan kunci rahasia milik penerima (Stinson & Paterson,
2018).

Kunci asimetris mempunyai ciri-ciri sebagai berikut (Stallings, 2011):


● Plaintext: pesan yang dapat dibaca sebagai input
● Algoritma Enkripsi: algoritma yang berperan dalam membuat kunci
publik
● Public Key (Kunci publik) dan Private key (Kunci Rahasia): keduanya
dibuat oleh algoritma kriptografi. Public key digunakan untuk
mengenkripsi pesan. Sedangkan private key digunakan untuk mendekripsi
pesan.
● Ciphertext: pesan yang diacak tergantung isi plaintext dan private key
● Algoritma dekripsi: algoritma menerima ciphertext, mencocokkan nilai
kunci, dan mengubah ciphertext menjadi plaintext.

Universitas Sumatera Utara


Universitas Sumatera Utara
10

Gambar 2. 2. Proses Enkripsi Dekripsi Kunci Asimetris

2.3. Modulo

Modulo atau modulus adalah salah satu bagian perhitungan untuk mendapatkan sisa
hasil bagi. Misal, sisa hasil bagi dari 100 dibagi 9 adalah 1. Sehingga ditulis 100 mod 9
= 1. Dalam pemrograman, modulo dijadikan salah satu operator dengan nama operator
mod.

2.3.1. Kongruensi Modulo

Misal, terdapat bilangan bulat a dan b, a dikatakan kongruen dengan b modulo m jika
dan hanya jika a mod m & b mod m. Ditulis dengan a ≡ b (mod m).

Contoh:

34 ≡ 4 (mod 6), artinya 34 dan 4 dibagi 6 bersisa sama.

7 ≡ -8 (mod 5), artinya 7 dan -8 dibagi 5 bersisa sama.

Kongruensi modulo mempunyai sifat distributif, yaitu:

• (a ± b)(mod n) ≡ ((a mod n) ± (b mod n)) (mod n)


• (ab)(mod n) ≡ (a (mod n) * b (mod n))(mod n)
• ab (mod n) ≡ ((a(mod n))b )(mod n), untuk b bilangan bulat non negatif.

Universitas Sumatera Utara


Universitas Sumatera Utara
11

2.4. Tanda Tangan

Tanda tangan mempunyai karakteristik sebagai bukti yang otentik, tidak dapat
dilupakan maupun dipindah untuk digunakan ulang, dokumen yang diberi tanda tangan
tidak dapat diubah dan anti penyangkalan (Malik Hakim & Afifah S, 2020). Tanda
tangan bisa berupa tulis tangan pada dokumen fisik atau berupa gambar tanda tangan
yang dicetak untuk dokumen elektronik yang disebut sebagai Digitize Signature. Tanda
tangan yang membutuhkan pengamanan berupa bit hash dan algoritma kunci publik
pada dokumen elektronik disebut sebagai Digital Signature.

2.5. Digital Signature


Digital Signature adalah sebuah skema yang memastikan dokumen tersebut asli dengan
memecah dokumen menjadi bit hash, menggunakan kunci rahasia sebagai enkripsi
untuk membuat otentikasi, lalu otentikasi menjadi tanda tangan (Stallings, 2011).
Tujuan dari Digital Signature adalah memberikan jaminan keaslian bahwa dokumen
dimiliki oleh penandatangan, dan penandatangan tidak bisa membantah
kepemilikannya terhadap dokumen tersebut. Untuk menangani masalah isi dokumen
yang berubah, Digital Signature dapat menggunakan Fungsi Hash berupa Message
Digest untuk menjamin isi dokumen tidak mengalami perubahan.

Fungsi dari Digital Signature sebagai berikut (Nurhaida, Ramayanti, & Riesaputra,
2017):

1. Integritas
Integritas dapat mendeteksi perubahan data oleh pihak lain yang tidak ada
keterlibatannya terhadap dua pihak yang sedang berinteraksi, seperti penyisipan,
penghapusan, dan mengedit data.
2. Otentikasi
Interaksi antar dua pihak harus saling bertukar informasi data, waktu pengiriman,
dan sebagainya.
3. Anti penyangkalan
Upaya untuk mencegah penolakan transmisi informasi oleh pengirim.

Manfaat Digital Signature sebagai berikut (Pooja & Yadav, 2018):

Universitas Sumatera Utara


Universitas Sumatera Utara
12

● Menghindari penipuan karena Digital Signature tidak dapat diubah


● Digital Signature Menunjukkan bahwa dokumen asli
● Tidak mengalami kehilangan data
● Hanya memerlukan sedikit pengetahuan mengenai mengoperasikan sistem
● Tidak memerlukan hardware tertentu
● Merekam kehadiran
● Jika Digital Signature berubah dan di dekripsi dengan kunci publik, maka nilai
hash akan berbeda dengan nilai hash yang asli
● Jika pesan berubah setelah proses penandatanganan, nilai hash yang diperoleh dari
pesan yang diubah akan berbeda dengan nilai hash sebelum pesan
penandatanganan.
● Jika kunci publik tidak cocok dengan kunci rahasia yang digunakan untuk
penandatanganan, nilai hash asli yang diperoleh dengan mendekripsi tanda tangan
dengan kunci yang salah tidak akan salah.
● Digital Signature memenuhi beberapa persyaratan hukum untuk dokumen.
● Digital Signature sebagai cap dalam transaksi bisnis
● Transaksi menjadi cepat dan akurat
● Digital Signature adalah tanda tangan yang terkomputerisasi yang memverifikasi
bahwa data dikirim oleh seseorang atau kelompok tertentu, atau orang yang
bersangkutan benar-benar menandatangani dokumen.

2.6. RSA Kunci Publik dan RSA Digital Signature

Algoritma RSA (Rivest-Shamir-Adleman) ditemukan oleh Ron Rivest, Adi Shamir, dan
Len Adleman pada tahun 1977 dan dipublikasikan pada tahun 1978. RSA menjadi
algoritma yang sering diterapkan untuk enkripsi kunci publik (Stallings, 2011).

Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan


menjadi faktor-faktor prima untuk memperoleh kunci rahasia (Pranata & Iryanto, 2019).
Algoritma RSA dapat digunakan sebagai enkripsi pesan atau sebagai Digital Signature.

Universitas Sumatera Utara


Universitas Sumatera Utara
13

2.6.1. Pembentukan Kunci dan Enkripsi-Dekripsi RSA


Proses algoritma RSA dimulai dengan proses pembuatan kunci publik dan kunci
rahasia, kemudian terjadi proses enkripsi dan dekripsi untuk pengamanan data. Untuk
proses pembuatan kunci publik dan kunci rahasia dapat dilihat sebagai berikut
(Stallings, 2011):

1. Buat bilangan prima p dan q dengan p ≠ q.


2. Tambahkan n dari hasil p*q
3. Hitung Φ(n) = (p-1)(q-1).
4. Dapatkan nilai e dari gcd(Φ(n),e) = 1, dengan 1 < e < Φ(n).
5. Dapatkan nilai d dari de mod Φ(n) = 1
6. Kunci publik yang didapat adalah [e,n]. Sedangkan kunci rahasia adalah [d]
7. Sedangkan untuk nilai plaintext (m) adalah m < n

Pada dasarnya, RSA tidak langsung mengoperasikan string, melainkan


direpresentasikan sebagai angka yang kurang dari n (Martin, 2013). Proses enkripsi
dirumuskan sebagai berikut:

C = me mod n

Keterangan:

C = nilai ciphertext

m = nilai plaintext

e = kunci publik eksponen

n = kunci publik modulus

Setelah nilai plaintext menjadi ciphertext, proses akan berlanjut ke dekripsi. Proses
dekripsi dirumuskan sebagai berikut:

m = Cd mod n

Keterangan:

Universitas Sumatera Utara


Universitas Sumatera Utara
14

d = kunci rahasia

Setelah didekripsi, algoritma RSA membandingkan nilai m (plaintext) dari hasil


dekripsi dengan m (plaintext) yang dibuat pengirim. Jika hasil perbandingan adalah
sama, maka pesan akan diterima.

2.6.2. RSA Digital Signature


RSA Digital Signature adalah Skema Tanda Tangan digital dengan menggunakan
algoritma kriptografi RSA untuk membuat Kunci publik dan Kunci rahasia.

Perbedaan skema penggunaan dari RSA Digital Signature dengan RSA untuk enkripsi
dapat dilihat seperti pada Tabel 2.1 (Martin, 2013):

Tabel 2. 1. Perbandingan RSA Digital Signature dan RSA untuk Enkripsi

RSA Digital Signature RSA untuk enkripsi (RSA


enkripsi kunci publik)

Hanya pemegang kunci rahasia Siapapun dapat mengenkripsi


yang dapat menandatangani data data

Siapapun dapat memverifikasi Hanya pemegang kunci rahasia


validitas tanda tangan digital yang dapat mendekripsi data

Jika proses enkripsi–dekripsi RSA mengikuti karakteristik dari skema RSA Digital
Signature seperti yang dijelaskan pada Tabel 2.1, maka algoritma RSA akan
menggunakan kunci rahasia pada proses enkripsi yang dirumuskan sebagai berikut:

C = md mod n

Sedangkan proses dekripsi menggunakan kunci publik yang dirumuskan sebagai


berikut:

m = Ce mod n

Berikut adalah contoh Algoritma RSA jika mengikuti karakteristik dari skema RSA
Digital Signature.
1. Bilangan prima p = 13 dan q = 53.
2. n = 13 * 53 = 689.

Universitas Sumatera Utara


Universitas Sumatera Utara
15

3. Φ(n) = (13-1)(53-1) = 12*52 = 624.


4. Bilangan e adalah 5, karena dengan algoritma euclidean, didapat 624 mod 5 = 1.
5. Pencarian d dilakukan dengan menggunakan perulangan sampai de mod Φ(n) = 1.

Algoritma:

For d = 2 to Φ(n) do

If d*e mod Φ(n) = 1

return d

endif

endfor

Tabel 2. 2. Perulangan d*5 mod 624 = 1

d d*5 mod 624

2 10

3 15

4 20

...

...

125 1

Jadi, nilai d adalah 125

6. Kunci publik adalah [5, 689] dan kunci rahasia adalah [125].

Proses Enkripsi

Misal, pengirim mengirimkan pesan dengan nilai plaintext adalah 600 dan
menggunakan kunci rahasia untuk proses enkripsi.
● C = 600125 mod 689

Universitas Sumatera Utara


Universitas Sumatera Utara
16

● C = 110

Proses Dekripsi

Penerima menggunakan kunci publik untuk mendekripsikan pesan.

● m = 1105 mod 689


● m = 600

Pesan diterima, karena nilai m yang didapatkan oleh penerima sama dengan nilai
plaintext pengirim.

2.6.3. Proses RSA Digital Signature


Proses pembuatan Tanda Tangan dan verifikasi ditunjukkan pada Gambar 2.3 dan
Gambar 2.4 (Martin, 2013) :

Gambar 2. 3. Proses Tanda Tangan RSA Digital Signature


1. Hash data yang ingin ditandatangani.
2. Penandatangan mengenkripsi hash dengan menggunakan kunci rahasia (signature
key) milik penandatangan dari algoritma RSA. Hash yang sudah ditandatangani
adalah Digital Signature.
3. Penandatangan mengirim pesan dan Digital Signature. Pesan dan Digital
Signature tidak harus dikirim bersama, tapi penerima membutuhkan keduanya
untuk memverifikasi Digital Signature penerima.

Universitas Sumatera Utara


Universitas Sumatera Utara
17

Gambar 2. 4. Proses Verifikasi RSA Digital Signature


Penerima menerima pesan dan signature dengan cara mengubah pesan menjadi nilai
hash dan signature diverifikasi menggunakan kunci publik dari algoritma RSA. Hasil
dari dekripsi biasanya berupa nilai hash. Lalu penerima membandingkan nilai hash dari
pesan dan nilai hash verifikasi. Jika nilai kedua hash sama, Digital Signature valid dari
pengirim. Jika kedua nilai hash berbeda, Digital Signature tidak valid oleh penerima.

2.7. Fungsi Hash

Fungsi hash adalah salah satu algoritma kriptografi untuk menjamin integritas pada
sebuah data dengan membangun sebuah string yang menjadi identitas data. Jika data
diubah, maka identitas data tidak valid. Bahkan jika data dikirimkan ke jaringan yang
tidak aman, integritas data bisa diperiksa dengan menghitung ulang identitas dan
memverifikasi bahwa identitas tidak berubah (Stinson & Paterson, 2018). Inputan dari
fungsi hash adalah data string dengan panjang tertentu, dan keluarannya berupa string
acak dengan ukuran tetap atau disebut sebagai Message Digest. Inti dari fungsi hash
adalah sebagai tanda tangan untuk data yang digunakan untuk membuat tanda tangan
digital atau Digital Signature (Soleh, 2011).
Algoritma fungsi hash yang digunakan saat ini adalah MD5 dan variasi SHA
seperti SHA-1, SHA-2, dan SHA-3. Fungsi hash dapat digabungkan dengan algoritma

Universitas Sumatera Utara


Universitas Sumatera Utara
18

enkripsi untuk mengamankan pesan yang disebut sebagai Message Authentication


Codes. Message Authentication Codes mempunyai standar algoritma yang disebut
HMAC. HMAC menyediakan verifikasi pengirim data ketika penerima ingin menerima
data dari pengirim (Soleh, 2011).

2.8. SHA-3

SHA-3 atau disebut keccak ditemukan oleh Bertoni, Demen, Peeters, dan Van Assche.
SHA-3 menggunakan rancangan yang disebut konstruksi spons. Inputan pesan berupa
M dengan panjang sembarang. Lalu M dilapisi oleh padding sehingga panjang adalah
kelipatan r, kemudian pesan dipecah menjadi beberapa blok dengan panjang r (Stinson
& Paterson, 2018).

Proses SHA-3 dimulai dengan pengisian pada data (padding) dalam bentuk state.
Kemudian dilanjutkan kedalam struktur SHA-3 yang menggunakan konstruksi spons,
dimulai dari data diserap oleh spons (absorbing), blok pesan XOR menjadi bagian dari
state, sepenuhnya diubah menggunakan fungsi permutasi f, dan hasilnya diremas
(squeezing) dimana pada fase ini blok keluaran dibaca dari subset dalam keadaan yang
sama menggunakan fungsi transformasi permutasi f (Sari, 2021). Setiap state memiliki
panjang sesuai dengan panjang permutasi, yaitu b. Algoritma keccak menerima tiga
parameter input, yaitu bit rate (r), capacity (c), dan difersity (d). Secara umum proses
keccak adalah (Soleh, 2011):
1. Input message preprocessing (P), yaitu menerapkan padding ke pesan input.
Panjang pesan input padding harus kelipatan r, di mana r = bit rate.
2. Pecahkan pesan masukan menjadi P0, P1, P2 ... Pi, di mana i = kelipatan panjang
kecepatan bit dari panjang pesan masukan.
3. Absorbing pada semua pecahan input.
4. Squeezing hingga l, di mana l = kelipatan panjang output r / w untuk memenuhi
panjang output yang dibutuhkan, r = laju bit, w = panjang saluran dari status.
5. Keluarannya adalah rangkaian keluaran yang dikompresi dalam kisaran kecepatan
bit tertentu.

Universitas Sumatera Utara


Universitas Sumatera Utara
19

2.8.1. State
Proses yang dilakukan dalam state keccak didasarkan pada setiap potongan state.
Jumlah bit di setiap potongan dalam state tetap, yaitu 5 x 5 atau 25 bit. Ukuran setiap
jalur dalam state adalah 1, 2, 4, 8, 16, 32, atau 64.

Gambar 2. 5. Elemen-element State


2.8.2. Spons

Konstruksi spons adalah konstruksi berulang sederhana yang digunakan untuk


membangun fungsi spons dengan panjang input dan panjang output variabel, yang
didasarkan pada panjang transformasi tetap f (atau permutasi) yang beroperasi dalam
jumlah b dalam bit.

Universitas Sumatera Utara


Universitas Sumatera Utara
20

Gambar 2. 6. Konstruksi Spons


Konstruksi spons terbagi menjadi 2 fase, yaitu (Stinson & Paterson, 2018):

● Fase absorbing (penyerapan)

Harap dicatat bahwa state adalah string bit dengan panjang b, terdiri dari nol. Blok
pertama dari pesan ter padding adalah XOR dengan bit pertama r pada state.
Kemudian terapkan fungsi f untuk memperbarui state. Sisa dari blok padding
pesan akan mengulangi proses ini. Setiap blok di xor-kan dengan bit r pertama
dari state terkini kemudian fungsi f diterapkan untuk memperbarui state.
● Fase squeezing (pemerasan)

Digunakan untuk menghasilkan output message digest dari konstruksi spons.


Misalkan l output bit diinginkan. Ambil r bit pertama terkini yang akan
membentuk blok output. Jika l > r, maka terapkan f ke keadaan terkini yang terdiri
dari r+c bit dan mengambil bit output r pertama sebagai blok output lain. Proses
diulaing sampai memiliki total l bit. Lalu potong rangkaian output menjadi l bit.
Hal ini membentuk message digest.

Fungsi spon keccak menerapkan konstruksi spons dengan terlebih dahulu melakukan
proses inisialisasi. Proses inisialisasi terbagi menjadi 2 tahap, yaitu:

1. Memasangkan setiap bit pada state dengan nol untuk inisial state

Universitas Sumatera Utara


Universitas Sumatera Utara
21

2. Menerapkan padding pada pesan input sehingga pesan input adalah kelipatan dari
panjang bit rate yang ditentukan di awal. Proses ini akan menambahkan sesedikit
mungkin 1 dan 0 hingga panjang pesan mencapai kelipatan dari panjang status bit
rate yang ditentukan.

2.8.3. Fungsi Permutasi Keccak-f

Fungsi permutasi Keccak-f adalah fungsi utama dalam keccak yang mengambil state
sebagai input. Keccak-f[b] atau keccak-f[r+c] merupakan persamaan dari fungsi
keccak-f berdasarkan persamaan b = 25 x 2l dengan 0 ≤ l ≤ 6. Maka kemungkinan nilai
b ditunjukkan pada Tabel 2.3 (Soleh, 2011):

Tabel 2. 3. Perhitungan b = 25 x 2^l dengan 0 ≤ l ≤ 6

l Hasil b

0 25

1 50

2 100

3 200

4 400

5 800

6 1600

Operasi permutasi sering disebut dengan Round Nr. Round ini ada di dalam setiap fungsi
keccak-f. Jumlah round mempunyai persamaan Nr = 12 + 2l. Jumlah round yang
direkomendasikan untuk tiap keccak-f[b] dituliskan pada Tabel 2.4.

Tabel 2. 4. Perhitungan Round Nr

Nr
l

Universitas Sumatera Utara


Universitas Sumatera Utara
22

12
0
14
1
16
2
18
3
20
4
22
5
24
6

Inputan dari fungsi permutasi keccak-f menjalankan 5 operasi yaitu diffusion (theta),
inter-slice dispersion (rho), disturbing horizontal/vertical alignment (phi), non-
linearity (chi), dan break symetri (iota).

1. Diffusion (θ)

Operasi diffusion hanya meng-xor-kan 11 bit menjadi satu. Akibatnya, setiap bit
mempengaruhi sebelas bit lainnya. Selama Proses operasi ini terjadi 50 XOR dan
5 rotasi.

Algoritma operasi Diffusion sebagai berikut:

For x = 0 to 4 do

C[x] = a[x,0]

For y = 0 to 4 do

C[x] = C[x] XOR a[x,y]

End for

Endfor

For x = 0 to 4 do

D[x] = C[x-1] XOR ROT(C[x+1],1)

For y = 0 to 4 do

Universitas Sumatera Utara


Universitas Sumatera Utara
23

A[x,y] = a[x,y] XOR D[x]

End for

Endfor

Gambar 2. 7. Operasi Diffusion


2. Inter-slice dispersion (ρ)

Kegunaan dari operasi ini adalah mempercepat difusi antara slice. Operasi ini
terdiri dari operasi translasi dalam lane yang bersifat linier berupa pergeseran
ulang yang berkebalikan dengan pergeseran sebelumnya.

Algoritma operasi inter-slice dispersion sebagai berikut:

A[0,0] = a[0,0]

[[x,y]] = [[1,0]]

For t = 0 to 23 do

A[x,y] = ROT(a[x,y],(t+1)(t+2)/2)

[[x,y]] = [[0,1],[2,3]]*[[x,y]]

End for

Universitas Sumatera Utara


Universitas Sumatera Utara
24

Gambar 2. 8. Operasi Inter-slice dispersion


3. Disturbing horizontal/vertical alignment (π)
Operasi ini mengalikan setiap bit pada slice dengan matrix [[0,1],[2,3]] yang
bertujuan untuk mendapatkan long-term diffusion.

Gambar 2. 9. Operasi Disturbing horizontal/vertical alignment


4. Non-linearity (χ)

Kegunaan dari operasi non-linearity adalah membuat round keccak menjadi non-
linier.

Algorima operasi Non-linearity sebagai berikut:

For y = 0 to 4 do

For x = 0 to 4 do

A[x,y] = a[x,y] XOR ((NOT a[x+1,y]) AND a[x+2,y])

End for

End for

Universitas Sumatera Utara


Universitas Sumatera Utara
25

Gambar 2. 10. Operasi Non-linearity


5. Break symerti (ι)
Operasi break symetri melibatkan penambahan konstanta round yang dirancang
untuk memutus simetri. Jumlah bit aktif dalam konstanta round adalah l + 1. Saat
l meningkat, konstanta pembulatan meningkatkan lebih banyak asimetri.

2.9. Penelitian yang Relevan

Berikut ini beberapa penelitian yang relevand engan penelitian yang akan dilakukan
penulis adalah sebagai berikut:

1. Berdasarkan penelitian dari (Adeshina, 2020) yang berjudul “Evaluation of


Elliptic curve El-Gamal and RSA Public-Key Cryptosystems for Digital
Signature”, disebutkan bahwa algoritma RSA membutuhkan waktu lebih sedikit
dibandingkan elliptic curve El-Gamal untuk pembangkitan tanda tangan dan
verifikasi. Sedangkan elliptic curve El-Gamal membutuhkan waktu lebih sedikit
dibandingkan RSA untuk pembuatan kunci publik dan kunci pribadi. elliptic curve
El-Gamal lebih baik untuk pembuatan kunci yang lebih cepat dan verifikasi tanda
tangan pada file berukuran kecil, sedangkan algoritma RSA lebih cocok untuk
ukuran file yang lebih besar.
2. Berdasarkan penelitian dari (Malik Hakim & Afifah S, 2020) yang berjudul
“Digital Signature menggunakan Metode MD5”, disebutkan bahwa keamanan
data menggunakan teknik kriptografi MD5 yang diimplementasikan pada

Universitas Sumatera Utara


Universitas Sumatera Utara
26

keamanan sistem Digital Signature(tanda tangan digital) sebagai otentikasi bahwa


file tersebut asli dari pengirim yang sangkutan. Dikarenakan informasi sangat
dijaga keamanannya sehingga tidak diterima oleh tangan yang tidak berhak yang
dapat mengubah isi data atau merusak data.
3. Berdasarkan penelitian dari (Pittalia, 2019) yang berjudul “A Comparative Study
of Hash Algorithms in Cryptography” disebutkan bahwa penggunaan MD5, SHA-
1, SHA-2, SHA-3, atau Whirlpool diperlukan untuk menjaga integritas data serta
untuk mengotentikasi pengguna yang sah
4. Berdasarkan penelitan dari (Pranata & Iryanto, 2019) yang berjudul “Digital
Signature Using RSA dan SHA-1” disebutkan bahwa pengaruh Digital Signature
menggunakan algoritma RSA dan dan algoritma SHA–1 pada sistem
penandatanganan memenuhi 4 tujuan kriptografi yaitu kerahasiaan, integritas
data, autentikasi dan nir-penyangkalan. Digital Signature dapat memastikan
keabsahan pengirim, keaslian pesan dan nir-penyangkalan.

Universitas Sumatera Utara


Universitas Sumatera Utara
BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Tujuan dari analisis sistem adalah untuk mengamati atau mengidentifikasi masalah dan
sistem sebelum dilakukan perancangan sistem untuk menyelesaikan masalah. Analisis
sistem akan dilakukan dalam beberapa tahap sebagai berikut:

3.1.1. Analisis Masalah

Analisis Masalah adalah mengamati suatu permasalahan yang ingin diselesaikan.


Rumusan masalah dalam penelitian ini adalah bagaimana mengimplementasikan sistem
berbasis web untuk menjamin pengamanan pada keaslian file PDF dari segi otentikasi,
anti penyangkalan, dan integritas pada file dokumen pdf menggunakan Algoritma RSA
Digital Signature dan fungsi hash SHA-3. Masalah dalam penelitian ini dapat
diidentifikasikan dengan menggunakan Diagram Ishikawa/fishbone. Diagram Ishikawa
adalah diagram untuk mengidentifikasi penyebab-penyebab dari sebuah masalah yang
spesifik.

Penyebab-penyebab masalah dalam penelitian ini digambarkan melalui


Diagram Ishikawa seperti yang ditunjukkan pada Gambar 3.1. Masalah utama dari
penelitian ini adalah user penerima ingin mengetahui apakah dokumen yang dikirim
adalah dokumen asli dari user pengirim dengan memverifikasi tanda tangan digital
untuk membuktikan keaslian file PDF dari segi otentikasi pengirim, anti penyangkalan,
dan integritas dokumen.

Universitas Sumatera Utara


Universitas Sumatera Utara
28

Gambar 3. 1. Diagram Ishikawa


3.1.2. Analisis Kebutuhan

Analisis kebutuhan adalah mengidentifikasi kebutuhan sistem yang ingin dipenuhi


dalam penelitian ini. Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional
dan kebutuhan non-fungsional. Kebutuhan fungsional adalah kebutuhan inti yang harus
dipenuhi pada sistem, sedangkan kebutuhan non-fungsional adalah kebutuhan dari segi
fitur dan kualitas pada sistem.

Berikut adalah kebutuhan fungsional pada penelitian ini:

1. Sistem harus menjamin keamanan pada keaslian file PDF dari segi otentikasi, anti
penyangkalan, dan integritas.
2. Sistem harus membentuk kunci publik dan kunci rahasia antar user menggunakan
algoritma RSA.
3. Sistem harus dapat melakukan proses tanda tangan pada file PDF sebelum
dikirimkan ke user penerima. Sedangkan user penerima melakukan proses
verifikasi pada file PDF yang dikirim oleh user pengirim.

Berikut adalah kebutuhan non-fungsional pada penelitian ini:

1. Performa
Sistem dapat membuktikan apakah dokumen yang dikirim adalah dokumen asli
dengan membandingkan nilai hash dengan nilai verifikasi yang hasilnya berupa
Valid atau Tidak Valid pada keaslian file PDF.

Universitas Sumatera Utara


Universitas Sumatera Utara
29

2. Efisiensi
Sistem yang dibangun akan didesain secara sederhana agar mudah digunakan oleh
user.
3. Dokumentasi
Sistem yang akan dibangun akan menyimpan data kunci dari algoritma RSA,
tanda tangan, file PDF, tanggal dikirim, dan data akun user.
4. User friendly
Tampilan pada sistem akan didesain responsive agar dapat digunakan di web
browser komputer dan web browser smartphone.
5. Manajemen kualitas
Sistem yang akan dibangun harus memiliki kualitas waktu dalam pembangkitan
kunci, tanda tangan, dan verifikasi dokumen PDF.
6. Kontrol
Sistem tidak akan mengunduh file PDF jika hasil verifikasi tidak valid.

3.2. Pemodelan Sistem

Tujuan dari pemodelan sistem untuk menggambarkan interaksi antara user dengan
sistem yang dirancang serta alur proses dalam kerja sistem. Pemodelan sistem
digambarkan dalam bentuk diagram dengan menggunakan UML (Unified Modelling
Language). Diagram tersebut adalah use case diagram, activity diagram, dan sequence
diagram.

3.2.1. Use Case Diagram

Use Case Diagram digunakan untuk menggambarkan hubungan interaksi antara aktor
(user) dengan sistem yang dirancang. Use case diagram pada penelitian digambarkan
pada Gambar 3.2.

Universitas Sumatera Utara


Universitas Sumatera Utara
30

Gambar 3. 2. Use Case Diagram


Pada Gambar 3.2, pengirim dan penerima adalah user yang berperan sebagai aktor
yang berinteraksi terhadap sistem. Sistem akan berperan dalam penandatanganan dan
verifikasi dokumen PDF menggunakan algoritma RSA Digital Signature dan fungsi
hash SHA-3. Algoritma RSA digunakan sebagai pembangkit kunci, Digital Signature
sebagai proses tanda tangan dan verifikasi, dan SHA-3 digunakan sebagai message
digest dokumen.

3.2.2. Activity Diagram


Activity Diagram adalah bentuk penggambaran alur aktivitas antar user dan sistem yang
saling berinteraksi satu sama lain. Activity Diagram pada sistem yang dibangun dalam
penelitian ini meliputi aktivitas registrasi, login, tanda tangan dokumen, dan verifikasi
dokumen.

1. Activity Diagram registrasi


Gambar 3.3 merupakan proses Activity diagram untuk registrasi akun. User
diwajibkan untuk membuat akun dengan memasukkan data user berupa
username, password, dan lain-lain. Lalu data akan disimpan di database.

Universitas Sumatera Utara


Universitas Sumatera Utara
31

Gambar 3. 3. Activity Diagram registrasi


2. Activity Diagram login
Bagi user yang sudah registrasi akan mempunyai akun untuk mengakses sistem
menggunakan username dan password. Sistem akan memeriksa apakah user
memiliki akun di database atau tidak. Seperti yang digambarkan pada Gambar
3.4.

Gambar 3. 4. Activity Diagram login


3. Activity Diagram tanda tangan dokumen
Activity diagram pada Gambar 3.5 merupakan salah satu aktivitas utama dalam
sistem ini, yaitu tanda tangan (signature) dokumen PDF. User perlu
menginputkan atau mengosongkan username penerima, generate bilangan prima,
mengupload pdf, dan user mengklik Tanda Tangan & Kirim untuk melakukan
proses tanda tangan file PDF. Sistem akan membuat kunci rahasia untuk pengirim

Universitas Sumatera Utara


Universitas Sumatera Utara
32

dan kunci publik menggunakan algoritma pembangkitan kunci RSA. Kemudian,


file PDF akan di hashing menggunakan fungsi hash SHA-3 sehingga output-nya
berupa message digest. Sistem akan melakukan proses tanda tangan menggunakan
algoritma RSA Digital Signature dengan input kunci rahasia dan message digest
yang sudah dikonversikan menjadi bilangan desimal.
Jika pengirim mengosongkan username, maka sistem akan tetap
menandatangani pdf dan disimpan di database. Penerima yang mempunyai akun
di sistem ini dapat menverifikasi meskipun pdf dan tanda tangan tidak dikirimkan
melalui sistem yang dibangun di penelitian ini (misal melalui aplikasi email atau
social media whatsapp dan sebagainya) dengan cara pengirim mengirimkan PDF
dan nilai tanda tangan melalui aplikasi lain. Untuk melihat tanda tangan dan kunci
publik, pengirim dapat melihat rinciannya dari halaman signature pengirim.

Gambar 3.5. Activity Diagram Tanda Tangan pdf

Universitas Sumatera Utara


Universitas Sumatera Utara
33

4. Activity Diagram Verifikasi dokumen


Setelah aktivitas tanda tangan yang dilakukan user pengirim lalu tanda tangan dan
pdf dikirimkan, user penerima melakukan proses verifikasi pdf berdasarkan
Gambar 3.6. Jika user pengirim mengirimkan pdf dan tanda tangan melalui
sistem website, maka sistem akan menverifikasi tanda tangan dan hashing PDF
dengan penerima mengklik verifikasi. Jika user menerima PDF dari luar sistem
website (melainkan pdf diterima melalui aplikasi email, sosial media, atau aplikasi
lainnya), user penerima dapat menverifikasi PDF secara manual dengan cara
mengupload pdf dan nilai tanda tangan.
Setelah itu, sistem akan menverifikasi tanda tangan menggunakan RSA
Digital Signature dengan bantuan kunci publik yang dimiliki nilai tanda tangan,
sedangkan SHA-3 akan menghasilkan message digest. Setelah proses verifikasi
dan hashing, sistem akan menverifikasi keaslian PDF dengan membandingkan
nilai verifikasi dengan nilai hash. Jika keduanya sama, sistem akan mengganggap
keaslian PDF valid dan penerima dapat mendownload PDF. Jika tidak sama,
sistem akan menganggap keaslian pdf tidak valid dan penerima tidak dapat
mendownload pdf.
Fungsi download pdf hanya dapat beroperasi pada pdf yang dikirim
langsung melalui sistem website ini. Tidak berlaku bagi penerima yang
mengunggah pdf, input tanda tangan, dan input kunci publik secara manual.

Universitas Sumatera Utara


Universitas Sumatera Utara
34

Gambar 3. 6. Activity Diagram Verifikasi


3.2.3. Sequence Diagram

Sequence diagram adalah gambaran hubungan antar request dari user dan respond dari
sistem. Untuk sistem dalam penelitian ini. Sequence diagram terbagi 2 yaitu sequence
diagram untuk pengirim dan sequence diagram untuk penerima.

1. Sequence Diagram Pengirim


Sequence diagram pada Gambar 3.7 menampilkan interaksi user pengirim
dengan sistem. User pengirim perlu login atau registrasi untuk mengakses
halaman signature. Kemudian user mengimputkan username dan upload file pdf.
Lalu sistem akan melakukan pengecekan database, membangkitkan kunci publik
dan kunci rahasia menggunakan algoritma RSA, memproses pdf menjadi message
digest menggunakan SHA-3, proses RSA Digital Signature menggunakan kunci

Universitas Sumatera Utara


Universitas Sumatera Utara
35

rahasia dan nilai dari message digest. Akhirnya, nilai tanda tangan dan pdf dikirim
ke penerima dan/atau disimpan di database. Dan user dapat nilai tanda tangan,
kunci publik, dan Message Digest file PDF

Gambar 3. 7. Sequence Diagram Pengirim


2. Sequence Diagram Penerima
Gambar 3.8 merupakan sequence diagram untuk penerima. User penerima
memerlukan akun untuk mengakses halaman verifikasi. Proses dimulai user
penerima memerlukan file PDF dan nilai tanda tangan (user bisa mendapatkannya
secara langsung dari pengirim yang mengirimkannya melalui sistem ini atau
mendapatkannya dari pengirim yang mengirim melalui aplikasi lain). Selanjutnya
sistem akan memproses verifikasi dimulai dari mengecek database, hashing pdf
menggunakan SHA-3, proses verifikasi RSA Digital Signature menggunakan
kunci publik dan nilai tanda tangan, lalu sistem akan membandingkan nilai
message digest dan nilai dari hasil verifikasi melalui validasi. Dan sistem akan
menampilkan hasil verifikasi pada keaslian file PDF.

Universitas Sumatera Utara


Universitas Sumatera Utara
36

Gambar 3. 8. Sequence Diagram Penerima

3.3. Flowchart

Flowchart adalah alur kerja pada sebuah sistem secara sistematis. Pada penelitian ini,
flowchart terdiri dari bilangan prima, pembangkitan kunci algoritma RSA, proses tanda
tangan menggunakan RSA Digital Signature, dan proses verifikasi menggunakan RSA
Digital Signature.

3.3.1. Flowchart Bilangan Prima

Bilangan prima digunakan untuk membuat kunci publik dan kunci rahasia algoritma
RSA. Pada Gambar 3.9 adalah flowchart bilangan prima yang dimulai dari user
menekan tombol ‘Generate’ pada sistem web. Sistem akan membuat array prime_list
yang terisi kosong. Pada penelitian ini, sistem ingin mengambil bilangan prima antara
100 hingga 1000. Oleh karena itu, sistem menggunakan perulangan mencetak angka i
dari 100 hingga 1000. Selama perulangan tersebut, variabel flag adalah penanda bahwa
cetakan angka adalah bilangan prima lalu dilanjutkan pada percabangan yang akan
menentukan bilangan prima. Jika i (adalah angka yang tercetak) modulo j (syarat, j
(dimulai dari 2) < i) menghasilkan 0. Maka sistem akan menganggap nilai i tersebut
adalah bukan bilangan prima dengan flag = 1 dan dilanjutkan ke nilai i berikutnya. Jika

Universitas Sumatera Utara


Universitas Sumatera Utara
37

hasil modulo bukan 0, maka sistem akan terus melakukan perhitungan hingga j selisih
i. Jika semua hasil hitungan i modulo j bukan 0, maka sistem menganggap nilai i
tersebut adalah bilangan prima dengan flag = 0 lalu bilangan prima tersebut akan
dimasukkan (push) ke dalam array prime_list. Setelah semua data pada prime_list terisi
bilangan prima, sistem akan memilih satu nilai dari data prime_list secara acak untuk
nilai variabel p dan q.

Gambar 3. 9. Flowchart bilangan prima

Universitas Sumatera Utara


Universitas Sumatera Utara
38

Contoh:

prime_list = []

• i = 100 (flag 0)
j = 2,
100 mod 2 = 0 (flag 1, 100 bukan bilangan prima. Dilanjutkan ke i = 101)
• i = 101 (flag 0)
j = 2,
101 mod 2 = 1 (flag 0)
j = 3,
101 mod 3 = 2 (flag 0)
j = 4,
101 mod 4 = 1 (flag 0)
j = 5,
101 mod 5 = 1 (flag 0)
… hingga j = 100
j = 100,
101 mod 100 = 1 (flag 0)
Jadi, 101 adalah bilangan prima sehingga nilai i dimasukkan ke array prime_list
= [101]. Perhitungan dilanjutkan ke I = 102.
• i = 102 (flag 0)
j = 2,
102 mod 2 = 0 (flag 1, 102 bukan bilangan prima. Dilanjutkan ke i = 103)
• i = 103
j = 2,
103 mod 2 = 1 (flag 0)
j = 3,
103 mod 3 = 1 (flag 0)
j=4
103 mod 4 = 3 (flag 0)
… hingga j = 102
j = 102

Universitas Sumatera Utara


Universitas Sumatera Utara
39

103 mod 102 = 1 (flag 0)


Jadi, 103 adalah bilangan prima sehingga nilai i dimasukkan ke array prime_list
= [101, 103]. Perhitungan dilanjutkan ke i = 104.

Sistem akan terus mengidentifikasi bilangan prima hingga i = 1000 sehingga array
prime_list sebagai berikut:

prime_list = [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173,
179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, …, 997]

Setelah prime_list terisi bilangan prima, sistem akan memilih bilangan prima secara
acak dari prime_list untuk variabel p dan q.

3.3.2. Flowchart Pembangkit Kunci RSA


Pembangkitan kunci algoritma RSA dimulai dari masukan bilangan prima p dan q (dari
Gambar 3.9). Lalu p dan q dikalikan hingga menghasilkan nilai n (kunci publik
modulus). Selanjutnya proses untuk mendapatkan Φ(n), nilai e (kunci publik eksponen)
dengan cara menggunakan perhitungan gcd antara Φ(n) dan e sehingga hasilnya 1, dan
mendapatkan nilai d dengan cara d*e modulo Φ(n) sehingga hasilnya 1. Akhirnya,
algoritma RSA menghasilkan kunci publik e dan n, serta kunci rahasia d. Proses tersebut
digambarkan melalui diagram flowchart pada gambar 3.10.

Universitas Sumatera Utara


Universitas Sumatera Utara
40

Gambar 3. 10. Flowchart pembangkit kunci algoritma RSA

3.3.3. Flowchart sistem


Flowchart sistem RSA Digita Signature terbagi 2, yaitu proses signature dan proses
verifikasi. Gambar 3.11 dibawah merupakan proses signature sistem yang dimulai dari
user memasukkan data registrasi jika user tidak memiliki akun. Jika user memiliki
akun, user memasukan data login. Setelah login, user memasukan username penerima,
bilangan prima yang di generate acak (Gambar 3.9), dan file PDF. Bilangan prima
akan membangkitkan kunci algoritma RSA (Gambar 3.10). Selanjutnya sistem
mengolah PDF yang akan menghasilkan message digest dari fungsi hash SHA-3 dalam
bentuk hexadecimal lalu dipecah menjadi bagian-bagian data masing-masing 4 digit.
Hasil signature berasal dari potongan-potongan message digest yang dihitung per
bagian data dikonversikan ke decimal dahulu dipangkatkan kunci rahasia lalu di modulo
kunci publik n. Setelah melalui proses tersebut, jika user pengirim mengosongkan
inputan username penerima, sistem akan tetap menandatangani file PDF dan disimpan

Universitas Sumatera Utara


Universitas Sumatera Utara
41

ke database. Jika username penerima terisi, nilai signature dan pdf akan dikirim dan
disimpan di database.

Gambar 3. 11. Flowchart Sistem RSA Digital Signature (Proses Signature)


Setelah proses signature, sistem dapat melalukan proses verifikasi. Setelah user
penerima perlu mempunyai akun terlebih dahulu, lalu menerima pdf dan nilai tanda
tangan. Selanjutnya sistem akan mengolah pdf menjadi message digest menggunakan
fungsi hash SHA-3, lalu mengambil kunci publik n dan e dari database berdasarkan
kepemilikan nilai tanda tangan. Setelah mendapatkan kunci publik, signature dipecah
menjadi bagian-bagian data. Selanjutnya sistem akan melalui proses verifikasi dengan
menghitung potongan-potongan nilai tanda tangan dipangkatkan kunci publik e lalu
dimoduluskan dengan kunci publik n. Setelah melewati proses tersebut, sistem akan
membandingkan nilai verifikasi dalam bentuk hexadesimal dengan message digest. Jika
keduanya sama, sistem akan mengganggap keaslian PDF valid dan penerima dapat

Universitas Sumatera Utara


Universitas Sumatera Utara
42

mendownload pdf. Jika tidak sama, sistem akan menganggap keaslian PDF tidak valid
dan penerima tidak dapat mengunduh PDF. Semua proses tersebut digambarkan dalam
bentuk diagram flowchart pada Gambar 3.12.

Gambar 3. 12. Flowchart Sistem RSA Digital Signature (Proses Verifikasi)

3.4. Perancangan Interface


Perancangan interface berfungsi membantu penulis dalam mengimplementasikan
penelitian yang ditujukan untuk user dalam bentuk tampilan agar user menggunakan
sistem dengan mudah. Pada penelitian ini, penulis merancang sistem interface dalam

Universitas Sumatera Utara


Universitas Sumatera Utara
43

bentuk web yang ditampilkan melalui komputer. Perancangan interface terdiri dari
halaman login, registrasi, halaman utama, halaman signature, dan halaman verification.

3.4.1. Halaman Login

Gambar 3. 13. Halaman Login


Halaman login merupakan aktivitas syarat bagi user untuk mengakses sistem. User
memerlukan username dan password untuk mengakses sistem. Jika user belum
mempunyai username dan password, user harus membuat akun melalui link Sign Up
untuk registrasi akun. Tabel 3.1 merupakan keterangan komponen dari gambar pada
Gambar 3.13.

Tabel 3. 1. Keterangan gambar halaman login (Gambar 3.13)

No. Keterangan

1 Input box untuk memasukkan username

2 Input box untuk memasukkan password

Button untuk meminta user mengakses sistem setelah memasukkan


3
username dan password

4 link untuk menuju ke halaman registrasi

Universitas Sumatera Utara


Universitas Sumatera Utara
44

3.4.2. Halaman Registrasi

Gambar 3. 14. Halaman registrasi


Halaman registrasi berfungsi untuk membuat akun untuk user sebelum menggunakan
sistem. Tabel 3.2 merupakan keterangan komponen dari gambar pada Gambar 3.14.

Tabel 3. 2. Keterangan halaman registrasi (Gambar 3.14)

No. Keterangan

1 Input box untuk memasukkan nama

2 Input box untuk memasukkan username dalam bentuk alphanumerik

3 Input box untuk memasukkan email

4 Input box untuk memasukkan password

5 Input box untuk konfirmasi ulang password

6 Button untuk memasukkan semua input ke database

7 Link untuk menuju ke halaman login

Universitas Sumatera Utara


Universitas Sumatera Utara
45

3.4.3. Halaman utama home

Gambar 3. 15. Halaman Utama Home


Gambar 3.14 adalah rancangan halaman untuk menu home yang berisi informasi
penulis dan judul penelitian ini. Tabel 3.3 merupakan keterangan Gambar 3.15.

Tabel 3.3. Keterangan halaman utama home (Gambar 3.15)

No. Keterangan

1 Text untuk menampilkan username untuk user yang berhasil login

2 Button yang terdiri dari pilihan log out

3 Text untuk menampilkan judul penelitian ini

4 Image untuk menampilkan logo USU

5 Text untuk menampilkan informasi penulis

6 Link untuk menuju ke halaman home

7 Link untuk menuju ke halaman signature

Universitas Sumatera Utara


Universitas Sumatera Utara
46

8 Link untuk menuju ke halaman verification

3.4.4. Halaman signature

Gambar 3. 16. Halaman Signature


Gambar 3.16 merupakan salah satu fitur utama dari penelitian algoritma RSA Digital
Signature. Halaman ini berisi inbox untuk memberi informasi user membuat tanda
tangan di tiap pdf yang diunggah, lalu dikirim ke penerima. Tabel 3.4 merupakan
keterangan Gambar 3.16.

Tabel 3.4. Keterangan halaman signature (Gambar 3.16)

No. Keterangan

Notification bar untuk memberitahu hasil dari proses sistem.

Bar warna hijau : proses sistem berhasil (signature atau verifikasi)


1
Bar warna merah: terjadi kesalahan pada proses sistem (misal: kesalahan
input username penerima, belum upload pdf, dan sebagainya)

Button untuk menampilkan halaman pop-up berisi input username, generate


2
bilangan prima, dan upload pdf

Universitas Sumatera Utara


Universitas Sumatera Utara
47

3 Text untuk menampilkan nama penerima

4 Text untuk menampilkan nama file pdf

Text untuk menampiklan tanggal dan waktu selesai tanda tangan atau tanggal
5
dikirim ke penerima

Pagination untuk pindah ke halaman tabel inbox yang masing-masing


6
halaman dibatasi 5 tampilan data.

Gambar 3.17 merupakan halaman pop-up sesuai dengan keterangan 2.

Gambar 3. 17. Halaman pop-up untuk membuat tanda tangan dan kirim
Tabel 3.5 merupakan keterangan Gambar 3.17.

Tabel 3.5. Keterangan halaman pop-up untuk membuat tanda tangan dan kirim
(Gambar 3.17)

No. Keterangan

1 Button untuk menutup halaman pop-up

2 Input Box untuk memasukkan username penerima (boleh dikosongkan)

3 Button untuk generate bilangan prima

Universitas Sumatera Utara


Universitas Sumatera Utara
48

Input box untuk menampilkan bilangan prima acak setelah di generate


4
(readonly)

5 Button untuk mengunggah pdf dari perangkat

Button untuk memproses tanda tangan dan kirim ke penerima dan disimpan
6 ke database (jika username kosong, sistem hanya akan menyimpan hasil
proses tanda tangan ke database)

Gambar 3. 18. Halaman untuk membaca detail tanda tangan PDF


Gambar 3.18 merupakan halaman yang berisi informasi mengenai user penerima,
kunci publik, message digest, ID tanda tangan, nilai tanda tangan, user yang melakukan
tanda tangan, tanggal proses tanda tangan, dan waktu proses (kunci, tanda tangan, dan
total waktu proses) pada sebuah file PDF yang sudah ditandatangani.

Tabel 3. 6. Keterangan halaman untuk membaca rincian signature (Gambar 3.18)

No. Keterangan

1 Button untuk kembali ke halaman inbox

Universitas Sumatera Utara


Universitas Sumatera Utara
49

2 Label untuk menampilkan data pada salah satu file PDF

3 Button untuk mendownload file pdf

3.4.5. Halaman verification

Gambar 3. 19. Halaman verification


Menu selanjunya di sistem ini adalah halaman verification (Gambar 3.19) merupakan
salah satu fitur utama dari penelitian algoritma RSA Digital Signature. Halaman
verification sekilas mirip dengan tampilan signature yang terdiri dari tabel inbox dan
upload pdf. Tabel 3.7 merupakan keterangan Gambar 3.19.

Tabel 3.7. Keterangan halaman verification (Gambar 3.19)

No. Keterangan

Button untuk menampilkan halaman pop-up berisi upload pdf, input kunci
1
publik, dan input nilai tanda tangan (untuk verifikasi secara manual)

Universitas Sumatera Utara


Universitas Sumatera Utara
50

2 Text untuk menampilkan nama pengirim

3 Text untuk menampilkan nama file pdf

4 Text untuk menampilkan tanggal dan waktu pengiriman

Text untuk menampilkan hasil verifikasi berubah warna berdasarkan output.

Text warna hijau: valid


5
Text warna merah: tidak valid

Text warna hitam: belum diverifikasi

Untuk keterangan 1 juga menggunakan halaman pop-up yang digambarkan pada


Gambar 3.20.

Gambar 3. 20. Halaman pop-up untuk verifikasi pdf secara manual


Tabel 3.8 merupakan keterangan Gambar 3.20.

Tabel 3.8. Keterangan halaman pop-up untuk verifikasi manual (Gambar 3.20)

No. Keterangan

1 Input box untuk memasukkan ID tanda tangan

Universitas Sumatera Utara


Universitas Sumatera Utara
51

2 Button untuk mengunggah pdf dari perangkat

3 Button untuk memulai proses verifikasi

Gambar 3. 21. Halaman untuk membaca detail verifikasi PDF


Gambar 3.21 merupakan halaman untuk membaca rincian/detail verifikasi pada sebuah
file PDF. Tabel 3.9 merupakan table keterangan Gambar 3.21.

Tabel 3.9. Keterangan halaman untuk membaca rincian verifikasi (Gambar 3.21)

No. Keterangan

1 Label untuk menampilkan data pada salah satu file PDF

Button untuk mendownload pdf (untuk penerima yang menerima pdf dan
2
tanda tangan dari pengirim melalui sistem ini)

3 Button untuk memulai verifikasi

Universitas Sumatera Utara


Universitas Sumatera Utara
BAB 4

IMPLEMENTASI DAN PENGUJIAN

Bab ini membahas implementasi sistem serta pengujian algoritma RSA Digital
Signature dan fungsi hash SHA-3 termasuk faktor tujuan dari Digital signature sendiri.
Yaitu, otentikasi, anti penyangkalan, dan integritas dokumen PDF.

4.1. Implementasi sistem

Sistem yang dibangun pada penelitian ini menggunakan HTML, CSS, CSS Framework
Bootstrap untuk tampilan website, Bahasa pemrograman Javascript untuk generate
bilangan prima, Bahasa pemrograman PHP untuk proses RSA Digital Signature,
database menggunakan MySql, dan web browser Google Chrome versi 95.0.4638.69
(64-bit). Sedangkan spesifikasi komputer yang digunakan adalah:

• OS Windows 10 versi 21H1


• Prosesor AMD A8-7410 APU with AMD Radeon R5 2.20 GHz
• RAM 8 GB
• SSD 256 GB

4.1.1. Halaman Registrasi


Halaman Registrasi merupakan halaman membuat akun untuk mengakses sistem.
Terdapat data diri yang harus diisi yaitu nama, username, email, dan password.
Gambar 4.1 merupakan tampilan halaman registrasi.

Universitas Sumatera Utara


Universitas Sumatera Utara
53

Gambar 4. 1. Tampilan halaman registrasi


4.1.2. Halaman Login
Halaman login pada Gambar 4.2 merupakan halaman untuk memasukkan username
dan password yang sudah teregistrasi untuk masuk ke halaman utama sistem.

Gambar 4. 2. Tampilan halaman login


4.1.3. Halaman Utama
Halaman utama adalah tampilan awal setelah user login ke sistem. Pada halaman login
terdapat navigation bar berupa username dan tombol log out, serta sidebar berupa menu
home, signature dan verification. Gambar 4.3 merupakan tampilan halaman home.

Universitas Sumatera Utara


Universitas Sumatera Utara
54

Gambar 4. 3. Tampilan halaman Home


4.1.4. Halaman Signature
Halaman signature pada Gambar 4.4 menampilkan tombol upload pdf dan inbox
penandatanganan PDF berupa nama penerima, Nama File, dan Tanggal dan Waktu. Jika
user tidak memasukan username penerima, maka file pdf tetap ditandatangani dan data
nama penerima menjadi “Signed”.

Gambar 4. 4. Tampilan halaman Signature


Pada tombol Upload PDF, akan muncul halaman pop-up yang berisikan masukan
username, generate bilangan prima, dan tombol upload PDF, lalu user mengklik tombol

Universitas Sumatera Utara


Universitas Sumatera Utara
55

“Tanda tangan & Kirim” untuk menandatangani PDF dan mengirimkannya ke user
penerima yang diisikan di form username. Jika user mengosongkan username, sistem
hanya akan menandatangani file PDF. Untuk tampilan halaman pop-up digambarkan
melalui Gambar 4.5.

Gambar 4. 5. Halaman pop-up untuk mengupload dan mengirim PDF


Jika user mengklik salah satu data nama file pada tabel signature, maka user akan
diarahkan ke halaman baru yang berisikan rincian file PDF yang ditandatangani.
Gambar 4.6 merupakan halaman rincian file PDF.

Gambar 4. 6. Tampilan halaman rincian tanda tangan pada PDF

Universitas Sumatera Utara


Universitas Sumatera Utara
56

4.1.5. Halaman Verification


Halaman verification pada Gambar 4.7 serupa dengan halaman signature berupa inbox
yang diterima atau diverifikasi, dan tombol upload PDF untuk menverifikasi PDF
secara manual. Pada kolom hasil verifikasi, sistem akan menunjukkan teks berwarna
hijau untuk “Valid”, teks berwarna merah untuk “Not Valid”, dan teks berwarna hitam
untuk “Belum diverifikasi” sebagai tanda keverifikasian file PDF.

Gambar 4. 7. Tampilan halaman Verifikasi


Jika user mengklik tombol Upload PDF, maka sistem akan menampilkan halaman pop-
up untuk memasukan ID tanda tangan, dan upload file PDF seperti yang digambarkan
pada Gambar 4.8 untuk menverifikasi PDF secara manual.

Gambar 4. 8. Halaman pop-up untuk verifikasi PDF secara manual

Universitas Sumatera Utara


Universitas Sumatera Utara
57

Jika user mengklik salah satu data nama file pada tabel verifikasi, maka user akan
diarahkan ke halaman baru yang berisikan rincian file PDF yang diverifikasi. Gambar
4.9 merupakan halaman rincian file PDF.

Gambar 4. 9. Tampilan rincian verifikasi pada PDF


4.2. Pengujian sistem

Sebelum sistem digunakan oleh user sesungguhnya, maka dilakukan pengujian pada
sistem. Tujuan dari pengujian sistem untuk mengetahui apakah sistem berjalan dengan
baik sesuai dengan rancangan maupun teori atau tidak berjalan dengan baik. Pengujian
yang dilakukan di penelitian ini berupa pengujian pada proses pembuatan kunci dengan
algoritma RSA, proses penandatangan, dan proses verifikasi file pdf. Lalu dilakukan
pengujian untuk membuktikan tujuan Digital Signature yaitu pengamanan keaslian
PDF dari segi otentikasi, anti penyangkalan, dan integritas pesan berdasarkan gambaran
contoh permasalahan pada penelitian ini. Kemudian dilakukan pengujian kompabilitas
pada beberapa web browser. Serta pengujian waktu proses RSA Digital Signature pada
beberapa file PDF dari berukuran kecil hingga file PDF berukuran besar.

4.2.1. Pengujian pembuatan kunci, signature, dan verifikasi

Diketahui user pengirim dengan username Aryadd820 ingin mengirimkan file PDF
kepada user penerima dengan username Dias1999. Bilangan prima sudah di generate

Universitas Sumatera Utara


Universitas Sumatera Utara
58

oleh user dengan p = 193 dan q = 773. Dan file PDF yang diupload mempunyai memori
sebesar 3544 KB bernama file4.pdf. Seperti yang digambarkan pada Gambar 4.10.

Gambar 4. 10. Inputan signature


Ketika user mengklik tombol “Sign & Send”, sistem akan memulai proses tanda tangan
yang dimulai dari pembuatan kunci dengan menggunakan algoritma RSA hingga proses
signature.

1. Pembuatan kunci menggunakan algoritma RSA


Terdapat 5 tahap dalam pembuatan kunci, yaitu:
• Generate bilangan prima secara acak. Misal p = 193, dan q = 773.
• Dapatkan kunci publik n:
n=pxq
n = 193 x 773
n = 149189
• Dapatkan Φ(n):
Φ(n) = (p-1) x (q-1)
Φ(n) = (193-1) x (773-1)
Φ(n) = 148224
• Dapatkan kunci publik e:

Universitas Sumatera Utara


Universitas Sumatera Utara
59

GCD(Φ(n), e) = 1
GCD(148224, e) = 1
Berdasarkan source code berikut:

for ($e = 2; $e < $lambda_n; $e++) {


if (gmp_strval(gmp_gcd($e, $lambda_n)) == 1) {
return $e;
}
}
return false;

Sistem menggunakan function gmp_gcd dan gmp_strval yang sudah disediakan


oleh PHP untuk menentukan GCD(148224, e). Nilai e akan mencoba
menggunakan nilai hingga lebih kecil daripada Φ(n). Perulanagan e dapat dilihat
pada Tabel 4.1.

Tabel 4. 1. Perulangan untuk mendapatkan e

e GCD(148224, e)

2
2
3
3
4
4
1
5

Sehingga didapat kunci publik e = 5


• Dapatkan kunci rahasia d:
de mod Φ(n) = 1
d x 5 mod 148224 = 1
Berdasarkan algoritma yang sudah dibahas di landasan teori, kunci rahasia d
didapat dari perulangan yang dapat dilihat pada Tabel 4.2.

Tabel 4. 2. Perulangan untuk mendapatkan d

d d*5 mod 148224

2 10

Universitas Sumatera Utara


Universitas Sumatera Utara
60

3 15

4 20

...

...

29645 1

Sehingga didapat kunci rahasia d = 29645.


Jadi, hasil dari pembuatan kunci adalah kunci publik n = 149189, kunci publik
e = 5, dan kunci rahasia d = 29645.
2. Signature
Setelah melalui proses pembuatan kunci publik dan rahasia, sistem akan
mendapatkan message digest dari pdf menggunakan fungsi hash SHA-3 dengan
output size 256 bit.

$hash_input = file_get_contents($dir . $pdf_newname);


$hash_output = hash('sha3-256', $hash_input);
$hash_array = str_split($hash_output, 4);

Berdasarkan source code diatas, sistem akan membaca dan mengambil isi dari file
pdf dengan menggunakan file_get_contents yang sudah didapat dari direktori
folder upload. Lalu mengambil message digest menggunakan fungsi hash sha3-
256.
Message digest :
a3a5d838eb6674110f8bf9633e587c06fba7e78652b903f563020abf5243d733
Lalu message digest tersebut dipecah menjadi beberapa blok array $hash_array:
$hash_array = [a3a5, d838, eb66, 7411, 0f8b, f963, 3e58, 7c06, fba7, e786, 52b9,
03f5, 6302, 0abf, 5243, d733]
Sebelum mengimplementasikan sistem antarmuka, penulis sudah menguji
algoritma RSA Digital Signature untuk proses signature dan verifikasi dalam
bentuk raw (data mentah) tanpa antarmuka. Jika mengikuti signature dan verifikasi
sesuai landasan teori, hasil signature dan verifikasi adalah 0 seperti Gambar 4.11.
Hal ini dikarenakan ketika proses signature, md menghasilkan nilai sangat besar

Universitas Sumatera Utara


Universitas Sumatera Utara
61

dan PHP tidak dapat menghitung karena nilai lebih dari 2147483647 untuk sistem
32 bit.

Gambar 4. 11. Pengujian Signature dan verifikasi dalam bentuk raw


Permasalahan tersebut dapat diatasi menggunakan perkalian kongruensi modulo
untuk menghindari hasil proses signature adalah 0. Dapat dilihat dari source code
berikut.

$sign_array = [];
foreach ($hash_array as $hash_value) {
$data[0] = 1;
$mValue = hexdec($hash_value);
for ($i = 0; $i <= $d; $i++) {
$rest[$i] = pow($mValue, 1) % $n;
if ($data[$i] > $n) {
$data[$i + 1] = $data[$i] * $rest[$i] % $n;
} else {
$data[$i + 1] = $data[$i] * $rest[$i];
}
}
$get_sign = $data[$d] % $n;
array_push($sign_array, dechex($get_sign));
}
$signv_id = hexdec($sign_array[0].$sign_array[1]);
$sign_value = implode(":", $sign_array);

Penjelasan source code diatas sebagai berikut:


1. $sign_array berfungsi untuk menyimpan nilai nilai signature.
2. Foreach adalah perulangan untuk mengambil data array dari $hash_array lalu
diisi ke $hash_value. Misal, data pertama $hash_array adalah a3a5 lalu data
tersebut menjadi value untuk $hash_value.

Universitas Sumatera Utara


Universitas Sumatera Utara
62

3. Nilai $data pada array index 0 adalah 1.


4. $mValue adalah konversi nilai hexadecimal ke decimal. Misal, hasil konversi
nilai a3a5 adalah 41893.
5. Sistem akan melakukan perulangan $i dari 0 hingga $d yaitu kunci rahasia d =
29645.
6. Variabel $rest akan membentuk array index dari 0 hingga kunci rahasia d yang
data array adalah perhitungan (hash1 mod kunci publik n). Pada contoh ini,
semua data di array $rest adalah 41893.
7. Jika sistem mendapatkan $data[$i] lebih besar dari kunci publik n. Sistem akan
membuat data ke-$i +1 yang isinya perkalian kongruensi modulo. Jika bukan,
data ke-$i +1 tidak perlu di modulo n.
Misal:
• $i = 0
$data[0] = 1
1 > 149189 (false)
$data[0 + 1] = 1 x 41893
$data[1] = 41893
• $i = 1
41893 > 149189 (false)
$data[1 + 1] = 41893 x 41893
$data[2] = 1755023449
• $i = 2
1755023449 > 149189 (true)
$data[2 + 1] = 26569 x 41893 mod 149189
$data[3] = 135284
• $i = 3
135284 > 149189 (false)
$data[3 + 1] = 135284 x 41893
$data[4] = 5667452612
• $i = 4
5667452612 > 149189 (true)
$data[4 + 1] = 5667452612 x 41893 mod 149189
$data[5] = 59885

Universitas Sumatera Utara


Universitas Sumatera Utara
63

• … hingga $i = 29644
Diketahui $data[29644] = 4018041416
4018041416 > 149189 (true)
$data[29644 + 1] = 4018041416 x 41893 mod 149189
$data[29645] = 9126
Telah didapatkan $data[29645] = 9126

Gambar 4. 12. Pengujian source code signature dalam bentuk raw


8. Setelah $data terisi, sistem mendapatkan signature dengan mengguanakan
perhitungan sebagai berikut:
• $get_sign = $data[29645] mod 149189
$get_sign = 9126 mod 149189
$get_sign = 9126
Jika mengikuti rumus signature pada algoritma RSA Digital Signature:
• C = md mod n
C = 4189329645 mod 149189
C = 9126
9. Nilai signature dikonversikan ke hexadesimal dan dimasukkan ke $sign_array
sehingga $sign_array = [23a6].
10. Ulangi tahap 2 dengan nilai setelah a3a5, yaitu d838, eb66, 7411, dan
seterusnya hingga semua data $hash_array terpakai.
11. $signv_id adalah ID signature gabungan $sign_array[0] dan $sign_array[1]
yang dikonversikan ke desimal.

Universitas Sumatera Utara


Universitas Sumatera Utara
64

12. $sign_value menggabungkan data $sign_array dengan pembatas antar data “:”.
Sehingga nilai tanda tangan adalah:
23a6:7d33:c13e:136a5:a8c3:20d4d:14af3:1ed20:daaf:99fb:e442:117d7:1074e
:20f3a:342a:1357c

Gambar 4. 13. Tampilan rincian tanda tangan pada file4.pdf


Setelah proses signature selesai, data yang terdiri dari ID tanda tangan, tanda
tangan, kunci publik n dan e, kunci rahasia, nama file PDF, dan sebagainya akan
disimpan di database dan dikirimkan ke penerima berupa file PDF, ID Tanda
Tangan, dan Tanda Tangan.

3. Verifikasi
Username Dias1999 telah menerima kiriman dari Aryadd820 yang dapat dilihat di
halaman verification. Seperti yang ditunjukkan pada Gambar 4.14.

Universitas Sumatera Utara


Universitas Sumatera Utara
65

Gambar 4. 14. Halaman verification sebelum diverifikasi

Gambar 4. 15. Halaman rincian file4.pdf sebelum diverifikasi


Untuk memulai verifikasi, user perlu mengklik tombol verifikasi. Kemudian sistem
akan menghitung message digest dengan fungsi hash SHA3 sehingga didapat
message digest. Lalu sistem akan memulai proses RSA Digital Signature (proses
verifikasi) menggunakan kunci publik n, kunci publik e, dan nilai tanda tangan
melalui kode program berikut.

Universitas Sumatera Utara


Universitas Sumatera Utara
66

$signs = explode(":",$getSignV);
$ver_array = [];
foreach ($signs as $sign) {
$sign_dec = hexdec($sign);
$data[0] = 1;
for ($i=0; $i <= $getPubKeyE ; $i++) {
$rest[$i] = pow($sign_dec, 1) % $getPubKeyN;
if ($data[$i] > $getPubKeyN) {
$data[$i+1] = $data[$i] * $rest[$i] % $getPubKeyN;
} else {
$data[$i+1] = $data[$i] * $rest[$i];
}
}
$get_ver = $data[$getPubKeyE] % $getPubKeyN;
array_push($ver_array, dechex($get_ver));
}
$newVer = [];
foreach ($ver_array as $ver) {
if (strlen($ver) >= 2) {
array_push($newVer, $ver);
}
else if (strlen($ver) < 2) {
$ver_combine = "0".$ver;
array_push($newVer, $ver_combine);
}
}
$get_ver = implode("", $newVer);
return $get_ver;

Penjelasan source code diatas sebagai berikut:


1. $signs menjadi array dengan memecah Tanda tangan menjadi beberapa blok.
Tanda tangan yang didapatkan:
23a6:7d33:c13e:136a5:a8c3:20d4d:14af3:1ed20:daaf:99fb:e442:117d7:1074e
:20f3a:342a:1357c
Jadi, $signs= [23a6, 7d33, c13e, 136a5, a8c3, 20d4d, 14af3, 1ed20, daaf, 99fb,
e442, 117d7, 1074e, 20f3a, 342a, 1357c]
2. $ver_array berfungsi untuk menyimpan nilai-nilai verifikasi.
3. Foreach adalah perulangan untuk mengambil data array dari $signs lalu diisi
ke $sign. Misal, data pertama $signs adalah 23a6 lalu data tersebut menjadi
value untuk $sign.

Universitas Sumatera Utara


Universitas Sumatera Utara
67

4. $sign_dec adalah konversi nilai hexadecimal ke decimal. Misal, hasil konversi


nilai 23a6 adalah 9126.
5. Nilai $data pada array index 0 adalah 1.
6. Sistem akan melakukan perulangan $i dari 0 hingga $e yaitu kunci publik e =
5.
7. Variabel $rest akan membentuk array index dari 0 hingga kunci publik e yang
data array adalah perhitungan (signature1 mod kunci publik n). Pada contoh
ini, semua data di array $rest adalah 9126.
8. Jika sistem mendapatkan $data[$i] lebih besar dari kunci publik n. Sistem akan
membuat data ke-$i +1 yang isinya perkalian kongruensi modulo. Jika bukan,
data ke-$i +1 tidak perlu di modulo n.
Misal:
• $i = 0
$data[0] = 1
1 > 149189 (false)
$data[0 + 1] = 1 x 1926
$data[1] = 1926
• $i = 1
65550 > 149189 (false)
$data[1 + 1] = 1926 x 1926
$data[2] = 83283876
• $i = 2
83283876 > 149189 (true)
$data[2 + 1] = 83283876 x 1926 mod 149189
$data[3] = 70261
• $i = 3
70261 > 149189 (false)
$data[3 + 1] = 70261 x 1926
$data[4] = 641201886
• $i = 4
641201886 > 149189 (true)
$data[4 + 1] = 641201886 x 1926 mod 149189
$data[5] = 41893

Universitas Sumatera Utara


Universitas Sumatera Utara
68

• $i = 5
41893 > 149189 (false)
$data[5 + 1] = 163 x 1926
$data[6] = 382315518
9. Setelah $data terisi, sistem mendapatkan verifikasi dengan mengguanakan
perhitungan sebagai berikut
• $get_ver = $data[5] mod 149189
$get_ver = 41893 mod 149189
$get_ver = 41893

Jika mengikuti rumus verification pada algoritma RSA Digital Signature:

• Konversi hexadecimal menjadi decimal


23a6 = 1926
• m = Ce mod n
m = 655505 mod 149189
m = 41893

10. Nilai $get_ver dikonversikan ke hexadecimal dan dimasukkan ke $ver_array


sehingga $ver_array = [a3a5].
11. Ulangi tahap 3 dengan nilai setelah 1000e, yaitu 1eb77, 135f3, 1df82, dan
seterusnya hingga semua data $signs terpakai. Sehingga $ver_array = [a3a5,
d838, eb66, 7411, f8b, f963, 3e58, 7c06, fba7, e786, 52b9, 3f5, 6302, abf,
5243, d733].
12. Dikarenakan terdapat data $ver_array yang bukan 4 digit, yaitu f8b, 3f5, dan
abf. maka ditambahkan array $newVer untuk membuat data verifikasi baru
dengan semua data masing-masing mempunyai 4 digit. $newVer akan
menambahkan 0 di digit pertama data yang kurang dari 4 digit. Jadi, $newVer
= [a3a5, d838, eb66, 7411, 0f8b, f963, 3e58, 7c06, fba7, e786, 52b9, 03f5,
6302, 0abf, 5243, d733].
13. $get_ver menggabungkan data $newVer. Sehingga nilai verifikasi adalah:
a3a5d838eb6674110f8bf9633e587c06fba7e78652b903f563020abf5243d733
Sedangkan message digest PDF adalah sebagai berikut:

Universitas Sumatera Utara


Universitas Sumatera Utara
69

a3a5d838eb6674110f8bf9633e587c06fba7e78652b903f563020abf5243d733

Dikarenakan nilai verifikasi dan nilai hash sama, maka sistem akan menganggap
hasil verifikasi “Valid” dan file pdf dapat diunduh. Gambar 4.16 adalah gambar
rincian file pdf setelah diverifikasi.

Gambar 4. 16. Halaman rincian verifikasi file4.pdf setelah diverifikasi


4.2.2. Pengujian dan analisis tujuan Digital Signature

Pengujian ini menggunakan contoh permasalahan yang dibahas pada latar belakang
maupun analisis masalah. Dilanjutkan dari user yang diuji sebelumnya, ditambahkan
user ketiga dengan nama Duta200899. User tersebut ingin menverifikasi keaslian file
dari user Aryadd820. Dan user Duta200899 mendapatkan file pdf dari user Dias1999
melalui aplikasi pengiriman lain dengan nama file Aryadd820_20211130-
234134_file4.pdf dan ID tanda tangan. Cara menverifikasi PDF yaitu mengklik tombol
upload PDF di halaman verifikasi, lalu memasukkan ID tanda tangan dan upload pdf
yang dikirimkan oleh Dias1999.

Universitas Sumatera Utara


Universitas Sumatera Utara
70

Gambar 4. 17. Inputan verifikasi


Setelah memasukan data, user mengklik tombol Verifikasi. Sistem akan mencari kunci
publik dan tanda tangan berdasarkan ID tanda tangan, lalu sistem akan melakukan
proses verifikasi dan halaman akan menjadi seperti Gambar 4.18.

Gambar 4. 18. Tampilan halaman verification setelah pdf diverifikasi

Universitas Sumatera Utara


Universitas Sumatera Utara
71

Gambar 4. 19. Tampilan halaman rincian file pdf setelah diverifikasi


Selanjutnya, jika file PDF dimodifikasi meskipun nama file sama. Misal, file
Aryadd820_20211031-022410_file4.pdf dimodifikasi pada halaman 811. Gambar
4.20 menunjukkan perbedaan file pdf asli dengan modifikasi.

Gambar 4. 20. Perbandingan file pdf asli (kiri) dengan modifikasi berupa coretan
(kanan)
Maka hasil verifikasi file pdf yang termodifikasi akan menjadi “Tidak valid” seperti
Gambar 4.21.

Universitas Sumatera Utara


Universitas Sumatera Utara
72

Gambar 4. 21. Tampilan inbox jika tidak valid (atas) dan rincian verifikasi (bawah)
Tabel 4.3 adalah hasil pengujian pada file4.pdf.

Tabel 4. 3. Hasil pengujian file4.pdf

Username Kunci Message Digest Tanda Hasil Waktu


tangan verifik Proses
[n, e][d] [ID][Nil asi (sign+ver)
ai] (detik)

Aryadd820 [149189, a3a5d838eb6674110f [598113 Valid 0.27 +


(sign), 5][29645] 8bf9633e587c06fba7e 587] 0.07 =
Dias1999 78652b903f563020ab [23a6:7d 0.34
(ver) f5243d733 33:c13e:
136a5:a8
c3:20d4d
:14af3:1e
d20:daaf:
99fb:e44
2:117d7:
1074e:20
f3a:342a:
1357c]

Universitas Sumatera Utara


Universitas Sumatera Utara
73

Duta20089 [149189, a3a5d838eb6674110f [598113 Valid 0 + 0.11 =


9 (Hanya 5] 8bf9633e587c06fba7e 587] 0.11
verifikasi) 78652b903f563020ab [23a6:7d
f5243d733 33:c13e:
136a5:a8
c3:20d4d
:14af3:1e
d20:daaf:
99fb:e44
2:117d7:
1074e:20
f3a:342a:
1357c]

Duta20089 [149189, 9d0a723b40f67ee0ad [598113 Not 0 + 0.17 =


9 (Hanya 5] e0abc626c7b8b354b5 587] Valid 0.17
verifikasi) f36ed19ff71e092776c [23a6:7d
ba77dc3ad 33:c13e:
136a5:a8
c3:20d4d
:14af3:1e
d20:daaf:
99fb:e44
2:117d7:
1074e:20
f3a:342a:
1357c]

Total 0.62

1. Analisis otentikasi
User pengirim membangkitkan kunci publik dan kunci rahasia serta nilai tanda
tangan dari pengirim menggunakan RSA Digital Signature. Semua data telah
disimpan di database lalu dilakukan pengiriman file, tanda tangan, dan kunci publik
ke user penerima. Kemudian user penerima menggunakan kunci publik dan tanda
tangan untuk menverifikasi PDF. Dalam hal ini, terjadi interaksi atau otentikasi
berupa informasi tanda tangan, pdf, dan kunci yang jelas antara user pengirim
dengan penerima dengan database sebagai perantaranya.
Berdasarkan Tabel 4.3, user Aryadd820 dan user Dias1999 saling terotentikasi
karena Aryadd820 membuat kunci rahasia, kunci publik, dan tanda tangan. Lalu

Universitas Sumatera Utara


Universitas Sumatera Utara
74

dikirimkan ke Dias1999 untuk menverifikasi keaslian PDF. Secara tidak langsung,


user Duta200899 juga terotentikasi dengan Aryadd820 melalui ID tanda tangan dan
kunci publik, lalu menverifikasi keaslian file PDF milik Aryadd820 yang
didapatkan dari sumber lain.
2. Analisis anti penyangkalan
User pengirim telah membuat kunci publik dan kunci rahasia menggunakan
algoritma RSA, proses signature menggunakan kunci rahasia oleh pengirim
menunjukkan bahwa PDF ditandatangani dan dapat diketahui melalui verifikasi
menggunakan kunci publiknya. Berdasarkan Tabel 4.3, user pengirim yang
menandatangani dokumen dengan kunci rahasia mempunyai nilai tanda tangan
yaitu
23a6:7d33:c13e:136a5:a8c3:20d4d:14af3:1ed20:daaf:99fb:e442:117d7:1074e:20f
3a:342a:1357c. Jika user lain menggunakan ID tanda tangan, maka user lain
mendapatkan nilai tanda tangan tersebut. Dapat dilihat bahwa tanda tangan tidak
dapat disangkal oleh pengirim karena pengirim sendiri yang membuat tanda tangan
tersebut.
3. Analisi Integritas file
Fungsi hash SHA-3 berperan lebih dalam integritas file. SHA-3 mendapatkan
message digest dari isi file PDF. Berdasarkan Tabel 4.3, terdapat dua message
digest yang berbeda sehingga hasil verifikasi ada yang valid dan tidak valid.
Message digest pada file4.pdf:
a3a5d838eb6674110f8bf9633e587c06fba7e78652b903f563020abf5243d733
(Valid)
Message digest pada file4.pdf yang dimodifikasi:
9d0a723b40f67ee0ade0abc626c7b8b354b5f36ed19ff71e092776cba77dc3ad
(Tidak valid)

4.2.3. Pengujian waktu proses pada beberapa file PDF di berbagai web browser

Selain menggunakan web browser Google Chrome. Pengujian ini menambahkan dua
web browser lagi yaitu:

• Microsoft Edge versi 95.0.1020.40 (64-bit)


• Mozilla Firefox versi 93.0 (64-bit)

Universitas Sumatera Utara


Universitas Sumatera Utara
75

Uji coba yang dilakukan adalah menguji ketiga web mengenai proses signature dan
verifikasi pada 6 file PDF dengan ukuran memori yang berbeda dikirim satu persatu,
bilangan prima p = 499 dan q = 503 sehingga kunci publik[n, e] adalah [250997, 5] dan
kunci rahasia[d] adalah [199997], dan hasil verifikasi keseluruhan file PDF Valid.
Dengan skema pengujian seperti Gambar 4.22.

Gambar 4. 22. Skema pengujian beberapa file pdf

Hasil pengujian disajikan dalam Table 4.4.

Tabel 4. 4. Perbandingan waktu proses beberapa file pdf (detik)

Web Browser
Nama
file Google Chrome Microsoft Edge Mozilla Firefox
(ukura
n KB)
Kunc Kunc Kunc
Sign Ver Sign Ver Sign Ver
i i i

File1.p 0.015 1.281 0.003 0.012 1.060 0.005 0.012 1.093 0.002
df (6 4 4 3 9 1 7 3 1 1
KB)

File2.p 0.014 1.044 0.006 0.015 1.157 0.008 0.013 1.122 0.006
df (245 5 8 7 4 3 2 2 1 6
KB)

Universitas Sumatera Utara


Universitas Sumatera Utara
76

File3.p 0.010 1.071 0.014 0.015 1.086 0.016 0.015 1.105 0.015
df (893 8 7 8 1 2 9 5 0 8
KB)

File4.p 0.014 1.127 0.059 0.013 1.099 0.050 0.012 1.116 0.050
df 2 0 3 0 4 6 0 7 5
(3544
KB)

File5.p 0.012 1.119 0.097 0.013 1.162 0.098 0.011 1.223 0.088
df 9 4 8 5 8 5 3 0 8
(6632
KB)

File6.p 0.012 1.313 0.317 0.010 1.349 0.314 0.012 1.427 0.337
df 8 2 4 6 0 8 1 0 9
(23285
KB)

Rata- 0.013 1.159 0.083 0.013 1.152 0.082 0.012 1.181 0.083
rata 4 6 2 4 4 5 7 1 6

Total
rata-
rata
1.2562 1.2483 1.2775
(Kunci
+ sign +
ver)

Berdasarkan Tabel 4.4, dikarenakan inputan bilangan prima pada semua file sama
(yaitu p = 499 dan q = 503), maka hasil kunci publik dan kunci rahasia pada semua file
pdf adalah sama (kunci publik[n, e] = [250997, 5] dan kunci rahasia[d] = [199997])
sehingga waktu proses pembangkitan kunci hampir tidak berbeda di antara 6 file.
Grafik 4.1 dan Grafik 4.2 merupakan penyajian grafik dari Tabel 4.4 yang masing-

Universitas Sumatera Utara


Universitas Sumatera Utara
77

masing grafik adalah perbandingan waktu proses signature dan perbandingan waktu
proses verifikasi.

1.6000

1.4000

1.2000
Waktu Proses

1.0000

0.8000 Chrome
Edge
0.6000
Firefox
0.4000

0.2000

0.0000
file1 file2 file3 file4 file5 file6
File PDF

Grafik 4. 1. Perbandingan Waktu Proses Signature


Waktu proses signature pada Grafik 4.1 menujukkan bahwa ketiga browser
mempunyai waktu proses signature yang berdekatan.

0.4000

0.3500

0.3000
Waktu Proses

0.2500

0.2000

0.1500

0.1000

0.0500

0.0000
file1 file2 file3 file4 file5 file6
File PDF

Chrome Edge Firefox

Grafik 4. 2. Perbandingan Waktu Proses Verifikasi

Universitas Sumatera Utara


Universitas Sumatera Utara
78

Berdasarkan Grafik 4.2, semakin besar ukuran memori file PDF semakin lama proses
verifikasi yang dibutuhkan berpengaruh pada ketiga web browser tersebut. File6 yang
merupakan file terbesar mempunyai waktu yang lebih tinggi dibanding file lain.

Berdasarkan Grafik 4.1 dan Grafik 4.2, dapat disimpulkan bahwa waktu proses
antara ketiga web browser tidak menunjukkan perbedaan yang signifikan jauh. Jadi,
user dapat menggunakan sistem dengan browser apapun. Tabel 4.5 merupakan rata-
rata waktu signature dan verifikasi tiap 6 file yang diuji.

Tabel 4. 5. Rata-rata waktu proses signature dan verifikasi ketiga web browser tiap 6
file PDF (detik)

Nama file (ukuran


Signature Verifikasi
KB)

File1.pdf (6 KB) 1.1448 0.0037

File2.pdf (245 KB) 1.1081 0.0072

File3.pdf (893 KB) 1.0876 0.0158

File4.pdf (3544 KB) 1.1144 0.0535

File5.pdf (6632 KB) 1.1684 0.0950

File6.pdf (23285
1.3631 0.3234
KB)

Rata-rata 1.1644 0.0831

Sedangkan Grafik 4.3 menunjukkan perbandingan waktu proses antara proses


signature dan verifikasi pada 6 file pdf.

Universitas Sumatera Utara


Universitas Sumatera Utara
79

1.6000

1.4000

1.2000
Waktu Proses

1.0000

0.8000

0.6000

0.4000

0.2000

0.0000
File 1 File 2 File 3 File 4 File 5 File 6
File PDF

Signature Verifikasi

Grafik 4. 3. Perbandingan waktu proses signature dan verifikasi


Berdasarkan Grafik 4.3. waktu proses signature lebih tinggi dibandingkan verifikasi
dikarenakan proses signature = md mod n yang mana nilai d = 199997 adalah bilangan
perpangkatan lebih besar dibandingkan verifikasi = signaturee mod n yang mana nilai e
= 5.

Universitas Sumatera Utara


Universitas Sumatera Utara
BAB 5

KESIMPULAN DAN SARAN

Bab ini membahas tentang kesimpulan yang dapat diambil berdasarkan analisis dan
pengujian untuk menjawab rumusan masalah dalam penelitian ini. Serta saran dari
penulis untuk pengembangan sistem ini.

5.1. Kesimpulan

Sistem telah berjalan dengan baik pada web browser Google Chrome, Microsoft Edge,
dan Mozilla Firefox sesuai dengan tujuan Digital Signature. Yaitu menjamin keamanan
pada keaslian PDF dari segi otentikasi, anti penyangkalan, dan integritas file. Penelitian
ini menggunakan algoritma RSA Digital Signature dan Fungsi Hash SHA-3 telah
mendapatkan kesimpulan sebagai berikut:

1. Sistem dapat menjamin otentikasi karena pengirim dan penerima melakukan


interaksi melalui pertukaran informasi kunci, tanda tangan, dan file PDF. Yaitu
pengirim membuat kunci publik dan kunci rahasia menggunakan algoritma RSA.
Lalu menggunakan kunci rahasia untuk menandatangani file PDF yang dapat
dikirimkan ke penerima melalui database. Sedangkan penerima dapat
menverifikasi keaslian file PDF menggunakan tanda tangan dan kunci publik.
2. Sistem dapat menjamin anti penyangkalan karena kunci publik, kunci rahasia, dan
tanda tangan telah dibuat oleh pengirim yang tersimpan dalam database sehingga
pengirim tidak dapat menyangkal bahwa tanda tangan tersebut adalah buatan
pembuat atau pengirim.
3. Sistem dapat menjamin integritas file PDF melalui fungsi hash SHA-3. Jika terjadi
perubahan pada isi file PDF. Maka message digest ketika verifikasi yang dihasilkan
akan berbeda dengan message digest ketika signature. Sehingga jika nilai message
digest dibandingkan dengan nilai verifikasi, maka hasilnya tidak valid.

Universitas Sumatera Utara


Universitas Sumatera Utara
81

4. Perbedaan waktu proses pada web browser Google Chrome, Microsoft Edge, dan
Mozilla Firefox tidak menunjukkan perbedaan waktu signifikan jauh.

5.2. Saran

Saran yang diberikan oleh penulis untuk pengembangan selanjutnya pada sistem ini
sebagai berikut:

1. Sistem ini hanya mampu mengamankan file PDF dari segi otentikasi, anti
penyangkalan, dan integritas file. Diharapkan pengembangan selanjutnya
menggunakan algoritma kriptografi tambahan agar keamanan semakin terjamin.
2. Diharapkan pengembangan selanjutnya menggunakan algoritma kunci publik lain
yang baru atau lebih baik lagi untuk skema Digital Signature.
3. Sistem diharapkan dapat menjamin keaslian file berformat docx, ppt, xls, dan
sebagainya.
4. Sistem diharapkan dapat mengolah bilangan prima yang lebih besar dari 1000 agar
algoritma RSA dapat membangkitkan kunci yang lebih aman.
5. Sebaiknya sistem menggunakan Bahasa pemrograman lain yang dapat menghitung
nilai yang lebih besar sesuai dengan algoritma RSA Digital Signature.

Universitas Sumatera Utara


Universitas Sumatera Utara
82

DAFTAR PUSTAKA

Adeshina, A. M. (2020). Evaluation of Elliptic Curve El-Gamal and RSA Public-Key


Cryptosystems for Digital Signature, 4(1), 36–49.

Kompas.com. (2020). Tiga Pekan sejak Pengesahan, Naskah UU Cipta Kerja Terus
Berubah dan Belum Bisa Diakses. Retrieved December 20, 2020, from
https://nasional.kompas.com/read/2020/10/26/10510741/tiga-pekan-sejak-
pengesahan-naskah-uu-cipta-kerja-terus-berubah-dan-belum?page=all

Malik Hakim, A. J., & Afifah S, N. N. (2020). DIGITAL SIGNATURE


MENGGUNAKAN METODE MD5, (January).

Martin, K. M. (2013). Everyday Cryptography Fundamental Principles and


Applications. Everyday Cryptography. Oxford University Press Inc., New York.
http://doi.org/10.1093/acprof:oso/9780199695591.001.0001

Nurhaida, I., Ramayanti, D., & Riesaputra, R. (2017). Digital Signature & Encryption
Implementation for Increasing Authentication, Integrity, Security and Data Non-
Repudiation. International Research Journal of Computer Science (IRJCS) Issue,
4(11), 4–14. http://doi.org/10.26562/IRJCS.2017.NVCS10080

Pittalia, P. P. (2019). A Comparative Study of Hash Algorithms in Cryptography.


International Journal of Computer Science and Mobile Computing, 8(6), 147–152.
Retrieved from www.ijcsmc.com

Pooja, & Yadav, M. (2018). Digital Signature. International Journal of Scientific


Research in Computer Science, Engineering and Information Technology, 3(6),
71–75. Retrieved from https://www.bcircle.co.th/2017/09/30/digital-signature/

Pranata, A., & Iryanto, C. (2019). DIGITAL SIGNATURE USING RSA DAN SHA -
1 Anggi Pranata 1 ) , Cahyo DIGITAL SIGNATURE USING RSA DAN SHA –
1, (December).

Sari, M. P. (2021). Analisis Algoritma SHA-3 Keamanan pada Data Pribadi.


TECNOSCIENZA, 5(2), 231–242.

Soleh, M. Y. (2011). Studi dan Implementasi Algoritma Keccak. Program Studi Teknik
Informatika Sekolah Teknik Elektro Dan Informatika Institut Teknologi Bandung.

Stallings, W. (2011). Network Security Essentials: Applications and Standards 4th


Edition (4th ed.). New Jersey: Prentice Hall.

Stinson, D. R., & Paterson, M. B. (2018). Crytography Theory and Practice Fourth
Edition (4th ed.). Boca Raton: CRC Press, Taylor & Francis Group.

Wadisman, C., Nozomi, I., & Rahmawati, S. (2021). Implementation of cryptography

Universitas Sumatera Utara


Universitas Sumatera Utara
83

Merkle-Hellman Knapsack combination, discrete algorithm and ASCII table


modification for PHP source code security. IOP Conference Series: Earth and
Environmental Science, 704(1). http://doi.org/10.1088/1755-1315/704/1/012044

Universitas Sumatera Utara


Universitas Sumatera Utara
A-1

LISTING PROGRAM

sign_controller.php

<?php

require_once("../controller/connect.php");

require_once("../controller/auth.php");

function e_key($lambda_n){

for ($e = 2; $e < $lambda_n; $e++) {

if (gmp_strval(gmp_gcd($e, $lambda_n)) == 1) {

return $e;

return false;

function d_key($e, $lambda_n){

for ($d = 2; $d < $lambda_n; $d++) {

if ($d * $e % $lambda_n == 1) {

return $d;

return false;

function renderUser($connect){

$user_check = "SELECT * FROM users";

$uchk_query = $connect->query($user_check);

Universitas Sumatera Utara


Universitas Sumatera Utara
A-2

$datas_user = $uchk_query->fetchAll(PDO::FETCH_ASSOC);

return $datas_user;

if (isset($_POST['signnow'])) {

// mulai waktu proses kunci

$start_timeK = microtime(true);

$user_received = $_POST['username'];

$prime_p = $_POST['pprime'];

$prime_q = $_POST['qprime'];

if (!$prime_p || !$prime_q) {

header("Location: ../view/signature.php?status=primes-error");

} elseif ($prime_p === $prime_q) {

header("Location: ../view/signature.php?status=primes-same");

else {

$pdf_name = $_FILES['pdfupload']['name'];

$pdf_temp = $_FILES['pdfupload']['tmp_name'];

$ext = pathinfo($pdf_name, PATHINFO_EXTENSION);

if ($ext == 'pdf') {

Universitas Sumatera Utara


Universitas Sumatera Utara
A-3

$senderID = $_SESSION['user']['id'];

$senderUN = $_SESSION['user']['username'];

$n = $prime_p * $prime_q;

$lambda_n = ($prime_p - 1) * ($prime_q - 1);

$e = e_key($lambda_n);

$d = d_key($e, $lambda_n);

// selesai waktu kunci

$end_timeK = microtime(true);

$execution_timeK = ($end_timeK - $start_timeK);

// waktu proses signature

$start_timeS = microtime(true);

// pindahkan pdf

$dir = "../pdffiles/";

$pdf_newname = $senderUN . "_" . date("Ymd-His") . "_" . $pdf_name;

$pdf_upload = move_uploaded_file($pdf_temp, $dir . $pdf_newname);

if ($pdf_upload) {

// hashing pdf

$hash_input = file_get_contents($dir . $pdf_newname);

$hash_output = hash('sha3-256', $hash_input);

Universitas Sumatera Utara


Universitas Sumatera Utara
A-4

$hash_array = str_split($hash_output, 4);

// proses signature

$sign_array = [];

foreach ($hash_array as $hash_value) {

$data[0] = 1;

$mValue = hexdec($hash_value);

for ($i = 0; $i <= $d; $i++) {

$rest[$i] = pow($mValue, 1) % $n;

if ($data[$i] > $n) {

$data[$i + 1] = $data[$i] * $rest[$i] % $n;

} else {

$data[$i + 1] = $data[$i] * $rest[$i];

$get_sign = $data[$d] % $n;

array_push($sign_array, dechex($get_sign));

$signv_id = hexdec($sign_array[0].$sign_array[1]);

$sign_value = implode(":", $sign_array);

// selesai hitung waktu proses signature

$end_timeS = microtime(true);

$execution_timeS = ($end_timeS - $start_timeS);

$execution_time = $execution_timeK + $execution_timeS;

Universitas Sumatera Utara


Universitas Sumatera Utara
A-5

//cek user penerima di database

$datas_user = renderUser($connect);

foreach ($datas_user as $data_user) {

if ($data_user['username'] == $user_received) {

$username_r = $user_received;

$id_r = $data_user['id'];

// username kosong atau tersedia

if (($username_r == $user_received) || !$user_received) {

// simpan di database signature

$sign_sql = "INSERT INTO signature (prime_p, prime_q, pubkey_n,


pubkey_e, private_key, message_digest, signv_id, sign_value, sign_byID,
sign_by, pdf_name, pdf_newname, user_received, time_k, time_s,process_time)
VALUES

('$prime_p', '$prime_q', '$n', '$e', '$d', '$hash_output', '$signv_id',


'$sign_value','$senderID','$senderUN', '$pdf_name', '$pdf_newname',
'$username_r', '$execution_timeK', '$execution_timeS','$execution_time')";

$sign_query = $connect->query($sign_sql);

//username kosong

if (!$user_received) {

if ($sign_query) {

header("Location: ../view/signature.php?status=sign-success");

} else {

header("Location: ../view/signature.php?status=query-error");

}
Universitas Sumatera Utara
Universitas Sumatera Utara
A-6

// username tersedia

if ($username_r == $user_received) {

$sign_id = "SELECT * FROM signature";

$sign_chk = $connect->query($sign_id);

$datas_sign = $sign_chk->fetchAll(PDO::FETCH_ASSOC);

foreach ($datas_sign as $data_sign) {

if ($data_sign['pdf_newname'] == $pdf_newname) {

$sign_idf = $data_sign['id'];

// simpan di database verification

$ver_sql = "INSERT INTO verification (sign_id, received_id,


sender_uname, signv_id, sign_value, pdf_name, pdf_newname, validation)

VALUES ('$sign_idf', '$id_r', '$senderUN',


'$signv_id','$sign_value', '$pdf_name','$pdf_newname', 'Not Verified')";

$ver_query = $connect->query($ver_sql);

if ($sign_query && $ver_query) {

header("Location: ../view/signature.php?status=signsend-
success");

} else {

header("Location: ../view/signature.php?status=query-error");

else {

Universitas Sumatera Utara


Universitas Sumatera Utara
A-7

header("Location: ../view/signature.php?status=username-notfound");

} else {

header("Location: ../view/signature.php?status=upload-error");

} else {

header("Location: ../view/signature.php?status=ext-error");

} else {

die("access denied");

?>

Universitas Sumatera Utara


Universitas Sumatera Utara
A-8

ver_controller.php

<?php

require_once("../controller/connect.php");

require_once("../controller/auth.php");

function verification($getSignV, $getPubKeyN, $getPubKeyE){

$signs = explode(":",$getSignV);

$ver_array = [];

foreach ($signs as $sign) {

$sign_dec = hexdec($sign);

$data[0] = 1;

for ($i=0; $i <= $getPubKeyE ; $i++) {

$rest[$i] = pow($sign_dec, 1) % $getPubKeyN;

if ($data[$i] > $getPubKeyN) {

$data[$i+1] = $data[$i] * $rest[$i] % $getPubKeyN;

} else {

$data[$i+1] = $data[$i] * $rest[$i];

$get_ver = $data[$getPubKeyE] % $getPubKeyN;

array_push($ver_array, dechex($get_ver));

$newVer = [];

foreach ($ver_array as $ver) {

Universitas Sumatera Utara


Universitas Sumatera Utara
A-9

if (strlen($ver) >= 4) {

array_push($newVer, $ver);

else if (strlen($ver) < 4) {

$ver_combine = "0".$ver;

array_push($newVer, $ver_combine);

$get_ver = implode("", $newVer);

return $get_ver;

function sha3Hash($getPDF){

$dir = "../pdffiles/";

$hash_input = file_get_contents($dir . $getPDF);

$hash_output = hash('sha3-256', $hash_input);

return $hash_output;

// Mulai waktu proses

$start_time = microtime(true);

Universitas Sumatera Utara


Universitas Sumatera Utara
A-10

// verifikasi langsung dari pengirim

if (isset($_GET['verification'])) {

$dataID = $_GET['verification'];

$renderData = "SELECT * FROM verification WHERE id = $dataID";

$dataCheck = $connect->query($renderData);

$datas = $dataCheck->fetchAll(PDO::FETCH_ASSOC);

foreach ($datas as $data) {

$getID = $data['id'];

$getSignId = $data['sign_id'];

$getPDF = $data['pdf_newname'];

$getSignV = $data['sign_value'];

// cari kunci publik

$signData = "SELECT * FROM signature WHERE id = $getSignId";

$signCheck = $connect->query($signData);

$signDatas = $signCheck->fetchAll(PDO::FETCH_ASSOC);

foreach ($signDatas as $signData){

$getPubKeyN = $signData['pubkey_n'];

$getPubKeyE = $signData['pubkey_e'];

$getSignBy = $signData['sign_by'];

// hashing pdf

Universitas Sumatera Utara


Universitas Sumatera Utara
A-11

$hash_values = sha3Hash($getPDF);

//proses verifikasi

$ver = verification($getSignV, $getPubKeyN, $getPubKeyE);

//bandingkan verifikasi dengan nilai message digest

if ($ver == $hash_values) {

$verify = "Valid";

} else {

$verify = "Tidak valid";

// selesai waktu proses

$end_time = microtime(true);

$execution_time = ($end_time - $start_time);

// update database

$sql = "UPDATE verification SET pubkey_n = '$getPubKeyN', pubkey_e =


'$getPubKeyE', message_digest = '$hash_values', sign_by = '$getSignBy' ,
ver_value = '$ver', validation = '$verify', process_time = '$execution_time'
WHERE id=$getID AND sign_id = $getSignId";

$query = $connect->query($sql);

if ($query) {

header("Location: ../view/ver-
dt.php?info=$dataID&verify=success&hex=$hash_values&ver=$ver");

} else {

header("Location: ../view/ver-dt.php?info=$dataID&verify=failed");

Universitas Sumatera Utara


Universitas Sumatera Utara
A-12

// verifikasi manual

if (isset($_POST['vernow'])) {

$signValue = $_POST['signvalue'];

$receivedID = $_SESSION['user']['id'];

if (!$signValue) {

header("Location: ../view/verification.php?status=input-error");

} else {

$pdf_name = $_FILES['uploadpdf']['name'];

$pdf_temp = $_FILES['uploadpdf']['tmp_name'];

$ext = pathinfo($pdf_name, PATHINFO_EXTENSION);

if ($ext == 'pdf') {

// cek id signature

$check_data = "SELECT * FROM signature WHERE signv_id =


$signValue";

$query = $connect->query($check_data);

$querydatas = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($querydatas as $querydata) {

$signID = $querydata['id'];

$getSignV = $querydata['sign_value'];

$getSignVid = $querydata['signv_id'];

$getSignBy = $querydata['sign_by'];

$getN = $querydata['pubkey_n'];

$getE = $querydata['pubkey_e'];

Universitas Sumatera Utara


Universitas Sumatera Utara
A-13

if ($getSignVid === $signValue) {

//upload pdf

$dir = "../pdffiles/";

$pdf_newname = "(".date("Ymd-His").")".$pdf_name;

$pdf_upload = move_uploaded_file($pdf_temp, $dir . $pdf_newname);

if ($pdf_upload) {

// hashing pdf

$hash_values = sha3Hash($pdf_newname);

// proses verifikasi

$ver = verification($getSignV, $getN, $getE);

//bandingkan verifikasi dengan nilai message digest

if ($ver == $hash_values) {

$verify = "Valid";

} else {

$verify = "Tidak valid";

// selesai waktu proses

$end_time = microtime(true);

$execution_time = ($end_time - $start_time);

// simpan di database verification

$sql = "INSERT INTO verification (sign_id, received_id, pubkey_n,


pubkey_e, message_digest, signv_id, sign_value, sign_by, ver_value, pdf_name,
pdf_newname, validation, process_time) VALUES ('$signID',
'$receivedID','$getN', '$getE', '$hash_values', '$getSignVid', '$getSignV',
'$getSignBy', '$ver', '$pdf_name', '$pdf_newname', '$verify', '$execution_time')";

Universitas Sumatera Utara


Universitas Sumatera Utara
A-14

$query = $connect->query($sql);

if ($query) {

header("Location:
../view/verification.php?status=success&hex=$hash_values&ver=$ver");

} else {

header("Location: ../view/verification.php?status=failed");

} else {

header("Location: ../view/verification.php?status=pdf-failed");

} else {

header("Location: ../view/verification.php?status=input-
notfound&sign=$getSignFr");

} else {

header("Location: ../view/verification.php?status=ext-error");

else {

die("Access Denied!");

?>

Universitas Sumatera Utara


Universitas Sumatera Utara
CURRICULUM VITAE

Data Pribadi

Nama Lengkap : Arya Duta Dias

Tempat/ Tanggal Lahir : Medan/ 20 Agustus 1999

Jenis Kelamin : Laki-Laki

Agama : Islam

Kebangsaan : Indonesia

Alamat : JL. Bubu Gg Subur No.1 Medan,

Sumatera Utara

Telepon : +62 815 2456 7898

Email : aryadutadias@gmail.com

Pendidikan Formal

• [2017 – 2021] S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi


Informasi Universitas Sumatera Utara
• [2014 – 2017] SMA Negeri 11 Medan
• [2011 – 2014] SMP Negeri 27 Medan
• [2005 – 2011] SD Negeri 060877 Medan

Pendidikan Non-Formal

• [2015 – 2017] Primagama, Medan

Pengalaman Kerja

• [2020] Praktik Kerja Lapangan (Front-end Web Developer) PT. Nusantara


Informasi Citra Teknologi

Kemampuan

Bahasa : Indonesia, Inggris

Universitas Sumatera Utara


Universitas Sumatera Utara
B-2

Bahasa Pemrograman : PHP, Python, Javascript

Lainnya : Ms. Office, UI/UX, HTML, CSS

Universitas Sumatera Utara


Universitas Sumatera Utara
Universitas Sumatera Utara

Anda mungkin juga menyukai