Anda di halaman 1dari 109

TEKNIK SIGNCRYPTION DENGAN ALGORITMA GENERALIZATION

OF THE ELGAMAL DAN ALGORITMA ONG-SCHNORR-SHAMIR


PADA PESAN DIGITAL

SKRIPSI

SELFHY AGINA GINTING


181401009

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2022

UNIVERSITAS SUMATERA UTARA


TEKNIK SIGNCRYPTION DENGAN ALGORITMA GENERALIZATION
OF THE ELGAMAL DAN ALGORITMA ONG-SCHNORR-SHAMIR
PADA PESAN DIGITAL

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah


Sarjana Ilmu Komputer

SELFHY AGINA GINTING


181401009

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2022

UNIVERSITAS SUMATERA UTARA


i

PERSETUJUAN
ii

PERNYATAAN

TEKNIK SIGNCRYPTION DENGAN ALGORITMA GENERALIZATION


OF THE ELGAMAL DAN ALGORITMA ONG-SCHNORR-SHAMIR
PADA PESAN DIGITAL

SKRIPSI

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

Medan, Januari 2022

Selfhy Agina Ginting


181401009
iii

PENGHARGAAN

Dengan menyebut nama Allah Subhanahu Wa Ta’aala yang Maha Pengasih lagi
Maha Penyayang, penulis panjatkan segala puji dan syukur atas kehadirat-Nya yang
telah melimpahkan rahmat dan hidayah kepada penulis sehingga penulis dapat
menjalankan perkuliahan sampai kepada penyusunan skripsi ini.

Penulis mendoakan keberkahan kepada kedua orang tua tercinta Ibu Rina
Sembiring dan Bapak Denny M. Ginting yang senantiasa memberikan do’a, kasih
sayang, dan kebahagiaan kepada penulis sehingga penulis dapat memperoleh
pendidikan yang menjadi jalan untuk sampai kepada penyusunan skripsi ini.

Pada kesempatan ini juga penulis memberikan ucapan terima kasih yang
sebesar-besarnya kepada semua pihak yang telah memberikan bimbingan dan
bantuan atas kekurangan yang dilakukan oleh penulis:
1. Bapak Dr. Muriyanto Amin, S.Sos., M.Si. 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. Bapak Dr. Mohammad Andri Budiman, S.T., M.Comp.Sc., M.E.M., S.C.J.P.
selaku Wakil Dekan 1 Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara. Dan selaku Dosen Pembimbing 1 yang telah
memberikan motivasi yang luar biasa kepada penulis, serta dengan penuh
kesabaran telah memberikan bimbingan yang berharga dan bantuan kepada
penulis.
4. Ibu Dr. Amalia, S.T., M.T. selaku Ketua Program Studi S-1 Ilmu Komputer
Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
5. Ibu Dian Rachmawati, S.Si, M.Kom. selaku Dosen Pembimbing Akademik
dan Dosen Pembimbing II yang telah memberikan motivasi yang luar biasa
kepada penulis selama penulis menjalankan perkuliahan sampai kepada
penyusunan skripsi ini, serta memberikan bimbingan dan saran yang berharga
kepada penulis.
iv

6. Ibu Dr. Elviawaty Muisa Zamzami ST., MT., MM selaku Dosen Pembanding
I yang telah memberikan saran dan kritik yang membangun kepada penulis
terhadap penyusunan skripsi ini.
7. Bapak Dr. Eng Ade Candra ST., M.Kom. selaku Dosen Pembanding II yang
telah memberikan saran, kritik, dan motivasi yang membangun kepada penulis
terhadap penyusunan skripsi ini.
8. Seluruh Bapak dan Ibu Dosen Program Studi S-1 Ilmu Komputer yang telah
memberikan waktu dan tenaga untuk mengajar dan membimbing sehingga
penulis dapat sampai kepada tahap penyusunan skripsi ini.
9. Seluruh Staf Pegawai Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara yang telah banyak memberikan bantuan kepada
penulis selama masa perkuliahan sampai kepada tahap penyusunan skripsi ini.
10. Kakak Ira Yuta Merlendy, Kakak Marisa Aldriana, Kakak Cindy Laurent
Ginting, Kakak Defhy Regina Ginting dan juga sepupu penulis Muhammad
Syahbana Ginting yang telah mendo’akan memberikan kebahagiaan dan
dukungan yang berharga, serta menjadi sumber motivasi dan panutan untuk
penulis.
11. Sahabat rekreasi penulis, Muhammad Harris Pratama, Zettaya Serepina, Yulia
Permata Sukma Nasution, Rima Ara Rizki, Nafira Yuzra, Haratua Aurelio
Siahaan yang telah memberikan kebahagiaan, warna, dan dukungan yang
berharga kepada penulis.
12. Sahabat penulis, Nabila Putri yang telah memberikan dukungan dan motivasi
kepada penulis.
13. Sahabat dan teman-teman seperkuliahan penulis, Rhania Ramadina Nasution,
Rivany Indiyati, Asri Yulianingrum, Annisa Mukhri, Nikita Ananda Putri
Masaling, Afita Puspa Sari, Nurul Liza Sevita, Tengku Azzahra, Devina Kaur,
Jessica Graciela, Shinta Waoma, Dwi Aulia Andini, Benyamin Pravalent
Siregar, Krisna Febriansyah, Mohammad Raja, Dimas Eka Putra, Paskahl
Herbert Simarmata, Dharmawan, M. Fahrur Rozi, Alexander Tarigan, M.
Ramadhan, M. Syarif Ridho Rambe, Fauzan Zaman, Yudha Triya, Khairul
Ariandi, Kelvin Wijaya dan teman-teman lainnya yang belum dapat penulis
sebutkan satu persatu.
v

14. Teman-teman Stambuk 2018 terkhusus Kom C yang telah memberikan


pengalaman belajar bersama yang berharga kepada penulis.
15. Kakak dan Abang penulis, Kak Ika Nurul Faradillah, Kak Mega Ayuamartha
Putri, Kak Indah Permata Syahnan, Kak Sari Wardhatul Jannah, Kak Aisyah
Fajarini Sinaga, Kak Afifah Rianti, Kak Ros Indah Mawarini, Kak Anne Geby
Aisyah, Kak Shabrina Junita Tambunan, Bang Weliansyah Arundhani yang
telah memberikan motivasi, dukungan, dan mendengarkan segala pertanyaan
dan keluh kesah penulis selama penulis menjalani perkuliahan sampai kepada
penyusunan skripsi ini.
16. Keluarga Besar IKLC USU terkhusus Bang Arif Iskandar, M. Erald Setyaki
Siregar, Altaha, Arvin Sebastian Chandra yang telah memberikan dukungan,
keceriaan dan pengalaman mengajar bersama yang berharga kepada penulis.
17. Keluarga IMILKOM Periode 2020-2021 terkhusus Biro Administrasi dan
Kesekretariatan yang telah memberikan pengalaman bersama yang berharga
kepada penulis.
18. Rekan-rekan PEMA FASILKOM-TI Kabinet Integritas terkhusus Bidang
Vorkesma.
19. Keluarga besar Narasi.tv terkhusus “Kelas Bunga Matahari” dengan mentor
terseru sejagat raya, Mas Aco (Ahmad Syarif). Dan teman-teman
seperjuangan, Sonia Halim, Ni luh Lovelina Dewi, Raisya Aquino, Suryanto.
Dan juga frontend & backend engineer team, Bang Martua, Diaz Adha, Mas
Mughie yang telah memberikan dukungan, motivasi, keceriaan, dan
pengalaman berharga kepada penulis di sela-sela waktu penyusunan skripsi ini.
Serta kepada semua pihak yang telah membantu penulis yang belum dapat
penulis sertakan satu-persatu. Semoga Tuhan Yang Maha Kuasa memberikan
keberkahan atas kebaikan dan bantuan yang telah diberikan.

Medan, Januari 2022


Penulis,

Selfhy Agina Ginting


vi

ABSTRAK

Semakin banyaknya pertukaran pesan yang dilakukan secara jarak jauh


menyebabkan keharusan pesan tersebut dijaga kerahasiaannya. Selain itu, pihak-
pihak yang terlibat juga harus dijamin keabsahannya. Metode yang dapat digunakan
untuk memenuhi kedua tujuan tersebut adalah menggunakan metode kriptografi
dengan pengaturan kunci publik. Pada penelitian ini, peneliti
mengimplementasikan teknik signcryption dengan skema encrypt-then-sign dengan
melakukan proses enkripsi dan dekripsi pesan menggunakan Algoritma
Generalization of the ElGamal yang memiliki keunggulan tingkat keamanan dari
Algoritma ElGamal sebelumnya. Kemudian melakukan proses pembangkitan tanda
tangan digital dan verifikasi menggunakan Algoritma Ong-Schnorr-Shamir yang
memiliki keunggulan waktu komputasi yang cepat dengan tingkat keamanan yang
setara dengan Algoritma Ong-Schnorr sebelumnya. Penelitian ini memperlihatkan
hasil dari pengujian pesan yang berupa teks dengan ekstensi *.docx atau *txt yang
memiliki jumlah karakter hingga 10000 karakter pada proses encryption dengan
Algoritma Generalization of the ElGamal dapat berjalan dengan baik. Namun,
ketika ciphertext yang dihasilkan terlalu besar maka proses selanjutnya yaitu proses
signing dengan Algoritma Ong-Schnorr-Shamir akan menghasilkan keluaran
“overflow” karena terlalu besar. Penelitian ini juga memperlihatkan bahwa proses
encrypt-then-sign membutuhkan waktu yang lebih lama daripada proses verify-
then-decrypt.

Kata Kunci: Generalization of the ElGamal, Ong-Schnorr-Shamir, Signcryption,


Kriptografi kunci publik.
vii

ABSTRACT

The increasing number of messages that are exchanged remotely causes the need
for these messages to be kept confidential. In addition, the parties involved must
also be guaranteed their validity. The method that can be used to fulfill these two
objectives is to use a cryptographic method with a public key setting. In this study,
the researcher implemented a signcryption technique with an encrypt-then-sign
scheme by encrypting and decrypting messages using the Generalization of the
ElGamal Algorithm which has a superior level of security from the previous
ElGamal Algorithm. Then perform the digital signature generation and verification
process using the Ong-Schnorr-Shamir Algorithm which has the advantage of fast
computation time with a level of security equivalent to the previous Ong-Schnorr
Algorithm. This study shows the results of testing messages in the form of text with
the extension *.docx or *txt which have a number of characters up to 10000
characters in the encryption process with the Generalization of the ElGamal
Algorithm can run well. However, when the resulting ciphertext is too large, the
next process, namely the signing process with the Ong-Schnorr-Shamir Algorithm,
will produce an "overflow" output because it is too large. This study also shows that
the encrypt-then-sign process takes longer than the verify-then-decrypt process.

Keywords: Generalization of the ElGamal, Ong-Schnorr-Shamir, Signcryption,


Public key cryptography.
viii

DAFTAR ISI

PERSETUJUAN ..................................................................................................... i

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

PENGHARGAAN ................................................................................................ iii

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

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

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

DAFTAR GAMBAR ............................................................................................ xi

DAFTAR TABEL .............................................................................................. xiii

BAB I 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 Penelitian yang Relevan ......................................................................... 4

1.7 Metodologi Penelitian............................................................................. 5

1.8 Sistematika Penulisan ............................................................................ 6

BAB II LANDASAN TEORI ............................................................................... 8

2.1 Kriptografi .............................................................................................. 8

2.1.1 Terminologi Kriptografi ................................................................. 8

2.1.2 Jenis Kriptografi ............................................................................. 9

2.2 Algoritma Digital Signature Kunci Publik ......................................... 10

2.3 Algoritma Agrawal-Biswas Pembangkit Bilangan Prima ................ 11

2.4 Algoritma Generalization of the ElGamal ........................................... 12

UNIVERSITAS SUMATERA UTARA


ix

2.3.1 Proses kerja Algoritma Generalization of the ElGamal ............. 13

2.3.2 Contoh Perhitungan Algoritma Generalization of the ElGamal 14

2.5 Algoritma Ong-Schnorr-Shamir ......................................................... 16

2.4.1 Proses Kerja Algoritma Ong-Schnorr-Shamir .......................... 17

2.4.2 Contoh Perhitungan Algoritma Ong-Schnorr-Shamir.............. 18

2.6 Teknik Signcryption dengan Algoritma Generalization of the


ElGamal dan Algoritma Ong-Schnorr-Shamir ............................................ 20

2.5.1 Contoh Perhitungan untuk Proses Teknik Signcryption ........... 21

BAB III ANALISIS DAN PERANCANGAN SISTEM ................................... 27

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

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

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

3.1.3 Diagram Umum Sistem................................................................. 29

3.2 Pemodelan Sistem ................................................................................. 30

3.2.1 Use Case Diagram .......................................................................... 31

3.2.2 Activity Diagram............................................................................. 31

3.2.3 Sequence Diagram ......................................................................... 36

3.3 Flowchart ............................................................................................... 37

3.3.1 Flowchart Pembangkitan Kunci pada Algoritma Generalization


of the ElGamal .............................................................................................. 37

3.3.2 Flowchart Pembangkitan Kunci pada Algoritma Ong-Schnorr-


Shamir ......................................................................................................... 38

3.3.3 Flowchart Sistem pada Proses Encryption dan Signing ............. 38

3.3.4 Flowchart Sistem pada Proses Verify dan Decryption ................ 39

3.4 Perancangan Interface ......................................................................... 40

3.4.1 Halaman Main Form ..................................................................... 40

3.4.2 Halaman Menu Form .................................................................... 41

UNIVERSITAS SUMATERA UTARA


x

3.4.3 Halaman Generate Key.................................................................. 42

3.4.4 Halaman Encrypt Then Sign......................................................... 44

3.4.5 Halaman Verify Then Decrypt ...................................................... 47

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM .............................. 50

4.1 Implementasi ......................................................................................... 50

4.1.1 Halaman Main Form ..................................................................... 50

4.1.2 Halaman Menu Form .................................................................... 51

4.1.3 Halaman Generate Key.................................................................. 52

4.1.4 Halaman Encrypt Then Sign......................................................... 54

4.1.5 Halaman Verify Then Decrypt ...................................................... 56

4.2 Pengujian Sistem .................................................................................. 58

4.2.1 Pengujian Pembangkitan Kunci .................................................. 59

4.2.2 Pengujian Encryption Algoritma Generalization of the


ElGamal..........................................................................................................62

4.2.3 Pengujian Signing Algoritma Ong-Schnorr-Shamir ................. 65

4.2.4 Pengujian Verify Algoritma Ong-Schnorr-Shamir .................... 71

4.2.5 Pengujian Decrypt Algoritma Generalization of the ElGamal ... 75

4.2.6 Pengujian Real Running Time pada Proses Encryption ............ 78

4.2.7 Pengujian Real Running Time pada Proses Signing ................. 79

4.2.8 Pengujian Real Running Time pada Proses Verify .................... 80

4.2.1 Pengujian Real Running Time pada Proses Decryption ............ 82

BAB V PENUTUP ............................................................................................... 83

5.1 Kesimpulan ........................................................................................... 83

5.2 Saran ...................................................................................................... 83

DAFTAR PUSTAKA .......................................................................................... 85

LAMPIRAN ....................................................................................................... A-1

UNIVERSITAS SUMATERA UTARA


xi

DAFTAR GAMBAR

Gambar 2.1 Proses Enkripsi dan Dekripsi .............................................................. 8


Gambar 2.2 Skema Kriptografi Kunci Publik ....................................................... 10
Gambar 3.1 Root Cause Analysis Tree Diagram .................................................. 28
Gambar 3.2 Arsitektur Umum Sistem................................................................... 30
Gambar 3.3 Use Case Diagram ............................................................................ 31
Gambar 3.4 Activity Diagram Pembangkitan Kunci Penerima ............................ 32
Gambar 3.5 Activity Diagram Pembangkitan Kunci Penerima ............................ 33
Gambar 3.6 Activity Diagram Proses Encryption dan Signing ............................. 34
Gambar 3.7 Activity Diagram Proses Verify dan Decryption ............................... 35
Gambar 3.8 Sequence Diagram ............................................................................ 36
Gambar 3.9 Flowchart Pembangkitan Kunci pada Algoritma Generalization of the
ElGamal ................................................................................................................ 37
Gambar 3.10 Flowchart Pembangkitan Kunci pada Algoritma Ong-Schnorr-
Shamir ................................................................................................................... 38
Gambar 3.11 Flowchart Sistem pada Proses Encryption dan Signing ................. 39
Gambar 3.12 Flowchart Sistem pada Proses Verify dan Decryption .................... 39
Gambar 3.13 Halaman Main Form ....................................................................... 40
Gambar 3.14 Halaman Menu Form ...................................................................... 41
Gambar 3.15 Halaman About ................................................................................ 42
Gambar 3.16 Halaman Generate Key ................................................................... 43
Gambar 3.17 Halaman Encryption ........................................................................ 44
Gambar 3.18 Halaman Signing ............................................................................ 46
Gambar 3.19 Halaman Verify................................................................................ 48
Gambar 3.20 Halaman Decryption ....................................................................... 49
Gambar 4.1 Halaman Main Form ......................................................................... 51
Gambar 4.2 Halaman Menu Form ........................................................................ 51
Gambar 4.3 Halaman About .................................................................................. 52
Gambar 4.4 Halaman Generate Key ..................................................................... 53
Gambar 4.5 Halaman Encryption .......................................................................... 54

