PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA SKRIPSI DEWI TRY AGUSTINA 041401015 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer DEWI TRY AGUSTINA 041401015 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
PERSETUJUAN Judul : PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA Kategori : SKRIPSI Nama : DEWI TRY AGUSTINA Nomor Induk Mahasiswa : 041401015 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen Fakultas Komisi Pembimbing : : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) USU Diluluskan di Medan, 20 Desember 2008 Pembimbing 2 : Pembimbing 1 : Maya Silvi Lydia, B.Sc., M.Sc. Prof. Dr. Iryanto, M.Si. NIP 132 299 349 NIP 130 353 140 Diketahui / Disetujui oleh Departemen Ilmu Komputer FMIPA USU Ketua, Prof. Dr. Muhammad Zarlis NIP 131 570 434
PERNYATAAN PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing masing disebutkan sumbernya. Medan, 20 Desember 2008 DEWI TRY AGUSTINA 041401015
PENGHARGAAN Puji dan syukur penulis panjatkan kepada Allah SWT, Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpahan karunia Nya maka kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Ucapan terima kasih saya sampaikan kepada: 1. Bapak Prof. Dr. Iryanto, M.Sc. dan Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan professional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. 2. Ketua dan Sekretaris Departemen Bapak Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus,S.Si,MIT, serta Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam. 3. Semua dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di FMIPA USU, dan rekan rekan kuliah. 4. Juga tidak terlupakan kepada bapak, ibu, dan semua ahli keluarga yang saya cintai, yaitu bang Toni, bang Aris, Ihsan,serta para paman bibi yang selama ini memberikan bantuan dan dorongan yang diperlukan. 5. Serta takkan luput juga kepada sahabat-sahabat tersayang, yaitu: Nisa, Leni, Dian, Farida, Nita, Dewi, Tya, Tika, dll. yang telah berjuang membantu, baik material, pikiran, tenaga, dan waktu. 6. Terakhir kepada teman kuliah yang sudah sangat membantu dalam penyelesaian program skripsi ini yaitu Fahrur Razi. 7. Juga tidak terlewatkan kepada Bang Yunza, sahabat sekaligus abang, yang sudah banyak memberikan semangat dan dukungan serta motivasi yang membangun dalam menyelesaikan skripsi ini. Semoga Allah SWT, Tuhan Yang Maha Esa dan Kuasa, membalas segala kebaikan mereka. Penulis berharap agar kelak dapat membalas kebaikan mereka dengan menjadi orang berguna bagi agama, nusa bangsa, Negara, dan masyarakat.
ABSTRAK Banyak algoritma kriptografi modern yang walaupun menyediakan keamanan tinggi, namun sangat susah dimengerti dan dipelajari masyarakat awam. Tujuan dari penelitian ini adalah untuk membangun suatu perangkat lunak yang tidak hanya bisa menjaga keamanan data dengan kuat dan andal, tapi juga mudah dimengerti banyak orang. Untuk itulah algoritma IDEA dipilih, karena algoritma ini termasuk algoritma yang memuaskan user selain dengan kekuatan dan keandalannya dari berbagai serangan para kriptanalis, juga dengan kemudahannya dipelajari semua orang. Sistem ini dikembangkan menggunakan bahasa pemrograman C++. Analisis kebutuhan perangkat lunak algoritma IDEA dilakukan dengan menentukan nama perangkat lunak yang akan dibangun, mengetahui siapa yang akan menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai, membuat tampilan antarmuka yang mendidik, menentukan teknik yang dipergunakan untuk membentuknya, serta menguji hasil perangkat lunak tersebut. Objektif utama sistem ini adalah untuk melihat dan mempelajari berbagai konsep dan prinsip untuk merancang dan mengimplementasikan sistem keamanan data menggunakan algoritma IDEA.
DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM USING THE SYMETRIC CRYPTOGRAPHY IDEA ALGORITHM ABSTRACT Many of modern cryptography algorithm that although give high security, but very hard to understood and analysed by common people. The purpose of this research is to build a software that not only can protecting data security powerfully and reliable, but also easy to understood by many people. For that reason the IDEA algorithm was selected, because this algorithm not only satisfy many users by its strength from many attacks of cryptanalyst, but also with its simpleness to understood by many people. This system is developed by using the C++ programming language. The analyses of the IDEA algorithm software was done by determining the name of the software that will be builded, knowing who will use the software, comprehending the technology concepts that will be used, make the interview appearance of the software which are educative, determining the technique that will be used to forming it, and testing the result of the software. The main objective of this system is to comprehending, understanding, and learning any concepts and principles to design and implement the data security system using the IDEA algorithm.
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii ix x Bab 1 Pendahuluan 1 1.1 Latar Belakang 1 1.2 Perumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 4 Bab 2 Landasan Teori 6 2.1 Kriptografi 6 2.1.1 Sejarah Kriptografi 7 2.1.2 Enkripsi dan Dekripsi 8 2.1.2.1 Enkripsi Konvensional 9 2.1.2.2 Enkripsi Kunci Publik 9 2.1.3 Pola-pola Penyerangan Data 10 2.1.4 Serangan terhadap Kriptografi 12 2.1.5 Kategori Cipher Kunci Simetri 12 2.2 Rekayasa Perangkat Lunak 13 2.2.1 Proses Rekayasa Perangkat Lunak 13 2.3 Matematika Kriptografi 13 2.3.1 Teorema Euclidean 13 2.3.2 PBB 14 2.3.3 Algoritma Euclidean 14 2.3.4 Relatif Prima 15 2.3.5 Aritmatika Modulo 15 2.3.6 Kekongruenan 15 2.3.7 Inversi Modulo 16 2.4 Algoritma IDEA 17 2.4.1 Proses Enkripsi IDEA 19 2.4.2 Pembentukan Subkunci Enkripsi 21 2.4.3 Proses Dekripsi IDEA 22 2.4.3.1 Invers Penjumlahan 23
2.4.3.2 Invers Perkalian 24 2.4.3.3 Algoritma Extended Euclidean 24 2.4.4 Contoh Komputasi Penggunaan Algoritma IDEA 26 2.4.4.1 Proses Enkripsi 26 2.4.4.2 Proses Dekripsi 27 Bab 3 Analisis dan Pemodelan Perangkat Lunak 30 3.1 Analisis Permasalahan Algoritma IDEA 30 3.2 Analisis Kebutuhan Algoritma IDEA 30 3.3 Pemodelan Fungsional 32 3.4 DFD dan Spesifikasi Proses 32 3.4.1 Diagram Konteks 33 3.4.2 DFD level 1 33 3.4.3 DFD level 2 proses P.1 35 3.4.4 DFD level 3 proses P.1.1 36 3.4.5 DFD level 3 proses P.1.2 37 3.4.6 DFD level 2 proses P.3 38 3.4.7 DFD level 2 proses P.4 39 3.5 Kamus Data 40 3.5.1 Proses Pembentukan Kunci Enkripsi dan Dekripsi 41 3.5.2 Proses Enkripsi 42 3.5.3 Proses Dekripsi 42 Bab 4 Perancangan dan Implementasi Perangkat Lunak 44 4.1 Perancangan 44 4.1.1 Perancangan Data 44 4.1.2 Perancangan Struktur Program 45 4.1.3 Perancangan Prosedural 47 4.1.3.1 Algoritma dan flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi 47 4.1.3.2 Algoritma dan flowchart Proses Enkripsi 49 4.1.3.3 Algoritma dan flowchart Proses Dekripsi 50 4.2 Implementasi 54 4.2.1 Halaman Menu Utama 54 4.2.2 Halaman Menu Enkripsi 57 4.2.3 Halaman Menu Dekripsi 58 Bab 5 Penutup 60 5.1 Kesimpulan 60 5.2 Saran 60 Daftar Pustaka 61 Lampiran Listing Program 63 Kode ASCII 77
DAFTAR TABEL Halaman Tabel 2.1 Penggunaan Kunci di Tiap Putaran 22 Tabel 2.2 Subblok Kunci Enkripsi 23 Tabel 2.3 Subblok Kunci Dekripsi 23 Tabel 2.4 Subkunci-subkunci Enkripsi yang Berhasil Dibentuk 27 Tabel 2.5 Hasil Perhitungan Setiap Subblok 16-bit dalam 9 Round 28 Tabel 2.6 Subkunci-subkunci Dekripsi yang Berhasil Dibentuk 29 Tabel 3.1 Spesifikasi Proses Diagram Konteks 33 Tabel 3.2 Spesifikasi Proses Diagram Level 1 35 Tabel 3.3 Spesifikasi Proses Diagram Level 2 Proses 1 36 Tabel 3.4 Spesifikasi Proses Diagram Level 3 untuk Proses 1.1 37 Tabel 3.5 Spesifikasi Proses Diagram Level 3 untuk Proses 1.2 38 Tabel 3.6 Spesifikasi Proses Diagram Level 2 untuk Proses 3 39 Tabel 3.7 Spesifikasi Proses Diagram Level 2 untuk Proses 4 41 Tabel 3.8 Kamus Data Proses Pembentukan Kunci Enkripsi dan Dekripsi 42 Tabel 3.9 Kamus Data Proses Enkripsi 43 Tabel 3.10 Kamus Data Proses Dekripsi 43
DAFTAR GAMBAR Halaman Gambar 2.1 Proses Enkripsi Dekripsi pada Enkripsi Konvensional 9 Gambar 2.2 Proses Enkripsi Dekripsi pada Enkripsi Kunci Publik 9 Gambar 2.3 Interruption 10 Gambar 2.4 Interception 11 Gambar 2.5 Modification 11 Gambar 2.6 Fabrication 11 Gambar 2.7 Kotak MA (Multiplication - Addition) 18 Gambar 2.8 Algoritma kriptografi simetri IDEA 20 Gambar 3.1 Diagram Konteks 33 Gambar 3.2 DFD Level 1 34 Gambar 3.3 DFD Level 2 Proses 1 35 Gambar 3.4 DFD Level 3 Proses 1.1 36 Gambar 3.5 DFD Level 3 Proses 1.2 37 Gambar 3.6 DFD Level 2 Proses 3 39 Gambar 3.7 DFD Level 2 Proses 4 40 Gambar 4.1 Struktur Program IDEACrypt 46 Gambar 4.2 Flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi 48 Gambar 4.3 Flowchart Proses Enkripsi 52 Gambar 4.4 Flowchart Proses Dekripsi 53 Gambar 4.9 Tampilan Menu Utama 54 Gambar 4.10 Tampilan dengan Kunci yang Salah 55 Gambar 4.11 Tampilan Setelah Input Kunci 55 Gambar 4.12 Tampilan Kunci Enkripsi dan Dekripsi 56 Gambar 4.13 Tampilan Layar Enkripsi 57 Gambar 4.14 Tampilan Layar Enkripsi dengan Input yang Salah 58 Gambar 4.15 Tampilan Layar Dekripsi 59 Gambar 4.16 Tampilan Layar Enkripsi sekaligus Dekripsi 59