1.1 Definisi Matriks
Matriks adalah suatu kumpulan besaran (variabel dan konstanta) yang dapat dirujuk melalui indeknya, yang menyatakan posisinya dalam representasi umum yang digunakan, yaitu sebuah tabel persegi panjang. 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. Pemanfaatannya misalnya dalam menjelaskan persamaan linier, transformasi koordinat, dan lainnya. Matriks seperti halnya variabel biasa dapat dimanipulasi, seperti dikalikan, dijumlah, dikurangkan dan didekomposisikan. Contoh matriks:
1.2 Definisi, Sejarah dan Perkembangan Kriptografi
Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti rahasia dan Grapho yang berarti menulis. Jadi, dapat dikatakan kriptografi adalah tulisan yang tersembunyi. Secara umum kriptografi dapat diartikan sebagai ilmu dan seni penyandian yang bertujuan untuk menjaga keamanan dan kerahasiaan suatu pesan. William Stallings mendefinisikan kriptografi sebagai “the art and science of keeping messages secure”. Dengan adanya tulisan yang tersembunyi ini, orang-orang yang tidak mengetahui bagaimana tulisan tersebut disembunyikan tidak akan mengetahui bagaimana cara membaca maupun menerjemahkan tulisan tersebut. Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptoanalis.
Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigm
a<
/i>.
Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan. Yang penting, algoritma tersebut harus memenuhi 4 persyaratan berikut:
1. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan.
2. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.
3. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data.
4. Non-Repudiation. Pengirim pesan harus tidak bisa menyangkal atau membatalkan pesan yang dikirimkan.
Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi. Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan rahasia (ciphertext). Ciphertext inilah yang nantinya akan dikirimkan melalui saluran komunikasi terbuka. Pada saat ciphertext diterima oleh penerima pesan, maka pesan rahasia tersebut diubah lagi menjadi pesan terbuka melalui proses dekripsi sehingga pesan tadi dapat dibaca kembali oleh penerima pesan. Secara umum, proses enkripsi dan dekripsi dapat digambarkan sebagai berikut :
Gambar Proses Enkripsi dan Dekripsi
4. Dasar Matematis
Dasar matematis yang mendasari proses enkripsi dan deskripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi elemen cipertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen plaintext dinotasikan dengan P, elemen-elemen ciphertext dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D, maka secara matematis proses kriptografi dapat dinyatakan sebagai berikut :
Enkripsi : E(P)=C
Dekripsi : D(C)=P atau D(E(P))=P
Pada skema enkripsi konvensional atau kunci simetrik digunakan sebuah kunci untuk melakukan proses enkripsi dan dekripsinya. Kunci tersebut dinotasikan dengan K, sehingga proses kriptografinya adalah :
Enkripsi : EK(P)=C
Dekripsi : DK(C)=P atau DK(EK(P))=P
Sedangkan pada sistem asymmetric-key digunakan kunci umum (public key) untuk enkripsi dan kunci pribadi (private key) untuk proses dekripsinya sehingga kedua proses tersebut dapat dinyatakan sebagai berikut :
Enkripsi : EPK(P)=C
Dekripsi : DSK(C)=P atau DSK(EPK(P))=P
2.3 Penerapan Matriks dalam Kriptografi
Di dalam dunia spionase dan militer pesan-pesan yang dikirim seringkali ditulis dengan menggunakan kode-kode rahasia. Hanya penerima yang sah yang memiliki kuncinya sehingga dapat membuka sandi itu. Tulisan rahasia semacam ini biasa disebut kriptogram. Seandainya pesan tersebut jatuh ke tangan lawan, rahasia akan tetap terjamin jika lawan gagal mendapatkan kuncinya. Oleh sebab itu makin rumit kriptogram itu makin disukai penggunaannya.
Pemakaian bilangan sebagai pengganti abjad kerap dijumpai dalam kriptografi. Salah satu cara penggunaannya adalah
dalam bentuk matriks. Mengapa matriks? Matriks memiliki operasi perkalian yang melibatkan beberapa elemennya sekaligus, sehingga penyidikan terhadap kunci sandinya yang juga berbentuk matriks mustahil dilakukan. Berikut ini contoh pesan dalam bentuk matriks S yang dikirimkan oleh markas besar angkatan bersenjata kepada pasukannya di garis depan.
Panglima pasukan di garis depan memiliki kunci sandinya berupa matriks K di bawah ini
Begitu diterima, pesan itu langsung diterjemahkan dengan mengalikannya dengan matriks kunci. Tentu saja perkalian dengan K ini harus dilakukan dari belakang karena matriks S berorde 5 ´ 3 sedangkan K berorde 3 ´ 3. Hasil kalinya adalah matriks P:
Konversi bilangan ke abjad menggunakan cara yang sederhana sekali yaitu 1 = A sampai 6 = Z, tetapi masih menggunakan apa yang disebut sebagai modulus 29. Bilangan 47 pada baris 1 kolom 3 harus dikurangi 29 dulu sebelum dikonversikan ke abjad. Semua bilangan yang tidak berada dalam range 1-26 harus ditambah atau dikurangi dengan kelipatan 29. Dari konteks kalimatnya 2 bilangan terakhir tidak perlu dikonversikan, lagipula bilangan 0 memang tidak dapat dikonversikan. Jadi pesan dari markas besar berbunyi : SERBU BESOK JAM 10.
Sekarang mari kita lihat bagaimana pesan abjad pada matriks P diubah ke dalam matriks S sebelum dikirimkan. Tentu saja di sini berlaku operasi matriks:
P.K-1 = S.K.K-1
S = P.K-1
Matriks K-1adalah invers matriks K, matriks inilah yang dipakai si pengirim untuk membuat kriptogramnya. Jadi K dan K-1adalah sepasang matriks kunci yang memang diberikan kepada mereka yang berhak. Dengan mudah anda dapat mencari K-1.
Perkalian biasa antara P dan K-1 jelas akan menghasilkan bilangan yang besar-besar pada matriks hasil perkaliannya. Oleh sebab iu dipakai teknik modulus 29 di atas. Bagi si pengirim, semua bilangan pada P yang lebih besar daripada 15 terlebih dulu dikurangi dengan 29, P menjadi P’.
Kemudian P’ ini yang dikalikan dengan K-1 menghasilkan S’.
Bilangan besar-besar yang ada di S‘ sekali lagi dikenali modulus 29 supaya lebih enak dilihat, maka muncullah matriks S yang dikirimkan tadi. Terasa sekali bahwa aplikasi matriks dalam hal ini sangat efektif.
[Mukhlish muchad Fuadi: 2nd Semester 2007]