UNIVERSITAS SUMATERA UTARA


xii

Gambar 4.6 Halaman Signing ............................................................................... 55


Gambar 4.7 Halaman Verify.................................................................................. 56
Gambar 4.8 Halaman Decryption ......................................................................... 58
Gambar 4.9 Proses Pembangkitan Kunci .............................................................. 59
Gambar 4.10 Proses Encryption............................................................................ 63
Gambar 4.11 Proses Signing ................................................................................. 65
Gambar 4.12 Proses Verify.................................................................................... 72
Gambar 4.13 Proses Decrypt................................................................................. 76
Gambar 4.14 Grafik Pengujian Waktu Proses Encryption.................................... 79
Gambar 4.15 Grafik Pengujian Waktu Proses Signing ......................................... 80
Gambar 4.16 Grafik Pengujian Waktu Proses Verify Ciphertext b ....................... 81
Gambar 4.17 Grafik Pengujian Waktu Proses Verify Ciphertext c ....................... 81
Gambar 4.18 Grafik Pengujian Waktu Proses Decryption ................................... 82

UNIVERSITAS SUMATERA UTARA


xiii

DAFTAR TABEL

Tabel 2.1 Perhitungan Ordo Modulo .....................................................................14


Tabel 2.2 Perhitungan Invers Modulo....................................................................18
Tabel 4.1 Perhitungan Invers Modulo....................................................................61
Tabel 4.2 Karakter Plaintext ke ASCII ..................................................................63
Tabel 4.3 Perhitungan Nilai i .................................................................................63
Tabel 4.4 Hasil ciphertext ......................................................................................64
Tabel 4.5 Ciphertext ...............................................................................................66
Tabel 4.6 Hasil Digital Signature ..........................................................................71
Tabel 4.7 Ciphertext b dan Digital Signature ........................................................73
Tabel 4.8 Ciphertext c dan Digital Signature ........................................................74
Tabel 4.9 Ciphertext ...............................................................................................76
Tabel 4.10 Hasil Decryption ..................................................................................78
Tabel 4.11 Pengujian Waktu Proses Encryption ....................................................78
Tabel 4.12 Pengujian Waktu Proses Signing .........................................................79
Tabel 4.13 Pengujian Waktu Proses Verify ............................................................80
Tabel 4.14 Pengujian Waktu Proses Decryption ...................................................82

UNIVERSITAS SUMATERA UTARA


1

BAB I
PENDAHULUAN

1.1 Latar Belakang


Pertukaran pesan secara jarak jauh menyebabkan keharusan pesan tersebut
dijaga kerahasiaannya. Selain itu pihak-pihak yang melakukan pengiriman
pesan harus dijamin keabsahannya untuk meyakinkan penerima bahwa pesan
tersebut adalah benar dibuat oleh pengirim yang sah. Solusi dari kedua
permasalahan tersebut adalah dengan menggunakan metode kriptografi yaitu
algoritma kunci publik dan algoritma tanda tangan digital kunci publik.

Kriptografi adalah ilmu dan seni yang bertujuan untuk menyelesaikan


permasalahan yang melibatkan kerahasiaan, autentikasi, integritas dan
nirpenyangkalan (Schneier, 2015). Kriptografi kunci publik adalah protokol
yang dikenalkan untuk menyelesaikan permasalahan keamanan pada proses
pertukaran kunci yang dilakukan pada skema algoritma kunci simetris. (Diffie
& Hellman, 1976). Algoritma kunci publik menggunakan dua kunci yang
berbeda untuk proses enkripsi dan dekripsi pesan yang disebut skema algoritma
kunci asimetris. Kunci publik akan dipublikasikan dan biasanya digunakan
dalam proses enkripsi (Budiman & Rachmawati, 2020). Sedangkan kunci
pribadi akan dirahasiakan dan digunakan dalam proses dekripsi.

Tujuan kerahasiaan pesan dapat dilakukan dengan mengenkripsi pesan


(plainteks) menggunakan sebuah kunci agar pesan tersebut menjadi bentuk
yang tidak bermakna (ciphertext). Selanjutnya ciphertext tersebut dapat
dikembalikan dengan proses dekripsi. Pada penelitian ini kerahasiaan pesan
dihasilkan menggunakan Algoritma Generalization of the ElGamal.

Algoritma Generalization of the ElGamal adalah pengembangan dari


Algoritma ElGamal yang bergantung pada permasalahan logaritma diskrit.
Algoritma Generalization of the ElGamal memiliki peningkatan keamanan
yang lebih tinggi dan mampu menahan Chosen Plaintext Attack (CPA) serta
Chosen Ciphertext Attack (CCA) (Dissanayake, 2018). Proses pembuatan kunci

UNIVERSITAS SUMATERA UTARA


2

publik dan proses dekripsi sama dengan Algoritma ElGamal aslinya. Selama
proses enkripsi dilakukan dua kali perhitungan eksponensial modular yaitu
dengan jumlah faktor prima dari plainteks dan dengan kunci pribadi.
(Ranasinghe & Athukorala, 2021).

Selain kerahasiaan pesan, tujuan kriptografi yang ingin dicapai dalam


penelitian ini adalah keaslian pesan (authenticity). Teknik autentikasi dapat
dilakukan oleh penerima pesan untuk melihat keaslian pesan dan keaslian
identitas pengirim ketika pesan telah diberi tanda tangan digital oleh pengirim
pesan. Namun dalam penelitian Algoritma Generalization of the ElGamal
hanya memperlihatkan teknik enkripsi dan dekripsi pesan yang memenuhi
tujuan kerahasiaan pesan. Oleh karena itu, pada penelitian kali ini penulis
menggunakan teknik signcryption yang menggunakan pengaturan kunci publik
dengan menambahkan algoritma digital signature untuk memenuhi keaslian
pesan. Pada penelitian ini algoritma digital signature yang digunakan adalah
Algoritma Ong-Schnorr-Shamir.

Teknik signcryption merupakan paradigma yang digunakan untuk mencapai


kerahasiaan (privacy) dan keaslian (authenticity) pada saat yang sama (An et
al., 2002). Keamanan signcryption dapat dihasilkan dengan dua metode yaitu
encrypt-then-sign dan sign-then-encrypt dengan definisi keamaan yang tepat
(An et al., 2002).

Algoritma Ong-Schnorr-Shamir adalah algoritma tanda tangan digital


(digital signature) yang didasarkan pada polinomial modulo dan merupakan
pengembangan dari Algoritma Ong-Schnorr yang memiliki keunggulan waktu
komputasi yang cepat dengan tingkat keamanan yang setara (Ong et al., 1984).
Selain itu Algoritma Ong-Schnorr-Shamir terbukti lebih efesien daripada RSA
Digital Signature Algorithm yang memiliki kemiripan dengan Algoritma DSA.
Skema Ong-Schnorr-Shamir adalah skema yang mudah diimplementasikan dan
terbukti aman dalam model random oracle (Schneier, 2015).

Untuk memberikan kerahasiaan sekaligus keaslian pada saat pertukaran


pesan secara jarak jauh, penulis mengimplementasikan teknik signcryption
dengan Algoritma Generalization of the ElGamal dan Algoritma Ong-Schnorr-

UNIVERSITAS SUMATERA UTARA


3

Shamir yang akan digunakan untuk proses encrypt then sign dan verify then
decrypt pada pesan.

1.2 Rumusan Masalah


Masalah yang ingin diselesaikan oleh peneliti dalam penelitian ini adalah
kerahasiaan sekaligus keaslian pada pesan. Sehingga dalam pengiriman pesan
jarak jauh dapat dibangun sistem keamanan yang mampu melindungi pesan dari
kejahatan pihak-pihak yang mencoba untuk melakukan pemalsuan pesan dan
menjaga kerahasiaan pesan agar tidak dapat dibaca oleh pihak-pihak yang tidak
berwenang.

1.3 Batasan Masalah


Terdapat beberapa batasan masalah dalam penelitian ini yaitu:

1. Implementasi pada penelitian ini berupa program yang melakukan proses


encrypt dan decrypt menggunakan Algoritma Generalization of the
ElGamal dan melakukan proses sign dan verify menggunakan Algoritma
Ong-Schnorr-Shamir.
2. Metode signcryption yang dilakukan yaitu encrypt-then-sign.
3. Jenis data yang diterima pada program adalah format data teks (*.txt dan
*.docx) dan proses encrypt-then-sign tidak dilakukan pada data selain teks,
seperti gambar dan tabel
4. Plaintext yang dienkripsi pada program adalah plaintext yang berukuran
kecil
5. Plaintext dan ciphertext berdasarkan kode ASCII yang berupa 256 karakter.
6. Pembangkitan bilangan prima dilakukan dengan Algoritma Agrawal-
Biswas
7. Program pada penelitian ini dirancang menggunakan bahasa pemrograman
C#.

UNIVERSITAS SUMATERA UTARA


4

1.4 Tujuan Penelitian


Penelitian ini bertujuan untuk membangun sebuah sistem yang dapat melakukan
enkripsi pada pesan teks menggunakan Algoritma Generalization of the
ElGamal dan dari hasil pesan yang terenkripsi tersebut dapat dibangkitkan
tanda tangan digitalnya menggunakan Algoritma Ong-Schnorr-Shamir agar
memberikan kerahasiaan dan keaslian pada pesan tersebut untuk selanjutnya
dikirimkan kepada penerima pesan.

1.5 Manfaat Penelitian


Manfaat dari penelitian ini diharapkan menghasilkan sebuah sistem yang dapat
digunakan untuk pengiriman pesan yang dirahasiakan menggunakan Algoritma
Generalization of the ElGamal dan sekaligus memberikan tanda tangan digital
pada pesan menggunakan Algoritma Ong-Schnorr-Shamir agar penerima pesan
dapat memvalidasi bahwa pesan yang diberikan adalah dari pihak yang sah.
Hasil penelitian juga dapat menjadi referensi untuk penelitian selanjutnya yang
berhubungan dengan proses signcryption.

1.6 Penelitian yang Relevan


Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan
dilakukan dalam penelitian ini antara lain:

1. Berdasarkan penelitian (Ranasinghe & Athukorala, 2021) yang berjudul


“Generalization of the ElGamal Public-Key Cryptosystem” peneliti
mengembangan Algoritma ElGamal dengan melakukan dua kali
perhitungan eksponensial modular yaitu dengan jumlah faktor prima dari
plainteks dan dengan kunci pribadi.
2. Berdasarkan penelitian (Dissanayake, 2018) yang berjudul “An
Improvement of the Basic El-Gamal Public Key Cryptosystem” peneliti
memperkenalkan peningkatan untuk sistem ElGamal menggunakan
faktorisasi prima dari plainteks yang mampu menahan CPA dan CCA.

UNIVERSITAS SUMATERA UTARA


5

3. Berdasarkan penelitian (Virgiawan & Utama, 2020) yang berjudul


“Penggunaan Metode Ong-Schnorr-Shamir Pada Pembuatan Tanda Tangan
Digital” peneliti membangun sistem untuk membuat pesan menggunakan
digital signature dengan Algoritma Ong-Schnorr-Shamir Digital Signature
Scheme
4. Berdasarkan penelitian (Dan, 2009) yang berjudul “Implementasi Tanda
Tangan Menggunakan Metode Ong-Schnorr-Shamir dan Euclidean Pada
Teks” peneliti membangun sistem berbasis GUI menggunakan metode Ong-
Schnorr-Shamir untuk tanda tangan digital pada file teks
5. Berdasarkan penelitian (Al-Zubi & Abu-Shareha, 2019) yang berjudul
“Efficient signcryption scheme based on El-Gamal and Schnorr” peneliti
memberikan hasil bahwa signcryption yang diusulkan mengurangi waktu
komputasi. Hasil tersebut mendukung analisis efisiensi mekanisme
signcryption.

1.7 Metodologi Penelitian


Metodologi penelitian yang dilakukan dalam penelitian ini adalah:

1. Studi Pustaka
Pada tahap ini penulis akan melakukan pengumpulan referensi yang
berkaitan dalam penelitian. Pengumpulan referensi yang terkait dengan
algoritma kunci publik Generalization of the ElGamal dan algoritma digital
signature Ong-Schnorr-Shamir yang akan digunakan dalam penulisan
penelitian ini. Referensi yang digunakan berupa jurnal, e-book, makalah
skripsi, dan situs internet.
2. Analisis dan Perancangan
Pada tahap ini penulis akan melakukan analisa terhadap hal – hal yang akan
dibutuhkan dalam penelitian dan membuat rancangan sistem dalam sebuah
diagram alir (flowchart) dan tampilan antarmuka (interface).
3. Implementasi

UNIVERSITAS SUMATERA UTARA


6

Pada tahap ini penulis akan melakukan implementasi algoritma


Generalization of the ElGamal dan algoritma Ong-Schnorr-Shamir
menggunakan bahasa pemrograman C# yang sesuai dengan alur diagram.
4. Pengujian
Pada tahap ini penulis akan melakukan uji coba pada file teks untuk proses
encrypt dan decrypt menggunakan algoritma Generalization of the ElGamal
dan proses sign dan verify menggunakan algoritma Ong-Schnorr-Shamir.
5. Dokumentasi
Pada tahap ini penulis akan melakukan proses dokumentasi mulai dari tahap
analisa hingga tahap pengujian yang dibentuk dalam laporan penelitian
(skripsi).

1.8 Sistematika Penulisan


Sistematika penulisan dari skripsi yang digunakan dalam penelitian ini adalah:

BAB I PENDAHULUAN

Bab ini mencakup latar belakangan dilakukannya penelitian,


rumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metodologi penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini menjelaskan tentang kriptografi dan bagian-bagiannya serta


algoritma yang dipakai dalam teknik signcryption yaitu Algoritma
Generalization of the ElGamal dan Algoritma Ong-Schnorr-Shamir.

BAB III ANALISIS DAN PERANCANGAN

Bab ini menjelaskan bagaimana proses kerja teknik signcryption


yang menggunakan Algoritma Generalization of the ElGamal dan
Algoritma Ong-Schnorr-Shamir serta menggambarkan tampilan
sistem yang akan dibangun.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

UNIVERSITAS SUMATERA UTARA


7

Bab ini mencakup implementasi sistem yang telah dibangun serta


hasil pengujian sistem dengan data teks yang dimasukkan ke dalam
sistem.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang dapat diperoleh berdasarkan


pemaparan pada setiap bab serta saran yang diberikan peneliti untuk
menjadi masukan penetian selanjutnya.

UNIVERSITAS SUMATERA UTARA


8

BAB II
LANDASAN TEORI

2.1 Kriptografi
Kriptografi adalah ilmu dan seni yang bertujuan untuk menyelesaikan
permasalahan yang melibatkan kerahasiaan, autentikasi, integritas dan
nirpenyangkalan (Schneier, 2015).

2.1.1 Terminologi Kriptografi


Terminologi yang dimiliki oleh kriptografi yaitu:

1. Plaintext, yaitu pesan asli yang masih dapat dibaca


2. Ciphertext, yaitu pesan yang telah diekripsi menjadi bentuk yang tidak dapat
dibaca
3. Enkripsi, yaitu proses mengubah pesan asli menjadi bentuk yang tidak
bermakna
4. Dekripsi, yaitu proses mengembalikan ciphertext menjadi plaintext
5. Kunci, yaitu parameter yang digunakan untuk melakukan teknik kriptografi

Kunci Kunci

Plaintext Ciphertext Plaintext


Enkripsi Dekripsi

Gambar 2.1 Proses Enkripsi dan Dekripsi

Pada Gambar 2.1 memperlihatkan plaintext yang melewati proses


enkripsi dengan menggunakan sebuah kunci akan menghasilkan ciphertext
lalu ciphertext yang melewati proses dekripsi menggunakan sebuah kunci
akan menghasilkan plaintext yang semula.

UNIVERSITAS SUMATERA UTARA


9

2.1.2 Jenis Kriptografi


Jenis kriptografi dapat dibagi menjadi dua berdasarkan kunci yang digunakan
pada proses enkripsi dan dekripsi, yaitu:

1. Kriptografi Kunci Simetris


Prinsip kerja kriptografi kunci simetris adalah menggunakan kunci yang
sama pada proses enkripsi dan dekripsi pesan. Algoritma kunci simetris
memiliki keunggulan dalam kecepatan waktu untuk melakukan proses
enkripsi terhadap plaintext dan dekripsi terhadap ciphertext. (Budiman et
al., 2020). Namun kunci yang sama tersebut harus dikirimkan ke penerima
pesan agar penerima dapat melakukan dekripsi pesan. Hal tersebut
menyebabkan permasalahan ketika jalur pengiriman yang aman cukup sulit
untuk dibangun. (Rachmawati & Budiman, 2020).

