Anda di halaman 1dari 32

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).

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.

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

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}<yp{
p}/ex/p]apx;
epep//[/t]tazp]/qp}etzp{x/xe
x
}v
ep}v/[tup}vzpz/]aya[paa=/\t
utz
p
psp{pn/p}pz<p}pz/ztxax}v/
qpua
/t]tape/apux/spux/sp{p}/pex
(b) Cipherteks dari (a)

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

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

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, kuncikunci 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 Amn 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 ,
m2

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 )

j2

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 = r11 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 = r11 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
(Users 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

Anda mungkin juga menyukai