BAB 2
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.” Jadi, secara umun dapat diartikan sebagai seni menulis atau memecahkan cipher (Talbot dan Welsh, 2006).
7
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 sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Cipher transposisi mengubah susunan huruf-huruf di dalam pesan, sedangkan cipher substitusi mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain.
8
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.
Di India, kriptografi digunakan oleh pencinta (lovers) untuk berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan
9
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 komputer 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.
Induk dari ilmu kriptografi sebenarnya adalah matematika khususnya teori aljabar yang mendasari ilmu bilangan. Oleh karena itu kriptografi semakin berkembang ketika komputer ditemukan. Dengan adanya penemuan komputer
10
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 (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.
11
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.
Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami (enkripsi). Bentuk pesan yang tersandi disebut cipherteks atau kriptogram. Proses pembalikan dimana cipherteks diubah kembali menjadi plainteks di sebut dekripsi (Stamp, 2007).
12
Ketika saya berjalan-jalan dipantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anak-anak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka.
(a) Plainteks (teks)
Ztaxzp/epep/ququyp{p}
Gambar 2.3 Contoh-contoh plainteks dan cipherteksnya.
2.1.4.2 Peserta Komunikasi Adversary
Encryption Ee (m) = c m
c Unsecured Channel
Plaintext source Alice
Decryption Ed (c) = m m Destination
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).
13
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
Cryptography
Cryptanalysis
Steganography
Gambar 2.5 Hubungan kritografi, kriptanalisis, dan steganografi.
14
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) memperlihatkan skema enkripsi dan dekripsi dengan menggunakan kunci, sedangkan Gambar 2.6(b) mengilustrasikan enkripsi dan dekripsi terhadap sebuah pesan (Schneier, 1996).
15
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.
Masalah utama yang dihadapi dalam algoritma simetris membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada orang lain yang mengetahuinya. Sifat kunci yang identik membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan
16
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. Kunci
Plainteks A
Cipherteks Enkripsi
Plainteks Dekripsi
B
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.
Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun diantara mereka
17
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.
Kunci Publik Plainteks A
Kunci Rahasia Cipherteks
Enkripsi
Plainteks Dekripsi
B
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.
18
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 memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang menjadi dasar pembangkitan kunci.
19
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 komputasi 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. 2. Bila waktu yang diperlukan untuk membobol sistem tersebut lebih lama daripada lamanya waktu yang diperlukan oleh informasi itu untuk tetap aman.
20
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 a 1 x + a 2 y = b. Persamaan ini dinamakan persamaan linear dalam peubah (variabel) x dan peubah y. Secara lebih umum, mendefenisikan persamaan linear dalam n peubah x 1 , x 2 , ... x n sebagai persamaan yang dapat dinyatakan dalam bentuk: a1 x1 + a2 x2 + + an xn = b dimana a 1 , a 2 , ... , a n dan b adalah konstanta-konstanta.
Solusi persamaan linear adalah urutan n bilangan s1 , s2 ,..., sn sehingga suatu persamaan
linear
a1 x1 + a2 x2 + + an xn = b
dipenuhi
bila
disubtitusikan
= x1 s= s2 ,= , xn sn . Himpunan dari semua solusi persamaan linear dinamakan 1 , x2 himpunan solusi.
21
Sebuah sistem persamaan linear yang terdiri dari m persamaan linear dengan n bilangan tak diketahui (variabel) akan dituliskan sebagai berikut: a11 x1 + a12 x2 + + a1n xn = b1 a21 x1 + a22 x2 + + a2 n xn = b2
am1 x1 + am 2 x2 + + amn xn = bm
Dapat dilihat bahwa sistem persamaan linear tersebut bisa direpresentasikan sebagai persamaan perkalian matriks Ax = b, dengan a11 a A = 21 am1
a12 a22 am 2
a1n b1 x1 a2 n b x2 berukuran m × n , matriks x = dan matriks b = 2 amn bm xn
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 b1 , b2 ,..., bn 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: 1. A + B = B + A (Hukum komutatif), tetapi AB ≠ BA.
22
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. Konjugat dari A, ditulis A, merupakan matriks yang dibentuk dengan menegasikan bagian imajiner setiap entri A , jadi A = [aij ] . Transpos konjugat dari A didefinisikan oleh AH = AT. Matriks A dikatakan hermitian jika AH = A. Jika A real, maka A dikatakan matriks simetri, yaitu AH = A. Dapat dilihat bahwa setiap matriks hermitian haruslah persegi. Untuk setiap matriks A berukuran
m × n berlaku (AH A) H = AH (AH)H = AH A, yaitu AH A matriks Hermitian.
23
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 rank jika 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-1A = I, maka A dikatakan dapat dibalik (invertibel) dan A-1 dinamakan invers dari A,
Salah satu metode sederhana mencari invers dari matriks yang dapat dibalik adalah dengan mencari urutan operasi baris elementer tereduksi A menjadi matriks identitas, kemudian melakukan urutan operasi yang sama pada I n untuk mendapatkan A-1.
Operasi baris elementer adalah operasi pengubahan nilai elemen matriks berdasarkan barisnya, tanpa mengubah matriksnya. Cara menentukan invers matriks dengan operasi baris elementer yaitu:
24
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 , maka matriks C11 C12 C21 C22 C C n2 n1
C1n C2 n Cnn
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 =
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 det( A) = 0 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 kolom dengan panjang n adalah n ×1 larik x1 x = x (= x1 x2 xn )T 2 xn
25
Matriks A berukuran m × n merupakan larikan bilangan-bilangan dengan m baris dan n kolom, a11 a1n = A (= aij ) , a m1 amn
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 ={v 1 , v 2 , ..., v r } adalah himpunan vektor, maka persamaan vektor k 1 v 1 + k 2 v 2 + ...+ k r v r = 0 mempunyai paling sedikit satu pemecahan, yaitu: k 1 = 0, k 2 = 0, ... , k r = 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 ={v 1 , v 2 , ..., v r } merupakan himpunan berhingga dari vektor-vektor pada V, maka S dinamakan basis untuk V jika S bebeas linear dan S merentang V. Sebuah ruang vektor taknol V dinamakan berdimensi berhingga (finite dimensional) jika ruang vektor tersebut mengandung sebuah himpunan berhingga dari
26
vektor-vektor {v 1 , v 2 , ..., v n } 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). ∀a1 , a2 , b1 , b2 ∈ G berlaku a1 = a2 dan 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 ∈ G sedemikian sehingga a= * a −1 a= * a −1 e , ∀ ∈ G. −1 3. ∀a ∈ G, ∃a −1 ∈ G sedemikian sehingga a= * a −1 a= *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 dikatakan grup komutatif (commutative group).
27
2.2.4.2 Gelanggang (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 = 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 Diberikan a, n ∈ Ζ . Bilangan bulat a dikatakan membagi (divides) n jika terdapat b ∈ Ζ sedemikian sehingga n = ab . Jika a membagi n, maka a disebut pembagi
28
(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 ( mod m ) . Bilangan bulat m disebut modulus. Misalkan a dan b dibagi dengan m, didapatkan hasil bagi bilangan bulat dan sisa, dimana sisa bernilai antara 0 dan m – 1. Yaitu= a q1m + r1 dan b = q 2 + r 2 , dimana 0 ≤ r1 ≤ m − 1 dan 0 ≤ r2 ≤ m − 1 . 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 a mempunyai invers terhadap pergandaan jika hanya jika gcd(a, p ) = 1 . Bilangan tersebut adalah semua elemen dalam Z p kecuali 0. Matriks A atas Z p mempunyai invers modulo p jika hanya jika
gcd(det A, p) =1 .
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(a, p ) = 1 . Algoritma Euclide dapat digunakan untuk menghitung nilai pembagi persekutuan terbesar (gcd) dari dua bilangan bulat dengan efisien.
Pertama,
misalkan
ingin dihitung
gcd(r0 , r1 ), r0 , r1 bilangan bulat dengan
r0 > r1 . Algoritma Euclid terdiri dari beberapa pembagian : ro = q1r1 + r2 ,
0 ≤ r2 < r1
r1= q2 r2 + r3 ,
0 ≤ r3 < r2
r= qm −1rm −1 + rm , m−2
0 ≤ rm < rm −1
29
rm −1 = qm rm , maka gcd(r0= , r1 ) gcd(r1= , r2 ) = gcd(rm −1 ,= rm ) rm . Dan didapatkan gcd(r0 , r1 ) = rm .
2.2.5.4 Algoritma Euclide yang Diperluas
Dari algoritma Euclide dapat diketahui apakah suatu bilangan mempunyai invers atas
Z p 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 t0 , t1 , t2 , tm dengan ketentuan sebagai berikut: t0 = 0 t1 = 1 tj = t j − 2 − q j −1t j −1 (mod r0 )
j≥2
maka, untuk 0 ≤ j ≤ m , rj ≡ t j r1 (mod r0 ) . Dimana rj didapatkan dari algoritma Euclid.
Pembuktian dilakukan dengan induksi matematika. Pernyataan benar untuk
= j 0= dan j 1 . Asumsi pernyataan benar untuk j = i − 1 dan j = i − 2 , untuk i ≥ 2 , akan dibuktikan pernyataan benar untuk j = i . Dengan induksi didapatkan: ri − 2 ≡ ti − 2 r1 (mod r0 )
dan
ri −1 ≡ ti −1r1 (mod r0 )
Selanjutnya dihitung : ri
≡ ri − 2 − qi −1ri −1 ≡ ti − 2 r1 − qi −1ti −1r1 ( mod r0 ) ≡ (ti − 2 − qi −1ti −1 )r1 ( mod r0 ) ≡ ti r1 ( mod r0 )
Dapat disimpulkan pernyataan terbukti untuk semua j .
30
Misalkan
gcd(r0 , r1 ) = 1 , maka
tm = r1−1 mod r0 , dapat dibuktikan jika
gcd(r0 , r1 ) = 1 maka rm = 1 . Sehingga dari teorema di atas, rm = 1 ≡ tm r1 (mod r0 ) , dengan melihat bentuk : 1 ≡ tm r1 , berarti tm = r1−1 mod r0 .
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 pada Z p , dengan p bilangan prima. Penulis memilih Z p sebab Z p adalah field, sehingga teori-teori yang telah dibahas sebelumnya berlaku. Untuk selanjutnya pembahasan invers matriks tergeneralisasi adalah untuk matriks yang entri-entrinya atas himpunan Z p .
Dalam penghitungan invers tergeneralisasi dibutuhkan A mempunyai full column rank , maka B = (AH A)-1 AH. Dapat dilihat bahwa AH A invertible, sehingga (AH A)-1 AH.
31
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 = (x 1 … x m )T ∈ P sehingga dihitung y = e A (x) = (y 1 … y m )T ∈ C sebagai berikut: y1
a 11
a 12
...
a 1m
x1
y2
a 21
a 22
...
a 2m
x2
a 31
a 32
…
a 3m
x3
…
...
...
...
…
…
ym
a m1
a m2
...
a mm
xm
y3
=
sehingga dapat ditulis y = Ax. Fungsi dekripsinya diturunkan dari formula diatas, karena y = Ax jika A-1 ada maka x = A-1 y.
32
Hill Cipher mengambil matriks A atas Z 26 sebagai kunci. 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 = Z 26 = {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 Z 26 . 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 Z p , dengan p bilangan prima.
Diberikan
m,n
bilangan
bulat
positif,
didefinisikan
P = (Z p )n = (x 1 , x 2 , ..., x n ) ∈ (Z p )n dan C=(Z p )m= (y 1 , y 2 , ..., y m ) ∈ (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 = (x 1 ... x n )T ∈ P, dihitung y = e A (x) = (y 1 … y m )T ∈ C dengan langkah-langkah sebagai berikut :
y1
a 11
a 12
...
a 1n
x1
y2
a 21
a 22
...
a 2n
x2
a 31
a 32
…
a 3n
x3
…
...
...
...
…
…
ym
a m1
a m2
...
a mn
xn
y3
=
33
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:
eK(x)=Kx Im (eK)
P = (Zp)n
C = (Zp)m
Gambar 2.9 Fungsi enkripsi Jika e A 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 p , maka x = By. Proses dekripsi dapat dipandang sebagai suatu sistem persamaan linear, yaitu: x = By, dengan x ∈ P = (Z p )n, y ∈C = (Z p )m.
Matriks A berukuran mxn, agar e A injektif maka rank(A) = n (full column rank). Jadi pemilihan kunci untuk aplikasi invers matriks tergeneralisasi pada algoritma Hill Cipher dibatasi hanya untuk matriks m × n 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 didapatkan B = (ATA)-1AT
(2.3)
34
Telah diketahui bahwa jika A mempunyai full column rank, maka (ATA) invertible. Hill Cipher Tergeneralisasi mangambil matriks A atas Z p yaitu Z 29 sebagai kunci. 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 = Z 29 = {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: 1. Diberikan A matriks berukuran mxn; m=n, kemudian dilakukan pengecekan apakah matriks tersebut mempunyai invers matriks tergeneralisasi. 2. Jika punya, kemudian dicari B yaitu invers matriks tergeneralisasinya atas Z p yang berukuran nxm, dengan rumus: B = (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. y = blok-blok cipherteks yang dihasilkan.
35
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. 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.
Untuk memodelkan proses rekayasa perangkat lunak dapat dilakukan dengan beberapa pendekatan yaitu: 1. Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar seperti spesifikasi, pengembangan, validasi dan evolusi dan merepresentasikannya
36
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 layanan dan batasan operasinya harus ditentukan. 3. Perancangan komponen. Layanan dialokasikan pada komponen yang berbeda. 4. Perancangan struktur data. Struktur data yang dipakai pada implementasi sistem dirancang secara rinci dan dispesifikasi. 5. Perancangan algoritma. Algoritma yang digunakan untuk memberikan layanan dirancang secara rinci dan dispesifikasi.
2.7
MATLAB
Menurut bahasa, MATLAB adalah singkatan dari mathematics laboratory atau matrix laboratory. Dalam ilmu komputer, MATLAB didefinisikan sebagai bahasa pemograman yang digunakan untuk mengerjakan operasi matematika atau operasi aljabar matriks. MATLAB merupakan sistem intraktif yang data dasarnya adalah matriks. Matriks dianggap data dasar MATLAB karena semua input di MATLAB dapat ditulis dalam bentuk matriks.
37
2.7.1 Sejarah MATLAB
MATLAB pertama kali disusun oleh Cleve Moler yang menulis bahasa ini dengan menggunakan bahasa pemograman Fortran (Format Translation) di Mexico University dan Stanford University pada akhir 1970-an. Bahasa MATLAB digunakan pada mata kuliah Teori Matrikas, Aljabar Linear, dan Analisis Numeris.
MATLAB saat ini ditulis dengan menggunakan bahasa pemograman C oleh The Math Work. Edisi Pertama MATLAB ditulis oleh Steve Bangert dimana ia menulis bagian interpreter. Bagian grafika ditulis oleh Steve Kleiman. John Litlle dan Cleve Moler menulis rutin-rutin analitis (Analitical Routines), petunjuk pemakai (User’s Guide) dan sebagian besar dari File-m (M-File). Sejak bagian pertama MATLAB pertama ditulis, banyak orang yang bergabung dengan tim pengembangan MATLAB dan berhasil memberikan sumbangan atau kontribusi yang substansial.
Sekarang
kemampuan
MATLAB
jauh
melebihi
kemampuan
Matrix
Laboratory semula, sehingga MATLAB dapat dikatakan sebagai bahasa pemograman canggih untuk kegiatan komputasi.
2.7.2 Kemampuan dan Kegunaan MATLAB
Di dalam MATLAB terdapat kemampuan perhitungan, visualisasi, dan pemograman. Kegunaan MATLAB secara umum adalah untuk: 1. Visualisasi 2. Pemodelan 3. Perhitungan matematis 4. Program aplikasi 5. Pembuatan grafis 6. Mendesain algoritma 7. Analisis data 8. Pembuatan prototype 9. Simulasi 10. Eksplorasi