Skema algoritma kunci simetris dapat dilihat pada Gambar 8.1.1.


Algoritma yang menggunakan skema kunci simetris adalah Vigenere
Cipher, XOR Cipher, Stream Cipher, dan lain sebagainya.

2. Kriptografi Kunci Publik

Prinsip kerja kriptografi kunci publik pertama kali dikenalkan oleh


Whitfield Diffie dan Martin E. Hellman dengan paper yang berjudul “ A
New Direction to Cryptography” pada tahun 1976. Protokol Diffie-Hellman
dikenalkan untuk menyelesaikan permasalahan keamanan pada proses
pertukaran kunci yang dilakukan pada skema algoritma kunci simetris.
(Diffie & Hellman, 1976). Algoritma kunci publik menggunakan dua kunci
yang berbeda untuk proses enkripsi dan dekripsi pesan atau yang disebut
dengan skema algoritma kunci asimetris.

Pada kriptografi kunci publik, seorang penerima pesan atau recipient


membangkitkan dua kunci yaitu kunci pribadi yang bersifat rahasia dan
kunci publik yang bersifat tidak rahasia. Pengirim pesan atau sender
menggunakan kunci publik yang telah dipublikasikan oleh recipient untuk
mengenkripsi pesan. Kunci publik yang dipublikasikan biasanya digunakan
dalam proses enkripsi (Budiman & Rachmawati, 2020). Sedangkan kunci

UNIVERSITAS SUMATERA UTARA


10

pribadi akan dirahasiakan dan digunakan dalam proses dekripsi. Algoritma


yang menggunakan skema kunci publik adalah RSA, ElGamal, dan ECC
(Elliptic Curve Cryptosystems), Generalization of the ElGamal, dan lain
sebagainya.

Gambar 2.2 Skema Kriptografi Kunci Publik

Pada Gambar 2.2 memperlihatkan pada kriptografi kunci publik


pengirim pesan yang mengenkripsi pesan (plaintext) akan menggunakan
kunci publik milik penerima pesan dan ciphertext yang dihasilkan dapat
didekripsi menggunakan kunci pribadi milik recipient untuk menghasilkan
plaintext yang semula.

2.2 Algoritma Digital Signature Kunci Publik


Kriptografi kunci publik juga digunakan untuk proses pembuatan tanda tangan
digital. Tanda tangan digital (digital signature) adalah nilai kriptografis yang
bergantung pada pesan dan kunci (Munir, 2005). Pesan yang dikirim akan
dibangkitkan tanda tangan digital dengan kunci pribadi yang dimiliki pengirim.
Dan selanjutnya verifikasi dilakukan oleh penerima pesan dengan kunci publik
pengirim yang telah dipublikasikan (Virgiawan & Utama, 2020).

Algoritma digital signature diantaranya adalah Algoritma Ong-Schnorr-


Shamir yang dikenalkan pada tahun 1984 setelah Algoritma RSA Digital
Signature dikenalkan yang terbukti lebih efesien (Ong et al., 1984). Kemudian
pada tahun 1991 Algoritma DSA dikenalkan sebagai standar tanda tangan

UNIVERSITAS SUMATERA UTARA


11

digital oleh The National Institute of Standarts and Technology (NIST) dengan
kekurangan yang dimiliki jika dibandingkan dengan RSA Cryptosystem
sebelumnya yaitu membutuhkan waktu verifikasi yang lebih lama daripada
Algoritma RSA Digital Signature dan pada masa algoritma DSA dikenalkan
banyak perusahaan yang telah menggunakan standar RSA Cryptosystem dan
sulit untuk mengenal Algoritma DSA. (Schneier, 2015)

Kemudian pada yang 1995 Algoritma GOST R 34.10-94 dikenalkan oleh


peneliti rusia yang digunakan sebagai standar tanda tangan digital pada orang-
orang rusia. Algoritma GOST R 34.10-94 memiliki kemiripan dengan
Algoritma DSA dan letak perbedaan hanya pada perhitungan proses verifikasi.
(Schneier, 2015) Algoritma GOST R 34.10-94 juga masih dikembangkan
hingga publikasi pada tahun 2013 yaitu Algoritma GOST R 34.10-2012.

2.3 Algoritma Agrawal-Biswas Pembangkit Bilangan Prima


Pembangkit bilangan prima dalam penelitian ini menggunakan algoritma
Agrawal-Biswas yang merupakan algoritma untuk menguji apakah suatu
bilangan itu adalah bilangan prima. Bilangan yang dibangkitkan akan diuji
dengan Algoritma Agrawal-Biswas yang memiliki tahapan proses kerja sebagai
berikut (Agrawal & Biswas, 2003):
1. Bangkitkan bilangan n , misalkan n = 73
2. Pilih bilangan Z dengan Z dalam 3<Z<n, misalkan Z = 9
3. Uji n adalah bilangan prima atau komposit dengan menghitung apakah (1 +
Z)n mod n sama dengan (1 + Zn mod n)
Misalkan
H1 = (1 + Z)n mod n
H2 = (1 + Zn mod n)
Tentukan apakah H1=H2 ?

H1 = (1 + 9)73 mod 73
H1 = 1073 mod 73 = 10 (mod 73)

UNIVERSITAS SUMATERA UTARA


12

H2 = (1 + 973 mod 73)


H2 = ( (1) + (973 mod 73) )
H2 = ( 1 + 9 ) (mod 73)
H2 = 10 (mod 73)
4. Jika hasil perhitungan sama maka bilangan n adalah prima.
Karena H1 = H2 maka terbukti bahwa 73 adalah prima.

2.4 Algoritma Generalization of the ElGamal


Algoritma Generalization of the ElGamal dikenalkan pada tahun 2020 yang
merupakan pengembangan dari algoritma ElGamal yang bergantung pada
permasalahan logaritma diskrit. Algoritma ElGamal dikenalkan oleh Taher
ElGamal pada tahun 1985 setelah algoritma RSA hadir pada tahun 1978.

ElGamal mengusulkan keamanan sistem yang berbeda dari RSA. Pada


RSA Cryptosystem, keamanan yang diberikan bersumber dari kerumitan untuk
menghitung dua buah faktor bilangan prima yang besar dari bilangan bulat yang
sangat besar (Rachmawati & Budiman, 2020). Sedangkan pada ElGamal
Cryptosystem, keamanan yang diberikan bersumber dari kerumitan untuk
menghitung logaritma diskrit dari suatu finite field (Elgamal, 1985). Hal
tersebut dapat dilihat dari proses enkripsi yang menggunakan perhitungan
modulo eksponensial.

Pada tahun 2018 peneliti Dissanayake memperkenalkan perhitungan


faktorisasi prima dari plaintext yang menjadi perhitungan tambahan pada proses
enkripsi dari Algoritma ElGamal. Penelitian tersebut menghasilkan kesimpulan
bahwa penambahan perhitungan tersebut meningkatkan keamanan yang lebih
tinggi dari Algoritma ElGamal aslinya yang mampu menahan Chosen Plaintext
Attack dan Chosen Ciphertext Attack (Dissanayake, 2018).

Selanjutnya pada tahun 2020, Rajitha Ranasinghe And Pabasara


Athukorala memperkenalkan Algoritma Generalization of the ElGamal yang
menggunakan perhitungan faktorisasi prima dari plainteks dan menambahkan
perhitungan eksponensial modular pada proses enkripsi. Selama proses
enkripsi dilakukan dua kali perhitungan eksponensial modular yaitu dengan

UNIVERSITAS SUMATERA UTARA


13

jumlah faktor prima dari plainteks dan dengan kunci pribadi. Jika hanya ada
satu faktor prima yang dimiliki oleh plainteks maka metode ini dilakukan mirip
dengan algoritma ElGamal aslinya. Proses pembuatan kunci publik dan proses
dekripsi juga sama dengan Algoritma ElGamal aslinya. (Ranasinghe &
Athukorala, 2021).

2.3.1 Proses kerja Algoritma Generalization of the ElGamal


(Ranasinghe & Athukorala, 2021)

Pembangkitan Kunci
1. Pilih sebuah bilangan prima yang besar p dan sebuah akar primitif g dalam
modulo p dengan g < p
2. Pilih sebuah bilangan x sebagai kunci pribadi untuk proses dekripsi dengan
x dalam 1<x<p-1
3. Hitung a ≡ gx mod p
4. p, g, dan a dipublikasikan

Proses Enkripsi

1. Misalkan pesan (plainteks) m dan tulis m sebagai

i.e, m = p1α1 . p2α2 . piαi

Maka cari jumlah i terhadap faktorisasi prima dari m

2. Pilih sebuah bilangan y sebagai kunci pribadi untuk proses enkripsi dengan
y dalam 1<x<p-1
3. Lalu enkripsi m dengan
a. d ≡ gi mod p
b. b ≡ dy mod p
c. c ≡ m. aiy mod p
4. Kirim ciphertext yaitu b dan c

Proses Dekripsi

1. Terima ciphertext

UNIVERSITAS SUMATERA UTARA


14

2. Hitung bx menggunakan kunci pribadi x untuk menentukan nilai aiy tanpa


mengetahui kunci pribadi pengirim (sender) karena dapat dibuktikan bahwa
bx ≡ aiy mod p
3. Lalu dekripsi m dengan
m ≡ c . (bx)-1 mod p

2.3.2 Contoh Perhitungan Algoritma Generalization of the ElGamal


Berikut contoh perhitungan Algoritma Generalization of the ElGamal.
Misalkan pesan m = 14

Pembangkitan kunci
1. Misalkan p = 17, g = 3
Pembuktian g = 3 akar primitive dalam modulo 17
 Hitung nilai totient dari p, karena 17 adalah angka prima maka nilai
totient(17) = 17-1 = 16
 Hitung nilai ordo dari 3 dalam modulo 17

Tabel 2.1 Perhitungan Ordo Modulo

e 3e (mod 17)
1 31 (mod 17) = 3
2 32 (mod 17) = 9
3 33 (mod 17) = 10
4 34 (mod 17) = 13
5 35 (mod 17) = 5
6 36 (mod 17) = 15
7 37 (mod 17) = 11
8 38 (mod 17) = 16
9 39 (mod 17) = 14
10 310 (mod 17) = 8
11 311 (mod 17) = 7
12 312 (mod 17) = 4
13 313 (mod 17) = 12

UNIVERSITAS SUMATERA UTARA


15

14 314 (mod 17) = 2


15 315 (mod 17) = 6
16 316 (mod 17) = 1 stop

Maka didapat nilai ord17 (3) = 16. Karena nilai ordo n (mod m) = totient(n)
yaitu ord17 (3) = 16 sama dengan totient(17) = 16, maka terbukti bahwa 3
adalah akar primitive dalam modulo 17
2. Misalkan kunci pribadi (dekripsi) yaitu x = 5
3. Hitung a ≡ gx mod p

a ≡ 35 mod 17

Perhitungan modulo eksponensial dapat menggunakan algoritma Square


and Multiply.

Dari a diketahui : x = 3, y = 5, n = 17

Hitung biner dari y = 5(10) = 101(2)

(1) Awal z = 1
(2) Ketemu 1  z = x . z2 mod n = 3. 12 mod 17 = 3
(3) Ketemu 0  z = z2 mod n = 32 mod 17 = 9
(4) Ketemu 1  z =x . z2 mod n = 3. 92 mod 17 = 5
Maka didapat a ≡ 5 (mod 17)
4. p, g, dan a dipublikasikan
Proses Enkripsi
1. Misalkan pesan yang akan dikirim m adalah 14. Kemudian cari faktorisasi
prima dari 14 yaitu i.e., 2 x 7
Maka i = 2
2. Misalkan kunci pribadi (enkripsi) y = 4
3. Lalu enkripsi m dengan

d ≡ gi mod p

d ≡ 32 mod 17

d ≡ 9 (mod 17)

UNIVERSITAS SUMATERA UTARA


16

b ≡ dy mod p

b ≡ 94 mod 17

b ≡ 6561 mod 17

b ≡ 16 (mod 17)

c ≡ m. aiy mod p

c ≡ 14. 52.4 mod 17

c ≡ 14. 58 mod 17

c ≡ 14 . 16 (mod 17)

c ≡ 224 (mod 17)


c ≡ 3 (mod 17)
4. Kirim ciphertext yaitu b = 16 dan c = 3 dalam modulo 17
Proses Dekripsi
1. Terima ciphertext yaitu b = 16 dan c = 3 dalam mod 17
2. Hitung bx
bx ≡ 165 (mod 17)
bx ≡ 16 (mod 17)
3. Lalu dekripsi m dengan
m ≡ c . (bx)-1 mod p
m ≡ 3 . (16)-1 mod 17
invers modulo dari 16 mod 17 adalah 16 mod 17
m ≡ 3 . (16) mod 17
m ≡ 48 mod 17 = 14 (mod 17)

2.5 Algoritma Ong-Schnorr-Shamir


Algoritma Ong-Schnorr-Shamir adalah algoritma tanda tangan digital (digital
signature) yang didasarkan pada polinomial modulo. Skema Ong-Schnorr-

UNIVERSITAS SUMATERA UTARA


17

Shamir merupakan pengembangan dari skema Ong-Schnorr yang memiliki


kelebihan perhitungan yang mudah diimplementasikan dan waktu komputasi
yang cepat dengan tingkat keamanan yang setara dengan skema aslinya. Skema
Ong-Schnorr-Shamir juga terbukti lebih cepat daripada RSA Digital Signature
Algorithm (Ong et al., 1984). Proses pembuatan tanda tangan dan proses
verifikasi menggunakan perkalian modular dan pembagian modular (Ong et al.,
1984).

2.4.1 Proses Kerja Algoritma Ong-Schnorr-Shamir


(Ong et al., 1984)
Pembangkitan Kunci
1. Pilih bilangan bulat komposit besar n dan bilangan bulat k dengan
ketentuan:
- n dan k adalah relatif prima atau coprime
- n relatif prima terhadap 2
2. Hitung nilai h = - (k-1)2 mod n
3. k sebagai kunci pribadi, h dan n sebagai kunci publik dan dipublikasikan

Proses Pembangkitan Signature

1. Misalkan pesan m
2. Pilih nilai acak r yang relatif prima dengan n
3. Hitung S1 dan S2

S1 = ½ * (M/r + r) mod n

S2 = k/2 * (M/r – r ) mod n

4. Kirim S1 dan S2

Proses Verifikasi Signature

1. Terima S1 dan S2
2. Hitung verifikasi dengan rumus

S12 + h * S22 = M (mod n )

UNIVERSITAS SUMATERA UTARA


18

2.4.2 Contoh Perhitungan Algoritma Ong-Schnorr-Shamir


Berikut contoh perhitungan Algoritma Ong-Schnorr-Shamir. Misalkan pesan
yang akan dibangkitkan tanda tangan digital adalah m = 12

Pembangkitan Kunci
1. Misalkan n = 21 dan k = 5
Untuk membuktikan bahwa 21 dan 5 adalah relatif prima dapat
menggunakan Algoritma Euclidean untuk mencari nilai GCD(n,k). Jika
GCD(n,k) = 1 maka terbukti bahwa n dan k adalah relatif prima.
GCD(21,5)
21 mod 5 = 1
5 mod 1 = 0 (stop)
Hasil GCD(21,5) = 1 maka terbukti bahwa relatif prima
2. Hitung nilai h = - (k-1)2 mod n

h = - (k-1)2 mod n

h = - (5-1)2 mod 21

Hitung terlebih dahulu invers modulo dari 5 mod 21


(1) 5 mod 21 mempunyai invers jika dan hanya jika 5
dan 21 adalah relatif prima atau coprime. Maka 5 mod 21 memiliki
invers modulo.
(2) Hitung invers modulo dari 5 mod 21

Tabel 2.2 Perhitungan Invers Modulo

m-1 m-1 * 5 (mod 21)


1 1 * 5 (mod 21) = 5
2 2 * 5 (mod 21) = 10
3 3 * 5 (mod 21) = 15
4 4 * 5 (mod 21) = 20
5 5 * 5 (mod 21) = 4
6 6 * 5 (mod 21) = 9

UNIVERSITAS SUMATERA UTARA


19

7 7 * 5 (mod 21) = 14
8 8 * 5 (mod 21) = 19
9 9 * 5 (mod 21) = 3
10 10 * 5 (mod 21) = 8
11 11 * 5 (mod 21) = 13
12 12 * 5 (mod 21) = 18
13 13 * 5 (mod 21) = 2
14 14 * 5 (mod 21) = 7
15 15 * 5 (mod 21) = 12
16 16 * 5 (mod 21) = 17
17 17 * 5 (mod 21) = 1  stop

h = - (17)2 mod 21

h = - (289) mod 21

h = 5 mod 21

3. k sebagai kunci pribadi, h dan n sebagai kunci publik dan dipublikasikan

Proses Pembangkitan Signature

