IMPLEMENTASI ALGORITMA KUNCI PUBLIK NTRUENCRYPT PADA ADD-IN MICROSOFT OUTLOOK
SKRIPSI
ARION IMMANUEL SITORUS 081401022
PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2013
Universitas Sumatera Utara
IMPLEMENTASI ALGORITMA KUNCI PUBLIK NTRUENCRYPT PADA ADD-IN MICROSOFT OUTLOOK
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 MEDAN 2013
Universitas Sumatera Utara
ii
PERSETUJUAN
Judul
:
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: : : : : :
IMPLEMENTASI ALGORITMA KUNCI PUBLIK NTRUENCRYPT PADA ADD-IN MICROSOFT OUTLOOK SKRIPSI ARION IMMANUEL SITORUS 081401022 SARJANA (S1) ILMU KOMPUTER ILMU KOMPUTER 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,
Dr. Poltak Sihombing, M.Kom. NIP. 196203171991031001
Universitas Sumatera Utara
iii
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
ARION IMMANUEL SITORUS 081401022
Universitas Sumatera Utara
iv
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 Penulis
Universitas Sumatera Utara
v
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. Kata Kunci: Kriptografi, NTRUEncrypt, base64 Encoding
Universitas Sumatera Utara
vi
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. Keyword : Cryptography, NTRUEncrypt, Base64 Encoding
Universitas Sumatera Utara
vii
DAFTAR ISI
Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran
ii iii iv v vi vii ix x xi
Bab 1
Pendahuluan 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan
1 1 3 4 4 5 5 6
Bab 2
Tinjauan Pustaka 2.1. Kriptografi 2.1.1 Kriptografi Simetri 2.1.2 Kriptografi Asimetri 2.2 Landasan Matematika Kriptografi 2.2.1 Bilangan Prima 2.2.2 Aritmetika Modulo 2.3 Algoritma Extended Euclid 2.4 Polynomial Ring 2.4.1 Penjumlahan dan Pengurangan Polinomial pada (ℤ/pℤ)[X]/(XN-1) 2.4.2 Perkalian Polinomial pada (ℤ/pℤ)[X]/(XN-1) 2.4.2 Pembagian Polinomial pada (ℤ/pℤ)[X]/(XN-1) 2.4.2 Invers Polinomial pada (ℤ/pℤ)[X]/(XN-1) 2.5 Algoritma NTRUEncrypt 2.5.1 Parameter dalam NTRUEncrypt 2.5.2 Keys Generation 2.5.3 Proses Enkripsi 2.5.4 Proses Dekripsi 2.6 Base64 Encoding 2.7 Microsoft Outlook 2.8 Unified Modelling Language
7 7 10 11 12 12 13 14 17 18 19 20 21 22 23 24 26 27 28 30 31
Universitas Sumatera Utara
viii
2.8.1 Use Case Diagram 2.8.2 Activity Diagram 2.8.3 Sequence Diagram 2.8.4 Class Diagram 2.9 Kompleksitas Algoritma 2.9.1 Notasi Big-O
32 33 33 34 35 36
Bab 3
Analisis dan Perancangan 3.1 Analisis Sistem 3.1.1 Analisis Masalah 3.1.2 Analisis Persyaratan (Requirement Analysis) 3.1.2.1 Analisis Persyaratan Fungsional 3.1.2.2 Analisis Persyaratan Non-Fungsional 3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case 3.1.3 Analisis Proses Sistem 3.2 Perancangan Sistem 3.2.1 Class Diagram 3.2.2 Perancangan Antarmuka
38 38 38 39 39 40 40 57 62 62 66
Bab 4
Implementasi dan Pengujian 4.1 Implementasi Sistem 4.1.1 Spesifikasi Kebutuhan Perangkat Keras 4.1.2 Spesifikasi Kebutuhan Perangkat Lunak 4.1.3 Tampilan Sistem 4.1.3.1 Antarmuka Proses Pembangkitan Kunci 4.1.3.2 Antarmuka Proses Enkripsi 4.1.3.3 Antarmuka Proses Dekripsi 4.1.3.2 Antarmuka Proses Enkripsi dan Dekripsi File Teks 4.1.3.2 Antarmuka Pusat Bantuan 4.2 Pengujian Sistem 4.2.1 Perangkat Pengujian Sistem 4.2.2 Tujuan Pengujian 4.2.3 Skenario Pengujian 4.2.4 Data Hasil Pengujian 4.2.5 Analisis Keberhasilan Proses Dekripsi
73 73 73 74 74 76 77 77 78 77 81 81 82 82 83 85
Bab 5
Kesimpulan dan Saran 5.1. Kesimpulan 5.2. Saran
87 87 88
Daftar Pustaka
89
Universitas Sumatera Utara
ix
DAFTAR TABEL
Nomor Tabel 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 4.1 4.2 4.3 4.4 4.5
Nama 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 Case Encode Polinomial Dokumentasi Naratif Use Case Encode Base64 Dokumentasi Naratif Use Case Dekripsi Dokumentasi Naratif Use Case Decode Base64 Dokumentasi Naratif Use Case Decode Polinomial Pseudocode dan Kompleksitas Pembangkitan kunci Pseudocode dan Kompleksitas Algoritma Encode Polinomial Pseudocode dan Kompleksitas Proses Enkripsi Pseudocode dan Kompleksitas Algoritma Encode Base64 Pseudocode dan Kompleksitas Algoritma Decode Base64 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
Halama n 15 16 20 21 22 24 29 42 43 45 46 48 50 52 54 55 58 59 60 60 61 61 62 63 66 68 69 71 72 73 82 83 84 85
Universitas Sumatera Utara
x
DAFTAR GAMBAR
Nomor Gambar 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10
Nama Gambar
Halaman
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 Case Encode Polinomial Activity Diagram Use Case Encode Base64 Activity Diagram Use Case Dekripsi Activity Diagram Use Case Decode Base64 Activity Diagram Use Case Decode 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 Form File Encryption Form File Decryption Form About Form Help
10 11 29 30 30 32 33 34 35 39 41 43 44 45 47 49 50 53 54 52 57 58 60 65 66 68 69 70 72 70 74 75 75 76 77 78 79 80 80 81
Universitas Sumatera Utara
xi
DAFTAR LAMPIRAN
Halaman A. Listing Program
A-1
Universitas Sumatera Utara