KRITIS DARI SUATU JARINGAN KERJA PROYEK
SKRIPSI
DIAN MANJA SARI
041401012
PROGRAM STUDI S-1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PADA HILL CIPHER
SKRIPSI
DIAN MANJA SARI
041401012
PROGRAM STUDI S-1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PADA HILL CIPHER
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
DIAN MANJA SARI 041401012
PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
SARJANA REGULER/EXTENSION (S1) DAN DIPLOMA III/IV *)
No. :
Nama/NIM : Dian Manja Sari/041401012
Tempat/Tgl.Lahir/Gol.Darah : Psr. V Kw. Mencirim/07 Oktober 1985/B
Jenis Kelamin/Agama/Status : Perempuan/Islam/Belum Menikah Tinggi/Berat Badan : 158 cm/ 50 kg
Asal SLTA : SMU Negeri 1 Sei. Bingai
Fakultas/Departemen/P.Studi : MIPA/Ilmu Komputer/S-1
Tanggal Lulus : 19 Desember 2008
No.Alumni/No.Ijazah :
Judul Skripsi : Aplikasi Invers Matriks
Tergeneralisasi pada Hill Cipher Nama Orang Tua/Pekerjaan : Bahari/Pensiunan PNS
Alamat Orang Tua : Dsn.1 Adi Mulio Ds. Psr VI Kw. Mencirim Kec. Sei. Bingai Kab. Langkat
Diketahui, Medan, 23 Desember 2008
PUDEK I Fakultas MIPA Peserta Wisuda
(Dr. Sutarman, M.Sc) (Dian Manja Sari)
Saya yang bertandatangan di bawah ini :
Nama :
NIM :
Tempat/Tgl.Lahir :
Dep/Prog. Studi : Ilmu Komputer/S-1
Jika dikemudian hari ada kekurangan / kesalahan dalam Penulisan ijazah saya (Foto Berjilbab) karena kesalahan saya sendiri. Saya tidak akan menuntut pihak USU maupun Fakultas.
Medan, 9 Desember 2008
Yang bertanda tangan dibawah ini saya lulusan Fakultas MIPA Program Studi (S1/D3) menyatakan bahwa pada ijazah saya program nama dan data saya supaya ditulis sebagai berikut :
Nama : Dian Manja Sari
NIM : 041401012
Tempat/Tgl. Lahir : Psr. V Kw. Mencirim/07 Oktober 1985 Departemen/Prog. Studi : Ilmu Komputer/S-1
Jika dikemudian hari ada kekurangan atau kesalahan dalam penulisan ijazah saya tersebut karena kesalahan saya sendiri, saya tidak akan menuntut pihak USU maupun Fakultas.
Mengetahui Medan, 23 Desember 2008
Orang Tua / Wali Hormat Saya,
Judul : APLIKASI INVERS MATRIKS
TERGENERALISASI PADA HILL CIPHER
Kategori : SKRIPSI
Nama : DIAN MANJA SARI
Nomor Induk Mahasiswa : 041401012
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 19 Desember 2008
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dra. Mardiningsih, M.Si Drs. James P. Marbun, M.Kom
NIP. 131 803 344 NIP. 131 639 804
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
APLIKASI INVERS MATRIKS TERGENERALISASI PADA HILL CIPHER
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Desember 2008
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan karunia-Nya skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih penulis sampaikan kepada Bapak Drs. James P. Marbun, M.Kom dan Ibu Dra. Mardiningsih, M.Si selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyempurnakan skripsi ini. Panduan ringkas dan padat serta profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syariol Sitorus, S.Si., MIT, Dekan dan Pembantu Dekan FMIPA USU, semua dosen pada Program Studi S1 Ilmu Komputer FMIPA USU, dan seluruh pegawai di Program Studi S1 Ilmu Komputer FMIPA USU. Tidak terlupakan kepada yang tersayang Ayahanda Bahari dan Ibunda Siti Rosinar yang telah memberikan doa, dukungan, perhatian dan kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya semenjak penulis dilahirkan hingga menyelesaikan skripsi ini. Bang Bambang, Bang Jaka dan adikku Tio serta seluruh keluarga tercinta yang berjasa dan selalu sabar dalam memberikan dorongan moril maupun materil serta motivasi yang baik kepada penulis. Teristimewa kepada Mas Ikhwan yang selalu memberikan waktu, semangat, dan ikhlas membagi pengetahuan yang dimiliki kepada penulis. Teristimewa juga kepada Rocky yang telah banyak membantu dan memberi semangat kepada penulis untuk menyelesaikan skripsi ini. Ucapan terima kasih juga penulis ucapkan kepada sahabat-sahabat terbaik penulis, Awe, Leni, Farida, Try, Tika, Nita dan seluruh rekan-rekan kuliah angkatan ’04 yang telah banyak memberikan semangat kepada penulis dan Ayu yang selalu menjadi teman saat suka dan duka selama menyelesaikan skripsi ini. Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, serta kerja samanya kepada penulis dalam menyelesaikan skripsi ini.
ABSTRAK
Penulisan skripsi ini bertujuan untuk merancang suatu sistem keamanan data dengan cara menerapkan invers matriks tergeneralisasi pada algoritma Hill Cipher dengan kunci dapat berbentuk matriks bujur sangkar atau persegi panjang. Sistem kriptografi Hill Cipher Tergeneralisasi ini, dapat digunakan untuk mengamankan data dan informasi yang tersimpan di komputer dari gangguan para kriptoanalis. Dengan penerapan invers matriks tergeneralisasi pada algoritma Hill Cipher ini, maka kunci
dapat berupa matriks persegi panjang sehingga setiap pesan yang panjangnya n setelah
dienkripsi akan mempunyai panjang m. Hal ini akan lebih menyamarkan pesan
sehingga lebih sulit dipecahkan. Sistem ini dibangun menggunakan perangkat lunak MATLAB 7.0. Metodologi untuk membentuk sistem menggunakan pendekatan model air terjun. Tahapan yang penulis lakukan untuk melakukan proses pembentukan sistem tersebut meliputi tahapan analisis permasalahan, perancangan aplikasi yang
melibatkan diagram alir data, algoritma dan flowchart beserta pemodelan struktur
AN APPLICATION OF GENERALIZED INVERS MATRICES ON THE HILL CIPHER
ABSTRACT
This final project is aim to design a data security system by applying generaralized invers matrices of Hill Cipher algorithm by using square or rectangle matrices. Crytography system of generalized Hill Cipher can be used to protect data and information in comput er from disturbing by cryptoanalyst. By application of generalized invers matrices on the Hill Cipher algorithm, the key could be rectangle
matrices so every plaintext which its length n after encryption will be m. This way will
be hider the ciphertext for more difficult to be solved. This system is built up by software application MATLAB 7.0. The methodologies to form the system is use the approach of waterfall model. The step which writer has been taken in this application process are analysis the problem, application programme that involving data flow diagram, algorithm and flowchart so is the model of progamme structure, therefore the model application is easier used and has optimum function. For sure all function in the cryptography system of generalized Hill Cipher work optimally, so the application system tested and formed final conclusion.
.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Gambar x
Daftar Tabel xi
Bab 1 Pendahuluan 1
1.1 Latar Belakang Masalah 1
1.2 Perumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori 6
2.1 Kriptografi 6
2.1.1 Defenisi Kriptografi 6
2.1.2 Sejarah Kriptografi 7
2.1.3 Tujuan Kriptografi 10
2.1.4 Terminologi dan Konsep Dasar Kriptografi 11
2.1.4.1 Pesan, Plainteks dan Cipherteks 11
2.1.4.2 Peserta Komunikasi 12
2.1.4.3 Kriptologi 13
2.1.5 Algoritma dan Kunci 14
2.1.6 Algoritma Kriptografi 15
2.1.6.1 Algoritma Simetris 15
2.1.6.2 Algoritma Asimetris 16
2.1.6.3 Perbandingan Algorima Simetris dan Asimetris 17
2.1.7 Sistem Kriptografi 19
2.1.7.1 Keamanan Sistem Kriptografi 19
2.1.7.2 Serangan pada Sistem Kriptografi 20
2.2 Konsep Dasar Matematis Kriptografi 20
2.2.1 Persamaan Linear 20
2.2.2 Matriks dan Operasi pada Matriks 21
2.2.2.1 Matriks 21
2.2.2.2 Operasi pada Matriks 21
2.2.2.3 Transpos, Transpos Konjugat dan Hermitian 22
2.2.2.5 Invers Matriks 23
2.2.3 Ruang-ruang Vektor 24
2.2.3.1 Ruang Baris dan Kolom Matriks 24
2.2.3.2 Kombinasi Linear dan Bebas Linear 25
2.2.3.3 Basis dan Dimensi 25
2.2.4 Aljabar Abstrak 26
2.2.4.1 Grup 26
2.2.4.2 Gelanggang (Ring) 27
2.2.4.3 Lapangan (Field) 27
2.2.5 Teori Bilangan 27
2.2.5.1 Sifat Pembagian pada Bilangan Bulat 27
2.2.5.2 Pembagian Persekutuan Terbesar 28
2.2.5.3 Algoritma Euclide 28
2.2.5.4 Algoritma Euclide yang Diperluas 29
2.3 Invers Matriks Tergeneralisasi 30
2.3.1 Definisi Umum 30
2.3.2 Invers Matriks Tergeneralisasi atas Bilangan Bulat
Modulo p 30
2.4. Hill Cipher 31
2.5 Aplikasi Invers Matriks Tergeneralisasi pada Algoritma Hill
Cipher (Hill Cipher Tergeneralisasi) 32
2.5.1 Proses Penyandian 34
2.5.1.1 Proses Pembentukan Kunci 34
2.5.1.2 Proses Enkripsi 34
2.5.1.3 Proses Dekripsi 35
2.6 Rekayasa Perangkat Lunak 35
2.7 MATLAB 36
2.7.1 Sejarah MATLAB 37
2.7.2 Kemampuan dan Kegunaan MATLAB 37
Bab 3 Analisis dan Pemodelan Perangkat Lunak 38
3.1 Analisis Permasalahan Algoritma Hill Cipher Tergeneralisasi 38
3.2 Analisis Kebutuhan Algoritma Hill Cipher Tergeneralisasi 38
3.3 Pemodelan Fungsional 40
3.3.1 DFD dan Spesifikasi Proses 40
3.3.2 Kamus Data 48
3.3.2.1 Kamus Data Proses Pembentukan Kunci 49
3.3.2.2 Kamus Data Proses Enkripsi 50
3.3.2.3 Kamus Data Proses Dekripsi 51
Bab 4 Perancangan dan Implementasi 52
4.1 Perancangan 52
4.1.1 Perancangan Struktur Program 52
4.1.2 Perancangan Prosedural 54
4.1.2.1 Algoritma dan Flowchart Proses Pembentukan
Kunci 54
4.1.2.2 Algoritma dan Flowchart Proses Enkripsi 57
4.1.2.3 Algoritma dan Flowchart Proses Dekripsi 59
Bab 5 Penutup 70
5.1 Kesimpulan 70
5.2 Saran 71
Daftar Pustaka 72
Halaman
Gambar 2.1 Scytale 8
Gambar 2.2 Mesin Enkripsi Enigma 9
Gambar 2.3 Contoh Plainteks dan Cipherteksnya 12
Gambar 2.4 Skema Komunikasi dengan Proses Enkripsi 12
Gambar 2.5 Hubungan Kriptografi, Kriptanalisis dan Steganografi 13
Gambar 2.6 Skema Enkripsi dan Dekripsi 15
Gambat 2.7 Skema Algoritma Simetris 16
Gambar 2.8 Skema Algoritma Asimetris 17
Gambar 2.9 Fungsi Enkripsi 33
Gambar 3.1 Diagram Konteks atau DFD Level 0 41
Gambar 3.2 Diagram Level 1 Proses 0 42
Gambar 3.3 DFD Level 2 Proses Pembentukan Kunci 44
Gambar 3.4 DFD Level 2 Proses Enkripsi 46
Gambar 3.5 DFD Level 2 Proses Dekripsi 47
Gambar 4.1 Struktur Program GenHillCrypt 53
Gambar 4.2 Flowchart Prosedur Pembentukan Kunci 56
Gambar 4.3 Flowchart Prosedur Enkripsi 58
Gambar 4.4 Flowchart Prosedur Dekripsi 60
Gambar 4.5 Tampilan Layar Utama 61
Gambar 4.6 Tampilan Layar Program Utama 62
Gambar 4.7 Tampilan Layar Bentuk Kunci 62
Gambar 4.8 Tampilan Layar Input Matriks Manual 63
Gambar 4.9 Tampilan Layar Input Kalimat sebagai Kunci 64
Gambar 4.10 Tampilan Layar Lihat Matriks 65
Gambar 4.11 Tampilan Layar Enkripsi 66
Gambar 4.12 Tampilan Layar Dekripsi 67
Gambar 4.13 Tampilan Layar Dekripsi Cipher 67
Gambar 4.14 Tampilan Layar Dekripsi Cipher Baru 68
Gambar 4.15 Tampilan Layar Tentang Penulis 69
Halaman
Tabel 3.1 Spesifikasi Proses Diagram Konteks atau DFD Level 0 41
Tabel 3.2 Spesifikasi Proses Diagram Level 1 43
Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses 2 45
Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 3 46
Tabel 3.5 Spesifikasi Proses DFD Level 2 Proses 4 48
Tabel 3.6 Kamus Data Proses Pembentukan Kunci 49
Tabel 3.7 Kamus Data Proses Enkripsi 50
ABSTRAK
Penulisan skripsi ini bertujuan untuk merancang suatu sistem keamanan data dengan cara menerapkan invers matriks tergeneralisasi pada algoritma Hill Cipher dengan kunci dapat berbentuk matriks bujur sangkar atau persegi panjang. Sistem kriptografi Hill Cipher Tergeneralisasi ini, dapat digunakan untuk mengamankan data dan informasi yang tersimpan di komputer dari gangguan para kriptoanalis. Dengan penerapan invers matriks tergeneralisasi pada algoritma Hill Cipher ini, maka kunci
dapat berupa matriks persegi panjang sehingga setiap pesan yang panjangnya n setelah
dienkripsi akan mempunyai panjang m. Hal ini akan lebih menyamarkan pesan
sehingga lebih sulit dipecahkan. Sistem ini dibangun menggunakan perangkat lunak MATLAB 7.0. Metodologi untuk membentuk sistem menggunakan pendekatan model air terjun. Tahapan yang penulis lakukan untuk melakukan proses pembentukan sistem tersebut meliputi tahapan analisis permasalahan, perancangan aplikasi yang
melibatkan diagram alir data, algoritma dan flowchart beserta pemodelan struktur
AN APPLICATION OF GENERALIZED INVERS MATRICES ON THE HILL CIPHER
ABSTRACT
This final project is aim to design a data security system by applying generaralized invers matrices of Hill Cipher algorithm by using square or rectangle matrices. Crytography system of generalized Hill Cipher can be used to protect data and information in comput er from disturbing by cryptoanalyst. By application of generalized invers matrices on the Hill Cipher algorithm, the key could be rectangle
matrices so every plaintext which its length n after encryption will be m. This way will
be hider the ciphertext for more difficult to be solved. This system is built up by software application MATLAB 7.0. The methodologies to form the system is use the approach of waterfall model. The step which writer has been taken in this application process are analysis the problem, application programme that involving data flow diagram, algorithm and flowchart so is the model of progamme structure, therefore the model application is easier used and has optimum function. For sure all function in the cryptography system of generalized Hill Cipher work optimally, so the application system tested and formed final conclusion.
.
PENDAHULUAN
1.1 Latar Belakang Masalah
Keamanan informasi merupakan hal yang sangat penting dalam menjaga kerahasiaan informasi terutama yang berisi informasi sensitif yang hanya boleh diketahui isinya oleh pihak yang berhak saja, apalagi jika pengirimannya dilakukan melalui jaringan publik. Apabila data tersebut tidak diamankan terlebih dahulu akan sangat mudah disadap dan diketahui isi informasinya oleh pihak-pihak yang tidak berhak. Hal ini merupakan salah satu masalah dalam keamanan data dan informasi. Untuk itu dibutuhkan cara agar persoalan tersebut dapat diatasi.
Kriptografi adalah ilmu yang mempelajari bagaimana pesan yang dikirim oleh sender dan dapat diterima receiver dengan aman, yaitu dengan cara menyandikan isi informasi (plaintext) tersebut menjadi isi yang tidak dipahami melalui proses enkripsi. Untuk memperoleh kembali informasi yang asli, maka dilakukan proses dekripsi yang disertai dengan penggunaan kunci yang benar.
Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih ke arah metode-metode yang digunakan. Tujuan pokok dari proses enkripsi dan dekripsi adalah metode untuk merahasiakan pesan agar tidak mudah diketahui oleh orang lain.
Algoritma asimetris adalah algoritma yang menggunakan kunci berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini juga disebut sebagai sistem kriptografi public-key karena kunci untuk enkripsi dibuat secara umum (public-key, dapat
diketahui oleh siapa saja), tapi untuk proses dekripsinya dibuat satu kunci yang hanya diketahui oleh yang berwenang. Kunci ini disebut private-key.
Hill Cipher merupakan salah satu algoritma kunci simetris. Algoritma Hill Cipher menggunakan matriks bujur sangkar sebagai kunci untuk melakukan enkripsi dan dekripsi. Dasar teori matriks yang digunakan dalam Hill Cipher antara lain adalah operasi perkalian dan melakukan invers pada matriks.
Ide awal dari invers matriks tergeneralisasi (Generalized Inverses of Matrix) adalah menggeneralisasi pengertian invers matriks. Dari teori invers matriks tergeneralisasi tersebut maka ada kemungkinan menggunakan matriks persegi panjang sebagai kunci. Dengan adanya kemungkinan tersebut, maka penulis tertarik untuk melakukan pengembangan terhadap algoritma Hill Cipher yaitu dengan mengaplikasikan invers matriks tergeneralisasi pada algoritma Hill Cipher.
1.2 Perumusan Masalah
Rumusan masalah dari penulisan skripsi ini adalah:
1. Bagaimana menerapkan invers matriks tergeneralisasi pada algoritma Hill Cipher. 2. Bagaimana mengimplementasikan Hill Cipher Tergeneralisasi dalam sebuah
program komputer.
1.3 Batasan Masalah
Permasalahan pada skripsi ini dibatasi pada hal-hal sebagai berikut: 1. Penyandian hanya dilakukan pada pesan dalam format teks.
2. Proses penyandian pesan yang dibahas meliputi: proses pembangkitan kunci, proses enkripsi dan proses dekripsi serta implementasinya dalam sebuah program komputer.
4. Bilangan prima dan kunci yang digunakan pada algoritma Hill Cipher Tergeneralisasi dibatasi hanya pada Z29.
5. Aplikasi dibuat dengan menggunakan bahasa pemrograman MATLAB 7.0.
1.4 Tujuan Penelitian
Tujuan dari skripsi ini adalah Merancang suatu sistem keamanan data dengan menggunakan algoritma Hill Cipher Tergeneralisasi dengan kunci dapat berbentuk matriks bujur sangkar atau matriks persegi panjang, kemudian mengimplementasikannya dalam sebuah program komputer.
1.5 Manfaat Penelitian
Diharapkan skripsi ini dapat memperkaya literatur mengenai kriptografi khususnya algoritma Hill Cipher, sehingga nantinya dapat bermanfaat untuk menjaga keamanan data dan dapat diimplementasikan.
1.6 Metode Penelitian
Penelitian dalam skripsi ini dilakukan dengan beberapa tahapan, yaitu: 1. Studi Literatur
2. Analisis masalah
Pada tahap ini dilakukan analisis terhadap algoritma Hill Cipher dan invers matriks tergeneralisasi dari aspek matematis dan proses penyandian kemudian menerapkan invers matriks tergeneralisasi pada algoritma Hill Cipher.
3. Perancangan Sistem
Pada tahap ini, sistem dirancang sehingga dapat menjamin keamanan data. Perancangan sistem meliputi perancangan data, perancangan struktur program, dan perancangan prosedural sistem.
4. Pengkodean
Pada tahap ini, sistem yang telah dirancang kemudian diimplementasikan kedalam bahasa pemrograman.
5. Pengujian
Pada tahap ini, menguji program dan mencari kesalahan pada program hingga program itu dapat berjalan sesuai dengan yang dirancang.
6. Penyusunan laporan dan kesimpulan akhir
Pada tahap ini, menyusun laporan hasil analisis dan perancangan kedalam format penulisan skripsi dengan disertai kesimpulan akhir.
1.7 Sistematika Penulisan
BAB 1 : PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2 :LANDASAN TEORI
BAB 3 :ANALISIS dan PEMODELAN PERANGKAT LUNAK
Bab ini berisikan analisis permasalahan pengaplikasian invers matriks tergeneralisasi pada algoritma Hill Cipher, serta pemodelan sistem.
BAB 4: PERANCANGAN dan IMPLEMENTASI
Bab ini berisikan gambaran rancangan struktur program dan desain, serta memberikan gambaran dari rancang bangun yang lengkap kepada user dan pemakai komputer yang lain serta implementasinya yaitu menguji untuk menemukan kesalahan.
BAB 5: PENUTUP
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi atau yang sering dikenal dengan ilmu penyandian pesan adalah seni dan ilmu yang menyembunyikan informasi dari yang tidak berhak (Rahayu, 2005).
Menurut Request for Comments (RFC), kriptografi merupakan ilmu matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak dapat dipahami (untuk menyembunyikan maknanya), mencegahnya dari perubahan tanpa izin, atau mencegahnya dari penggunaan yang tidak sah. Jika transformasinya dapat dikembalikan, kriptografi juga bisa diartikan sebagai proses mengubah kembali data yang terenkripsi menjadi bentuk yang dapat dipahami. Artinya, kriptografi dapat diartikan sebagai proses untuk melindungi data dalam arti yang luas.
Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut:
“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini.”
Menezes, van Oorschot dan Vanstone (1997) menyatakan bahwa kriptografi adalah suatu studi teknik matematika yang berhubungan dengan aspek keamanan informasi seperi kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Kriptografi tidak hanya berarti penyediaan keamanan informasi, melainkan sebuah himpunan teknik-teknik.
Selain definisi di atas, Scheiner (1996) mengemukakan pendapatnya tentang definisi kriptografi yaitu: ilmu dan seni untuk menjaga keamanan pesan. Penggunaan kata “seni” di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni) (Munir, 2006).
2.1.2 Sejarah Kriptografi
Secara historis ada empat kelompok orang yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelijen dan mata-mata), kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Di antara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.
Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang disebut scytale (Gambar 2.1(a)). Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter silender menyatakan kunci penyandian). Pesan ditulis secara horizontal, baris per baris (Gambar 2.1(b)). Bila pita dilepaskan, maka huruf-huruf di dalamnya telah tersusun secara acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali melilitkan kembali kertas tersebut ke silinder yang diameternya sama dengan diameter silinder pengirim.
(a) Sebuah scytale (b) Pesan ditulis secara horizontal, baris perbaris.
Gambar 2.1 Scytale.
Sedangkang algoritma substitusi paling awal dan paling sederhana adalah Caesar cipher, yang digunakan oleh raja Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang terletak pada tiga posisi berikutnya di dalam susunan alfabet (Munir, 2006).
Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa (Number of the Beast)” di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografik (yaitu dienkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi.
cipher. Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia,
Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkrpsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode (Munir, 2006).
Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. (Gambar 2.2). Mesin yang menggunakan beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia ke-2 (Churchhouse, 2004).
Gambar 2.2 Mesin Enkripsi Enigma.
Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Dengan komput er digital, cipher yang lebih kompleks menjadi sangat mungkin untuk dapat dihasilkan dan berdampak pada permintaan dari pihak-pihak tertentu sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal Amerika Serikat untuk
mengenkripsi informasi yang tidak atau belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.
memungkinkan dilakukannya perhitungan yang rumit dan kompleks dalam waktu yang relatif singkat. Dari hal tersebut lahirlah banyak teori dan algoritma penyandian pesan yang semakin kompleks dan sulit dipecahkan.
2.1.3 Tujuan Kriptografi
Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah sebagai berikut (Menezes, van Oorschot dan Vanstone, 1997) (Scheiner, 1996):
1. Kerahasiaan adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.
2. Integritas data adalah layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli.
3. Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan
4. Nirpenyangkalan adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
Selain ada pihak yang ingin menjaga agar pesan tetap aman, ada juga pihak yang ingin mengetahui pesan rahasia tersebut secara tidak sah. Bahkan ada pihak yang ingin agar dapat mengubah isi pesan tersebut. Usaha untuk membongkar suatu pesan sandi tanpa mendapatkan kunci dengan cara yang sah dikenal istilah serangan (attack). Beberapa macam penyerangan terhadap pesan yang telah dienkripsi yaitu:
1. Ciphertext only attack.
Dimana penyerang hanya mendapatkan pesan yang sudah disandikan saja. 2. Known plaintext attack atau clear-text attack.
Dimana penyerang selain mendapatkan sandi, juga mendapatkan pesan asli. 3. Choosen plaintext attack.
Sama dengan known plaintext attack, namun penyerang bahkan dapat memilih penggalan mana dari pesan asli yang disandikan.
2.1.4 Terminologi dan Konsep Dasar Kriptografi
2.1.4.1 Pesan, Plainteks, dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks atau teks-jelas (cleartext) (Scheiner, 1996). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dan sebagainya) atau yang disimpan di dalam media perekaman (kertas, storage, dan sebagainya). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara/bunyi (audio), dan video, atau berkas biner lainnya.
(a) Plainteks (teks) (b) Cipherteks dari (a)
Gambar 2.3 Contoh-contoh plainteks dan cipherteksnya.
2.1.4.2 Peserta Komunikasi
c
Unsecured Channel
[image:30.595.145.480.107.311.2]Alice Bob
Gambar 2.4 Skema komunikasi dengan proses enkripsi.
Skema komunikasi dengan proses enkripsi dapat dijelaskan sebagai berikut:
1. Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob) sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di bank).
Adversary
m Encryption
Ee (m) = c
Plaintext source
m Decryption
Ed (c) = m
Destination Ketika saya berjalan-jalan
2. Pengirim adalah entitas dalam komunikasi yang mengirimkan informasi kepada entitas lainnya.
3. Penerima adalah entitas dalam komunikasi yang diharapkan menerima informasi. 4. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba
untuk membobol keamanan informasi. Penyusup biasanya bertindak seolah-olah sebagai pengirim yang sah ataupun penerima yang sah.
2.1.4.3 Kriptologi
Kriptologi berasal dari bahasa Yunani, “kryptos” yang berarti “tersembunyi” dan “logos” yang berarti “kata”. Jadi, kriptologi dapat diartikan sebagai frase kata yang tersembunyi. Kriptologi dapat juga diartikan sebagai seni dan ilmu untuk membuat dan memecahkan kode rahasia. Kriptologi dibagi menjadi kriptografi (seni dan ilmu membuat kode rahasia), kriptanalisis (ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan) (Stamp, 2007) dan steganografi (metoda menyembunyikan pesan atau data lainnya). Pelaku kriptanalisis disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci.
Cryptology
Cryptanalysis Steganography
2.1.5 Algoritma dan Kunci
Algoritma menggambarkan sebuah prosedur komputasi yang terdiri dari variabel input dan menghasilkan output yang berhubungan. Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Algoritma kriptografi ini bekerja dalam kombinasi dengan menggunakan kunci (key) seperti kata, nomor atau frase tertentu.
Dasar matemetis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plainteks dan elemen cipherteks. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen plainteks dinotasikan dengan P, elemen-elemen cipherteks dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dinotasikan dengan D, maka secara matematis kriptografi dapat dinyatakan sebagai berikut:
E(P) = C
D(C) = P atau D(E(P)) = P
Gambar 2.6 (a) Skema enkripsi dan dekripsi, (b) contoh ilustrasi enkripsi dan dekripsi pesan.
2.1.6 Algoritma Kriptografi
Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan suatu masalah yang disusun secara sistematis. Langkah-langkah tersebut harus logis, ini berarti nilai kebenarannya harus dapat ditentukan benar atau salah. Algoritma kriptografi adalah bagian dari kriptografi yang berisi kumpulan langkah-langkah logis yang digunakan oleh seseorang untuk melakukan enkripsi dan dekripsi. Biasanya langkah-langkah ini berupa sekumpulan fungsi matematik. Berdasarkan sifat kuncinya, ada dua jenis algoritma kriptografi yaitu algoritma simetris dan algoritma asimetris.
2.1.6.1 Algoritma Simetris
Algoritma enkripsi akan disebut algoritma simetris apabila pasangan kunci untuk proses enkripsi dan dekripsinya adalah sama. Pada algoritma enkripsi algoritma simetris, digunakan sebuah kunci untuk melakukan proses enkripsi dan dekripsinya.
Plainteks Cipherteks Plainteks
A Enkripsi Dekripsi B
Kunci
bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya.
Kelebihan sistem kriptografi simetris ini adalah kecepatan proses enkripsi dan dekripsinya yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan dari algoritma ini adalah permasalahan pendistribusian kunci dan efisiensi jumlah kunci.
Gambar 2.7 Skema Algoritma Simetris.
Contoh dari algoritma simetris adalah Vigenere Cipher, Cipher Permutasi, Cipher Substitusi, Hill Cipher, OTP, RC2, RC4, RC5, RC6, Twofish, Magenta, SAFER, LOKI, AES, DES, IDEA dan lain-lain.
2.1.6.2 Algoritma Asimetris
Algoritma asimetris adalah algoritma yang menggunakan kunci berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini juga disebut sebagai sistem kriptografi public-key karena kunci untuk enkripsi dibuat secara umum (public-key, dapat
diketahui oleh siapa saja), tapi untuk proses dekripsinya dibuat satu kunci yang hanya diketahui oleh yang berwenang. Kunci ini disebut private-key.
Public-key merupakan kunci yang bersifat umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja, sedangkan private-key adalah kunci yang dirahasiakan dan hanya orang-orang tertentu yang boleh mengetahuinya.
tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu bahkan jika mereka saling tidak mengenal satu sama lainnya.
Kelemahan dari sistem ini adalah waktu yang digunakan untuk melakukan proses enkripsi dan dekripsi jauh lebih lambat dibandingkan dengan sistem kriptografi simetris, sehingga kurang cocok jika digunakan untuk mengenkripsi suatu pesan yang cukup banyak.
Gambar 2.8 Skema Algoritma Asimetris.
Contoh dari algoritma asimetris adalah RSA, Elgamal, ACC, LUC, DSA dan lain-lain.
2.1.6.3 Perbandingan Algoritma Simetris dan Asimetris.
Baik kriptografi simetris maupun kriptografi asimetris (kunci publik), keduanya mempunyai kelebihan dan kelemahan.
1. Kelebihan kriptografi simetri:
a. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.
b. Ukuran kunci simetri relatif pendek.
c. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.
d. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat.
e. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
B Dekripsi
Plainteks Kunci Rahasia
A Enkripsi
2. Kelemahan kriptografi simetri:
a. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini.
b. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
3. Kelebihan kriptografi kunci-publik (asimetri):
a. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetri.
b. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.
c. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
d. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
4. Kelemahan kriptografi kunci-publik (asimetri):
a. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
b. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks).
c. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
d. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. e. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block
cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya
2.1.7 Sistem Kriptografi
Suatu sistem kriptografi merupakan sebuah himpunan algoritma, seluruh kemungkinan plainteks, cipherteks, kunci, dan proses manajemen kunci yang digunakan. Sistem kriptografi merupakan suatu fasilitas untuk mengkonversikan plainteks menjadi cipherteks, dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan proses plainteks menjadi cipherteks tertentu disebut dengan set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci. Secara umum, kunci–kunci yang digunakan untuk proses enkripsi dan dekripsi tidak perlu identik, tergantung dari sistem yang digunakan.
2.1.7.1 Keamanan Sistem Kriptografi
Suatu sistem kriptografi dikatakan aman jika para penyusup (adversary) dengan kemampuan yang dimilikinya tidak dapat memecahkan atau membobol sistem tersebut.
Berdasarkan kemampuan yang dimiliki penyusup, terdapat dua jenis keamanan sistem kriptografi, yaitu:
1. Keamanan tak kondisional, jika penyusup tidak dapat membobol sistem dengan kemampuan komputer yang tidak terbatas. Keamanan ini berhubungan dengan teori informasi dan teori probabilitas.
2. Keamanan kondisional, jika secara teoritis mungkin bagi penyusup untuk membobol sistem tapi secara komput asi tidaklah mungkin (karena keterbatasan sumberdaya dan kemampuan penyusup untuk mengakses informasi). Keamanan ini berhubungan dengan teori kompleksitas.
Sistem kriptografi dikatakan aman bila memiliki keadaan sebagai berikut: 1. Bila harga untuk membobol sistem lebih besar daripada nilai informasi yang
dibuka.
3. Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut (Kurniawan, 2004).
2.1.7.2 Serangan pada Sistem Kriptografi
Pada dasarnya serangan terhadap sistem kriptografi dapat dibedakan menjadi dua jenis yaitu:
1. Serangan pasif adalah serangan dimana penyerang hanya memonitor saluran komunikasi. Penyerang pasif hanya mengancam kerahasiaan data.
2. Serangan aktif adalah serangan dimana penyerang mencoba untuk menghapus, menambahkan, atau dengan cara yang lain mengubah transmisi pada saluran. Penyerang aktif mengancam integritas data dan otentikasi, juga kerahasiaan.
2.2 Konsep Dasar Matematis Kriptografi
2.2.1 Sistem Persamaan Linear
Variabel adalah sebuah notasi yang mewakili suatu bilangan dengan nilai yang belum diketahui. Sebagai contoh, sebuah garis dalam bidang xy secara aljabar dapat dinyatakan oleh persamaan yang berbentuk a1x + a2y = b. Persamaan ini dinamakan
persamaan linear dalam peubah (variabel) x dan peubah y. Secara lebih umum, mendefenisikan persamaan linear dalam n peubah x1, x2, ... xn
1 1 2 2 n n
a x +a x + + a x =b
sebagai persamaan yang dapat dinyatakan dalam bentuk:
dimana a1, a2, ... , an
1, 2,..., n
s s s dan b adalah konstanta-konstanta.
Solusi persamaan linear adalah urutan n bilangan sehingga suatu
persamaan linear a x1 1+a x2 2+ + a xn n =b dipenuhi bila disubtitusikan
1 1, 2 2, , n n
x =s x =s x =s . Himpunan dari semua solusi persamaan linear dinamakan
Sebuah sistem persamaan linear yang terdiri dari m persamaan linear dengan n bilangan tak diketahui (variabel) akan dituliskan sebagai berikut:
11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
n n
n n
m m mn n m
a x a x a x b
a x a x a x b
a x a x a x b
+ + + = + + + = + + + =
Dapat dilihat bahwa sistem persamaan linear tersebut bisa direpresentasikan sebagai persamaan perkalian matriks Ax = b, dengan
11 12 1
21 22 2
1 2
n
n
m m mn
a a a
a a a
A
a a a
=
berukuran m n× , matriks
1 2 n x x x x =
dan matriks
1 2 m b b b b =
adalah matriks kolom. Untuk selanjutnya jika disebut sistem Ax=b berarti ekivalen dengan menyebutkan sistem persamaan linear dengan n variabel dan m persamaan yang bisa direpresentasikan sebagai sistem persamaan perkalian matriks Ax = b. Jika
1, 2,..., n
b b b semuanya nol maka sistem ini disebut sistem persamaan linear homogen.
Jika terdapat bi ≠0, 1≤ ≤i n maka disebut sistem persamaan linear tak homogen.
2.2.2 Matriks dan Operasi pada Matriks
2.2.2.1 Matriks
Matriks adalah susunan bilangan berbentuk persegi panjang yang diatur dalam baris dan kolom yang diletakkan dalam kurung biasa atau kurung siku. Matriks merupakan suatu cara visualisasi variabel yang merupakan kumpulan dari angka-angka atau variabel lain, misalnya vektor. Dengan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur.
2.2.2.2 Operasi pada Matriks
Misal A, B, dan C adalah matriks yang berukuran sama dengan a, b ∈ R, maka berlaku operasi-operasi pada matriks sebagai berukut:
2. A + (B + C) = (A + B) + C (Hukum asosiatif). 3. A(BC) = (AB)C (Hukum asosiatif).
4. A(B + C ) = AB +AC (Hukum distributif). 5. (B + C)A = BA + CA (Hukum distributf). 6 A(B – C) = AB – AC.
7. (B -C) – A = BA – CA. 8. a(B + C) = aB + aC 9. a(B – C) = aB – aC. 10. (a + b)C = aC + bC. 11. (a – b)C = aC – bC. 12. (ab)C = a(bC).
13. a(BC) = (aB)C = B(aC).
Untuk membuktikan kesamaan-kesamaan diatas, maka perlu ditegaskan bahwa matriks pada ruas kiri harus mempunyai ukuran yang sama seperti matriks pada ruas kanan.
2.2.2.3 Transpos, Transpos Konjugat, dan Hermitian
Diberikan sebarang matriks A berukuran mxn, maka transpos dari A didefinisikan
dengan matriks n m× dinotasikan dengan AT yang setiap kolom dari A menjadi baris dari AT
A
. Konjugat dari A, ditulis A, merupakan matriks yang dibentuk dengan
menegasikan bagian imajiner setiap entri , jadi A=[aij]. Transpos konjugat dari A
didefinisikan oleh AH = AT. Matriks Adikatakan hermitianjika AH
A
= A.
Jika real, maka A dikatakan matriks simetri, yaitu AH
A
= A. Dapat dilihat
bahwa setiap matriks hermitian haruslah persegi. Untuk setiap matriks berukuran
m n× berlaku (AH A) H
= AH (AH)H = AH H
A A
2.2.2.4 Eselon Baris Tereduksi
Matriks A disebut dalam bentuk eselon baris tereduksi (reduced row echelon form) disingkat rref jika memenuhi empat kondisi berikut:
1. Jika ada baris nol (baris yang seluruh entrinya bernilai nol), maka baris nol tersebut terletak paling bawah atau paling akhir.
2. Jika baris tidak seluruhnya terdiri dari nol, maka entri pertama yang bukan nol
dalam baris itu adalah 1, disebut satu utama (leading one).
3. Dalam sebarang dua baris yang berurutan yang tidak seluruhnya terdiri dari nol, maka satu utama dalam baris yang lebih rendah terdapat lebih jauh ke kanan dari satu utama dalam baris yang lebih tinggi.
4. Setiap kolom yang memuat satu utama mempunyai nol di tempat lain.
Matriks yang hanya mempunyai sifat-sifat 1,2, dan 3, dikatakan berada dalam bentuk eselon baris (row echelon form). Rank dari matriks A, ditulis rank(A), adalah banyaknya baris tak nol setelah A dibentuk ke dalam bentuk eselon baris. Suatu matriks Am n× dikatakan mempunyai full column rank jika rank A( )=n dan full row
rankjika rank (A) = m.
2.2.2.5 Invers Matriks
Jika A adalah matriks persegi, dan dapat ditemukan matriks A-1 sehingga A A-1 = A-1
A
A
= I, maka dikatakan dapat dibalik(invertibel) dan A-1
A
dinamakan invers dari A,
Salah satu metode sederhana mencari invers dari matriks yang dapat dibalik adalah dengan mencari urutan operasi baris elementer tereduksi menjadi matriks identitas, kemudian melakukan urutan operasi yang sama pada In untuk mendapatkan
A-1.
1. Kalikanlah sebuah baris dengan sebuah konstanta yang tidak sama dengan nol. 2. Pertukarkanlah kedua baris tersebut.
3. Tambahkanlah perkalian dari satu baris pada baris yang lain.
Jika A adalah sebarang matriks persegi n n× dan Cij adalah kofaktor aij
11 12 1 21 22 2
1 2
n
n
n n nn
C C C
C C C
C C C
, maka matriks
dinamakan matriks kofaktor A. Transpos matriks ini dinamakan adjoin A dan dinotasikan dengan Adj(A). Jika A adalah matriks yang dapat dibalik, maka
1 A-1
det( )A =0 = adj(A)
det(A)
Dari rumus di atas, dapat disimpulkan jika suatu matriks mempunyai nilai determinan nol maka matriks tersebut tidak punya invers. Sebab jika maka
terjadi pembagian dengan nol.
2.2.3 Ruang-ruang Vektor.
Ruang Vektor V atas lapangan F adalah himpunan tak kosong atas objek yang dinamakan vektor bersama dengan operasi yang dinamakan penjumlahan vektor, dan operasi yang dinamakan pergandaan antara skalar dan vektor,
2.2.3.1 Ruang Baris dan Kolom Matriks
Suatu kolomdengan panjang n adalah n×1 larik
1
2 1 2
( n)T
n x
x
x x x x
Matriks A berukuran m n× merupakan larikan bilangan-bilangan dengan m baris dan n kolom,
( )
11 11 n ij m mn a a A a a a = = ,
dengan aij disebut entri (isi) pada baris ke-i dan kolom ke-j. Sehingga kolom dengan
panjang n merupakan matriks berukuran n x 1, sedangkan baris dengan panjang n adalah matriks berukuran 1 x n.
2.2.3.2 Kombinasi Linear dan Bebas Linear
Jika di dalam suatu ruang vektor, satu vektor dapat dinyatakan sebagai hasil dari beberapa operasi yang terdefinisi dalam ruang vektor tersebut dengan melibatkan beberapa vektor lain, maka vektor tersebut dikatakan sebagai kombinasi linear atas vektor-vektor yang lain.
Jika S ={v1, v2, ..., vr} adalah himpunan vektor, maka persamaan vektor k1v1 + k2v2 + ...+ krvr = 0
mempunyai paling sedikit satu pemecahan, yaitu: k1= 0, k2 = 0, ... , kr= 0
Jika ini adalah satu-satunya pemecahan, maka S dinamakan himpunan bebas linear (linearly independent). Jika ada pemecahan lain, maka S dinamakan himpunan tak bebas linear (linearly dependent).
2.2.3.3 Basis dan Dimensi
Jika V adalah sebarang ruang vektor dan S ={v1, v2, ..., vr
vektor-vektor {v1, v2, ..., vn
{ }
} yang membentuk sebuah basis. Jika tak ada himpunan seperti itu, maka V dinamakan berdimensi tak berhingga (infinite dimensional).
2.2.4 Struktur Aljabar
Aljabar adalah bidang matematika yang berhubungan dengan himpunan elemen (seperti himpunan bilangan) dan operasi yang dilakukan pada elemen tersebut (Churchhouse, 2004). Aljabar abstrak adalah cabang matematika yang mempelajari struktur aljabar. Struktur aljabar adalah satu atau lebih himpunan dengan sejumlah operasi yang didefenisikan didalamnya serta memenuhi beberapa aksioma. Di dalam struktur aljabar terdapat grup, ring dan grup berhingga yang penting dalam kriptografi pada umumnya dan kriptografi kunci publik khususnya (Churchhouse, 2004).
Himpunan adalah sekumpulan objek atau unsur dengan kriteria atau syarat tertentu. Unsur-unsur dalam elemen S disebut anggota (elemen) dari S. Himpunan
yang tidak memiliki anggota disebut himpunan kosong dan ditulis atau Φ.
2.2.4.1 Grup
Grup (group) G,* adalah suatu struktur yang terdiri dari himpunan G dan suatu
operasi biner * dengan sifat:
a). ∀a b, ∈G berlaku sifat a b* ∈G.
b). ∀a a b b1, 2, ,1 2∈G berlaku a1=a2dan b1 =b2 ⇒a1*b1 =a2*b2.
c). Terhadap operasi * memenuhi aksioma-aksioma sebagai berikut: 1. Assosiatif, yaitu ∀a b c, , ∈G, berlaku * ( * )a b c =( * ) *a b c.
2. ∃ ∈e Gsedemikian sehingga a a* −1 =a a* −1=e, ∀∈G.
3. ∀ ∈ ∃a G, a−1∈Gsedemikian sehinggaa a* −1=a−1*a=e.
Sifat a) dan b) di atas berarti bahwa operasi biner * bersifat tertutup (closed) dan terdefinisi dengan baik (well defined) pada G. Jika G adalah grup terhadap operasi * dan ∀a b, ∈G berlaku a b* =b a* , yaitu operasi * bersifat komutatif, G
2.2.4.2Gelanggang(Ring)
Gelanggang (Ring) 〈R,+•〉 adalah himpunan tak kosong yang dilengkapi dua operasi
biner yang disajikan dengan tanda jumlahan dan tanda pergandaan yang memenuhi aksioma-aksioma berikut:
1. 〈 +〉R, grup komutatif.
2. Terhadap operasi pergandaan memenuhi sifat assosiatif.
3. Memenuhi sifat distribusi kiri dan distribusi kanan, yaitu untuk setiap a, b, c∈R berlaku a(b+c) = ab + ac dan (a+b)c = ac + bc.
2.2.4.3 Lapangan (field)
Suatu gelanggang yang bersifat komutatif dimana setiap elemen tidak nol mempunyai invers perkalian disebut dengan lapangan (field). Yang dimaksud dengan invers perkalian adalah untuk setiap a ≠ 0 yang termasuk dalam F, terdapat a-1 Є F sedemikian hingga a × a-1
Diberikan
= 1.
2.2.5 Teori Bilangan
Teori bilangan (Number Theory) adalah teori mendasar dalam memahami kriptografi. Bilangan yang digunakan disini adalah bilangan bulat positif (integer). Bilangan bulat positif adalah himpunan bilangan asli yang dinotasikan dengan “A” yaitu A = {1, 2, 3, ...}. Himpunan semua bilangan bulat yang dinotasikan dengan Z adalah himpunan
{...,-3,-2,-1,0,1,2,3,...}. Himpunan ini berperan sangat penting karena banyak algoritma kriptografi yang menggunakan sifat-sifat himpunan semua bilangan bulat dalam melakukan prosesnya. Pada himpunan bilangan bulat berlaku sifat asosiatif, komutatif dan distributif terhadap operasi penjumlahan dan pergandaan biasa.
2.2.5.1 Sifat Pembagian pada Bilangan Bulat
Ζ ∈ n
a, . Bilangan bulat a dikatakan membagi (divides) n jika terdapat Ζ
∈
(divisior) n dan n disebut kelipatan (multiple) a. Bilangan bulat a yang membagi n
ditulis a n.
Diberikan a,b,m∈Ζ, m>0. Jika m membagi (b – a), maka a disebut
kongruen dengan b modulo m, ditulis a≡b
(
modm)
. Bilangan bulat m disebutmodulus. Misalkan a dan b dibagi dengan m, didapatkan hasil bagi bilangan bulat dan
sisa, dimana sisa bernilai antara 0 dan m – 1. Yaitu a=q m r1 + 1 dan b = q2 + r2
1 2
0≤ ≤ −r m 1 dan 0≤ ≤ −r m 1
,
dimana . Maka jelas bahwa a≡b(mod )m jika hanya
jika r1 =r2.
2.2.5.2 Pembagi Persekutuan Terbesar
Dalam
Z
p dengan p prima, suatu bilangan mempunyai invers terhadap pergandaan a jika hanya jika gcd( , ) 1a p = . Bilangan tersebut adalah semua elemen dalamZ
pA
kecuali 0. Matriks atas
Z
p gcd(det , ) =1A pmempunyai invers modulo p jika hanya jika
.
2.2.5.3 Algoritma Euclide
Telah diperlihatkan bahwa jika a∈Ζp, maka a mempunyai invers terhadap
pergandaan pada
Z
p jika hanya jika gcd( , ) 1a p = . Algoritma Euclide dapat digunakan untuk menghitung nilai pembagi persekutuan terbesar (gcd) dari dua bilangan bulat dengan efisien.Pertama, misalkan ingin dihitung gcd( , ), , bilangan bulatr r0 1 r r0 1 dengan
0 1
r >r. Algoritma Euclid terdiri dari beberapa pembagian :
1 1 2, 0 2 1
o
r =q r +r ≤ <r r
1 2 2 3, 0 3 2
r =q r +r ≤ <r r
2 1 1 , 0 1
m m m m m m
1
m m m
r − =q r ,
maka gcd( , )r r0 1 =gcd( , )r r1 2 ==gcd(rm−1,rm)=rm.
Dan didapatkan gcd( , )r r0 1 =rm.
2.2.5.4 Algoritma Euclide yang Diperluas
Dari algoritma Euclide dapat diketahui apakah suatu bilangan mempunyai invers atas
Z
p0, ,1 2 , m
t t t t
atau tidak, namun belum dapat menghitung nilai inversnya (jika ada). Dengan
algoritma Euclide yang diperluas, dapat dihitung nilai invers dari suatu bilangan.
Misalkan didefinisikan suatu barisan bilangan dengan ketentuan
sebagai berikut:
0
1
2 1 1 0
0 1
(mod ) 2
j j j j
t
t
t t − q t− − r j
= =
= − ≥
maka, untuk 0≤ ≤j m, rj ≡t rj1 (mod )r0 . Dimana rj didapatkan dari algoritma
Euclid.
Pembuktian dilakukan dengan induksi matematika. Pernyataan benar untuk 0 dan 1
j= j= . Asumsi pernyataan benar untuk j= −i 1 dan j= −i 2, untuk i≥2,
akan dibuktikan pernyataan benar untuk j=i. Dengan induksi didapatkan:
2 2 1 (mod )0
i i
r− ≡t r− r dan ri−1≡t ri−1 1 (mod )r0
Selanjutnya dihitung :
i
r ≡ri−2−q ri−1 i−1
2 1 1 1 1
i i i
t r− q t r− −
≡ − ( mod )r0
2 1 1 1
(ti− q ti− i−)r
≡ − ( mod )r0
1 ( mod )0
i
t r r ≡
Misalkan gcd( , ) 1r r0 1 = , maka 1
1 mod 0
m
t =r− r, dapat dibuktikan jika
0 1
gcd( , ) 1r r = maka rm =1. Sehingga dari teorema di atas, rm = ≡1 t rm1 (mod )r0 ,
dengan melihat bentuk : 1≡t rm1 , berarti
1
1 mod 0
m
t =r− r .
2.3 Invers Matriks Tergeneralisasi
Ide awal dari invers matriks tergeneralisasi (Generalized Inverses of Matrix) adalah untuk menggeneralisasi pengertian invers matriks. Selanjutnya konsep dari invers matriks tergeneralisasi diberikan dalam definisi berikut ini.
2.3.1 Definisi Umum
Diberikan A matriks m n× atas field, suatu matriks B yang memenuhi sifat:
1. BAB=B
2. ABA=A
3. (BA)H =BA
4. (AB)H =AB
matriks B disebut pseudo-invers atau p-invers atau invers matriks tergeneralisasi
(Generalized Inverses of Matrix) dari A, dinotasikan dengan A−(Goldberg,J.L., 1991).
2.3.2 Invers Matriks Tergeneralisasi atas Bilangan Bulat Modulo p
Pada kriptografi klasik data-data yang berupa huruf dikonversikan ke dalam
sistem
Z
26. Sedangkan pada tulisan ini dikembangkan khusus padaZ
p, dengan p bilangan prima. Penulis memilihZ
p sebabZ
p adalah field, sehingga teori-teori yang telah dibahas sebelumnya berlaku. Untuk selanjutnya pembahasan invers matrikstergeneralisasi adalah untuk matriks yang entri-entrinya atas himpunan
Z
pA
.
Dalam penghitungan invers tergeneralisasi dibutuhkan mempunyai full column rank , maka B = (AH A)-1 AH. Dapat dilihat bahwa AH A invertible, sehingga (AH
Hal diatas, akan menjadi landasan dari aplikasi invers matriks tergeneralisasi pada algoritma Hill Cipher.
2.4 Hill Cipher
Pada tahun 1929 block-cipher yang disebut dengan Hill Cipher diperkenalkan oleh Lester S. Hill. Hill Cipher merupakan algoritma kunci simetris yaitu algoritma yang
menggunakan kunci yang sama pada proses enkripsi dan dekripsinya. Hill Cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptogafi ini
menggunakan sebuah matriks persegi sebagai kunci yang digunakan untuk melakukan enkripsi dan dekripsi serta menggunakan m buah persamaan linear. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers terhadap matriks (Widyanarko, 2007).
Ide dari algoritma Hill Cipher adalah untuk membuat m kombinasi linear dari m karakter alfabetik didalam suatu elemen plainteks, sehingga dihasilkan m karakter alfabetik sebagai elemen dari cipherteks.
Secara umum jika A adalah matriks mxm atas
Z
26 dan x = (x1 … xm)T ∈ Psehingga dihitung y = eA(x) = (y1 … ym)T C sebagai berikut: ∈
y1 a11 a12 ... a1m x1 y2 a21 a22 ... a2m x2 y3 = a31 a32 … a3m x3
… ... ... ... … …
ym am1 am2 ... amm xm
sehingga dapat ditulis y = Ax.
Hill Cipher mengambil matriks A atas
Z
26 sebagai kunci. Pasangan matriksdigunakan untuk proses enkripsi dan dekripsi. Sebelum membagi teks-teks menjadi deretan blok-blok, terlebih dahulu plainteks dikorespondensikan antara huruf dan
bilangan, dengan ketentuan bilangan = Z26 = {0, 1, 2, ..., 26} dan huruf = { A, B, C,
..., Z}.
2.5 Aplikasi Invers Matriks Tergeneralisasi pada Algoritma Hill Cipher
(Hill Cipher Tergeneralisasi)
Pada metode Hill Cipher disyaratkan matriks enkripsi haruslah matriks persegi yang
invertible di Z26. Tulisan ini mencoba menerapkan teori invers matriks tergeneralisasi pada algoritma Hill Cipher, sehingga nantinya matriks yang digunakan dapat berupa matriks bujur sangkar atau persegi panjang. Pengembangan akan dibahas secara
khusus pada Zp, dengan p bilangan prima.
Diberikan m,n bilangan bulat positif, didefinisikan
P = (
Z
p)n = (x1, x2, ..., xn) (∈Z
p)n dan C=(Z
p)m= (y1, y2, ..., ym) (∈Z
p)m dengan P himpunan plainteks dan C adalah himpunan cipherteks.Diberikan A adalah matriks mxn (yang syarat-syaratnya akan dibahas) diambil sebagai kunci. Proses enkripsi bisa dijelaskan sebagai berikut. Untuk setiap x = (x1 ... xn)T ∈ P, dihitung y = eA(x) = (y1 … ym)T ∈ C dengan langkah-langkah
sebagai berikut :
y1 a11 a12 ... a1n x1 y2 a21 a22 ... a2n x2 y3 = a31 a32 … a3n x3
… ... ... ... … …
Jadi dari blok plainteks yang panjangnya n akan didapatkan cipherteks yang panjangnya m. Dapat dilihat bahwa fungsi enkripsi memetakan dua himpunan yang diperlihatkan pada gambar berikut:
Gambar 2.9 Fungsi enkripsi
Jika eA injektif maka haruslah P ≤ C atau n≤m (2.1)
Fungsi dekripsinya diturunkan dari fungsi enkripsi diatas. Karena y = Ax, jika
B ada dalam
Z
px∈
, maka x = By. Proses dekripsi dapat dipandang sebagai suatu sistem
persamaan linear, yaitu: x = By, dengan P = (
Z
p)n, y∈C = (Z
p)m.Matriks A berukuran mxn, agar eA
m n×
injektif maka rank(A) = n (full column rank). Jadi pemilihan kunci untuk aplikasi invers matriks tergeneralisasi pada
algoritma Hill Cipher dibatasi hanya untuk matriks yang full column rank. (2.2)
Selanjutnya karena A mempunyai full column rank, maka invers tergeneralisasi dari A adalah:
B = (AHA)-1AH
Karena semua perhitungan dilakukan atas
Z
p, maka AH = AT. Sehingga didapatkanB = (ATA)-1AT (2.3) Im (eK)
eK(x)=Kx
P = (Zp) n
Telah diketahui bahwa jika A mempunyai full column rank, maka (AT
A)
invertible.
Hill Cipher Tergeneralisasi mangambil matriks A atas
Z
p yaituZ
29 sebagaikunci. Pasangan matriks digunakan untuk proses enkripsi dan dekripsi. Sebelum membagi teks-teks menjadi deretan blok-blok, terlebih dahulu plainteks
dikorespondensikan antara huruf dan bilangan, dengan ketentuan bilangan = Z29
1. Diberikan A matriks berukuran mxn; m=n, kemudian dilakukan pengecekan apakah matriks tersebut mempunyai invers matriks tergeneralisasi.
= {0,
1, 2, ..., 29} dan huruf = { A, B, C, ..., Z, spasi, koma, titik}.
2.5.1 Proses Penyandian
2.5.1.1 Proses Pembentukan Kunci
Pembentukan kunci pada Hill Cipher Tergeneralisasi ini, dilakukan dengan langkah-langkah sebagai berikut:
2. Jika punya, kemudian dicari B yaitu invers matriks tergeneralisasinya atas
Z
pB
yang berukuran nxm, dengan rumus: = (AT.A)-1 AT
3. Kedua pasangan matriks tersebut (A dan B) digunakan untuk mengenkripsi dan mendekripsi pesan, dimana A digunakan untuk mengenkripsi pesan dan B digunakan untuk mendekripsi pesan.
2.5.1.2 Proses Enkripsi
Proses enkripsi dilakukan dengan langkah-langkah sebagai berikut:
1. Konversikan masing-masing karakter kedalam bilangan
Z
p.2. Membagi pesan kedalam beberapa blok, yang masing-masing blok mempunyai n
komponen bilangan
Z
p.3. Cipherteks dihitung dengan perhitungan y = A.x dimana, x = blok-blok plainteks.
4. Bilangan cipherteks dikonversikan kedalam huruf alfabet.
2.5.1.3 Proses Dekripsi
Proses dekripsi dilakukan dengan langkah-langkah sebagai berikut:
1. Konversikan masing-masing karakter kedalam bilangan
Z
p.2. Membagi pesan kedalam beberapa blok, yang masing-masing blok mempunyai n
komponen bilangan
Z
p. 3. Dilakukan perhitungan x = B.1. Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi dan evolusi dan merepresentasikannya
y
4. Konversikan masing-masing karakter kedalam huruf alfabet.
2.6 Rekayasa Perangkat Lunak
Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan.
Ada banyak proses dalam pembuatan perangkat lunak, namun ada kegiatan-kegiatan yang mendasar yang umum bagi semua proses perangkat lunak. Kegiatan tersebut adalah:
1. Penspesifikasian perangkat lunak. Fungsionalitas perangkat lunak dan batasan operasinya harus didefenisikan.
2. Perancangan dan implementasi perangkat lunak. Perangkat lunak yang memenuhi syarat harus dibuat.
3. Pemvalidasian perangkat lunak. Perangkat lunak tersebut harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan. 4. Pengevaluasian perangkat lunak. Perangkat lunak harus dapat berkembang untuk
menghadapi kebutuhan yang berubah-ubah.
sebagai fase-fase yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
2. Pegembangan evolusioner. Suatu sistem awal dikembangkan dengan cepat dari spesifikasi abstrak.
3. Pengembangan sistem formal. Pendekatan ini didasarkan atas pembuatan spesifikasi sistem matematis dan pentransformasian sistem ini dengan metode matematis untuk membangun program.
4. Pengembangan berdasarkan pemakaian ulang. Pendekatan ini didasarkan adanya komponen yang dapat dipakai ulang dalam jumlah yang signifikan.
Pada proses perancangan perangkat lunak dilakukan beberapa kegiatan seperti: 1. Perancangan arsitektural. Subsistem-subsistem yang membentuk sistem dan
hubungan mereka diidentifikasi dan didokumentasi.
2. Spesifikasi abstrak. Untuk setiap subsistem, spesifikasi abstrak dari