1. Misalkan pesan m = 12
2. Misal r = 2 yang relatif prima dengan n
3. Hitung S1 dan S2

S1 = ½ * (M/r + r) mod n

S1 = 2-1 * (M * (r-1) + r) mod n

S1 = 2-1 * (12 * (2-1) + 2) mod 21

S1 = 11 * (12 * (2-1) + 2) mod 21

S1 = 11 * (12 * (11) + 2) mod 21

S1 = 11 * (134) mod 21

UNIVERSITAS SUMATERA UTARA


20

S1 = 1474 mod 21

S1 = 4 (mod 21)

S2 = k /2 * (M/r - r) mod n

S2 = k * (2-1) * (M * (r-1) - r) mod n

S2 = 5 * (2-1) * (12 * (2-1) - 2) mod 21

S2 = 5 * (11) * (12 * (11) - 2) mod 21

S2 = 55 * (130) mod 21

S2 = 7150 mod 21

S2 = 10 (mod 21)

4. Kirim S1 dan S2

Proses Verifikasi Signature

1. Terima S1 dan S2
2. Hitung verifikasi dengan rumus

S12 + h * S22 = M (mod n )

42 + 5 * 102 = 12 (mod 21 )
16 + (5 * 100) = 12 (mod 21 )
16 + 500 = 12 (mod 21)
516 mod 21 = 12 (mod 21)
12 (mod 21) = 12 (mod 21) maka terbukti valid

2.6 Teknik Signcryption dengan Algoritma Generalization of the ElGamal


dan Algoritma Ong-Schnorr-Shamir
Pada penelitian ini teknik signcryption menggunakan metode encrypt then sign.
Pesan m (plainteks) akan dienkripsi terlebih dahulu dengan Algoritma

UNIVERSITAS SUMATERA UTARA


21

Generalization of the ElGamal lalu ciphertext yang dihasilkan akan


dibangkitkan tanda tangan digital menggunakan Algoritma Ong-Schnorr-
Shamir.

Proses encrypt akan memberikan kerahasiaan pada pesan agar tidak


dapat dibaca oleh pihak yang tidak sah. Sedangkan proses sign akan
memberikan keaslian pada pesan atau keabsahan pengirim pada suatu
pengiriman pesan secara jarak jauh karena tanda tangan digital memiliki
beberapa karakteristik berikut (Schneier, 2015):

- Tanda tangan digital sulit untuk dipalsukan karena hanya pengirim yang
memiliki kunci pribadi untuk melakukan proses sign.
- Tanda tangan digital sulit untuk diubah karena tanda tangan digital akan
dibangkitkan berdasarkan pesan yang ingin dikirim. Jika pesan atau tanda
tangan digital mengalami perubahan pada saat pengiriman maka tanda
tangan digital tidak dapat diverifikasi.
- Tanda tangan digital tidak dapat digunakan kembali karena setiap pesan
akan membangkitkan tanda tangan digital yang berbeda.

2.5.1 Contoh Perhitungan untuk Proses Teknik Signcryption


Selfhy ingin mengirimkan pesan = “H” dalam ASCII =”72” kepada Defhy
dengan mengenkripsi pesan tersebut lalu memberikan tanda tangan digital pada
pesan agar pesan tersebut terjaga kerahasiaanya dan dapat dibuktikan bahwa
benar Selfhy yang mengirimkan pesan tersebut.

2.5.1.1 Proses Enkripsi Pesan Menggunakan Algoritma Generalization


of the ElGamal
Pembangkitan Kunci
 Defhy (recipient)
p = 17
g=3
x = 5 (untuk proses dekripsi)

UNIVERSITAS SUMATERA UTARA


22

a = gx mod p = 35 mod 17 = 5 (mod 17)


 Selfhy (sender)
y = 6 (untuk proses enkripsi)

Selfhy mengenkripsi pesan ( m = 72 ) menggunakan kunci publik milik


Defhy (p, g, a) dan kunci pribadinya (y) :

Cari faktorisasi prima dari M = 72 , 2 x 2 x 2 x 3 x 3, maka didapat i = 5

Hitung d, b, dan c

d ≡ gi mod p
d ≡ 35 mod 17
d ≡ 243 (mod 17)
d ≡ 5 (mod 17)

b ≡ dy mod p
b ≡ 56 mod 17
b ≡ 15625 mod 17
b ≡ 2 (mod 17)

c ≡ m. aiy mod p
c ≡ 72. 55.6 mod 17
c ≡ 72. 530 mod 17
c ≡ 67,055,225,372,314,453,125,000 mod 17
c ≡ 9 (mod 17)

Maka ciphertext yaitu b = 2 dan c = 9

2.5.1.2 Proses Signing Pesan Menggunakan Algoritma Ong-Schnorr-


Shamir
Pembangkitan Kunci
 Selfhy ( sender  signing )
n = 21

UNIVERSITAS SUMATERA UTARA


23

k=5
h = - (k-1)2 mod n =
h = - (5-1)2 mod 21
h = - (17)2 mod 21
h = - (289) mod 21
h = 5 mod 21
 Defhy ( recipient  verify )

Selfhy membangkitan signature dari ciphertext ( b = 2 dan c = 9) dengan


menggunakan kunci pribadinya yaitu k = 5

 untuk b = 2

Pilih nilai random r = 4 yang relative prima terhadap n = 21

lalu hitung S1 dan S2:

S1 = ½ * (M/r + r) mod n
S2 = k/2 * (M/r – r ) mod n
M=b=2
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (2 * (4-1) + 4) mod 21
S1 = 11 * (2 * (4-1) + 4) mod 21
S1 = 11 * (2 * (16) + 4) mod 21
S1 = 11 * (36) mod 21
S1 = 396 mod 21
S1 = 18 (mod 21)

S2 = k * (2-1) * (M * (r-1) - r) mod n


S2 = 5 * (2-1) * (2 * (4-1) - 4) mod 21
S2 = 5 * (11) * (2 * (16) - 4) mod 21
S2 = 55 * (28) mod 21
S2 = 1540 mod 21
S2 = 7 (mod 21)

UNIVERSITAS SUMATERA UTARA


24

 untuk c = 9

nilai random r = 4

lalu hitung S1 dan S2:

S1 = ½ * (M/r + r) mod n
S2 = k/2 * (M/r – r ) mod n
M=c=9

S1 = 2-1 * (M * (r-1) + r) mod n


S1 = 2-1 * (9 * (4-1) + 4) mod 21
S1 = 11 * (9 * (16) + 4) mod 21
S1 = 11 * (148) mod 21
S1 = 1628 mod 21
S1 = 11 (mod 21)

S2 = k * (2-1) * (M * (r-1) - r) mod n


S2 = 5 * (2-1) * (9 * (4-1) - 4) mod 21
S2 = 5 * (11) * (9 * (16) - 4) mod 21
S2 = 55 * (140) mod 21
S2 = 7700 mod 21
S2 = 14 (mod 21)

Selfhy mengirim ciphertext yaitu b dan c yang telah diberikan tanda tangan
digital kepada Defhy yaitu (S1,S2) milik b dan (S1,S2) milik c
Defhy menerima ciphertext yaitu b dan c serta (S1,S2) milik b dan (S1,S2)
milik c dan melakukan verifikasi signature menggunakan kunci publik milik
Selfhy yaitu :
n = 21
h = 5 (mod 21)

UNIVERSITAS SUMATERA UTARA


25

2.5.1.3 Proses Verify Pesan Menggunakan Algoritma Ong-Schnorr-


Shamir
 untuk b = 2
S1 = 18 (mod 21)
S2 = 7 (mod 21)

Hitung :

S12 + h * S22 (mod n) = M (mod n )


182 + 5 * 72 (mod 21) = 2 (mod 21 )
324 + 5 * 49 (mod 21) = 2 (mod 21)
324 + 245 (mod 21) = 2 (mod 21)
569 (mod 21) = 2 (mod 21)
2 (mod 21) = 2 (mod 21)  terverifikasi valid bahwa pesan benar dikirim
oleh Selfhy karena hasil unsigning sama dengan ciphertext b.

 untuk c = 9

S1 = 11 (mod 21)
S2 = 14 (mod 21)

Hitung :

S12 + h * S22 (mod n) = M (mod n )


112 + 5 * 142 (mod 21) = 9 (mod 21 )
121 + 5 * 196 (mod 21) = 9 (mod 21)
121 + 980 (mod 21) = 9 (mod 21)
1101 (mod 21) = 9 (mod 21)
9 (mod 21) = 9 (mod 21)  terverifikasi valid bahwa pesan benar dikirim
oleh Selfhy karena hasil unsigning sama dengan ciphertext c.

UNIVERSITAS SUMATERA UTARA


26

2.5.1.4 Proses Dekripsi Pesan Menggunakan Algoritma Generalization


of the ElGamal
Setelah melihat ciphertext ( b dan c) adalah benar diberikan oleh Selfhy yaitu
pengirim yang sah, maka Defhy melanjutkan untuk mendekripsi pesan. Defhy
mendekripsi ciphertext yang telah diterima dari Selfhy menggunakan kunci
pribadi Defhy yaitu x = 5

Hitung bx

bx = 25 (mod 17)

bx = 15 (mod 17)

lalu dekripsi m dengan

m = c. (bx)-1 mod 17

m = 9. (15)-1 mod 17

m = 9. 8 mod 17

m = 72 (mod 17)

Maka pesan yang telah didekripsi dan dapat dibaca oleh Defhy yaitu m = 72 =
“H”

UNIVERSITAS SUMATERA UTARA


27

BAB III
ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem


Analisis sistem adalah tahapan dalam penelitian untuk menganalisis komponen-
komponen yang direncanakan untuk bekerja dengan sistem. Analisis sistem
mencakup analisis masalah dan analisis kebutuhan. Analisis masalah dilakukan
untuk mengidentifikasi sebab dan akibat dari suatu permasalahan. Analisis
kebutuhan dilakukan untuk mengidentifikasi data dan proses yang dibutuhkan
dalam perancangan sistem.

3.1.1 Analisis Masalah


Analisis Masalah dilakukan untuk mengidentifikasi penyebab dari suatu
permasalahan. Salah satu metode yang dapat digunakan untuk mengidentifikasi
akar penyebab dari suatu masalah adalah dengan metode Root Cause Analysis
Tree Diagram (Mezouar & El Afia, 2019).

Teknik RCA (Root Cause Analysis) telah banyak digunakan untuk


mereduksi kemungkinan defect atau cacat dalam praktik rekayasa perangkat
lunak (Lee, 2014). Tree Diagram digunakan sebagai taksonomi akar penyebab
yang dapat membantu melihat akar masalah dengan lebih detail (Westfall,
2010).

Root Cause Analysis Tree Diagram yang digunakan untuk mengidentifikasi


akar penyebab dari permasalahan yang ada dalam penelitian ini dapat dilihat
pada diagram pohon pada Gambar 3.1.

UNIVERSITAS SUMATERA UTARA


28

Gambar 3.1 Root Cause Analysis Tree Diagram

Pada Gambar 3.1 memperlihatkan Root Cause A Tree Diagram yang berisi
akar penyebab dari permasalahan yang ingin diselesaikan dalam penelitian ini.

3.1.2 Analisis Kebutuhan


Analisis kebutuhan dilakukan untuk mengidentifikasi data dan proses yang
dibutuhkan dalam perancangan sistem. Analisis kebutuhan dapat mencakup
kebutuhan fungsional dan kebutuhan nonfungsional yang dibutuhkan dalam
perancangan sistem untuk memenuhi tujuan dari sistem yang dibangun.

3.1.2.1 Kebutuhan Fungsional


Kebutuhan fungsional yang dibutuhkan dalam sistem ini adalah:

1. Sistem dapat melakukan fungsi untuk menerima masukan yang berupa file
berekstensi .txt dan . docx
2. Sistem dapat melakukan fungsi untuk pembangkitan kunci dengan
algoritma Generalization of the ElGamal dan Algoritma Ong-Schnorr-
Shamir
3. Sistem dapat melakukan fungsi untuk melakukan proses enkripsi dan
dekripsi pada file dengan algoritma Generalization of the ElGamal

UNIVERSITAS SUMATERA UTARA


29

4. Sistem dapat melakukan fungsi untuk menyimpan ciphertext


5. Sistem dapat melakukan fungsi untuk melakukan proses sign dan verify
terhadap ciphertext yang dihasilkan dengan algoritma Ong-Schnorr-Shamir

3.1.2.2 Kebutuhan Nonfungsional


Kebutuhan nonfungsional yang dibutuhkan dalam sistem ini adalah:

1. User Interface
Sistem dapat menampilkan tampilan antarmuka yang dapat berinteraksi
dengan baik terhadap pengguna.
2. Kualitas
Sistem dapat melakukan proses encrypt-then-sign dan verify-then-decrypt
dengan input dan output yang tepat.
3. Pedoman untuk menjalankan sistem
Sistem dapat menampilkan pedoman yang berisi alur kerja signcryption
pada sistem.
4. Kontrol
Sistem dapat menampilkan pemberitahuan kepada pengguna ketika
menerima masukan yang tidak dapat diterima oleh sistem.

3.1.3 Diagram Umum Sistem

UNIVERSITAS SUMATERA UTARA


30

Gambar 3.2 Arsitektur Umum Sistem

Pada Gambar 3.2 memperlihatkan proses signcryption yang dilakukan


pada sistem. Pengirim akan mengenkripsi plaintext menggunakan Algoritma
Generalization of the ElGamal dengan kunci publik milik penerima lalu dari
ciphertext yang dihasilkan dibangkitkan tanda tangan digitalnya menggunakan
Algoritma Ong-Schnorr-Shamir dengan kunci pribadi milik pengirim.

Selanjutnya ciphertext berserta tanda tangan digital dikirim ke


penerima. Setelah diterima oleh penerima, selanjutnya penerima dapat
melakukan proses verifikasi terlebih dahulu apakah ciphertext benar dibuat oleh
pengirim yang sah menggunakan Algoritma Ong-Schnorr-Shamir dengan kunci
publik milik pengirim.

Hasil dari verifikasi akan menghasilkan satu nilai yaitu valid atau
invalid. Setelah berhasil memvalidasi tanda tangan digital milik dari ciphertext
maka selanjutnya penerima dapat mendekripsi ciphertext menggunakan
Algoritma Generalization of the ElGamal dengan kunci pribadi milik
penerima.

3.2 Pemodelan Sistem


Pemodelan sistem adalah tahapan dalam penelitian untuk menjelaskan
mengenai bagaimana saja interaksi pengguna terhadap sistem.

UNIVERSITAS SUMATERA UTARA


31

3.2.1 Use Case Diagram

Gambar 3.3 Use Case Diagram

Pada Gambar 3.3 memperlihatkan hubungan interaksi dari sisi pengguna


(actor) terhadap sistem. Pengguna akan melakukan proses pembangkitan kunci
yaitu kunci publik dan kunci pribadi sebelum melakukan proses signcryption.
Kemudian dilanjutkan ke proses encrypt-then-sign dan verify-then-decrypt.

3.2.2 Activity Diagram


Activity diagram adalah diagram yang menjelaskan aktivitas pengguna
terhadap sistem dalam suatu case yang sudah dijelaskan dalam use case
diagram pada tahap sebelumnya.

UNIVERSITAS SUMATERA UTARA


32

3.2.2.1 Activity Diagram Pembangkitan Kunci

Gambar 3.4 Activity Diagram Pembangkitan Kunci Penerima

Pada Gambar 3.4 memperlihatkan aktivitas yang dilakukan oleh


pengguna pada sisi penerima terhadap sistem ketika melakukan proses
pembangkitan kunci. Penerima akan membangkitkan 2 kunci yaitu kunci
pribadi terlebih dahulu lalu selanjutnya kunci publik.

UNIVERSITAS SUMATERA UTARA


33

Gambar 3.5 Activity Diagram Pembangkitan Kunci Penerima

Pada Gambar 3.5 memperlihatkan aktivitas yang dilakukan oleh


pengguna pada sisi pengirim terhadap sistem ketika melakukan proses
pembangkitan kunci. Pengirim akan membangkitkan 2 kunci yaitu kunci
pribadi terlebih dahulu lalu selanjutnya kunci publik.

UNIVERSITAS SUMATERA UTARA


34

3.2.2.2 Activity Diagram Proses Encryption dan Signing

Gambar 3.6 Activity Diagram Proses Encryption dan Signing

Pada Gambar 3.6 memperlihatkan aktivitas pengguna sebagai pengirim


yang akan melakukan encryption dan signing menggunakan kunci publik dari
penerima dan juga kunci pribadi dan kunci publik dari pengirim..

UNIVERSITAS SUMATERA UTARA


35

3.2.2.3 Activity Diagram Proses Verify dan Decryption

Gambar 3.7 Activity Diagram Proses Verify dan Decryption

Pada Gambar 3.7 memperlihatkan aktivitas pengguna sebagai penerima


yang akan melakukan verify dan decryption menggunakan kunci publik milik
pengirim dan kunci pribadi milik penerima.

