BAB II LANDASAN TEORI
2.1
DEFINISI KRIPTOGRAFI Kata kriptografi berasal dari bahasa Yunani, “kryptos” yang berarti
tersembunyi dan“graphein” yang berarti tulisan. Sehingga kata kriptografi dapat diartikan berupa frase “tulisan tersembunyi”. Kriptografi dapat diartikan sebagai suatu ilmu ataupun seni yang mempelajari bagaimana sebuah data dikonversi ke bentuk tertentu yang sulit untuk dimengerti.(Bruce Schneier, 1996). Kriptografi juga bisa di defenisikan sebagai suatu studi teknik matematika yang berhubungan dengan aspek keamanan informasi seperi kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Menurut Kamus Besar Bahasa Indonesia (KBBI) kriptografi diartikan sebagai teknik yang mengubah data menjadi berbeda dari aslinya dengan menggunakan algoritma matematika sehingga orang yg tidak mengetahui kuncinya tidak akan dapat membongkar data tersebut. Jadi kita bisa menyimpulkan bahwa kriptografi merupakan ilmu penyandian atau pengamanan informasi dari teks asli ke teks acak yang didasarkan pada perhitungan atau algoritma matematika.
2.2
PERKEMBANGAN KRIPTOGRAFI
Berdasarkan buku jelajah Kriptologi yang di tulis oleh Lembaga Sandi Negara (LEMSANEG RI), sejarah kriptografi secara umum dibagi menjadi dua tahapan atau dua babak yaitu kriptografi klasik dan kriptografi moderen. Kriptografi klasik sendiri terdiri dari dua pembabakan yang pertama para/quasi kriptografi dan yang
9
10
kedua adalah paper dan pensil. Penyandian awalnya digunukan untuk mengamankan informasi dengan teknik tertentu, konsep yang digunakan “hanya kita yang tahu” (proprietary). Dengan perjanjian atau kesepakatan, teknik ini telah digunakan berabad-abad yang lalu. Sejak jaman 3000-an SM bangsa mesir telah menuliskan sejarah bangsanya dan pharaoh-pharaoh di kuil-kuil dan piramida dalam bentuk gambar dan simbol planimetrik. Pada tahun 50 SM Raja Julius Caesar melakukan teknik lain bukan hanya sekedar menyembunyikan pesan tetapi sudah melakukan proses perubahan isi pesan tersebut. Dengan mengganti huruf-huruf pesan tersebut dengan cara menggesernya sebanyak 3 huruf berikutnya, seperti huruf “a” menjadi “d”, “b” menjadi “e” dan seterusnya. Dan teknik ini dikenal sampai saat ini dengan nama Algoritma Caesar Cipher. Teknik kriptografi semakin berkembang dengan di buatkannya sebuah mesin mekanik/ elektromagnetik untuk melakukan proses enkripsi. Mesin kriptografik yang paling awal adalah cipher disk yang ditemukan pada abad 15 oleh ilmuan Italia, Leon Battista Alberti salah satu pelopor polialfabetik. Cipher disk merupakan dua piringan yang berhimpit yang dapat berputar secara independent sehingga menyebabkan kedua abjad dapat berbeda posisi, sehingga dapat digunakan untuk menyandikan pesan menggunakan pergeseran Caesar Cipher atau yang lainnya.
Gambar 2.1 Leon Gambar Battista1Alberti ‘s Cipher Sumber http://de.wikipedia.org/wiki/Chiffrierscheibe Pada tahun 1790, Thomas jefferson mengembangkan mekanisasi sistem kripto substitusi dengan menggunakan sebuah silinder. Silinder terdiri dari 36 piringan yang dikunci dengan sebuah tangkai besi. Setiap silinder terdapat 26 abjad dan
11
masing-masing pirangan bisa berputar sehingga dapat membentuk teks terang sebnayak 36 huruf. Sebelum penyandian teks terang di partisi menjadi blok-blok yang berukuran 36 huruf yang selanjutnya di enkripsikan menggunakan onsep Caesar dengan kunci maksimal sesuai dengan panjang blok.
Gambar 2.2Gambar Thomas2 Jefferson Whell Sumber http://maritime.org/tech/csp488.htm Seorang insinyur jerman pada tahun 1917, Arthur Scherbius dan Richard Ritter mengembangkan mesin sandi rotor yang lebih komplek hasil berdasarkan ide temuan mesin rotor Thomas Jefferson dan riset pengiriman pesan melalui sirkuit elektrik yang ditemukan Marconi. Mesin tersebut bernama Enigma, semenjak itu mesin mesin sandi mekanik berbasis rotor seperti M 209, C-36, C-446, C-25 dan lain-lain mulai berkembang. Berawal dari ditemukannya teknologi mikroprosessor pada tahun 1990-an, aplikasi sistem kriptografi tidak lagi manual atau berbasis mesin mekanik, tetapi beralih ke aplikasi elektronik digital. Karakteristik algoritma sistem kripografipun berkembang mengikuti karakteristik teknologi digital yang berbasis pada operasi biner ‘0’ dan ‘1’ dengan cara memanfaatkan teknologi komputer.
2.3
TUJUAN KRIPTOGRAFI
Tujuan dari kriptografi yang juga merupakan aspek keamanan informasi adalah sebagai berikut:
12
a. Kerahasiaan (confidentiality) adalah menjaga isiinformasi 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. b. Integritas data (Integrity) adalah penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihakpihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. c. Otentikasi (Authenticity) adalah berhubungan dengan identifikasi, baik mengidentifikasi
atau
memastikan
kebenaran
pihak-pihak
yang
berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). d. Nirpenyangkalan (non-repudiation) adalah mencegah entitas yang berkomunikasi
melakukan
penyangkalan,
yaitu
pengirim
pesan
menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Tujuan dasar dari kriptografi adalah mewujudkan keempat aspek keamanan informasi tersebut dalam teori dan praktek.
2.4
JENIS KRIPTOGRAFI
Menurut taksonominya, kriptografi pada dasarnya terbagi dalam tiga kategori. 1. Unkeyed primitive, yang tergolong dalam kategori ini adalah fungsi hash (MDC), permutasi satu arah dan barisan acak. 2. Symetric key primitives: sistem sandi kunci simetris, fungsi hash (MACs), digital signature, barisan pseud-random, teknik identifikasi.
13
3. Asymetric (public key) primitives: sistem sandi asimetris, signature, teknik identifikasi. Jadi secara garis besar kriptografi di bedakan menjadi 3 jenis, yaitu fungsi hash, simetri dan asimetri.
2.4.1
SISTEM KRIPTOGRAFI SIMETRIS
Sistem kriptografi simetris dalah sistem penyandian dengan menggunakan algoritma simetris yang menggunakan kunci yang sama dalam proses enkripsi dan dekripsinya. Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk ke dalam sistem kriptografi simetri. Kelebihan algoritma simetris ini adalah proses enkripsi dan deskripsinya yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribution). Seperti yang telah dibahas, proses enkripsi dan deskripsi menggunakan kunci yang sama. Sehingga muncul persoalan menjaga kerahasian kunci, yaitu pada saat pengiriman kunci pada media yang tidak aman seperti internet. Dalam algoritma simetri terdapat 5 tahapan dalam melakukan persandian: 1. Plaintext/ teks terang:
teks asli sebelum di lakukan penyandian atau
proses enkripsi. 2. Encryption algorithm: algoritma enkripsi dengan menggunakan berbagai macam metode substitusi dan transformasi pada plaintext. 3. Secret key/ kunci rahasia: kunci rahasia yang digunakan untuk melakukan proses enkripsi atau proses dekripsi. 4. Ciphertext/ teks sandi: teks acak yang di hasilkan dari proses enkripsi. 5. Decryption algorithm: membalikan algoritma enkripsi untuk dijadikan menjadi teks terang.
14
Kunci
Plainteks
Kunci
Plainteks
Ciphertext Enkripsi
Dekripsi
Gambar 2.3 Algoritma simetri Dalam algoritma simetri ini terdapat dua jenis teknik yang digunakan untuk melakukan proses enkripsi yaitu teknik transposisi dan teknik substitusi.
2.4.1.1
SISTEM TRANSPOSISI
1. Mengacak urutan huruf-huruf dalam abjad. Teknik ini dilakukan dengan cara mengacak huruf-huruf dalam abjad normal Ab(N) menjadi abjad yang acak urutannya Ab(M). Dalam melakukan pengacakan dipakai sebuah kata kunci yang variabel, serta proses pengacakan lain yang variabel juga. Contoh: Tabel 2.1 Contoh sistem transposisi 1 A G
U
S
B C
D
E
F H
I
J
K L M N O P
Q
R
T V W X Y Z Tabel 1
15
Dengan kata kunci agus kita bisa memperoleh beraneka ragam abjad Ab(M) sebagai berikut: Ab(M) 1: ABFKOTYGCHLPVZUDIMQWSEJNRX
(26) atau
Ab(M) 2: SUEGDJACINBHMRFLQXKPWOVTZY
(26)
Contoh 2: Tabel 2.2 Contoh sistem transposisi 2 M E R C U B
A
N
D
F G H
I
K
L
O
P Q S
T V W X
J
Y Z
Dengan kata kunci MERCUBUANA ( kata setelah huruf yang sama kedua dihilangkan). Maka didapat abjad baru Ab(M): Ab(M) 1: XLNWKAVJBTIUSHCQGRZPFEYODM
(26) atau
Ab(M) 2: YZOPDQFMSGETHRVICWJUXKBLAN (26) dll. 2. Mengacak berita dengan transposisi “singe block”. Teknik ini dilakukan dengan cara memasukkan berita dalam satu blok sebesar misal 8x5 blok kecil. 3. Transposisi “multi block”. Teknik ini dilakukan dengan cara menghitung jumplah teks terang dan membaginya dalam beberapa blok. Contoh: Teks terang : ATATCK ON THE RIGHT FLANK EXPECTED BE
PREPARED STOP END
Tabel 2.3 Contoh sistem transposisi 3 F
L A N
R E
P A
A T
T A
K E X P
R E D S
C K O N
E C T
E
T O P
T H E R
D B E
P
N D X X Tabel 2
E
I
G H T
16
Teks sandi: ATNTORAKETCHHTGINAPLXEFETPKCEEBDAPSEDEREPXROXT ND
(48)
4. Transposisi Bidang (blok besar). Sistem ini dipakai dalam praxis oleh Indonesia pada era perjuangan (19461949). Digunakan untuk menyandikan berita yang tidak terlalu panjang atau pendek. Bidang di bagi dalam 4 sub bidang yang bentuknya berlainan dari satu dengan yang lain. Bidang yang di ambilpun secara acak misal II, IV, I, III. 2.4.1.2
SISTEM SUBSTITUSI
1. Sistem “caesar” Sistem substitusi yang paling awal dan paling simple adalah sistem caesar yang di perkenalkan oleh raja julius caesar. Huruf-huruf terang di sandikan dengan menggeser 3 huruf kebelakang. Seperti contoh: Plain
: meet
me after
the toga
party
Cipher : PHHW PH DIWHU WKH WRJD SDUWB Jadi kita bisa melihat bahwa di sini semua huruf di geser 3 kebelakang dan di gantikan dengan huruf besar semua. Jadi kita bisa melihat pergeseran huruf sebagai berikut. Tabel 2.4 Pergeseran caesar cipher a
b
c
d
e
f g
D E F G H I 0
1 2
o
p
R
S
3
h
i
j
J K L M
4
5 6
7
q
r
s
t
T
U
V
W
8
k
l
m
n
N
O
P
Q
9
10 11 12 13
u
v
w
x
y
z
X
Y
Z
A
B
C
14 15 16 17 18 19 20 21 22 23 24 25
Tabel 3
Algoritma tersebut dapat di ekspresikan sebagai berikut: Jika P = plaintext, C = ciphertext, D dekripsi dan K = kunci, E = enkripsi
17
Maka: C = E(P) = (P+3) mod 26 atau Dengan menggunakan pergeseran yang kita inputkan sesuai dengan keinginan di dapat: C = E(P) =(P+K) mod 26 Dan untuk mendeskripsikan menjadi plaintext kembali P = D(C) = (C-K) mod 26 Dimana 26 merupakan jumplah alfabet. Sistem kriptografi caesar cipher merupakan sistem kriptografi yang paling mudah di pecahkan karena hanya menggunakan 25 kemungkinan kunci yang bisa di pecahkan dengan metoda brute force attack dan dilihat dari distribusi frequensi standar Bahasa Indonesia ini akan sangat jelas terlihat. 2. Sistem vigenere Sistem ini di temukan pada tahun 1523-1596 oleh orang perancis yang bernama Blaise de Vigenere. Sistem ini menggunakan sebuah kata sebagai kunci, dan kata ini di geser berulang-ulang di seluruh teks berita. Panjang kata kunci di namakan periode. Sistem yang menggunakan pengulangan huruf yang sama untuk teks terang yang berbeda juga biasa di sebut dengan sistem polialfabetik, karena dalam penyandiannya terdapat beberapa huruf yang di ulang tetapi memiliki hasil dekripsi yang berbeda. Sistem polialfabetik sendiri memiliki beberapa jenis kriptografi dan salah satunya adalah sistem vigenere ini. Misalkan ada sebuah pesan “ we are discovered save yourself” dengan menggunakan kata kunci deceptive pesan enkripsi akan menjadi seperti berikut ini: Key
: deceptivedeceptivedeceptive
Plaintext
: wearediscoveredyourself
Ciphertext : ZICVTWQNGRZGVTWAVZHCQYGLMGJ 3. Running key (Rk) koheren dan inkoheren Running key merupakan penyandian yang menggunakan sebuah buku bacaan umum (koheren) atau rangkaihuruf yang tersusun acak/random (inkoheren) dan biasanya hanya sekali pakai saja tidak di ulang untuk menyandikan pesan yang lain (One Time Pad/OTP).
18
Dalam kriptografi simetri terdapat beberapa kekurangan dan kelebihan, berikut beberapa kekurangan dan elebihan yang didasarkan pada pendekatan cara melakukan enkripsi, dekeripsi dan kriptanalisis terhadap kriptografi asimetri tersebut. Kelebihan kriptografi simetri: 1.
Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.
2.
Ukuran kunci simetri relatif pendek.
3.
Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.
4.
Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat.
5.
Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
Kelemahan kriptografi simetri: 1.
Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini.
2.
2.4.2
Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
SISTEM KRIPTOGRAFI ASIMETRIS
Algoritma asimetris atau kunci publik didesain sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi dimana kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan (rahasia). Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri. Sistem algoritma asimetri bisa di gambarkan sebagai berikut.
19
Kunci umum
Plainteks
Kunci pribadi
Plainteks
Ciphertext Enkripsi
Dekripsi
Gambar 2.4 Algoritma asimetri Sistem kriptografi kunci-publik didasarkan pada fakta: 1. Komputasi untuk enkripsi/dekripsi pesan mudah dilakukan. 2. Secara komputasi hampir tidak mungkin (infeasible) menurunkan kunci privat, d, bila diketahui kunci publik, e, pasangannya. Aplikasi kriptogafi kunci-publik dapat dibagi menjadi kategori: 1. Enkripsi/ dekripsi Seperti pada algoritma kriptografi simetri, algoritma kunci-publik dapat digunakan untuk menjaga kerahasiaan pesan (provideconfidentiality/ secrecy). Contoh algoritma: RSA, Knapsack, Rabin, ElGamal 2. Digital signatures Algoritma kriptografi kunci-publik dapat digunakan untuk membuktikan otentikasi pesan maupun otentikasi pengirim (provide authentication) Contoh algoritma: RSA, DSA, ElGamal, GOST 3. Pertukaran kunci (key exchange) Algoritma kriptografi kunci-publik dapat digunakan untuk pengiriman kunci simetri (session keys) Contoh algoritma: RSA, Diffie-Hellman 4. Beberapa algoritma kriptografi kunci-publik cocok digunakan untuk ketiga macam kategori aplikasi (misalnya RSA), beberapa algoritma hanya ditujukan untuk aplikasi spesifik (misalya DSA untuk digital signature). Walaupun kriptografi asimetri lebih sulit dipecahakan dan dari segi keamanan lebih baik dari algoritma simetri, tetapi dalam beberapa hal algoritma
20
asietripun memiliki kelemahan dan kelebihan. Berikut merupakan kelebihan dan kelemahan algoritma kriptografi asimetri. Kelebihan kriptografi kunci-publik (asimetri): 1.
Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci kunci privat sebagaimana pada system simetri.
2.
Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.
3.
Dapat digunakan untuk mengamankan pengiriman kunci simetri.
4.
Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
Kelemahan kriptografi kunci-publik (asimetri): 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plaintext). 3. Ukuran kunci relatif lebih besar daripada `ukuran kunci simetri. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dsb) yang menjadi dasar pembentukan kunci.
2.4.3
FUNGSI HASH
Fungsi Hash merupakan sebuah algoritma yang mengubah text atau pesan menjadi sederetan karakter acak yang memiliki jumlah karakter yang sama. Hash
21
juga termasuk salah satu bentuk teknik kriptografi dan dikategorikan sebagai kriptografi tanpa key. Selain itu hash memiliki nama lain yang juga dikenal luas yaitu “one-way function” atau fungsi satu arah. Fungsi hash disebut fungsi satuarah sebab sulit untuk dibalikkan, berarti untuk nilai fungsi hash h, kita sulit menemukan nilai input x yang memenuhi persamaan H(x) = h.
2.5
KRIPTANALISIS
Kriptanalisis adalah sebuah studi mengenai cipher, ciphertext atau kriptografi sistem (cyrptosystems) yang bertujuan menemukan kelemahan dalam sistem penyandian, sehingga dimungkinkan untuk memperoleh plaintext dari ciphertext yang ada, tanpa perlu mengetahui kunci ataupun algoritma pembangun ciphertext tersebut. Disini terdapat dua pendekatan umum yang biasanya dipakai dalam melakukan penyerangan sistem kriptografi klasik. Yang pertama kriptanalisis (pembacaan sandi), serangan kriptanalisis bergantung pada sifat dari algoritma dan beberapa pengetahuan tentang karakteristik umum plaintext atau beberapa contoh pasangan plaintext-ciphertext. Yang kedua dengan brute force attack, sistem ini dilakukan dengan cara penyerang mencoba setiap kemungkinan kunci yang di pakai pada bagian tertentu ciphertext samapai ditemukan kata yang tepat. (William Stalling, 36) . Tabel 2.5 Jenis serangan terhadap pesan terenkripsi. Jenis serangan
Diketahui kriptanalisis
Ciphertext only
Algoritma enkripsi Ciphertext
Known plaintext
Algoritma enkripsi Ciphertext Satu atau lebih pasangan plaintextciphertext dibentuk dengan kunci rahasia
Choosen plaintext
Algoritma enkripsi Ciphertext pesan plaintext dipilih oleh kriptanalis
22
kemudian bersama-sama dipilih ciphertext yang sesuai yang dihasilkan dengan kunci rahasia Choosen ciphertext
Algoritma enkripsi Ciphertext Ciphertext dipilih oleh kriptanalisis yang kemudian di dekripsikan bersamasama terkait plaintext yang dihasilkan
Choosen text
Enkripsi Ciphertext pesan plaintext dipilih oleh kriptanalis kemudian bersama-sama dipilih ciphertext yang sesuai yang dihasilkan dengan kunci rahasia Ciphertext dipilih oleh kriptoanalisis yang kemudian di dekripsikan bersamasama terkait plaintext yang dihasilkan Tabel 4
Serangan ciphertext-only merupakan serangan yang paling mudah untuk digagalkan karena lawan memiliki paling sedikit informasi untuk memecahkan sandi. Tetapi dalam banyak kasus, analis memiliki informasi lebih lanjut, analis mungkin dapat menangkap satu atau lebih pesan plaintext serta enkripsi mereka.
2.5.1
KRIPTANALISIS SISTEM CAESAR CIPHER
Perlu diperhatikan bahwa prosedur kriptografi itu sendiri tidak bisa di generalisasi karena setiap sistem kriptografi memiliki ciri atau karakteristik tersendiri. Selain itu mengenai pola-pola huruf dan kalimat yang harus ditebak berdasarkan kebiasaan atau ahuruf yang sering muncul atau yang sering digunakan dalam berbahasa. Jadi seorang kriptanalis harus pandai menebak rangkaian kata secara hipotesis (anagraming). Pola-pola atau perilaku hururfhuruf tercatat dalam tabel distribusi frekuensi standar (DFS) seperti dibawah ini. Tabel 2.6 Distribusi Frekuensi Standart (DFS) bahasa Indonesia
23
Monoliteral (%) - DFM A
20.7
M
4.3
C
0.4
N
10.7
D
4.1
W
0.4
E
9.3
L
3.1
O
0.2
I
7.2
H
2.9
F
0
T
6
P
2.9
Q
0
K
5.4
G
2.7
V
0
R
5
J
2.7
X
0
S
5
B
2.1
Z
0
U
5
Y
1.2
Bilateral (dalam urutan frekuensi) AN
NG
ER
EN
MEN
TER
PER
TE
IN
Trilateral BER 5
Berikut contoh kriptanalisis sistem Caesar Cipher dalam bahasa indonesia. Misalkan diketahui sebuah teks sandi seperti berikut: GDWDQJ MDP WXMXK PDODP XQWXN UDSDW SHQBHUDQJDQ NH SDQJNDODQ PLOLWHU Dari pesan sandi diatas kita bisa membuat distribusi frekuensi monoliteral teks sandi sebagai berikut: Tabel 2.7 DFS contoh sandi Caesar Cipher A
-
J
3
S
3
B
1
K
1
T
-
C
-
L
2
U
3
D
12
M
2
V
-
E
-
N
3
W
5
F
-
O
3
X
4
24
G
1
P
4
Y
-
H
4
Q
7
Z
-
I
-
R
Tabel 6
Dari data diatas kita bisa milihat nilai yang paling banyak adalah D=12, Q=7, W=5, H,P,X=4. Berdasarkan DFS bahasa indonesia maka kita bisa mengambil hipotesa awal huruf “D” teks sandi sama dengan huruf “A” teks terang dan diikuti “Q”=N, “W”=E dan H,P,X bisa mewakili I. Sandi: GDWDQJ MDP WXMXK PDODP XQWXN UDSDW SHQBHUDQJDQ NE N A A A AE A E AN A N AN A E A
A
A
A
A
A
A
A
A A
NH SDQJNDODQ PLOLWHU E AN A AN A
A A
Dari perkiraan sesuai dengan DFS maka kita bisa mengira-ngira kata apa yang sekiranya cocok dalam kalimat tersebut. Walau hanya tiga huruf saja yang memiliki kandidat yang kuat yang merupakan huruf yang sama dalam melakukan enkripsi. Dalam bahasa indonesia huruf vokal beriringan merupakan hal yang jarang oleh sebab itu kita bisa menghilangkan salah satunya. Selain itu kata dalam bahasa Indonesia dengan huruf tengah “aean” sangat jarang atau bahkan tidak ada. Tetapi kalau kita hilangkan huruf “e” maka akan didapat “-a-an-“. Tentu kita akan lebih mudah menebak kan, mungkin kita bisa memasukkan kata “jalani” atau “datang”. Selain cara tersebut juga bisa dengan cara brute force attack, dengan jalan mencoba semua kemungkinan kunci pergeseran yang digunakan. Jadi kita harus mencoba 25 kemungkinan kunci yang ada sehingga diperoleh teks terang yang sesuai. Sebagai contoh lain jika diketahui sebuah teks sandi sebagai berikut: Plain
: meet
me after
the toga
party
Cipher : PHHW PH DIWHU WKH WRJD SDUWB Dengan memasukan 25 kunci pergeseran yang memungkinkan akan didapat teksteks sebagai berikut: CIPHER KEY
PHHW PH DIWHU WKH WRJD SDUWB 1
oggv
og
chvgt
vjg
vqic
rctva
25
2
nffu
nf
bgufs
uif
uphb
qbsuz
3
meet
me
after
the
toga
party
4
ldds
ld
zesdq
sgd
snfz
ozqsx
5
kccr
kc
ydrcp
rfc
rmey
nyprw
6
jbbq
jb
xcqbo
qeb
qldx
mxoqv
7
iaap
ia
wbpan
pda
pkcw
lwnpu
8
hzzo
hz
vaozm
ocz
ojbv
kvmot
9
gyyn
gy
uznyl
nby
niau
julns
10
fxxm
fx
tymxk
max
mhzt
itkmr
11
ewwl
ew
sxlwj
lzw
lgys
hsjlq
12
dvvk
dv
rwkvi
kyv
kfxr
grikp
13
cuuj
cu
qvjuh
jxu
jewq
fqhjo
14
btti
bt
puitg
iwt
idvp
epgin
15
assh
as
othfs
hvs
hcuo
dofhm
16
zrrg
zr
nsgre
gur
gbtn
cnegl
17
yqqf
yq
mrfqd
ftq
fasm
bmdfk
18
xppe
xp
lqepc
esp
ezrl
alcej
19
wood
wo kpdob
dro
dyqk
zkbdi
20
vnnc
vn
cqn
cxpj
yjach
21
ummb
um inbmz
bpm
bwoi
xizbg
22
tlla
tl
hmaly
aol
avnh
whyaf
23
skkz
sk
glzkx
znk
zumg
vgxze
24
rjjy
rj
fkyjw
ymj
ytlf
ufwyd
25
qiix
qi
ejxiv
xli
xske
tevxc
jocna
Dari data di atas kita bisa lihat bahwa dari 25 percobaan yang dilakukan terdapat satu percobaan pada kunci ke tiga yang membentuk sebuah teks terang yang berbunyi “ meet me after the toga party”. Tentu ini merupakan teks terang yang
26
kita cari dimana 24 kuncci yang lain tidak menimbulkan sebuah kalimat yang bermakna. Berarti sistem enkripsi tersebut menggunakan kunci pergeseran sebanyak tiga.
2.6
BAHASA PEMROGRAMAN JAVA
Java adalah bahasa pemrograman berorientasi objek murni yang dibuat berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek sebelumnya (C++, Ada ,Simula). Java diciptakan oleh James Gosling, developer dari Sun Microsystems pada tahun 1991. Karakteristik Java antara lain : Sederhana, Interpreted,
Berorientasi Objek (Object Oriented), Terdistribusi (Distributed), Robust,
Aman
(Secure),
Architecture
Neutral,
Portable,
Performance, Multithreaded, Dinamis. Macam-macam Java 2 Software Developer Kit (J2SDK) antara lain :
J2SE (Java 2 Standard Edition)
J2EE (Java 2 Enterprise Edition)
J2ME (Java 2 Micro Edition)
Dalam pengembangan aplikasi ini sendiri menggunakan java J2SE dimana yang merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object-oriented programming.
2.6.1
PENGERTIAN CLASS DAN OBJECT
Class adalah struktur dasar dari OOP (Object Oriented Programming). Terdiri dari dua tipe yaitu : field (attribute/property) dan method (behavior). Class digunakan untuk mendeklarasikan sebuah variabel yang berupa objek atau dinamakan “referensi objek (object reference)”. Setiap Object (obyek) dibangun dari sekumpulan data (atribut) yang disebut "variabel" (untuk menjabarkan karakteristik khusus dari objek) dan juga terdiri dari sekumpulan method (menjabarkan tingkah laku dari objek) atau dengan kata lain objek adalah sebuah
27
perangkat lunak yang berisi sekumpulan variabel dan method yang berhubungan. Obyek merupakan sebuah instance (keturunan) dari class. Variabel dan method diketahui sebagai variable instance dan method instance.
2.6.2
KONSEP PEMROGRAMAN JAVA
Konsep dasar pemrograman java ada 3 yaitu: 1. pembungkusan ( encapsulation) 2. pewarisan ( Inheritance ) 3. polimorfisme / kebanyak rupaan ( polymorfism ) 1. Pembungkusan (encapsulation). Merupakan implementasi penyembunyian informasi ( Information hiding), dengan tujuan untuk menyembunyikan informasi data (field) objeck sehingga tidak terlihat dari luar( Tidak dapat diakses sembarangan). Penerapan encapsulation dapat dilakukan pada class, field ataupun metode, dengam menggunakan access modifier yang terdiri dari private, public dan protected. Penentu Akses ( Acess Modifier): Public, Mengijinkan kelas dan sub kelas dari package manapun untuk mengakses . Private, Membatasi akses hanya untuk kelas itu sendiri dan objek yang diinstans darinya. Protected, Akses untuk kelas itu sendiri dan kelas anak yang diturunkan darinya. 2. Pewarisan (Inheritance) Proses pewarisan data dan method dari suatu kelas kepada kelas lain. Kelas yang mewariskan disebut super class, sedangkan kelas yang diwariskan sering disebut sub class. Contoh pewarisan : class kendaraan merupakan superclass bagi class mobil, truk dan bis 3. Polimorfisme Polimorfisme dapat dartikan sebagai penyamaran, dimana suatu bentuk dapat memiliki lebih dari satu bentuk. Sifat dimana instance method dari superclass akan mempunyai prilaku yang sesuai dengan yang ada pada subclass yang menjadi referensi dari suatu objek.