BAB 2 LANDASAN TEORI 2.1 Pengantar Kriptografi

advertisement
BAB 2
LANDASAN TEORI
2.1 Pengantar Kriptografi
2.1.1 Definisi dan Terminologi
A. Definisi Kriptografi
Kriptografi (cryptography) berasal dari BahasaYunani: “cryptós”
artinya “secret” (rahasia), sedangkan “gráphein” artinya “writing” (tulisan).
Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Ada beberapa
definisi kriptografi yang telah dikemukakan di dalam berbagai literatur.
Schneier, Bruce dalam bukunya yang berjudul Applied Cryptography yang
diterjemahkan oleh Munir, Rinaldi (2006) mendefinisikan Kriptografi
sebagai “ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the
art and sciene of keeping messages secure).” Sebagai perbandingan, selain
definisi diatas terdapat pula definisi yang dikemukakan oleh Alfred, Paul
dan Scott dalam bukunya Handbook of Applied Cryptography yang
diterjemahkan oleh Rinaldi,Munir (2006) mendefinisikan Kriptografi
sebagai “ilmu yang mempelajari teknik – teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti kerahasiaan,
intergritas data, serta otentifikasi.”
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
9 berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di
dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni).
B. Terminologi Kriptografi
Di dalam kriptografi kita akan sering menemukan berbagai istilah atau
terminologi. Beberapa istilah yang penting untuk diketahui deberikan
dibawah ini :
1. Pesan, Plainteks, dan Cipherteks
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plainteks (plaintext). Agar
pesan tidak bisa dimengerti maknanya oleh pihak lain, maka pesan perlu
disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang
tersandi disebut chiperteks (chipertext).
2. Pengirim dan penerima
Pengirim adalah entitas yang mengirim pesan kepada entitas lainnya.
Penerima adalah entitas yang menerima pesan. Entitas di sini dapat
berupa orang, mesin (komputer), kartu kredit dan sebagainya.
3. Enkripsi dan dekripsi
Proses menyandikan plainteks menjadi chiperteks disebut enkripsi.
Sedangkan proses mengembalikan chiperteks menjadi plainteks semula
dinamakan dekripsi.
Plainteks Enkripsi
Kunci Chipherteks Dekripsi Plainteks Kunci Gambar 2.1 Skema Enkripsi dan Dekripsi
10 4. Chiper dan kunci
Algoritma kriptografi disebut juga chiper yaitu aturan untuk
enciphering dan dechipering, atau fungsi matematika yang digunakan
untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma
kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang
berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks.
Enkripsi dan dekripsi adalah fungsi yang memetakan elemen – elemen
antara kedua himpunan tersebut.
5. Sistem kriptografi
Sistem kriptografi merupakan kumpulan yang terdiri dari algoritma
kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci.
6. Penyadap
Penyadap adalah orang yang berusaha mencoba menangkap pesan
selama ditransmisikan dengan tujuan mendapatkan informasi sebanyak –
banyaknya
mengenai
sistem
kriptografi
yang
digunakan
untuk
berkomunikasi dengan maksud untuk memecahkan cipherteks.
7. Kriptanalisis dan kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan
cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan.
Pelakunya disebut kriptanalis. Kriptologi adalah studi mengenai
kriptanalisis dan kriptanalis.
2.1.2 Tujuan Kriptografi
Ada tiga tujuan mendasar dari ilmu kriptografi ini yang juga
merupakan aspek keamanan informasi yaitu :
11 1.
Kerahasiaan (confidentiality), adalah layanan yang digunakan
untuk menjaga isi dari informasi dari siapapun kecuali yang
memiliki otoritas atau kunci rahasia untuk membuka/mengupas
informasi yang telah disandi.
2.
Integritas data (data integrity), adalah berhubungan dengan
penjagaan dari perubahan data secara tidak sah. Untuk menjaga
integritas data, sistem harus memiliki kemampuan untuk
mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak,
antara lain penyisipan, penghapusan, dan pensubsitusian data lain
kedalam data yang sebenarnya.
3.
Autentikasi
(authentication),
adalah
berhubungan
dengan
identifikasi/pengenalan, baik secara kesatuan sistem maupun
informasi itu sendiri. Dua pihak yang saling berkomunikasi harus
saling memperkenalkan diri. Informasi yang dikirimkan melalui
kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman,
dan lain-lain.
2.1.3 Sejarah Kriptografi
Kriptografi sudah digunakan sekitar 40 abad yang lalu oleh orang –
orang Mesir untuk mengirim pesan ke pasukan yang berada di medan perang
dan agar pesan tersebut tidak terbaca oleh pihak musuh walaupun pembawa
pesan tersebut tertangkap oleh musuh. Sekitar 400 SM, kriptografi digunakan
oleh bangsa Spartan dalam bentuk sepotong papirius atau perkamen yang
dibungkus dengan batang kayu. Pada zaman Romawi, Julius Caesar telah
menggunakan teknik kriptografi yang sekarang dianggap kuno dan sangat
12 mudah dibobol untuk keperluan militernya. Metode yang digunakan oleh
Julius Caesar ini sering dianggap awal dari kriptografi.
Informasi lengkap mengenai sejarah kriptografi dapat ditemukan di
dalam buku David Kahn yang berjudul The Codebreakers. Buku yang
tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi mulai dari
penggunaan kriptografi oleh bangsa Mesir 4000 tahun yang lalu (berupa
hieroglyph yang tidak standard pada piramid) hingga penggunaan kriptografi
pada abad ke-20. Sampai pada akhir Perang Dunia I, kriptografi merupakan
disiplin ilmu matematika yang hanya dipelajari oleh orang-orang tertentu
saja. Penelitian bidang ini tidak pernah sampai kepada umum. Kriptografi
juga digunakan di kalangan militer. Pada perang dunia ke 2, pemerintah Nazi
Jerman membuat mesin enkripsi yang dinamakan Enigma. 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 II.
Perkembangan komputer dan sistem komunikasi pada tahun 60-an
berdampak pada permintaan dari sektor-sektor privat sebagai sarana untuk
melindungi informasi dalam bentuk digital dan untuk menyediakan layanan
keamanan. Dimulai dari usaha Feistel pada IBM di awal tahun 70-an dan
mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption
Standard) sebagai standar pemrosesan informasi federal US untuk
mengenkripsi informasi yang unclassified. DES merupakan mekanisme
kriptografi yang paling dikenal sepanjang sejarah.
13 Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi
pada 1976 saat Whitfield Diffie dan Martin Hellman mempublikasikan New
Directions
in
Cryptography.
Tulisan
ini
memperkenalkan
konsep
revolusioner kriptografi kunci publik dan juga memberikan metode baru dan
jenius untuk pertukaran kunci, keamanan yang berdasar pada kekuatan
masalah logaritma diskret. Walaupun penulis tesis tersebut tidak mempunyai
praktek yang nyata akan bentuk skema enkripsi kunci publik pada saat itu,
tetapi ide tersebut memicu minat dan aktivitas yang besar dalam komunitas
kriptografi. Pada tahun 1978, Rivest, Shamir, dan Adleman menemukan
enkripsi kunci publik yang pertama dan sekarang ini dikenal dengan nama
RSA (Rivest, Shamir, and Adleman). Skema RSA didasarkan pada
permasalahan matematika sulit yang terdiri dari pemfaktoran terhadap
bilangan besar. Skema kunci publik lainnya yang kuat dan praktis ditemukan
oleh El Gamal. Skema ini juga didasarkan masalah logaritma diskrit.
2.1.4 Kriptografi Kunci Simetri dan Asimetri
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi,
kriptografi dapat dibedakan menjadi kriptografi kunci simetri (symmetric –
key cryptography) dan kriptografi kunci asimetri (asymmetric – key
cryptography). Pada sistem kriptografi kunci – simetri, kunci enkripsi sama
dengan kunci untuk dekripsi, oleh karena itu dinamakan kriptografi simetri.
Sistem kriptografi kunci – simetri (atau disingkat menjadi “kriptografi
simetri” saja), mengasumsikan pengirim dan penerima pesan sudah berbagi
kunci yang sama sebelum bertukar pesan. Keamanan sistem kriptografi
simetri terletak pada kerahasiaan kuncinya. Kriptografi simetri merupakan
satu – satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga
14 tahun 1976. Ada puluhan algoritma kriptografi yang termasuk ke dalam
sistem kriptografi simetri, diantaranya adalah Data Encryption Standard
(DES), RC2, RC4, RC5, RC6, International Data Encrytion Algorithm
(IDEA), Advanced Encryption Standard (AES), One Time Pad (OTP), dan
lain – lain.
Plainteks, P
Enkripsi
Chiperteks, C
Dekripsi
Ek (P) = C
Dk (C) = P
Kunci Privat, K
Kunci Privat, K
Plainteks,P
Gambar 2.2 Skema proses enkripsi dan dekripsi kriptografi simetri
Sebelum melakukan pengiriman pesan, pengirim dan penerima harus
memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini
haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini
disebut juga algoritma kunci rahasia (secret-key algorithm).
Jika kunci untuk enkripsi tidak sama dengan kunci untuk dekripsi,
maka kriptografinya dinamakan sistem kriptografi asimetri. Nama lainnya
adalah kriptografi kunci publik (public – key cryptography), sebab kunci
untuk enkripsi tidak rahasia dan dapat diketahui oleh siapa pun (diumumkan
ke publik), sementara kunci untuk dekripsi hanya diketahui oleh si penerima
pesan (karena itu rahasia). Bahasan mengenai kriptografi kunci publik akan
dibahas pada bagian selanjutnya.
15 2.2 Kriptografi Kunci Publik
2.2.1 Konsep Kriptografi Kunci Publik
Konsep kriptografi kunci publik sederhana dan elegan. Pada
kriptografi kunci publik, setiap pengguna memiliki sepasang kunci, satu
kunci untuk enkripsi dan satu kunci untuk dekripsi. Kunci untuk enkripsi
diumunkan kepada publik oleh karena itu tidak rahasia sehingga dinamakan
kunci publik (public key), disimbolkan dengan e. Kunci untuk dekripsi
bersifat rahasia sehingga dinamakan kunci privat (private key), disimbolkan
dengan d. Karena kunci enkripsi ≠ kunci dekripsi itulah maka kriptografi
kunci publik disebut juga kriptografi asimetri.
Enkripsi Plainteks, m
Ee (m) = c Kunci publik,e
Dekripsi Cipherteks, c
Plainteks,m
Dd (c) = m Kunci privat, d
Gambar 2.3 Skema kriptografi Asimetri
Misalkan E adalah fungsi enkripsi dan D adalah fungsi dekripsi. Misalkan
(e,d) adalah pasangan kunci untuk enkripsi dan dekripsi sedemikian sehingga:
dan
(2.1)
Untuk suatu plainteks m dan cipherteks c. Kedua persamaan ini menyiratkan
bahwa dengan mengetahui e dan c, maka secara komputasi hampir tidak
mungkin menemukan m. Asumsi lainnya, dengan mengetahui e, secara
komputasi hampir tidak mungkin menurunkan d.
digambarkan sebagai
16 fungsi pintu kolong (trapdoor) satu arah dengan d adalah informasi trapdoor
yang diperlukan untuk menghitung fungsi inversnya, D, yang dalam hal ini
membuat proses dekripsi dapat dilakukan.
2.2.2 Sejarah Kriptografi Kunci Publik
Sebenarnya penemu pertama kriptografi asimetri adalah James H
Ellis, Clifford Cocks, dan Malcolm Williamson di Inggris pada awal 1970.
Mereka menemukan mekanisme pertukaran kunci, yang kemudian dikenal
dengan nama algoritma pertukaran kunci Diffie – Hellman. Sayangnya
algoritma mereka tersebut dirahasiakan dan tidak pernah dipublikasikan
hingga tahun 1997.
Sistem kriptografi asimetri dipublikasikan pertama kali pada tahun
1976 oleh Whitfield Diffie dan Martin Hellman, dua orang ilmuan dari
Stanford University melalui makalah pertamanya di jurnal IEEE yang
berjudul “New Directions in Cryptography”. Makalah mereka membahas
distribusi kunci rahasia pada saluran komunikasi publik (yang tidak aman)
dengan metode pertukaran kunci yang belakangan dikenal dengan nama
algoritma pertukaran kunci Diffie – Hellman.
Pada tahun 1977, generalisasi dari ide Cocks ditemukan kembali oleh
tiga orang ilmuwan dari MIT, yaitu Rivest, Shamir, dan Adleman. Algoritma
enkripsi yang mereka buat dikenal dengan nama RSA. Akhirnya pada tahun
1976 berbagai algoritma enkripsi, tanda tangan digital, pertukaran kunci, dan
teknik lain dikembangkan dalam bidang kriptografi kunci publik, misalnya
algoritma ElGamal untuk enkripsi dan tanda tangan digital dan algritma DSA
untuk tanda tangan digital. Pada tahun 1980 Neal Koblitz memperkenalkan
17 elliptic – curve cryprtography sebagai keluarga baru yang analog dengan
algorita kriptografi kunci publik. Hingga saat ini kriptografi kunci publik
terus berkembang pesat seiring dengan aplikasinya yang begitu luas.
2.3 Teori Bilangan
2.3.1 Pembagi Bersama Terbesar
Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Pembagi
bersama terbesar (PBB-Greatest Common Divisor atau gcd) dari a dan b
adalah bilangan bulat terbesar d sedemikian sehingga d|a dan d|b. Dalam
hal ini kita nyatakan bahwa PBB(a,b)=d.
2.3.2 Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika
PBB(a,b)=1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan
n sedemikian sehingga
1
(2.2)
2.3.3 Aritmatika Modulo
Misalkan a adalah bilangan bulat dan m adalah bilangan bulat>0.
Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi
dengan m. Bilangan m disebut modulus atau modulo, dan hasil aritmetika
modulo m terletak di dalam himpunan 0,1,2, … ,
1.
2.3.4 Kekongkruenan
Definisi kekonkruenan adalah sebagai berikut : misalkan a dan b adalah
bilangan bulat dan m adalah bilangan > 0, maka
jika m
18 habis membagi
maka ditulis
. Jika a tidak konkruen dengan b dalam modulus m,
/
. Kekonkruenan
dapat pula
dituliskan dalam hubungan
(2.3)
yang dalam hal ini k adalah bilangan bulat.
2.3.5 Fungsi Totient Euler
Fungsi Totient Euler
mendefinisikan
untuk
1 yang
menyatakan jumlah bilangan bulat positif < n yang relatif prima dengan n .
jika n prima, maka setiap bilangan bulat yang lebih kecil dari n realtif prima
terhadap n. Dengan kata lain,
1 hanya jika n prima.
2.4 Metode RSA
Dari sekian banyak algoritma kriptografi kunci publik yang pernah dibuat,
algoritma yang paling populer adalah RSA. Algoritma RSA dibuat oleh 3 orang
peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu
Ron (R)ivest, Adi (S)hamiir dan Leonard (A)dleman. Keamanan algoritma RSA
terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor
prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran
bilangan menjadi faktor – faktor prima belum ditemukan algoritma yang manjur,
maka selama itu pula keamanan algoritma RSA tetap terjamin. Algoritma RSA
memiliki besaran – besaran sebagai berikut :
1. p dan q bilangan prima
2.
3.
.
(rahasia)
(tidak rahasia)
1
1
(rahasia)
19 4.
(kunci enkripsi)
(tidak rahasia)
5.
(kunci dekripsi)
(rahasia)
6.
(plainteks)
(rahasia)
7.
(cipherteks)
(tidak rahasia)
2.4.1 Perumusan Algoritma RSA
Algoritma RSA didasarkan pada teorema Euler yang menyatakan
bahwa :
1
(2.4)
Dengan syarat :
1. a adalah bilangan bulat yang harus relatif prima terhadap n.
1
2.
,
,…,
1
1
1
1
2 … 1
adalah faktor prima dari
.
, yang dalam hal ini
adalah fungsi yang
menentukan berapa banyak dari bilangan – bilangan 1,2,3....,n yang
relatif prima terhadap n
Berdasarkan sifat
untuk k bilangan bulat
1,
maka persamaan (2.4) dapat ditulis menjadi
1
Atau
1
(2.5)
Bila a diganti dengan m, maka persamaan (2.5) dapat ditulis menjadi
1
(2.6)
20 Berdasarkan sifat
, maka persamaan (2.6) dikali dengan m
menjadi:
(2.7)
yang dalam hal ini m menjadi relatif prima terhadap n.
Misalkan e dan d dipilih sedemikian sehingga :
.
1
(2.8)
Atau
.
1
(2.9)
gantikan (2.9) ke dalam persamaan (2.7) menjadi :
.
(2.10)
Persamaan (2.9) dapat ditulis kembali menjadi:
(2.11)
Yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan
d mengkasilkan kembali m semula. Berdasarkan persamaan (2.11), maka
enkripsi dan dekripsi dirumuskan sebagai berikut:
(2.12)
(2.13)
Karena .
. , maka enkripsi diikuti dengan dekripsi ekivalen dengan
dekripsi diikuti enkripsi :
(2.14)
21 Oleh karena
untuk sembarang bilangan
bulat ,maka tiap plainteks m, m+n, m+2n,..., menghasilkan cipherteks yang
sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar
informasinya satu ke satu, maka m harus dibatasi dalam himpunan
0,1,2, … ,
1 sehingga enkripsi dan dekripsi tetap benar seperti
persamaan (2.12) dan (2.13).
2.4.2 Algoritma Membangkitkan Pasangan Kunci
1. Pilih dua buah bilangan prima sembarangan, p dan q.
.
2. Hitung
(sebaiknya p ≠ q, sebab jika p=q maka
sehingga p dapat diperoleh dengan menarik akar pangkat dari n).
1
3. Hitung
1 .
4. Pilih kunci publik, e, yang relatif prima terhadap
.
5. Bangkitkan kunci privat dengan menggunakan persamaan (2.8), yaitu
.
1
.
Perhatikan
ekivalen dengan .
bahwa
.
1
1, sehingga secara sederhana d dapat
dihitung dengan
(2.15)
Hasil dari algoritma diatas :
ƒ
Kunci publik adalah pasangan (e,n)
ƒ
Kunci privat adalah pasangan (d,n)
Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada
perhitungan enkripsi/ dekripsi.
22 2.4.3 Algoritma Enkripsi/ Dekripsi
a. Enkripsi
1. Ambil kunci publik penerima pesan, e, dan modulus n.
2. Nyatakan plainteks m menjadi blok – blok
,
, …,
sedemikian sehingga setiap blok merepresentasikan nilai di
dalam selang 0,
1.
3. Setiap blok m, dienkripsi menjadi blok
dengan rumus
.
b. Dekripsi
Setiap blok ciperteks
didekripsikan kembali menjadi blok
dengan menggunakan
.
2.5 Fungsi Hash
Fungsi Hash adalah fungsi yang menerima masukan string yang panjangnya
sembarang dan mengonversinya menjadi string keluaran yang panjangnya tetap
(fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Jika
string menyatakan pesan (message), maka sembarang pesan M berukuran sembarang
dikompresi oleh fungsi Hash H melalui persamaan :
(2.16)
Keluaran fungsi Hash disebut juga nilai Hash (Hash-value) atau pesan-ringkas
(message digest). Pada persamaan diatas, h adalah nilai Hash atau message digest
dari fungsi H untuk pesan M.
Fungsi Hash satu-arah adalah fungsi Hash yang bekerja dalam satu arah:
pesan yang sudah diubah menjadi pesan-ringkas tidak dapat dikembalikan lagi
23 menjadi pesan semula. Contoh fungsi Hash satu-arah adalah MD5 dan SHA. MD5
menghasilkan pesan-ringkas yang berukuran 128 bit, sedangkan SHA menghasilkan
pesan-ringkas yang berukuran 160 bit.
2.5.1 Sifat – sifat Fungsi Hash
Sifat – sifat fungsi Hash satu arah adalah sebagai berikut :
1. Fungsi H dapat diterapkan pada blok data berukuran berapa
saja.
2. H menghasilkan nilai (h) dengan panjang tetap (fixed-length
output).
3. H(x) mudah dihitung untuk setiap nilai x yang diberikan.
4. Untuk setiap h yang dihasilkan, tidak mungkin dikembalikan
nilai x sedemikian sehingga H(x)=h. Itulah sebabnya fungsi H
dikatakan fungsi Hash satu – arah (one-way Hash function).
5. Untuk setiap x yang diberikan, tidak mungkin mencari y≠x
sedemkian sehingga H(y)=H(x).
6. Tidak mungkin mencari pasangan x dan y sedemikian sehingga
H(x) = H(y).
Masukan fungsi Hash adalah blok pesan (M) dan keluaran dari Hashing
blok pesan sebelumnya,
,
Mi
Fungsi Hash satu arah (2.17)
hi
hi-1
Gambar 2.4 Skema Fungsi Hash satu arah
24 2.5.2 Secure Hash Algorithm (SHA)
NIST (National Institute of Standard and Technology) bersama NSA
(National Security Agency) mendesain SHA untuk digunakan sebagai
komponen Digital Signature Standard (DSS). Standar Hash adalah Secure
Hash Standard (SHS) dengan SHA sebagai algoritma yang digunakan. Dapat
disimpulkan SHS adalah standar sedangkan SHA adalah algoritma.
Standar menetapkan SHA yang diperlukan untuk menjamin keamanan
DSA. Ketika pesan dengan sembarang panjang < 264 bit dimasukkan, SHA
menghasilkan 160 bit keluaran yang disebut message digest (MD). MD ini
kemudian dimasukkan ke dalam DSA, yang menghitung tanda tangan digital
untuk
pesan
tersebut.
Penandantanganan
MD
(dan
bukannya
penandatanganan secara langsung) sering kali meningkatkan efisiensi proses
karena MD biasanya jauh lebih kecil dibanding pesan aslinya. MD pesan
yang sama seharusnya dapat diperoleh oleh pemeriksa tanda tangan ketika
menerima pesan dari pengirim dengan cara memasukkan pesan tersebut ke
fungsi Hash SHA. SHA dikatakan aman karena didesain supaya secara
matematis tidak dimungkinkan untuk mendapatkan pesan aslinya bila
diberikan Hashnya atau tidak mungkin mendapatkan dua pesan yang berbeda
yang menghasilkan MD yang sama. SHA dibuat berdasarkan rancangan yang
serupa dengan MD4 yang dibuat oleh Prof. Ronald L. Rivest dari MIT. SHA
menghasilkan keluaran sidik jari 160-bit, lebih panjang dari MD5. Ketiga
algoritma RSA adalah struktur yang berbeda dan unggul seperti SHA-0,
SHA-1, dan SHA-2. SHA-2 menggunakan algoritma identik dengan variable
25 digest ukuran yang terkenal sebagai SHA-224, SHA-256, SHA-384 dan
SHA-512.
2.5.2.1 Cara Kerja SHA
Cara kerja SHA (Secure Hash Algorithm) dijelaskan sebagai
berikut :
1. Mula – mula pesan diberi tambahan untuk membuat
panjangnya menjadi kelipatan 512 bit (L x 512).
2. Jumlah bit data asal adalah K bit. Tambahkan bit ‘1’ kemudian
tambahkan bit ‘0’ secukupnya sampai sampai 64 bit
kurangnya dari kelipatan 512 (512-64=448), yang disebut juga
sebagai kongruen dengan 448 ( mod 512 ).
3. Tambahkan 64 bit yang menyatakan panjang pesan sebelum
diberi tambahan.
4. Pesan dibagi – bagi menjadi blok – blok berukuran 512 bit dan
setiap bit diolah. Keluaran setiap blok digabungkan dengan
keluaran blok berikutnya, sehingga diperoleh digest.
2.6 Tanda Tangan Digital
2.6.1 Konsep Tanda Tangan Digital
Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk
otentikasi pada data digital seperti pesan yang dikirm melalui saluran
komunikasi dan dokumen elektronis yang disimpan di dalam memori
komputer. Tanda tangan pada data digital disebut tanda-tangan digital (digital
signature). Yang dimaksud dengan tanda-tangan digital di sini bukanlah
tanda tangan yang di-dijitasi dengan alat scanner, tetapi suatu nilai
26 kriptografis yang bergantung pada pesan dan pengirim pesan (hal ini kontras
dengan tanda tangan pada dokumen kertas yang bergantung hanya pada
pengirim dan selalu sama untuk semua dokumen). Dengan tanda tangan
digital, maka integritas data dapat dijamin.
Menandatangani pesan dapat dilakukan dengan salah satu dari dua
cara, yaitu enkripsi pesan dimana pengenkripsian pesan dengan sendirinya
juga menyediakan ukuran otentikasi, pesan yang terenkripsi sudah
menyatakan bahwa pesan tersebut telah ditandatangani. Cara yang lainnya
adalah tanda tangan dengan fungsi Hash. Tanda tangan dibangkitkan dari
Hash terhadap pesan. Nilai Hash adalah kode ringkas dari pesan.
Signer Verifier
Message Message
Message
Signature Signature Message
Fungsi Hash Fungsi Signature Message Digest (MD) Secret key Enkripsi Signature Dekripsi
Message Digest (MD)
Public key ? = Message Digest (MD’)
Gambar 2.5 Proses Penandatanganan dan Verifikasi
Teknik yang umum digunakan untuk membentuk tanda-tangan digital
adalah dengan fungsi Hash dan melibatkan algoritma kriptografi kunci-
27 publik. Mula-mula pesan M ditransformasi oleh fungsi Hash H menjadi pesan
ringkas h. Pesan ringkas tersebut dienkripsi dengan kunci privat (SK)
pengirim pesan:
(2.18)
Hasil enkripsi (S) inilah yang disebut tanda tangan digital. Tanda-tangan
digital dapat ditambahkan (append) pada pesan atau terpisah dari pesan dan
dikirim secara bersamaan.
2.6.2 Tanda Tangan Digital dengan menggunakan RSA
Langkah – langkah penandatanganan :
1. Pengirim menghitung nilai Hash dari pesan M yang akan
dikirim, misalkan nilai Hash dari M adalah h.
2. Pengirim mengenkripsi h dengan kunci privatnya menggunakan
persamaan enkripsi RSA :
(2.19)
yang dalam hal ini SK adalah kunci privat pengirim dan n adalah
modulus (
, p dan q adalah dua buah bilangan prima).
3. Pengirim mentransmisikan
ke penerima.
Langkah – langkah pemverifikasian :
1. Penerima menghitung nilai Hash dari pesan M yang akan
dikirim, misalkan nilai Hash dari M adalah h’.
2. Penerima melakukan dekripsi terhadap tanda tangan S dengan
kunci publik si pengirim menggunakan persamaan dekripsi
RSA:
28 (2.20)
3. Penerima membandingkan h dengan h’. Jika
maka tanda
tangan digital adalah otentik. Jika tidak sama, maka tanda
tangan tidak otentik sehingga pesan dianggap tidak asli lagi atau
pengirimnya bukan orang sebenarnya.
2.7 World Wide Web (WWW)
Menurut Shalahuddin & Rosa dalam bukunya yang berjudul Java di Web
[p:4-7], World Wide Web biasa disebut dengan web merupakan suatu sistem yang
iterlinked (kumpulan link atau saluran yang saling terhubung), akses dokumen
hypertext melalui internet.
2.7.1 Hypertext Transfer Protocol (HTTP)
HTTP (Hypertext Transfer Protocol) merupakan aturan pengiriman
informasi berupa hypertext (teks pada komputer yang memungkinkan user
saling mengirimkan informasi (request-respon)). HTTP (Hypertext Transfer
Protocol) adalah protokol atau aturan standar untuk mengakses dokumen
HTML (Hypertext Markup Language) pada web. HTTP dijalankan dengan
cara klien mengirimkan permintaan (request) kepada server dan server
membahas pemintaan klien dengan respon yang diminta klien.
Request in HTTP Origin Server (HTML) Response in HTTP
2
29 Gambaar 2.6 Ilustraasi Client - Server
URL atauu Universal Resource Locator
L
adallah alamat lookasi dari fiile
yangg ingin diaksses. Pengakssesan web dii internet meenggunakann URL dengaan
mengggunakan prrotokol HTT
TP misalnya http://www..google.com. Port standdar
dari protokol
p
HT
TTP adalah 880, jika portt yang digunnakan bukan
n port standaar,
makaa port akan ditulis pada URL misalnya http://
//localhost:8080/. Dengaan
mengggunakan URL
U
kita dappat mengaksses file yangg menghasillkan tampilaan
web pada
p
kompu
uter klien denngan menggunakan web browser.
Gambar 2..7 Ilustrasi C
Client – Servver via HTTP
P [www3.ntu
u.edu.sg]
URL
L berbeda dengan domainn (domain-nname). Pada URL, protokol http haruus
disebbutkan sedan
ngkan pada domain tidaak disebutkann misalnya jika
j
URL-nyya
adalaah http://ww
ww.google.coo.id maka domainnya
d
adalah www
w.google.co.id
dan sebenarnya
s
y
yang
terdafttar adalah go
oogle.co.id. Oleh karenaa itu, kita bisa
mem
mbuka halam
man google hanya dengann menggetikan www.gooogle.co.id ataau
hanyya google.co..id.
30 2.7.2 Aplikasi Web
Aplikasi web merupakan halaman dinamis yang mengizinkan
interaksi dengan user (user melakukan sesuatu). Interaksi user dengan
aplikasi web misalnya user mengeklik sebuah tombol dan warna latar
belakang web berubah. Aplikasi web biasanya dibuat dengan menggunkan
JavaScript, aplikasi flash, atau applet pada Java. Salah satu diantara sekian
banyak aplikasi web yang ada antara lain adalah Webmail. Dengan adanya
aplikasi Webmail maka perpindahan informasi semakin lebih mudah dan
cepat.
2.7.2.1 Webmail
Menurut Sanjaya, Budi dalam artikelnya yang berjudul
Webmail yang dinamakan dengan Webmail adalah klien email yang
menggunakan halaman Web sebagai media untuk mengelola email di
sisi klien. Sesuai dengan sifat Aplikasi Web, pemakai Webmail tidak
perlu melakukan instalasi perangkat lunak dan cukup mengisi sangat
sedikit konfigurasi. Dengan kemudahan akses halaman Web dari
banyak tempat, Webmail menjadi lebih disukai lagi terutama bagi
mereka yang sering berganti-ganti komputer untuk akses Internet.
Selanjutnya dengan menginstall aplikasi tanda tangan digital
maka webmail tersebut akan memiliki suatu fasilitas untuk
pembubuhan tanda tangan digital. Dengan adanya aplikasi tanda
tangan digital maka perpindahan informasi dari Webmail dapat dijaga
keamanan dan integritas datanya.
31 2.7.3 Web Client (Browser)
Web client atau biasa disebut web browser merupakan suatu perangkat
lunak yang dijalankan pada komputer pemakai (user) yang menampilkan
dokumen atau informasi web yang diambil dari web server. Contoh dari web
browser adalah internet explorer, Mozilla Firefox, dan Opera.
2.7.4 Web Server
Web server merupakan suatu perangkat lunak yang dijalankan pada
komputer server dan berfungsi agar dokumen web yang disimpan di server
dapat diakses oleh pemakai (user) internet seperti misalnya xampp.
2.7.5 Situs Web / Homepage
Web site adalah informasi di world wide web yang disimpan dalam
file yang berbeda – beda sebagai halaman web. Homepage merupakan
halaman awal dari sebuah situs web.
2.7.6 Web Service
Web service merupakan suatu sistem yang menyediakan pelayanan
yang dibutuhkan oleh klien. Klien dari web service tidak hanya berupa
aplikasi web, tapi juga bisa sebuah aplikasi enterprise. Jadi web service tidak
sama dengan web server, bahkan sebuah aplikasi web pada web server dapat
menjadi klien dari web service. Pelayanan yang diberikan web service bisa
berupa XML yang berisi data yang dibutuhkan klien. Web service tidak
menampilkan sebuah halaman web, tapi hanya memberikan pelayanan
permintaan klien yang memiliki izin akses terhadap pelayanan yang diminta.
32 2.7.7 Web Hosting
Layanan web hosting mengizinkan perorangan atau organisasi
membuat sebuah website yang dapat diakses melalui world wide web. Web
hosts merupakan organisasi yang menyediakan tempat server-nya untuk
perorangan atau organisasi meletakkan semua file website-nya dan
menyediakan konektivitas dengan internet agar dapat diakses dengan
menggunakan domain yang telah didaftarkan dan nama sebuah domain tidak
boleh sama persis seperti halnya alamat rumah, walaupun sama – sama
beralamat di jalan Jendral Sudirman nomor 3, tapi jika kotanya beda maka
rumah yang dimaksud juga berbeda. Jika pada domain misalnya example.com
akan berbeda dengan example.net
2.8 Pengenalan Java
Java menurut definisi dari Sun adalah nama untuk sekumpulan teknologi
untuk membuat dan menjalankan perangkat lunak pada komputer standalone ataupun
pada lingkungan jaringan. Java 2 adalah generasi kedua dari Java Platform. Java
berdiri diatas sebuah mesin interpreter yang diberi nama Java Virtual Machine
(JVM). JVM inilah yang akan membaca bytecode dalam file .class dari suatu
program sebagai representasi langsung program yang berisi bahasa mesin. Oleh
karena itu, bahasa Java disebut sebagai bahasa pemrogram yang portable karena
dapat dijalankan pada berbagai sistem operasi, asalkan pada sistem operasi tersebut
terdapat JVM.
Agar sebuah program Java dapat dijalankan, maka file dengan ekstensi .Java
harus dikompilasi menjadi file bytecode. Untuk menjalankan bytecode tersebut
dibutuhkan JRE (Java Runtime Environment) yang memungkinkan pemakai untuk
33 menjalankan program Java, hanya menjalankan, tidak untuk membuat kode baru
lagi. JRE berisi JVM dan library Java yang digunakan.
Java memiliki bebrapa versi library atau teknologi yang disebut juga sebagai
edisi dari bahasa pemrograman Java. Tiga edisi utama dari library tersebut adalah
Micro, Standard, dan Enterprise. J2ME (Java2 Micro Edition) digunakan pada
device tertentu sperti pagers dan mobile phone. J2SE (Java2 Standard Edition)
merupakan edisi library yang dirancang untuk membuat aplikasi dekstop atau applet
pada web browser. J2EE (Java2 Enterprise Edition) merupakan edisi library yang
dirancang untuk membuat sebuh aplikasi enterprise yang memerlukan atarmuka
dengan sumber data (data source) atau dapat pula dikatakan bahwa J2EE adalah
kelompok yang lebih besar dengan J2SE didalamnya.
2.8.1 Sekilas Java di Web
Java baik untuk digunakan di web karena Java merupakan bahasa
pemrograman yang sedang berkembang pada saat ini dan memiliki prospek
mengenai perkembangannya ke depan. Di samping itu, Java menyediakan
user intrface toolkit (Swing) yang lengkap, fasilitas penggunaan grafik (API
Java 2D), pengaksesan layanan pada desktop seperti mencetak dokumen dan
pengontrolan browser, dan solusi deployment klien (Java Web Start).
Teknologi Java yang dapat digunakan untuk web adalah applet, servlet dan
JavaServer Pages (JSP). Applet digunakan untuk membuat sebuah aplikasi
seperti halnya aplikasi desktop yang dijalankan di web. Servlet merupakan
bagian dari J2Eeyang memang didedikasikan untuk Java di web. Servlet
dapat menampilkan halaman web menggunakan HTML namun pemrosesan
aksi
pada
web
menggunakan
bahasa
pemrograman
Java.
Servlet
3
34 mengggunakan seeluruh pustakka pengembbangannya, SSun mengeluuarkan sebuaah
teknoologi yang dibuat
d
di atas servlet yaiitu teknologii JSP untuk memudahkaan
progrramer yang tidak terbiaasa dengan Java
J
membuuat halamann web dengaan
Java. Java meruupakan teknoologi yang memerlukan
m
n sebuah virrtual machinne.
Olehh karena itu dibutuhkan
d
sspesifikasi server yang ccukup memaadai jika inggin
mengggunakan Jaava di web.
2.8.22 Komponen
n Web
Komponeen web di JJ2EE dapat berupa
b
servlet atau jsp. Servlet ialaah
kelass – kelas baahasa pemroograman Javva yang seccara dinamiss memperoses
perm
mintaan (reqquest) dan membangkiitkan responns. JSP iallah dokumeen
berbaasis teks yan
ng dieksekussi sebagai seervlet, tetapi mengizinkaan pendekataan
lebih
h alami untukk membuat isi
i statis.
Gambar 2.8 J2EE Servver dan kontaainer [www..emeraldinsight.com]
2.8.33 Keunggulaan Java
Dengan menggunaka
m
an bahasa pemrograman
p
n Java, Sun
n Microsysteem
mem
mbangun sebbuah bahasaa pemrogram
man yang bagus untu
uk digunakaan,
karenna mempunyyai keunggullan – keungggulan sebagaai berikut :
35 •
Java dan Powerful. Para desainer program Java membuat bahasa
program Java dan API-nya untuk bisa dengan mudah dipelajari dan
digunakan, dibandingkan dengan bahasa seperti C dan C++. Sintaks
dari bahsa Java berdasarkan pada sintaks dari bahasa C.
•
Network – savvy. Keunggulan lain dari Java yaitu fitur penyedia
layanan
networking
dan
pendistribusian
objek
dalam
suatu
environment. Package yang disebut Java.net membantu dalam
pemrograman jaringan. Dengan demikian, pembuatan program yang
menggunakan network akan menjadi lebih mudah.
•
Secure. Menggunakan browser yang kompatibel dengan Java.
Seseorang dapat dengan mudah men-download applet Java, tanpa
harus mencemaskan serangan virus dan malicious intent. Java
menggunakan proteksi ini dengan cara confining sebuah program
Java.
•
Interpreted. Java platform compiler menerjemahkan Java source
code menjadi bytecode. Java interpreter akan memproses bytecode,
bukan source code sewaktu program running.
•
Distributed. Java sangat berdaya guna untuk membangun aplikasi
terdistribusi seperti cluster dan Grid computing.
•
Platform Independent. Program Java yang Anda jalankan di
Windows dapat dijalankan/ kompilasi di sistem operasi Linux atau
hardware yang berbeda.
Download