UNIVERSITAS SUMATERA UTARA


36

3.2.3 Sequence Diagram

Gambar 3.8 Sequence Diagram

Pada Gambar 3.8 memperlihatkan interaksi antara pengguna terhadap


sistem secara sequence. Pada saat melakukan proses signcryption pengguna
akan berinteraksi dengan menu utama, menu pergirim, dan menu penerima.

UNIVERSITAS SUMATERA UTARA


37

3.3 Flowchart
Flowchart atau diagram alir umum pada sistem yang akan menggambarkan
input, proses, dan output dari sistem yang dibangun.

3.3.1 Flowchart Pembangkitan Kunci pada Algoritma Generalization


of the ElGamal

Mulai

Generate p, g, x

Hitung a

a = gx mod p

Output kunci publik


yaitu p, g, a dan kunci Selesai
pribadi yaitu x/y

Gambar 3.9 Flowchart Pembangkitan Kunci pada Algoritma


Generalization of the ElGamal

Pada Gambar 3.9 memperlihatkan proses pembangkitan kunci publik


dan kunci pribadi dengan Algoritma Generalization of the ElGamal yang akan
digunakan pada proses enkripsi dan dekripsi pesan (plaintext).

UNIVERSITAS SUMATERA UTARA


38

3.3.2 Flowchart Pembangkitan Kunci pada Algoritma Ong-Schnorr-


Shamir

Mulai

Generate n
dan k

Hitung h
h = - (k-1)2 mod n

Output kunci
publik yaitu h, n
dan kunci pribadi
yaitu k

Selesai

Gambar 3.10 Flowchart Pembangkitan Kunci pada Algoritma Ong-


Schnorr-Shamir

Pada Gambar 3.10 memperlihatkan proses pembangkitan kunci publik


dan kunci pribadi dengan Algoritma Ong-Schnorr-Shamir.

3.3.3 Flowchart Sistem pada Proses Encryption dan Signing

UNIVERSITAS SUMATERA UTARA


39

Gambar 3.11 Flowchart Sistem pada Proses Encryption dan Signing

Pada Gambar 3.11 memperlihatkan proses ketika pengirim akan


melakukan proses encrypt-then-sign pada pesan.

3.3.4 Flowchart Sistem pada Proses Verify dan Decryption

Gambar 3.12 Flowchart Sistem pada Proses Verify dan Decryption

Pada Gambar 3.12 memperlihatkan proses ketika penerima akan


melakukan proses verify-then-decrypt pada pesan.

UNIVERSITAS SUMATERA UTARA


40

3.4 Perancangan Interface


3.4.1 Halaman Main Form
Halaman main form adalah form yang akan ditampilkan pertama kali pada saat
program dijalankan. Pada halaman ini terdapat judul skripsi penulis dan
keterangan identitas penulis. Seperti yang terlihat pada Gambar 3.13.

Gambar 3.13 Halaman Main Form

Keterangan:

1. Label untuk menampilkan judul skripsi penulis


2. PictureBox untuk yang menampilkan logo Universitas Sumatera Utara
3. Label untuk menampilkan nama dan NIM penulis
4. Button untuk memilih ke halaman menu form
5. Label untuk menampilkan program studi penulis

UNIVERSITAS SUMATERA UTARA


41

3.4.2 Halaman Menu Form


Halaman menu form merupakan form yang berisi 3 pilihan menu yang dapat
dipilih oleh pengguna untuk melakukan proses signcryption. Seperti yang
terlihat pada Gambar 3.14.

Gambar 3.14 Halaman Menu Form

Keterangan:

1. Button untuk memilih ke halaman generate key


2. Button untuk memilih ke halaman encrypt then sign
3. Button untuk memilih ke halaman verify then decrypt
4. Button untuk memilih ke halaman main form

UNIVERSITAS SUMATERA UTARA


42

3.4.3 Halaman Generate Key


Pada halaman generate key memiliki 2 tab yang berupa about tab dan generate
key tab. Seperti yang terlihat pada Gambar 3.15 dan Gambar 3.16.

Gambar 3.15 Halaman About

About tab menampilkan tahapan kerja program signcryption mulai dari


proses pembangkitan kunci, enkripsi kemudian bangkitkan tanda tangan digital,
dan verifikasi kemudian dekripsi dengan Algoritma Generalization of the
ElGamal dan Algoritma Ong-Schnorr-Shamir.

Keterangan:

1. TabPage untuk memilih ke about tab


2. Label untuk menampilkan teks yang menjelaskan tahapan kerja
program signcryption pada penelitian ini
3. Button untuk memilik ke halaman menu form

UNIVERSITAS SUMATERA UTARA


43

Gambar 3.16 Halaman Generate Key

Keterangan:

1. TabPage untuk memilih ke generate key tab.


2. Label untuk menampilkan recipient
3. Label untuk menampilkan private key
4. TextBox untuk menampilkan x yaitu kunci pribadi dari penerima
5. Label untuk menampilkan public key
6. TextBox untuk menampilkan p yaitu kunci publik dari penerima
7. TextBox untuk menampilkan g yaitu kunci publik dari penerima
8. TextBox untuk menampilkan a yaitu kunci publik dari penerima
9. Button untuk menjalankan semua fungsi untuk membangkitkan kunci
dari sisi penerima
10. Button untuk menyimpan semua kunci yaitu x, p, g, dan a
11. Label untuk menampilkan sender
12. Label untuk menampilkan private key
13. TextBox untuk menampilkan y yaitu kunci pribadi dari pengirim
14. TextBox untuk menampilkan k yaitu kunci pribadi dari pengirim yang
digunakan untuk proses digital signature

UNIVERSITAS SUMATERA UTARA


44

15. Label untuk menampilkan public key


16. Label untuk menampilkan n yaitu kunci publik dari penerima yang
digunakan untuk proses digital signature
17. Label untuk menampilkan h yaitu kunci publik dari penerima yang
digunakan untuk proses digital signature
18. Button untuk menjalankan semua fungsi untuk membangkitkan kunci
dari sisi pengirim
19. Button untuk menyimpan semua kunci yaitu y, k, n, h

3.4.4 Halaman Encrypt Then Sign


Pada halaman encrypt then sign memiliki 2 tab yang berupa encryption tab dan
signing tab. Seperti yang terlihat pada Gambar 3.17 dan Gambar 3.18.

Gambar 3.17 Halaman Encryption

Keterangan:

1. Label untuk menampilkan encryption


2. Label untuk menampilkan plaintext
3. Label untuk menampilkan file

UNIVERSITAS SUMATERA UTARA


45

4. TextBox untuk menampilkan nama direktori dari file


5. Button untuk melakukan pencarian file yang akan dienkripsi
6. TextBox untuk menampilkan karakter dari plaintext yang ada dalam
file
7. TextBox untuk menampilkan jumlah karakter dari plaintext yang ada
dalam file
8. Label untuk menampilkan p
9. Label untuk menampilkan g
10. Label untuk menampilkan y
11. Label untuk menampilkan a
12. Button untuk melakukan pencarian file kunci pribadi dari pengirim
yang akan digunakan untuk proses enkripsi
13. Button untuk melakukan pencarian file kunci publik dari penerima
14. Label untuk menampilkan ciphertext
15. RichTextBox untuk menampilkan karakter untuk ciphertext b yang
dihasilkan dari proses enkripsi
16. RichTextBox untuk menampilkan karakter untuk ciphertext c yang
dihasilkan dari proses enkripsi
17. Button untuk melakukan proses enkripsi
18. Button untuk menyimpan ciphertext yaitu b dan c
19. Button untuk memilih ke halaman menu form

UNIVERSITAS SUMATERA UTARA


46

Gambar 3.18 Halaman Signing

Keterangan:

1. Label untuk menampilkan signing


2. Label untuk menampilkan ciphertext
3. TextBox untuk menampilkan karakter dari ciphertext untuk b
4. Button untuk melakukan pencarian file ciphertext yang telah disimpan
sebelumnya
5. TextBox untuk menampilkan jumlah karakter dari ciphertext b
6. TextBox untuk menampilkan karakter dari ciphertext untuk c
7. TextBox untuk menampilkan jumlah karakter dari ciphertext c
8. TextBox untuk menampilkan kunci k yaitu kunci pribadi dari pengirim
9. TextBox untuk menampilkan kunci n yaitu kunci publik dari pengirim
10. Button untuk melakukan pencarian file kunci pribadi dan publik dari
pengirim yaitu k dan n
11. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
yang dibangkitkan dari ciphertext b

UNIVERSITAS SUMATERA UTARA


47

12. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S2
yang dibangkitkan dari ciphertext b
13. Button untuk menyimpan tanda tangan digital yang dibangkitkan dari
ciphertext b
14. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
yang dibangkitkan dari ciphertext c
15. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S2
yang dibangkitkan dari ciphertext c
16. Button untuk menyimpan tanda tangan digital yang dibangkitkan dari
ciphertext c
17. Button untuk melakukan proses pembangkitan tanda tangan digital
18. TextBox untuk menampilkan waktu proses pembangkitan tanda tangan
digital

3.4.5 Halaman Verify Then Decrypt


Pada halaman verify then decrypt memiliki 2 tab yang berupa verify tab dan
decryption tab. Seperti yang terlihat pada Gambar 3.19 dan Gambar 3.20.

UNIVERSITAS SUMATERA UTARA


48

Gambar 3.19 Halaman Verify

Keterangan:

1. Label untuk menampilkan verify


2. Label untuk menampilkan ciphertext
3. TextBox untuk menampilkan karakter dari ciphertext b
4. TextBox untuk menampilkan karakter dari ciphertext c
5. Button untuk melakukan pencarian file ciphertext yaitu b dan c
6. TextBox untuk menampilkan n yaitu kunci publik dari pengirim
7. TextBox untuk menampilkan h yaitu kunci publik dari pengirim
8. Button untuk melakukan pencarian file kunci publik dari pengirim
yaitu n dan h
9. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
milik ciphertext b
10. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
dan S2 milik ciphertext b
11. Button untuk melakukan pencarian file tanda tangan digital milik b
12. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
milik ciphertext c
13. TextBox untuk menampilkan karakter dari tanda tangan digital yaitu S1
dan S2 milik ciphertext c
14. Button untuk melakukan pencarian file tanda tangan digital milik c
15. Button untuk melakukan proses verifikasi terhadap ciphertext b dan
tanda tangan digital milik b
16. TextBox untuk menampilkan hasil dari verifikasi dari ciphertext b yang
berupa 2 nilai yaitu valid atau invalid
17. Button untuk melakukan proses verifikasi terhadap ciphertext c dan
tanda tangan digital milik c
18. TextBox untuk menampilkan hasil dari verifikasi dari ciphertext c yang
berupa 2 nilai yaitu valid atau invalid
19. Button untuk memilih ke halaman menu form

UNIVERSITAS SUMATERA UTARA


49

Gambar 3.20 Halaman Decryption

Keterangan:

1. Label untuk menampilkan decryption


2. Label untuk menampilkan ciphertext
3. TextBox untuk menampilkan karakter dari ciphertext b
4. TextBox untuk menampilkan karakter dari ciphertext c
5. Button untuk melakukan pencarian file ciphertext yaitu b dan c
6. TextBox untuk menampilkan x yaitu kunci pribadi dari penerima
7. TextBox untuk menampilkan p yaitu kunci publik dari penerima
8. Button untuk melakukan pencarian file kunci pribadi dan kunci publik
dari penerima yaitu x dan p
9. Label untuk menampilkan plaintext
10. TextBox untuk menampilkan karakter dari plaintext yang dihasilkan
dari proses dekripsi
11. Button untuk melakukan proses dekripsi
12. Button untuk menyimpan plaintext yang dihasilkan dari proses dekripsi
13. TextBox untuk menampilkan waktu proses dekripsi terhadap ciphertext

UNIVERSITAS SUMATERA UTARA


50

BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi
Implementasi pada penelitian ini berupa sistem yang menggunakan teknik
signcryption yaitu program yang dapat melakukan proses encryption dan
decryption menggunakan Algoritma Generalization of the ElGamal. Dan
melakukan proses signing dan verify menggunakan Algoritma Ong-Schnorr-
Shamir. Format data yang digunakan untuk melakukan proses signcryption
adalah berupa data teks dengan ekstensi *.txt dan *.docx. Sistem ini dibangun
dengan bahasa pemrograman C# menggunakan IDE Sharp Develop 5.1. Sistem
ini memiliki interface yang berupa halaman main form, halaman menu form,
halaman generate key, halaman encrypt then sign, halaman verify then decrypt.

4.1.1 Halaman Main Form


Halaman main form adalah form yang akan tampil pertama kali pada saat
program dijalankan.

UNIVERSITAS SUMATERA UTARA


51

Gambar 4.1 Halaman Main Form

Pada Gambar 4.1 memperlihatkan tampilan halaman main form yang


memiliki bagian judul skripsi penulis untuk memberikan keterangan bahwa
sistem yang dibangun menggunakan teknik signcryption dengan Algoritma
Generalization of the ElGamal dan Algoritma Ong-Schnorr-Shamir untuk
melakukan proses encrypt then sign dan verify then decrypt pada pesan digital
yang berupa teks.

4.1.2 Halaman Menu Form


Pada saat pengguna menekan button start maka akan mengarah ke menu form
yang menampilkan 3 menu yaitu generate key, encrypt then sign, dan verify then
decrypt

Gambar 4.2 Halaman Menu Form

Pada Gambar 4.2 memperlihatkan tampilan halaman menu form yang


memiliki menu-menu yang berupa menu generate key untuk membangkitkan
kunci pribadi dan kunci publik dari sisi penerima dan pengirim, selanjutnya

UNIVERSITAS SUMATERA UTARA


52

menu encrypt then sign untuk melakukan proses encryption dan signing,
selanjutnya menu verify then decrypt untuk melakukan proses verify dan
decryption.

4.1.3 Halaman Generate Key


Pada saat pengguna menekan button generate key maka akan mengarah ke
menu generate key yang menampilan 2 tab yaitu halaman about dan halaman
generate key.

Gambar 4.3 Halaman About

Pada Gambar 4.3 memperlihatkan tampilan halaman about yang berisi


panduan tentang bagaimana tahapan kerja program signcryption secara
berurutan.

Selanjutnya ketika pengguna telah memahami bagaimana tahapan kerja


menggunakan sistem, maka pengguna dapat memilih generate key tab untuk
melakukan proses pembangkitan kunci pribadi dan kunci publik dari sisi

UNIVERSITAS SUMATERA UTARA


53

penerima dan dari sisi pengirim dengan algoritma Algoritma Generalization of


the ElGamal dan Algoritma Ong-Schnorr-Shamir.

Gambar 4.4 Halaman Generate Key

Pada Gambar 4.4 memperlihatkan tampilan halaman generate key yang


berisi dua bagian yaitu pengirim dan penerima. Kunci yang pertama kali
dibangkitkan adalah kunci dari sisi penerima. Pengguna dapat membangkitkan
kunci pribadi dan kunci publik dari sisi penerima dengan menekan button
generate. Kunci x, p, g, a dibangkitkan dengan Algoritma Generalization of the
ElGamal untuk digunakan pada proses encryption dan decryption. Selanjutnya
pengguna dapat membangkitkan kunci pribadi dan kunci publik dari sisi
pengirim dengan menekan button generate. Kunci y dibangkitkan dengan
Algoritma Generalization of the ElGamal untuk proses encryption. Dan kunci
k, n, h dibangkitkan dengan Algoritma Ong-Schnorr-Shamir untuk proses
pembangkitan dan verifikasi digital signature. Selanjutnya pengguna dapat
menyimpan kunci-kunci tersebut dengan menekan button save.

UNIVERSITAS SUMATERA UTARA


54

4.1.4 Halaman Encrypt Then Sign


Pada saat pengguna menekan button encrypt then sign maka akan mengarah ke
menu encrypt then sign yang menampilan 2 tab yaitu encryption tab dan signing
tab.

Gambar 4.5 Halaman Encryption

Pada Gambar 4.5 memperlihatkan tampilan halaman encryption untuk


melakukan proses encryption pada pesan digital dengan tahapan berikut.

1. Pengguna dapat menekan button browse untuk mencari file pesan digital
yang berupa teks dengan berekstensikan .docx atau .txt. Selanjutnya pesan
akan ditampilkan untuk melihat isi dari file yang disebut sebagai plaintext
dan sekaligus akan ditampilkan juga jumlah dari karakter plaintext tersebut
2. Selanjutnya pengguna dapat menekan button browse untuk mencari kunci
dari sisi penerima dan kunci dari sisi pengirim yang telah disimpan
sebelumnya. Kunci y adalah kunci pribadi dari pengirim dan kunci p, g, dan
a adalah kunci publik dari penerima

UNIVERSITAS SUMATERA UTARA


55

3. Selanjutnya pengguna dapat menekan button encrypt untuk melakukan


