SKRIPSI
ARION IMMANUEL SITORUS 081401022
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
ARION IMMANUEL SITORUS 081401022
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA KUNCI PUBLIK
NTRUENCRYPT PADA ADD-IN MICROSOFT OUTLOOK
Kategori : SKRIPSI
Nama : ARION IMMANUEL SITORUS
Nomor Induk Mahasiswa : 081401022
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Oktober 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Handrizal, S.Si., M.Comp.Sc. M. Andri B, ST, M.CompSc, MEM.
NIP. 197510082008011011
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA KUNCI PUBLIK NTRUENCRYPT
PADA ADD-IN MICROSOFT OUTLOOK
SKRIPSI
Penulis mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa ringkasan dan kutipan yang masing-masing disebutkan sumbernya.
Medan, Oktober 2013
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa karena kasih dan karunia-Nya sehingga skripsi ini berhasil diselesaikan dengan baik.
Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada:
1. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
2. Ibu Maya Silvi Lydia, BSc. MSc sebagai Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Bapak M. Andri Budiman, ST, MCompSc, MEM dan Bapak Handrizal, Ssi, M.Comp.Sc selaku pembimbing yang telah membimbing penulis sehingga penulis dapat menyelesaikan skripsi ini.
5. Bapak Dr. Poltak Sihombing, M.Kom dan Bapak Partano Siagian, M.Sc. sebagai dosen penguji yang telah memberikan saran dan kritikan yang sangat berguna bagi Penulis.
6. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi USU. 7. Ayahanda tercinta E.N.Sitorus dan Ibunda tercinta S. br. Siahaan, adik saya
Polma Ebenezer Tambunan, Olivia Erviani Sitorus, dan Dea Sitorus yang selalu memberikan doa, motivasi dan dukungannya baik materi maupun spiritual serta semangat yang diberikan selama kuliah hingga menyelesaikan skripsi ini.
8. Teman-teman seperjuangan angkatan 2008 program studi S1 Ilmu Komputer USU, terkhusus kepada: Novita Sari Napitupulu, Andronikus Simarmata, Dedy Permana Sebayang, dan Yusuf Dzaki Saraan yang telah berbagi kebersamaan selama berada di S1 Ilmu Komputer.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.
Medan, 2013
ABSTRAK
Pertukaran informasi melalui media email kurang terjamin keamanannya. Data yang tidak aman dapat dimodifikasi, dipalsukan, disalahgunakan atau bahkan dihancurkan. Oleh karena itu dibutuhkan suatu mekanisme yang dapat digunakan untuk mengamankan data email. Kriptografi merupakan salah satu metode pengamanan data yang digunakan untuk menjaga kerahasiaan data. Dalam kriptografi terdapat banyak algoritma untuk mengamankan data, salah satunya adalah algoritma NTRUEncrypt. Skripsi ini mengkaji penggunaan algoritma NTRUEncrypt dalam mengamankan data teks pada email. Implementasi melibatkan penggunaan algoritma base64 encoding
yang digunakan untuk menerjemahkan hasil enkripsi ke dalam karakter printable. Pengujian dilakukan terhadap teks standar lorem ipsum yang disesuaikan dengan panjang maksimum pesan yang dapat dienkripsi. Hasil pengujian menunjukkan bahwa proses pembangkitan kunci pada algoritma NTRUEncrypt memakan waktu paling lama dibandingkan dengan proses enkripsi dan dekripsi. Secara keseluruhan, waktu eksekusi untuk semua proses berbanding lurus dengan ukuran input. Kinerja dari program ini sangat baik karena waktu yang dibutuhkan untuk proses enkripsi dan dekripsi kecil. Implementasi dilakukan pada aplikasi email client Microsoft Outlook 2010 dengan bahasa pemrograman Microsoft Visual C# 2010.
IMPLEMENTATION OF PUBLIC KEY ALGORITHM NTRUENCRYPT IN MICROSOFT OULOOK ADD-IN
ABSTRACT
Information exchange via email is not guaranteed safe. Unsecure data can be modified, falsified, misused or even destroyed. Therefore we need a better way to secure the data. Cryptography is one of the securing methods that can be used to maintain the confidentiality of the data. There are many algorithms in cryptography to secure the data, one of them is NTRUEncrypt Algorithm. This paper examines the use of NTRUEncrypt algorithm to secure text data on email service system. The implementation also involves base64 encoding algorithm that is used to translate the result of the encryption to printable characters. System is tested by using standard text lorem ipsum that its length will be adjust to the maximum length of message that can be encrypted. The test results show that the key generation process takes the longest time compared to other processes. Overall, the execution time for all processes is proportional to the input size. Performance of the program is very good because the time required for encryption and decryption is small. System is implemented on email client application Microsoft Outlook 2010 by using Microsoft Visual C # 2010.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Daftar Lampiran xi
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 4
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 5
1.6 Metode Penelitian 5
1.7 Sistematika Penulisan 6
Bab 2 Tinjauan Pustaka 7
2.1. Kriptografi 7
2.1.1 Kriptografi Simetri 10
2.1.2 Kriptografi Asimetri 11
2.2 Landasan Matematika Kriptografi 12
2.2.1 Bilangan Prima 12
2.2.2 Aritmetika Modulo 13
2.3 Algoritma Extended Euclid 14
2.4 Polynomial Ring 17
2.4.1 Penjumlahan dan Pengurangan Polinomial
pada (ℤ/pℤ)[X]/(XN-1) 18
2.4.2 Perkalian Polinomial pada (ℤ/pℤ)[X]/(XN-1) 19
2.4.2 Pembagian Polinomial pada (ℤ/pℤ)[X]/(XN-1) 20
2.4.2 Invers Polinomial pada (ℤ/pℤ)[X]/(XN-1) 21
2.5 Algoritma NTRUEncrypt 22
2.5.1 Parameter dalam NTRUEncrypt 23
2.5.2 Keys Generation 24
2.5.3 Proses Enkripsi 26
2.5.4 Proses Dekripsi 27
2.6 Base64 Encoding 28
2.7 Microsoft Outlook 30
2.8.1 Use Case Diagram 32
2.8.2 Activity Diagram 33
2.8.3 Sequence Diagram 33
2.8.4 Class Diagram 34
2.9 Kompleksitas Algoritma 35
2.9.1 Notasi Big-O 36
Bab 3 Analisis dan Perancangan 38
3.1 Analisis Sistem 38
3.1.1 Analisis Masalah 38
3.1.2 Analisis Persyaratan (Requirement Analysis) 39 3.1.2.1 Analisis Persyaratan Fungsional 39 3.1.2.2 Analisis Persyaratan Non-Fungsional 40 3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case 40
3.1.3 Analisis Proses Sistem 57
3.2Perancangan Sistem 62
3.2.1 Class Diagram 62
3.2.2 Perancangan Antarmuka 66
Bab 4 Implementasi dan Pengujian 73
4.1 Implementasi Sistem 73
4.1.1 Spesifikasi Kebutuhan Perangkat Keras 73 4.1.2 Spesifikasi Kebutuhan Perangkat Lunak 74
4.1.3 Tampilan Sistem 74
4.1.3.1 Antarmuka Proses Pembangkitan Kunci 76
4.1.3.2 Antarmuka Proses Enkripsi 77
4.1.3.3 Antarmuka Proses Dekripsi 77
4.1.3.2 Antarmuka Proses Enkripsi dan Dekripsi File Teks 78
4.1.3.2 Antarmuka Pusat Bantuan 77
4.2 Pengujian Sistem 81
4.2.1 Perangkat Pengujian Sistem 81
4.2.2 Tujuan Pengujian 82
4.2.3 Skenario Pengujian 82
4.2.4 Data Hasil Pengujian 83
4.2.5 Analisis Keberhasilan Proses Dekripsi 85
Bab 5 Kesimpulan dan Saran 87
5.1. Kesimpulan 87
5.2. Saran 88
DAFTAR TABEL
Pseudocode Algoritma Euclid
Pseudocode Algoritma Extended Euclid
Pseudocode Algoritma Low Hamming Weight Polynomial Pseudocode Algoritma Euclid Division
Pseudocode Algoritma Extended Euclid pada (ℤ/pℤ)[X]/(XN-1)
Standar Parameter pada Algoritma NTRUEncrypt
Himpunan Karakter pada Base64 Encoding
Dokumentasi Naratif Use Case Bangkitkan Kunci
Dokumentasi Naratif Use Case Bangkitkan Kunci Privat Dokumentasi Naratif Use Case Bangkitkan Kunci Publik Dokumentasi Naratif Use Case Enkripsi
Dokumentasi Naratif Use CaseEncode Polinomial Dokumentasi Naratif Use CaseEncode Base64
Dokumentasi Naratif Use Case Dekripsi
Dokumentasi Naratif Use CaseDecode Base64
Dokumentasi Naratif Use CaseDecode Polinomial
Pseudocode dan Kompleksitas Pembangkitan kunci
Pseudocode dan Kompleksitas Algoritma Encode Polinomial
Pseudocode dan Kompleksitas Proses Enkripsi
Pseudocode dan Kompleksitas Algoritma EncodeBase64 Pseudocode dan Kompleksitas Algoritma DecodeBase64 Pseudocode dan Kompleksitas Proses Dekripsi
Pseudocode dan Kompleksitas Algoritma Decode Polinomial Kelas dan Atributnya
Komponen Ribbon
Komponen pada Form Saved Keys
Komponen pada Form Key Pair Generation
Komponen pada Form File Encryption
Komponen pada Form File Decryption
Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi Spesifikasi Perangkat Keras untuk Pengujian
Parameter Set Pengujian Sistem
Data Waktu Eksekusi Enkripsi dan Dekripsi
Data Waktu Eksekusi Encode Base64 dan Decode Base64
DAFTAR GAMBAR
Nomor Gambar
Nama Gambar Halaman
2.1
Skema Kriptografi Simetri Skema Kriptografi Asimetri Proses Base64 Encoding
Proses Base64 Decoding
Aplikasi Microsoft Outlook 2010 Contoh Sebuah Use Case
Contoh Sebuah Activity Diagram
Contoh Sebuah Sequence Diagram
Contoh Sebuah Class Diagram
Diagram Ishikawa Analisis Permasalahan Sistem
Use Case Diagram Sistem
Activity Diagram Use Case Bangkitkan Kunci
Activity Diagram Use Case Bangkitkan Kunci Privat
Activity Diagram Use Case Bangkitkan Kunci Publik
Activity Diagram Use Case Enkripsi
Activity Diagram Use CaseEncode Polinomial
Activity Diagram Use CaseEncodeBase64 Activity Diagram Use Case Dekripsi
Activity Diagram Use CaseDecode Base64 Activity Diagram Use CaseDecode Polinomial
Sequence Diagram Proses Pembangkitan Kunci
Sequence Diagram Proses Enkripsi
Sequence Diagram Proses Dekripsi
Class Diagram Sistem yang Akan Dikembangkan Rancangan Add-in pada Ribbon Microsoft Outlook
Form Saved Keys
Form Key Pair Generaton Form File Encryption Form File Decryption Form About
Proses Instalasi Add-in
Jendela Explorer Microsoft Outlook 2010 Jendela Mail Compose Microsoft Outlook 2010 Proses Pembangkitan Kunci
Proses Enkripsi Pesan Proses Dekripsi
DAFTAR LAMPIRAN
Halaman