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
Universitas Sumatera Utara
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
Universitas Sumatera Utara
PERSETUJUAN
Judul
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA : SKRIPSI : DEWI TRY AGUSTINA : 041401015 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) USU Diluluskan di Medan, 20 Desember 2008
Komisi Pembimbing
:
Pembimbing 2 :
Pembimbing 1
:
Maya Silvi Lydia, B.Sc., M.Sc. NIP 132 299 349
Prof. Dr. Iryanto, M.Si. NIP 130 353 140
Diketahui / Disetujui oleh Departemen Ilmu Komputer FMIPA USU Ketua,
Prof. Dr. Muhammad Zarlis NIP 131 570 434
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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 Universitas Sumatera Utara. 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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.2 Perumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metodologi Penelitian 1.7 Sistematika Penulisan Bab 2 Landasan Teori 2.1 Kriptografi 2.1.1 Sejarah Kriptografi 2.1.2 Enkripsi dan Dekripsi 2.1.2.1 Enkripsi Konvensional 2.1.2.2 Enkripsi Kunci Publik 2.1.3 Pola-pola Penyerangan Data 2.1.4 Serangan terhadap Kriptografi 2.1.5 Kategori Cipher Kunci Simetri 2.2 Rekayasa Perangkat Lunak 2.2.1 Proses Rekayasa Perangkat Lunak 2.3 Matematika Kriptografi 2.3.1 Teorema Euclidean 2.3.2 PBB 2.3.3 Algoritma Euclidean 2.3.4 Relatif Prima 2.3.5 Aritmatika Modulo 2.3.6 Kekongruenan 2.3.7 Inversi Modulo 2.4 Algoritma IDEA 2.4.1 Proses Enkripsi IDEA 2.4.2 Pembentukan Subkunci Enkripsi 2.4.3 Proses Dekripsi IDEA 2.4.3.1 Invers Penjumlahan
1 2 2 3 3 3 4 6 6 7 8 9 9 10 12 12 13 13 13 13 14 14 15 15 15 16 17 19 21 22 23
Universitas Sumatera Utara
2.4.3.2 Invers Perkalian 2.4.3.3 Algoritma Extended Euclidean 2.4.4 Contoh Komputasi Penggunaan Algoritma IDEA 2.4.4.1 Proses Enkripsi 2.4.4.2 Proses Dekripsi Bab 3 Analisis dan Pemodelan Perangkat Lunak 3.1 3.2 3.3 3.4
3.5
30
Analisis Permasalahan Algoritma IDEA Analisis Kebutuhan Algoritma IDEA Pemodelan Fungsional DFD dan Spesifikasi Proses 3.4.1 Diagram Konteks 3.4.2 DFD level 1 3.4.3 DFD level 2 proses P.1 3.4.4 DFD level 3 proses P.1.1 3.4.5 DFD level 3 proses P.1.2 3.4.6 DFD level 2 proses P.3 3.4.7 DFD level 2 proses P.4 Kamus Data 3.5.1 Proses Pembentukan Kunci Enkripsi dan Dekripsi 3.5.2 Proses Enkripsi 3.5.3 Proses Dekripsi
Bab 4 Perancangan dan Implementasi Perangkat Lunak 4.1
4.2
5.1 Kesimpulan 5.2 Saran Daftar Pustaka Lampiran Listing Program Kode ASCII
30 30 32 32 33 33 35 36 37 38 39 40 41 42 42 44
Perancangan 4.1.1 Perancangan Data 4.1.2 Perancangan Struktur Program 4.1.3 Perancangan Prosedural 4.1.3.1 Algoritma dan flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi 4.1.3.2 Algoritma dan flowchart Proses Enkripsi 4.1.3.3 Algoritma dan flowchart Proses Dekripsi Implementasi 4.2.1 Halaman Menu Utama 4.2.2 Halaman Menu Enkripsi 4.2.3 Halaman Menu Dekripsi
Bab 5 Penutup
24 24 26 26 27
44 44 45 47 47 49 50 54 54 57 58 60 60 60 61 63 77
Universitas Sumatera Utara
DAFTAR TABEL
Halaman Tabel 2.1 Tabel 2.2 Tabel 2.3 Tabel 2.4 Tabel 2.5 Tabel 2.6 Tabel 3.1 Tabel 3.2 Tabel 3.3 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Tabel 3.8 Tabel 3.9 Tabel 3.10
Penggunaan Kunci di Tiap Putaran Subblok Kunci Enkripsi Subblok Kunci Dekripsi Subkunci-subkunci Enkripsi yang Berhasil Dibentuk Hasil Perhitungan Setiap Subblok 16-bit dalam 9 Round Subkunci-subkunci Dekripsi yang Berhasil Dibentuk Spesifikasi Proses Diagram Konteks Spesifikasi Proses Diagram Level 1 Spesifikasi Proses Diagram Level 2 Proses 1 Spesifikasi Proses Diagram Level 3 untuk Proses 1.1 Spesifikasi Proses Diagram Level 3 untuk Proses 1.2 Spesifikasi Proses Diagram Level 2 untuk Proses 3 Spesifikasi Proses Diagram Level 2 untuk Proses 4 Kamus Data Proses Pembentukan Kunci Enkripsi dan Dekripsi Kamus Data Proses Enkripsi Kamus Data Proses Dekripsi
22 23 23 27 28 29 33 35 36 37 38 39 41 42 43 43
Universitas Sumatera Utara
DAFTAR GAMBAR
Halaman Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16
Proses Enkripsi–Dekripsi pada Enkripsi Konvensional Proses Enkripsi–Dekripsi pada Enkripsi Kunci Publik Interruption Interception Modification Fabrication Kotak MA (Multiplication - Addition) Algoritma kriptografi simetri IDEA Diagram Konteks DFD Level 1 DFD Level 2 Proses 1 DFD Level 3 Proses 1.1 DFD Level 3 Proses 1.2 DFD Level 2 Proses 3 DFD Level 2 Proses 4 Struktur Program IDEACrypt
9 9 10 11 11 11 18 20 33 34 35 36 37 39 40 46
Flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi Flowchart Proses Enkripsi Flowchart Proses Dekripsi
48 52 53 54
Tampilan Menu Utama Tampilan dengan Kunci yang Salah Tampilan Setelah Input Kunci Tampilan Kunci Enkripsi dan Dekripsi Tampilan Layar Enkripsi Tampilan Layar Enkripsi dengan Input yang Salah Tampilan Layar Dekripsi Tampilan Layar Enkripsi sekaligus Dekripsi
55 55 56 57 58 59 59
Universitas Sumatera Utara