proses encryption dengan Algoritma Generalization of the EGamal. Hasil
enkripsi yang disebut sebagai ciphertext akan ditampilkan untuk ciphertext
b dan ciphertext c. Waktu proses enkripsi juga akan ditampilkan.
4. Kemudian pengguna dapat menekan button save untuk menyimpan
ciphertext b dan c ke dalam lokal

Selanjutnya ketika pengguna telah memiliki ciphertext yang dihasilkan pada


encryption tab maka pengguna dapat melanjutkan ke proses signing terhadap
ciphertext pada signing tab.

Gambar 4.6 Halaman Signing

Pada Gambar 4.6 memperlihatkan tampilan halaman signing untuk


melakukan proses pembangkitan tanda tangan digital terhadap ciphertext
dengan tahapan berikut.

1. Pengguna dapat menekan button browse untuk mencari file ciphertext b dan
c dan karakter beserta jumlah karakter dari ciphertext b dan c akan
ditampikan

UNIVERSITAS SUMATERA UTARA


56

2. Selanjutnya pengguna dapat menekan button browse untuk mencari file


kunci dari sisi pengirim yang telah disimpan sebelumnya. Kunci k adalah
kunci pribadi dari pengirim dan kunci n adalah kunci publik dari pengirim.
3. Selanjutnya pengguna dapat menekan button generate signature untuk
melakukan proses pembangkitan digital signature terdahap ciphertext b dan
c dengan Algoritma Ong-Schnorr-Shamir. Digital signature akan
ditampilkan yaitu S1 dan S2 milik ciphertext b dan S1 dan S2 milik
ciphertext c beserta waktu proses pembangkitan digital signature
4. Kemudian pengguna dapat menekan button save untuk menyimpan digital
signature S1 dan S2 milik ciphertext b dan button save untuk menyimpan
digital signature S1 dan S2 milik ciphertext c

4.1.5 Halaman Verify Then Decrypt


Pada saat pengguna menekan button verify then decrypt maka akan mengarah
ke menu verify then decrypt yang menampilan 2 tab yaitu verify tab dan
decryption tab.

Gambar 4.7 Halaman Verify

UNIVERSITAS SUMATERA UTARA


57

Pada Gambar 4.7 memperlihatkan tampilan halaman verify untuk


melakukan proses verify pada digital signature dengan tahapan berikut.

1. Pengguna dapat menekan button browse untuk mencari file ciphertext b dan
c dan karakter dari ciphertext b dan c akan ditampikan
2. Selanjutnya pengguna dapat menekan button browse untuk mencari file
kunci dari sisi pengirim yang telah disimpan sebelumnya. Kunci n dan h
adalah kunci publik dari pengirim
3. Selanjutnya pengguna dapat menekan button browse untuk mencari file
digital signature yaitu S1 dan S2 milik ciphertext b dan S1 dan S2 milik
ciphertext c lalu digital signature akan ditampilkan.
4. Kemudian pengguna dapat menekan button verify untuk melakukan proses
verify dengan Algoritma Ong-Schnorr-Shamir. Jika hasil verifikasi digital
signature terhadap ciphertext terbukti benar maka sistem akan
menampilkan “Valid”. Namun jika hasil verifikasi terbukti salah maka
sistem akan menampilkan “Invalid”.

Selanjutnya ketika pengguna telah melihat hasil verifikasi terbukti valid


maka pengguna dapat melanjutkan ke proses decryption pada decryption tab.

UNIVERSITAS SUMATERA UTARA


58

Gambar 4.8 Halaman Decryption

Pada Gambar 4.8 memperlihatkan tampilan halaman decryption untuk


melakukan proses decryption terhadap ciphertext dengan tahapan berikut.

1. Pengguna dapat menekan button browse untuk mencari file ciphertext b dan
c dan karakter dari ciphertext b dan c akan ditampikan
2. Selanjutnya pengguna dapat menekan button browse untuk mencari file
kunci dari sisi penerima yang telah disimpan sebelumnya. Kunci x adalah
kunci pribadi dari penerima dan kunci p adalah kunci publik dari penerima
3. Selanjutnya pengguna dapat menekan button decrypt untuk melakukan
proses decryption dengan Algoritma Generalization of the ElGamal. Hasil
decryption yang menjadi plaintext semula akan ditampilkan beserta waktu
proses decryption
4. Kemudian pengguna dapat menekan button save untuk menyimpan
plaintext ke dalam lokal.

4.2 Pengujian Sistem


Pengujian sistem dilakukan oleh penulis untuk menguji apakah sistem yang
dibangun dapat berjalan dengan benar dan dapat memenuhi tujuan penelitian
ini dengan teknik signcryption menggunakan Algoritma Generalization of the
ElGamal dan Algoritma Ong-Schnor-Shamir. Pengujian sistem dapat dilakukan
dengan kriteria sebagai berikut.

1. Pesan atau plaintext yang dapat dimasukkan ke dalam sistem ini adalah file
yang berekstensikan .docx atau .txt.
2. Pesan yang terenkripsi atau ciphertext dan kunci disimpan dalam bentuk file
yang berekstensikan .txt
3. Analisis waktu proses encryption, signing, verify, dan decryption dilakukan
dengan satuan millisecond (ms)

UNIVERSITAS SUMATERA UTARA


59

4.2.1 Pengujian Pembangkitan Kunci


Proses awal untuk melakukan teknik signcryption pada sistem adalah pengguna
terlebih dahulu membangkitkan kunci. Pembangkitan kunci dilakukan dengan
dua algoritma yaitu Algoritma Generalization of the ElGamal untuk proses
encryption dan decryption dan Algoritma Ong-Schnorr-Shamir untuk proses
pembangkitan digital signature.

Gambar 4.9 Proses Pembangkitan Kunci

Pada Gambar 4.9 yang memperlihatkan kunci yang dibangkitkan dari sisi
penerima (recipient) dan pengirim (sender). Kunci x, p, g, dan a dari sisi
penerima dibangkitkan dengan Algoritma Generalization of the ElGamal yang
akan digunakan pada saat proses encryption dan decryption. Dan kunci y, k, n,
h dari sisi pengirim dibangkitkan dengan Algoritma Generalization of the
ElGamal dan Algoritma Ong-Schnorr-Shamir yang akan digunakan pada saat
proses encryption, signing, dan verify. Kemudian pengguna dapat menyimpan
kunci-kunci tersebut agar dapat digunakan pada proses selanjutnya.

UNIVERSITAS SUMATERA UTARA


60

Pembuktian proses generate key dari sisi penerima untuk kunci x, p, g, a


dapat dilihat dengan perhitungan berikut.

1. Pengujian bilangan prima p = 3083


Pengujian dilakukan dengan Algoritma Agrawal-Biswas. Pilih bilangan Z
dalam 3<Z<3083, Z = 202. Selanjutnya uji nilai p adalah bilangan prima
atau komposit dengan menghitung apakah (1 + Z)n mod n sama dengan (1
+ Zn mod n).
Hitung:

H1 = (1 +202)3083 mod 3083

H1 = 2033083 mod 3083 = 203 (mod 3083)

Selanjutnya hitung:

H2 = (1 + 2023083 mod 3083)

H2 = ( (1) + (2023083 mod 3083) )

H2 = ( 1 + 202 ) (mod 3083)

H2 = 203 (mod 3083)

Karena H1 = H2 maka terbukti bahwa 3083 adalah prima.


2. Pengujian akar primitif g = 450 dalam modulo p = 3083 dengan g<p
𝑝−1 3083−1
- Hitung 𝑞 = ,𝑞= = 1541
2 2

- Hitung g2 mod p = 4502 mod 3083 = 2105


- Hitung gq mod p = 4501541 mod 3083 = 3083
- Karena hasil perhitungan g2 mod p ≠ 1 dan gh mod p ≠ 1, maka terbukti
bahwa g = 450 merupakan akar primitif dalam modulo p = 3083
3. Pengujian nilai x dalam 1<x<p-1 , x = 1627
4. Pengujian nilai a = gx mod p
Hitung a = gx mod p = 4501627 mod 3083 = 1971 (mod 3083)

Pembuktian proses generate key dari sisi pengirim untuk kunci y, k, n, h


dapat dilihat dengan perhitungan berikut.

1. Pengujian nilai y dalam 1<y<p-1 , y = 1204

UNIVERSITAS SUMATERA UTARA


61

2. Pengujian bilangan bulat komposit n = 371 dan relatif prima terhadap 2


- Bilangan komposit adalah bilangan asli yang bukan merupakan bilangan
prima. Hitung 371/7 = 53
Maka terbukti bahwa n merupakan bilangan komposit karena n = 371
memiliki lebih dari 2 faktor yaitu 1, 53, dan 371
- Hitung GCD(2,371 )
371 mod 2 = 1
2 mod 1 = 0 (stop), maka terbukti 371 dan 2 adalah relatif prima
3. Pengujian nilai k = 20 yang relatif prima terhadap n =371
n dan k dapat dibuktikan menggunakan Algoritma Euclidean GCD untuk
mencari nilai GCD dari n dan k. Jika nilai GCD dari kedua bilangan tersebut
adalah 1 maka n dan k adalah relatif prima (coprime).
GCD(20,371)
371 mod 20 = 11
20 mod 11 = 9
11 mod 9 = 2
9 mod 2 = 1
2 mod 1 = 0 (stop)
Karena hasil perhitungan GCD(20,371) = 1 maka terbukti bahwa n dan k
adalah relatif prima
4. Pengujian nilai h = - (k-1)2 mod n
- Hitung invers modulo dari k mod n yaitu 20 mod 371

Tabel 4.1 Perhitungan Invers Modulo

m-1 m-1 * 20 (mod 371)


1 1 * 20 (mod 371) = 20
2 2 * 20 (mod 371) = 40
3 3 * 20 (mod 371) = 60
4 4 * 20 (mod 371) = 80
5 5 * 20 (mod 371) = 100
6 6 * 20 (mod 371) = 120
7 7 * 20 (mod 371) = 140

UNIVERSITAS SUMATERA UTARA


62

. .
. .
. .
161 161 * 20 (mod 371) = 252
162 162 * 20 (mod 371) = 272
163 163 * 20 (mod 371) = 292
164 164 * 20 (mod 371) = 312
165 165 * 20 (mod 371) = 332
166 166 * 20 (mod 371) = 352
167 167 *20 (mod 371) = 1  stop

Maka hasil invers modulo dari 20 mod 371 adalah 167 (mod 371)

- Selanjutnya hitung kuadrat dari 167 (mod 371) = 27889 ( mod 371)
- Kemudian untuk menghitung h = - 27889 mod 371 maka hitung:
371 - (27889 mod 371) = 371 – (64) = 307 (mod 371)

4.2.2 Pengujian Encryption Algoritma Generalization of the ElGamal


Proses encryption dapat dilakukan ketika pengguna telah membangkitkan kunci
dan masuk ke halaman encrypt then sign.

UNIVERSITAS SUMATERA UTARA


63

Gambar 4.10 Proses Encryption

Pada Gambar 4.10 memperlihatkan pengguna yang terlebih dahulu mencari


file yang akan dienkripsi dengan berekstensikan .docx atau .txt. Selanjutnya
plaintext akan tampil pada richtextbox dan akan ditampilkan juga jumlah
karakter dari plaintext tersebut. Selanjutnya kunci pribadi dari sisi pengirim dan
kunci publik dari sisi penerima diambil kembali untuk digunakan pada proses
encryption. Kemudian pengguna menekan button “Encrypt” untuk melakukan
proses ekripsi pesan. Pengujian proses encryption dengan Algoritma
Generalization of the ElGamal dapat dilihat dengan perhitungan berikut.
Pesan (plaintext) yang akan dienkripsi adalah “Agina” dan setiap
karakternya akan diubah ke dalam bentuk ASCII.

Tabel 4.2 Karakter Plaintext ke ASCII

Index Karakter Plaintext Mi ASCII


1 A M1 65
2 g M2 103
3 i M3 105
4 n M4 110
5 a M5 97

Selanjutnya untuk setiap Mi akan dicari nilai i yaitu jumlah faktor prima dari
Mi . Hitung faktor prima dari Mi :

Tabel 4.3 Perhitungan Nilai i

Plaintext Mi Char ASCII Faktorisasi Prima i


M1 A 65 5 x 13 2
M2 g 103 103 adalah bilangan prima 1
M3 i 105 3x5x7 3
M4 n 110 2 x 5 x 11 3
M5 a 97 97 adalah bilangan prima 1

UNIVERSITAS SUMATERA UTARA


64

Selanjutnya untuk menghitung proses encryption membutuhkan kunci


publik dari penerima yaitu p = 3083, g = 450, a = 1971 dan kunci pribadi dari
pengirim yaitu y = 1204. Kemudian proses encryption dapat dilihat pada
perhitungan berikut.
- Untuk M1 = 65, i = 2, hitung nilai d, b, dan c
d ≡ gi mod p ≡ 4502 mod 3083 ≡ 2105 (mod 3083)
b ≡ dy mod p ≡ 21051204 mod 3083 ≡ 1183 (mod 3083)
c ≡ m. aiy mod p ≡ 65. 1971(2)(1204) mod 3083 ≡ 2519 (mod 3083)

- Untuk M2 = 103, i = 1, hitung nilai d, b, dan c


d ≡ gi mod p ≡ 4501 mod 3083 ≡ 450 (mod 3083)
b ≡ dy mod p ≡ 4501204 mod 3083 ≡ 2497 (mod 3083)
c ≡ m. aiy mod p ≡ 103. 1971(1)(1204) mod 3083 ≡ 617 (mod 3083)

- Untuk M3 = 105, i = 3, hitung nilai d, b, dan c


d ≡ gi mod p ≡ 4503 mod 3083 ≡ 769 (mod 3083)
b ≡ dy mod p ≡ 7691204 mod 3083 ≡ 437 (mod 3083)
c ≡ m. aiy mod p ≡ 103. 1971(3)(1204) mod 3083 ≡ 1284 (mod 3083)

- Untuk M4 = 110, i = 3, hitung nilai d, b, dan c


d ≡ gi mod p ≡ 4503 mod 3083 ≡ 769 (mod 3083)
b ≡ dy mod p ≡ 7691204 mod 3083 ≡ 437 (mod 3083)
c ≡ m. aiy mod p ≡ 110. 1971(3)(1204) mod 3083 ≡ 2226 (mod 3083)

- Untuk M5 = 97, i = 1, hitung nilai d, b, dan c


d ≡ gi mod p ≡ 4501 mod 3083 ≡ 450 (mod 3083)
b ≡ dy mod p ≡ 4501204 mod 3083 ≡ 2497 (mod 3083)
c ≡ m. aiy mod p ≡ 97. 1971(1)(1204) mod 3083 ≡ 1928 (mod 3083)

Maka didapat ciphertext yaitu b dan c yang dapat dilihat pada tabel berikut.

Tabel 4.4 Hasil ciphertext

UNIVERSITAS SUMATERA UTARA


65

Plaintext Mi Char ASCII b c


M1 A 65 1183 2519
M2 g 103 2497 617
M3 i 105 437 1284
M4 n 110 437 2226
M5 a 97 2497 1928

4.2.3 Pengujian Signing Algoritma Ong-Schnorr-Shamir


Proses signing dapat dilakukan ketika pengguna telah membangkitkan kunci
dan masuk ke halaman encrypt then sign.

Gambar 4.11 Proses Signing

Pada Gambar 4.11 memperlihatkan pengguna yang terlebih dahulu mencari


file yang ciphertext. Selanjutnya ciphertext akan tampil pada richtextbox dan
akan ditampilkan juga jumlah karakter dari ciphertext tersebut. Selanjutnya
kunci pribadi dari sisi pengirim diambil kembali untuk digunakan pada proses

UNIVERSITAS SUMATERA UTARA


66

signing. Kemudian pengguna menekan button “Generate Signature” untuk


melakukan proses signing. Pengujian proses signing dengan Algoritma Ong-
Schnorr-Shamir dapat dilihat dengan perhitungan berikut.

Pengujian nilai random r = 46 yang relatif prima terhadap n =371, n dan r


dapat dibuktikan menggunakan Algoritma Euclidean GCD untuk mencari nilai
GCD dari n dan r. Jika nilai GCD dari kedua bilangan tersebut adalah 1 maka n
dan r adalah relatif prima (coprime).

GCD(46,371)
371 mod 46 = 3
46 mod 3 = 1
3 mod 1 = 0 (stop)

Maka terbukti bahwa r = 46 dan n = 371 adalah relatif prima (coprime)

Selanjutnya untuk menghitung proses signing membutuhkan kunci publik


dan kunci pribadi dan kunci publik dari pengirim yaitu k = 20 dan n = 371.
Kemudian proses signing dapat dilihat pada perhitungan berikut.

Tabel 4.5 Ciphertext

Index Mi b c
1 M1 1183 2519
2 M2 2497 617
3 M3 437 1284
4 M4 437 2226
5 M5 2497 1928

Proses signing terhadap ciphertext b akan dilakukan terlebih dahulu dengan


nilai r = 46, k = 20, dan n = 371.
- Untuk M1 = 1183, selanjutnya hitung S1
S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (1183 * (46-1) + 46) mod 371

UNIVERSITAS SUMATERA UTARA


67

Perhitungan invers modulo dapat dilakukan untuk menghitung 2-1 mod


371 dan 46-1 mod 371
S1 = 186 * (1183 * (121) + 46) mod 371
S1 = 186 * (143189) mod 371 = 26633154 mod 371 = 177 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (1183 * (46-1) - 46) mod 371
Perhitungan invers modulo dapat dilakukan untuk menghitung 2-1 mod
371 dan 46-1 mod 371
S2 = 20 * (186) * (1183 * (121) - 46) mod 371
S2 = 3720 * 143097 mod 371 = 532320840 mod 371 = 23 (mod 371)

- Untuk M2 = 2497, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (2497 * (46-1) + 46) mod 371
S1 = 186 * (2497 * (121) + 46) mod 371
S1 = 186 * (302183) mod 371 = 56206038 mod 371 = 280(mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (2497 * (46-1) - 46) mod 371
S2 = 20 * (186) * (2497* (121) - 46) mod 371
S2 = 3720 * 302091 mod 371 = 1123778520 mod 371 = 228 (mod
371)

- Untuk M3 = 437, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (437 * (46-1) + 46) mod 371
S1 = 186 * (437 * (121) + 46) mod 371

UNIVERSITAS SUMATERA UTARA


68

S1 = 186 * (52923) mod 371 = 9843678 mod 371 = 306(mod 371)


Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (437* (46-1) - 46) mod 371
S2 = 20 * (186) * (437* (121) - 46) mod 371
S2 = 3720 * 52831 mod 371 = 196531320 mod 371 = 6 (mod 371)

- Untuk M4 = 437, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (437 * (46-1) + 46) mod 371
S1 = 186 * (437 * (121) + 46) mod 371
S1 = 186 * (52923) mod 371 = 9843678 mod 371 = 306(mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (437* (46-1) - 46) mod 371
S2 = 20 * (186) * (437* (121) - 46) mod 371
S2 = 3720 * 52831 mod 371 = 196531320 mod 371 = 6 (mod 371)

- Untuk M5 = 2497, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (2497 * (46-1) + 46) mod 371
S1 = 186 * (2497 * (121) + 46) mod 371
S1 = 186 * (302183) mod 371 = 56206038 mod 371 = 280(mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (2497 * (46-1) - 46) mod 371
S2 = 20 * (186) * (2497* (121) - 46) mod 371

UNIVERSITAS SUMATERA UTARA


69

S2 = 3720 * 302091 mod 371 = 1123778520 mod 371 = 228 (mod


371)

Selanjutnya proses signing terhadap ciphertext c dilakukan dengan nilai r =


46, k = 20, dan n = 371.
- Untuk M1 = 2519, selanjutnya hitung S1
S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (2519 * (46-1) + 46) mod 371
S1 = 186 * (2519 * (121) + 46) mod 371
S1 = 186 * (304845) mod 371 = 56701170 mod 371 = 127 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (2519 * (46-1) - 46) mod 371
S2 = 20 * (186) * (2519 * (121) - 46) mod 371
S2 = 3720 * 304753 mod 371 = 1133681160 mod 371 = 136 (mod
371)

- Untuk M2 = 617, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (617 * (46-1) + 46) mod 371
S1 = 186 * (617* (121) + 46) mod 371
S1 = 186 * (74703) mod 371 = 13894758 mod 371 = 66 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (617 * (46-1) - 46) mod 371
S2 = 20 * (186) * (617 * (121) - 46) mod 371
S2 = 3720 * 74611 mod 371 = 277552920 mod 371 = 29 (mod 371)

UNIVERSITAS SUMATERA UTARA


70

- Untuk M3 = 1284, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (1284 * (46-1) + 46) mod 371
S1 = 186 * (1284* (121) + 46) mod 371
S1 = 186 * (155410) mod 371 = 28906260 mod 371 = 166 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (1284 * (46-1) - 46) mod 371
S2 = 20 * (186) * (1284 * (121) - 46) mod 371
S2 = 3720 * 155318 mod 371 = 577782960 mod 371 = 174 (mod 371)

- Untuk M4 = 2226, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (2226 * (46-1) + 46) mod 371
S1 = 186 * (2226* (121) + 46) mod 371
S1 = 186 * (269392) mod 371 = 50106912 mod 371 = 23 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (2226 * (46-1) - 46) mod 371
S2 = 20 * (186) * (2226 * (121) - 46) mod 371
S2 = 3720 * 269300 mod 371 = 1001796000 mod 371 = 282 (mod
371)

- Untuk M5 = 1928, selanjutnya hitung S1


S1 = ½ * (M/r + r) mod n
S1 = 2-1 * (M * (r-1) + r) mod n
S1 = 2-1 * (1928 * (46-1) + 46) mod 371
S1 = 186 * (1928* (121) + 46) mod 371

UNIVERSITAS SUMATERA UTARA


71

S1 = 186 * (233334) mod 371 = 43400124 mod 371 = 173 (mod 371)
Kemudian hitung S2
S2 = k /2 * (M/r - r) mod n
S2 = k * (2-1) * (M * (r-1) - r) mod n
S2 = 20 * (2-1) * (1928 * (46-1) - 46) mod 371
S2 = 20 * (186) * (1928 * (121) - 46) mod 371
S2 = 3720 * 233242 mod 371 = 867660240 mod 371 = 314 (mod 371)

Maka hasil proses signing terhadap ciphertext b dan c dapat dilihat pada
tabel berikut.

Tabel 4.6 Hasil Digital Signature

Index/cipher b (S1,S2)i c (S1,S2)i

1 (177,23) (127, 136)

2 (280,228) (66,29)

3 (306,6) (166,174)

4 (306,6) (23,282)

5 (280,228) (173,314)

4.2.4 Pengujian Verify Algoritma Ong-Schnorr-Shamir


Proses verify dapat dilakukan ketika pengguna telah membangkitkan kunci dan
masuk ke halaman verify then decrypt.

Pada sistem proses verifikasi dilakukan secara terpisah berdasarkan


ciphertext b dan ciphertext c. Ciphertext b akan diverifikasi dengan nilai digital
signature yaitu S1 dan S2 milik ciphertext b sendangkan ciphertext c akan

UNIVERSITAS SUMATERA UTARA


72

diverifikasi dengan nilai digital signature yaitu S1 dan S2 milik ciphertext c.


Selanjutnya kedua ciphertext b dan ciphertext c dapat diketahui masing-masing
apakah ciphertext tersebut adalah benar dikirim dari pengirim yang sah.

Gambar 4.12 Proses Verify

Pada Gambar 4.12 memperlihatkan pengguna yang terlebih dahulu mencari


file yang ciphertext. Selanjutnya ciphertext akan tampil pada richtextbox.
Selanjutnya kunci publik dari sisi pengirim diambil kembali untuk digunakan
pada proses verify. Kemudian pengguna menekan button “verify” untuk S1 dan
S2 milik b dan S1 dan S2 milik c untuk melakukan proses verify. Pengujian
proses verify dengan Algoritma Ong-Schnorr-Shamir dapat dilihat dengan
perhitungan berikut.

Verifikasi dapat dilakukan dengan rumus S12 + h * S22 (mod n) = M (mod


n) dengan kunci publik n = 371 dan h = 307. Jika hasilnya sama maka terbukti
valid bahwa ciphertext dikirim oleh pengirim yang sah.

Proses verify (S1,S2)i terhadap ciphertext b akan dilakukan terlebih dahulu


dengan kunci publik pengirim n = 371 dan h = 307.

UNIVERSITAS SUMATERA UTARA


73

Tabel 4.7 Ciphertext b dan Digital Signature

Index Mi b (S1,S2)i
1 M1 1183 (177,23)
2 M2 2497 (280,228)
3 M3 437 (306,6)
4 M4 437 (306,6)
5 M5 2497 (280,228)

- Untuk (S1,S2)1 = (177,23)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
1772 + 307 * 232 (mod 371) = 1183 (mod 371)
31329 + 307 * 529 (mod 371) = 1183 (mod 371)
193732 (mod 371) = 1183 (mod 371)
70 = 70 (mod 371)

- Untuk (S1,S2)2 = (280,228)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
2802 + 307 * 2282 (mod 371) = 2497 (mod 371)
78400 + 307 * 51984 (mod 371) = 2497 (mod 371)
16037488 (mod 371) = 2497 (mod 371)
271 = 271 (mod 371)

- Untuk (S1,S2)3 = (306,6)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
3062 + 307 * 62 (mod 371) = 437 (mod 371)
93636 + 307 * 36 (mod 371) = 437 (mod 371)
104688 (mod 371) = 437 (mod 371)
66 = 66 (mod 371)

- Untuk (S1,S2)4 = (306,6)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
3062 + 307 * 62 (mod 371) = 437 (mod 371)

UNIVERSITAS SUMATERA UTARA


74

93636 + 307 * 36 (mod 371) = 437 (mod 371)


104688 (mod 371) = 437 (mod 371)
66 = 66 (mod 371)

- Untuk (S1,S2)5 = (280,228)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
2802 + 307 * 2282 (mod 371) = 2497 (mod 371)
78400 + 307 * 51984 (mod 371) = 2497 (mod 371)
16037488 (mod 371) = 2497 (mod 371)
271 = 271 (mod 371)

Karena proses verify (S1,S2)i terhadap ciphertext b menghasilkan hasil


yang sama maka tanda tangan digital terverifikasi bahwa valid. Selanjutnya
proses verify (S1,S2)i terhadap ciphertext c akan dilakukan dengan kunci publik
pengirim n = 371 dan h = 307.

Tabel 4.8 Ciphertext c dan Digital Signature

Index Mi c (S1,S2)i
1 M1 2519 (127, 136)
2 M2 617 (66,29)
3 M3 1284 (166,174)
4 M4 2226 (23,282)
5 M5 1928 (173,314)

- Untuk (S1,S2)1 = (127,136)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
1272 + 307 * 1362 (mod 371) = 2519 (mod 371)
16129 + 307 * 18496 (mod 371) = 2519 (mod 371)
5694401 (mod 371) = 2519 (mod 371)
293 = 293 (mod 371)

- Untuk (S1,S2)2 = (66,29)


S1i2 + h * S2i2 (mod n) = Mi (mod n)

UNIVERSITAS SUMATERA UTARA


75

662 + 307 * 292 (mod 371) = 617 (mod 371)


4356 + 307 * 841 (mod 371) = 617 (mod 371)
262543 (mod 371) = 617 (mod 371)
246 = 246 (mod 371)

- Untuk (S1,S2)3 = (166,174)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
1662 + 307 * 1742 (mod 371) = 1284 (mod 371)
27556 + 307 * 30276 (mod 371) = 1284 (mod 371)
9322288 (mod 371) = 1284 (mod 371)
171 = 171 (mod 371)

- Untuk (S1,S2)4 = (166,174)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
1662 + 307 * 1742 (mod 371) = 1284 (mod 371)
27556 + 307 * 30276 (mod 371) = 1284 (mod 371)
9322288 (mod 371) = 1284 (mod 371)
171 = 171 (mod 371)

- Untuk (S1,S2)4 = (173,314)


S1i2 + h * S2i2 (mod n) = Mi (mod n)
1732 + 307 * 3142 (mod 371) = 1928 (mod 371)
29929 + 307 * 98596 (mod 371) = 1928 (mod 371)
30298901 (mod 371) = 1928 (mod 371)
73 = 73 (mod 371)
Karena proses verify (S1,S2)i terhadap ciphertext c menghasilkan hasil
yang sama maka tanda tangan digital terverifikasi bahwa valid.

4.2.5 Pengujian Decrypt Algoritma Generalization of the ElGamal


Proses decrypt dapat dilakukan ketika pengguna telah membangkitkan kunci
dan masuk ke halaman verify then decrypt.

UNIVERSITAS SUMATERA UTARA


76

Gambar 4.13 Proses Decrypt

Pada Gambar 4.13 memperlihatkan pengguna yang terlebih dahulu mencari


file yang ciphertext. Selanjutnya ciphertext akan tampil pada richtextbox.
Selanjutnya kunci pribadi dan kunci publik dari sisi penerima diambil kembali
untuk digunakan pada proses decrypt. Kemudian pengguna menekan button
“decrypt” untuk melakukan proses decrypt. Pengujian proses decrypt dengan
Algoritma Generalization of the ElGamal dapat dilihat dengan perhitungan
berikut.

Tabel 4.9 Ciphertext

Index bi ci

1 1183 2519

2 2497 617

3 437 1284

4 437 2226

5 2497 1928

UNIVERSITAS SUMATERA UTARA


77

Proses dekripsi dimulai dengan menghitung bx (mod p) kemudian dekripsi


ciphertext dengan rumus m ≡ c . (bx)-1 mod p dengan kunci pribadi dan kunci
publik milik penerima yaitu x = 1627 dan p = 3083.
- Untuk M1
bix = 11831627 mod 3083 = 2268
M1 ≡ ci . (bix)-1 mod p
M1 ≡ 2519 * (2268)-1 mod 3083
Perhitungan invers modulo dapat dilakukan untuk menghitung 2268-1
mod 3038
M1 ≡ 2519 * 2334 mod 3083 ≡ 5879346 mod 3083 ≡ 65

- Untuk M2
bix = 24971627 mod 3083 = 1323
M2 ≡ ci . (bix)-1 mod p
M2 ≡ 617 * (1323)-1 mod 3083
M2 ≡ 617 * 1799 mod 3083 ≡ 1109983 mod 3083 ≡ 103

- Untuk M3
bix = 4371627 mod 3083 = 805
M3 ≡ ci . (bix)-1 mod p
M3 ≡ 1284 * (805)-1 mod 3083
M3 ≡ 1284 * 2903 mod 3083 ≡ 3727452 mod 3083 ≡ 105

- Untuk M4
bix = 4371627 mod 3083 = 805
M4 ≡ ci . (bix)-1 mod p
M4 ≡ 2226 * (805)-1 mod 3083
M4 ≡ 2226 * 2903 mod 3083 ≡ 6462078 mod 3083 ≡ 110

- Untuk M5
bix = 24971627 mod 3083 = 1323

UNIVERSITAS SUMATERA UTARA


78

M5 ≡ ci . (bix)-1 mod p
M5 ≡ 1928 * (1323)-1 mod 3083
M5 ≡ 1928 * 1799 mod 3083 ≡ 3468472 mod 3083 ≡ 97

Tabel 4.10 Hasil Decryption

Mi Hasil Decryption Karakter

M1 65 A

M2 103 g

M3 105 i

M4 110 n

M5 97 a

4.2.6 Pengujian Real Running Time pada Proses Encryption


Pengujian real running time dilakukan pada proses encryption untuk
menganalisa waktu proses berdasarkan panjang karakter plaintext dalam satuan
waktu millisecond. Pengujian dilakukan dengan data panjang karakter plaintext
dalam rentang 10 hingga 10000.

Tabel 4.11 Pengujian Waktu Proses Encryption

Panjang Percobaan Percobaan Percobaan Percobaan Rata-Rata


Karakter 1 2 3 4 (ms)
Plaintext (ms) (ms) (ms) (ms)

10 3,4351 3,4935 2,8979 1,983 2,95237

100 32,2802 36,7512 34,7747 33,8837 34,4224

1000 877,1612 854,0651 854,3588 876,1708 865,4389

UNIVERSITAS SUMATERA UTARA


79

10000 9575,072 3156,881 5564,303 6418,987 6178,8107

Gambar 4.14 Grafik Pengujian Waktu Proses Encryption

Pada Gambar 4.14 memperlihatkan pengujian waktu proses encryption


berdasarkan jumlah karakter dan nilai rata-rata dari real running time.

4.2.7 Pengujian Real Running Time pada Proses Signing


Pengujian real running time dilakukan pada proses signing untuk
menganalisa waktu proses berdasarkan panjang karakter ciphertext dalam
satuan waktu millisecond.

Tabel 4.12 Pengujian Waktu Proses Signing

Panjang Percobaan Percobaan Percobaan Percobaan Rata-


Karakter 1 2 3 4 Rata
Ciphertext (ms) (ms) (ms) (ms) (ms)
b = 44
5,8235 3,2221 5,0158 3,5659 4,40682
c = 42
b = 438
58,8026 57,7267 114,2384 58,7411 72,3772
c = 422
b = 4335
548,7574 632,1579 676,7227 642,8572 625,1238
c = 4228

UNIVERSITAS SUMATERA UTARA


80

b = 43413
7305.237 3711.57 2259.595 5182.684 4614,771
c = 42354

Gambar 4.15 Grafik Pengujian Waktu Proses Signing

Pada Gambar 4.15 memperlihatkan pengujian waktu proses signing


berdasarkan jumlah karakter dan nilai rata-rata dari real running time.

4.2.8 Pengujian Real Running Time pada Proses Verify


Pengujian real running time dilakukan pada proses verify untuk menganalisa
waktu proses berdasarkan panjang karakter ciphertext dalam satuan waktu
millisecond.

Tabel 4.13 Pengujian Waktu Proses Verify

Panjang Percobaan Percobaan Percobaan Percobaan Rata-


Karakter 1 2 3 4 Rata
Ciphertext (ms) (ms) (ms) (ms) (ms)
b = 44 0,0794 0,2197 0,1025 0,0799 0,12037
c = 42 0,1256 0,1383 0,1252 0,1228 0,12797
b = 438 0,0787 0,0802 0,1534 0,1516 0,11597
c = 422 0,1824 0,1511 0,1623 0,1610 0,1642
b = 4335 0,9828 0,4557 0,427 0,3547 0,55505
c = 4228 0,6203 0,5678 0,5493 0,5435 0,57022

UNIVERSITAS SUMATERA UTARA


81

b = 43413 0,2134 0,2116 0,2677 0,2102 2,25725


c = 42354 0,2736 0,2683 0,274 0,2741 2,725

Gambar 4.16 Grafik Pengujian Waktu Proses Verify Ciphertext b

Pada Gambar 4.16 memperlihatkan pengujian waktu proses verify


ciphertext b berdasarkan jumlah karakter dan nilai rata-rata dari real running
time.

Gambar 4.17 Grafik Pengujian Waktu Proses Verify Ciphertext c

Pada Gambar 4.17 memperlihatkan pengujian waktu proses verify ciphertext c


berdasarkan jumlah karakter dan nilai rata-rata dari real running time.

UNIVERSITAS SUMATERA UTARA


82

4.2.1 Pengujian Real Running Time pada Proses Decryption


Pengujian real running time dilakukan pada proses decryption untuk
menganalisa waktu proses berdasarkan panjang karakter ciphertext dalam
satuan waktu millisecond.

Tabel 4.14 Pengujian Waktu Proses Decryption

Panjang Percobaan Percobaan Percobaan Percobaan Rata-Rata


Karakter 1 2 3 5 (ms)
Plaintext (ms) (ms) (ms) (ms)

10 7,8191 0,9167 0,9057 1,0033 2,6612

100 25,3609 10,4063 34,9465 10,8974 20,42777

1000 245,3387 319,2685 249,9653 247,8888 265,6153

10000 662,7132 788,1639 701,863 369,773 630,6282

Gambar 4.18 Grafik Pengujian Waktu Proses Decryption

Pada Gambar 4.18 memperlihatkan pengujian waktu proses decryption


berdasarkan jumlah karakter dan nilai rata-rata dari real running time.

UNIVERSITAS SUMATERA UTARA


83

BAB V
PENUTUP

5.1 Kesimpulan
Penulis menarik beberapa kesimpulan yang didapat berdasarkan hasil analisis dan
pengujian dari implementasi sistem pada penelitian ini yang menggunakan teknik
signcryption dengan Algoritma Generalization of the ElGamal dan Algoritma Ong-
Schnorr-Shamir pada file atau pesan yang berekstensikan *.docx atau *.txt:

1. Implementasi dari teknik signcryption yaitu encrypt then sign dan verify then
decrypt dengan Algoritma Generalization of the ElGamal dan Algoritma Ong-
Schnorr-Shamir pada file teks berhasil dilakukan dengan plaintext atau
pembangkitan kunci yang tidak terlalu besar.
2. Proses encryption dan decryption dengan Algoritma Generalization of the
ElGamal dapat berjalan dengan baik dengan plaintext yang berukuran hingga
10000 karakter atau lebih namun menghasilkan ciphertext yang berkali lipat
lebih besar dari plaintext semula yang menyebabkan proses selanjutnya yaitu
proses signing dengan Algoritma Ong-Schnorr-Shamir menghasilkan keluaran
“overflow” untuk ciphertext yang sangat besar.
3. Waktu proses encryption dan decryption dengan Algoritma Generalization of
the ElGamal berbanding lurus antara jumlah karakter. Semakin besar jumlah
karakter yang akan dilakukan encryption atau decryption maka waktu real
running time akan semakin lama.
4. Waktu penerapan Algoritma Generalization of the ElGamal pada proses
decryption lebih cepat daripada proses encryption.
5. Waktu penerapan Algoritma Ong-Schnorr-Shamir pada proses verify lebih
cepat daripada proses signing.

5.2 Saran
Penulis memberikan beberapa saran yang dapat digunakan untuk penelitian
berikutnya:

UNIVERSITAS SUMATERA UTARA


84

1. Penelitian ini hanya menggunakan file masukan yang berekstensikan *.docx


atau *.txt yang digunakan pada proses signcryption, penulis berharap penelitian
selanjutnya dapat menggunakan file masukan dengan ekstensi yang berbeda
dari penelitian ini
2. Penelitian ini hanya dapat melakukan proses encrypt then sign dan verify then
decrypt pada file yang berupa teks, penulis berharap penelitian selanjutnya
dapat melakukannya dengan file yang berupa gambar, audio, dan lainya
3. Penelitian ini hanya dapat melakukan proses encrypt then sign dan verify then
decrypt dengan plaintext atau pembangkitan kunci yang tidak terlalu besar.
Penulis berharap penelitian selanjutnya dapat dilakukan dengan plaintext yang
besar dengan salah satu caranya yaitu menambahkan algoritma kompresi untuk
mengecilkan ukuran plaintext
4. Penulis berharap penelitian selanjutnya dapat melakukan teknik signcryption
dengan proses sign then encrypt dan decrypt then verify
5. Penelitian ini hanya dijalankan pada sistem berbasis desktop, penulis berharap
untuk penelitian selanjutnya dapat menerapkannya pada sistem berbasis mobile

UNIVERSITAS SUMATERA UTARA


85

DAFTAR PUSTAKA

Agrawal, M., & Biswas, S. (2003). Primality and identity testing via Chinese
remaindering. Journal of the ACM, 50(4), 429–443.
https://doi.org/10.1145/792538.792540

Al-Zubi, M., & Abu-Shareha, A. A. (2019). Efficient signcryption scheme based


on El-Gamal and Schnorr. Multimedia Tools and Applications, 78(9), 11091–
11104. https://doi.org/10.1007/s11042-018-6636-7

An, J. H., Dodis, Y., & Rabin, T. (2002). On the security of joint signature and
encryption. Lecture Notes in Computer Science (Including Subseries Lecture
Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2332,
83–107. https://doi.org/10.1007/3-540-46035-7_6

Budiman, M. A., & Rachmawati, D. (2020). A tutorial on using Benaloh public


key cryptosystem to encrypt text. Journal of Physics: Conference Series,
1542(1). https://doi.org/10.1088/1742-6596/1542/1/012039

Budiman, M. A., Tarigan, J. T., & Winata, A. S. (2020). Arduino UNO and
Android Based Digital Lock Using Combination of Vigenere Cipher and
XOR Cipher. Journal of Physics: Conference Series, 1566(1).
https://doi.org/10.1088/1742-6596/1566/1/012074

Dan, M. M. O. (2009). Implementasi Tanda Tangan Digital Universitas Islam


Negeri 2009 M / 1430 H. Skripsi. Fakultas Sains dan Teknologi Universitas
Islam Negeri Syarif Hidayatullah

Dissanayake, W. D. M. G. M. (2018). An Improvement of the Basic El-Gamal


Public Key Cryptosystem. International Journal of Computer Applications
Technology and Research, 7(2), 40–44.
https://doi.org/10.7753/ijcatr0702.1002

Elgamal, T. (1985). A Public Key Cryptosystem and a Signature Scheme Based


on Discrete Logarithms. IEEE Transactions on Information Theory, 31(4),
469–472. https://doi.org/10.1109/TIT.1985.1057074

UNIVERSITAS SUMATERA UTARA


86

Lee, R. (Ed.). (2014). Software Engineering Research, Management and


Applications (Volume 496.). USA, Michigan: Springer.

Mezouar, H., & El Afia, A. (2019). Proposal for an approach to evaluate


continuity in service supply chains: Case of the Moroccan electricity supply
chain. International Journal of Electrical and Computer Engineering, 9(6),
5552–5559. https://doi.org/10.11591/ijece.v9i6.pp5552-5559

Munir, R. (2005). Penggunaan Tanda-Tangan Digital untuk Menjaga Integritas


Berkas Perangkat Lunak. 2005(Snati), 6–9.

Ong, H., Schnorr, C. P., & Shamir, A. (1984). An efficient signature scheme
based on quadratic equations. Proceedings of the Annual ACM Symposium
on Theory of Computing, 208–216. https://doi.org/10.1145/800057.808683

Rachmawati, D., & Budiman, M. A. (2020). On Using the First Variant of


Dependent RSA Encryption Scheme to Secure Text: A Tutorial. Journal of
Physics: Conference Series, 1542(1). https://doi.org/10.1088/1742-
6596/1542/1/012024

Ranasinghe, R., & Athukorala, P. (2021). A generalization of the ElGamal public-


key cryptosystem. Journal of Discrete Mathematical Sciences and
Cryptography, 1–8. https://doi.org/10.1080/09720529.2020. Journal of
Discrete Mathematical Sciences and Cryptography, 1–8.
https://doi.org/10.1080/09720529.2020.1857902

Schneier, B. (2015). Applied Cryptography: Protocols, Algorithms and Source


Code in C, 20th Anniversary Edition. 784.

Virgiawan, M. A., & Utama, G. P. (2020). Penggunaan Metode Ong-Schnorr-


Shamir Pada Pembuatan Tanda Tangan Digital. Jurnal Teknik Informatika
Unika St. Thomas (JTIUST), 05, 51–59.

Westfall, Linda. (Ed.). (2010). The Certified Software Quality Engineer


Handbook. USA, Wisconsin: ASQ Quality Press.

UNIVERSITAS SUMATERA UTARA


A-1

LAMPIRAN

LISTING PROGRAM

MainFrom.cs
/*
* Created by SharpDevelop.
* User: Selfhy Ginting
* Date: 12/13/2021
* Time: 11:18 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;

namespace skripsiSAG
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void BtnStartClick(object sender, EventArgs e)
{
this.Hide();
MenuForm menu = new MenuForm();
menu.ShowDialog();
}

UNIVERSITAS SUMATERA UTARA


A-2

}
}

GenerateKey.cs

namespace skripsiSAG
{
/// <summary>
/// Description of GenerateKey.
/// </summary>
public partial class GenerateKey : Form
{
public GenerateKey()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
int p, value_p, g, value_g, a, x, value_z, q;
int y, value_n, n, k, value_h;

Random rand1 = new Random();

void BtnRandom1Click(object sender, EventArgs e)


{
p = primeNumber();
q = (p-1)/2;
g = primitiveRoot(p,q);
x = rand1.Next(2,p-2);
a = SaM(g,x,p);

textP.Text= p.ToString();
textG.Text= g.ToString();
textX.Text= x.ToString();
textA.Text = a.ToString();

UNIVERSITAS SUMATERA UTARA


A-3

void BtnRandom2Click(object sender, EventArgs e)


{
y = rand1.Next(2,p-2);
k = rand1.Next(2,500);
n = compositeNrelative(k);
textY.Text= y.ToString();
textN.Text= n.ToString();
textK.Text= k.ToString();
textH.Text = Convert.ToString(count_h(k,n));
}

}
}

EncryptThenSign.cs

namespace skripsiSAG
{
/// <summary>
/// Description of EncryptThenSign.
/// </summary>
public partial class EncryptThenSign : Form
{
public EncryptThenSign()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}

string metode;
int p,g,a,y;
int[] d,c1,c2;
int f,r,value_r,k,n;
int[] fp;
int [] agina1, agina2;

Random rand2 = new Random();

UNIVERSITAS SUMATERA UTARA


A-4

void BtnEnkripsiClick(object sender, EventArgs e)


{
d = new int [plaintext.Text.Length];
c1 = new int [plaintext.Text.Length];
c2 = new int [plaintext.Text.Length];
fp = new int [plaintext.Text.Length];
var EncryptTimer = new Stopwatch();
EncryptTimer.Start();
for (int i=0; i<plaintext.Text.Length;i++){
fp[i] = primeFactor(plaintext.Text[i]);
d[i] = SaM(g,fp[i],p);
c1[i] = SaM(d[i],y,p);
ciphertextB.Text+=c1[i]+" ";
c2[i] = (plaintext.Text[i]*(SaM(a,(fp[i]*y),p)))%p;
ciphertextC.Text+=c2[i]+" ";
}
EncryptTimer.Stop();
EncryptTime.Text=(int.Parse(EncryptTimer.Elapsed.ToString("fffffff"))/10000f).To
String();
}

//---------------------------------------------------------------signing

void BtnSignClick(object sender, EventArgs e)


{
BigInteger[] s1B = new BigInteger [agina1.Length];
BigInteger[] s2B = new BigInteger [agina1.Length];
BigInteger[] s1C = new BigInteger [agina1.Length];
BigInteger[] s2C = new BigInteger [agina1.Length];
int invR;
int invDua;
r=randomR(n);
randomNum.Text=r.ToString();
var SignTimer = new Stopwatch();
SignTimer.Start();
for (int i=0; i<agina1.Length;i++){
invDua = inversModulo(2,n);
invR = inversModulo(r,n);
s1B[i] = (invDua * ((agina1[i] * invR) + r))%n;
sign1B.Text+=s1B[i]+" ";
s2B[i] = (k * invDua * ((agina1[i] * invR) - r))%n;
sign2B.Text+=s2B[i]+" ";
//

UNIVERSITAS SUMATERA UTARA


A-5

s1C[i] = (invDua * ((agina2[i] * invR) + r))%n;


sign1C.Text+=s1C[i]+" ";
s2C[i] = (k * invDua * ((agina2[i] * invR) - r))%n;
sign2C.Text+=s2C[i]+" ";
}
SignTimer.Stop();
signTime.Text=(int.Parse(SignTimer.Elapsed.ToString("fffffff"))/10000f).ToString()
;

}//partial form
}

VerifyThenDecrypt.cs

namespace skripsiSAG
{
/// <summary>
/// Description of VerifyThenDecrypt.
/// </summary>
public partial class VerifyThenDecrypt : Form
{
public VerifyThenDecrypt()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}

int n,h;
int[] s1B,s2B,s1C,s2C;
int x,p;
int[] c1;
int[] c2;
int[] cSB;
int[] cSC;

void BtnVerifyBClick(object sender, EventArgs e)

UNIVERSITAS SUMATERA UTARA


A-6

{
int counter=0;
int [] vB = new int [s1B.Length];
int [] squareS1 = new int[s1B.Length];
int [] squareS2 = new int[s1B.Length];
var verifyTimerB = new Stopwatch();
verifyTimerB.Start();
for (int i=0; i<s1B.Length;i++){
squareS1[i] = s1B[i]*s1B[i];
squareS2[i] = s2B[i]*s2B[i];
vB[i] = ( squareS1[i] + (h*squareS2[i])) % n;
if (vB[i] == (cSB[i]%n)){
counter++;
}
//verifyB.Text+=vB[i];
}
if(counter==cSB.Length){
verifyB.Text="Valid";
}else {
verifyB.Text="Invalid";
}
verifyTimerB.Stop();
verifyBTime.Text=(int.Parse(verifyTimerB.Elapsed.ToString("fffffff"))/10000f).ToSt
ring();
}

void BtnVerifyCClick(object sender, EventArgs e)


{
int counter=0;
int [] vC = new int [s1C.Length];
int [] squareS1 = new int[s1C.Length];
int [] squareS2 = new int[s1C.Length];
var verifyTimerC = new Stopwatch();
verifyTimerC.Start();
for (int i=0; i<s1C.Length;i++){
squareS1[i] = s1C[i]*s1C[i];
squareS2[i] = s2C[i]*s2C[i];
vC[i] = ( squareS1[i] + (h*squareS2[i])) % n;
if (vC[i] == (cSC[i]%n)){
counter++;
}
//verifyB.Text+=vB[i];
}
if(counter==cSC.Length){
verifyC.Text="Valid";

UNIVERSITAS SUMATERA UTARA


A-7

}else {
verifyC.Text="Invalid";
}
verifyTimerC.Stop();
verifyCTime.Text=(int.Parse(verifyTimerC.Elapsed.ToString("fffffff"))/10000f).ToSt
ring();
}

// decryption proses below

void BtnDecryptClick(object sender, EventArgs e)


{
int [] d = new int [c1.Length];
int [] m = new int [c1.Length];
int [] inv = new int [c1.Length];
var decryptTimer = new Stopwatch();
decryptTimer.Start();
for (int i=0; i<c1.Length;i++){
d[i] = SaM(c1[i],x,p);
inv[i]= (inversModulo(d[i],p))%p;
m[i] = (c2[i]*inv[i]) %p;
plaintextselfhy.Text+=(char) m[i];
}
decryptTimer.Stop();
decryptTime.Text=(int.Parse(decryptTimer.Elapsed.ToString("fffffff"))/10000f).To
String();

}
}

UNIVERSITAS SUMATERA UTARA


A-8

UunnuasjdUNIVERSITAS SUMATERA UTARA

Anda mungkin juga menyukai