BAB
I
PENDAHULUAN
1.1 Latar Belakang
Kriptografi sudah
digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja-raja Mesir
pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya
melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut
kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau
memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut
kriptanalis.
Usaha untuk menjaga kerahasiaan suatu
informasi telah ada sejak jaman dahulu. Julius Caesar, kaisar Romawi, telah
menggunakan metoda enkripsi sederhana dengan cara menggeser setiap karakter
dalam pesannya dengan nilai tertentu. Cara ini cukup aman pada saat itu namun
tidaklah mungkin dipakai saat ini karena dengan kemampuan komputasi komputer
sekarang, akan sangat mudah dipecahkan.
Seiring dengan
perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah
algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau
harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga
algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan
Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma
kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX
yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh
Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh
Jepang. Selain itu Jerman juga mempunyai mesin legendaris yang dipakai untuk
memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma.
Di zaman ini, implementasi
dari kriptografi banyak ditemui dalam kehidupan sehari-hari, seperti Automatic
Teller Machine (ATM), Penggunaan ATM untuk banking, bahkan mulai meningkat
menjadi Internet Banking, Mobile Banking, Komunikasi elektronik seperti telepon
tetap, cellular, SMS, MMS. 3G, Komunikasi via Internet seperti email,
messaging, chatting, Voice Call dan E-Government , E-Commence.
1.2
Tujuan Penulisan
Tujuan dari makalah ini
adalah mengetahui tentang pengertian kriptografi, elemen-elemen dalam
kriptografi, metode dalam kriptografi, fungsi hash pada kriptografi, dan juga
algoritma yang terjadi pada kriptografi ( MD-5 dan Algoritma ElGanal).
BAB II
PEMBAHASAN
2.1. Pengertian Kriptografi
Kriptografi berasal
dari bahasa yunani, menurut bahasa dibagi menjadi dua kripto dan graphia,
kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut
teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan
ketika pesan di kirim dari suatu tempat ke tempat yang lain. Kriptografi dapat
juga diartikan sebagai ilmu yang mempelajari mengenai bagaimana cara
mengamankan suatu informasi. Pengamanan ini dilakukan dengan mengenkrip
informasi tersebut dengan suatu kunci khusus.
Kriptografi (Cryptography) merupakan
bidang pengetahuan yang menggunakan persamaan matematis untuk melakukan proses
enkripsi maupun dekripsi (decrypt) data. Teknik ini digunakan untuk
mengkonversi/mengubah data ke dalam bentuk kode-kode tertentu, dengan tujuan
informasi yang disimpan maupun ditransmisikan melalui jaringan yang tidak aman
seperti internet, tidak dapat dibaca oleh siapapun kecuali orang-orang yang berhak.
Kriptografi secara umum digunakan dalam bidang keamanan informasi karena keamanan
suatu informasi sangatlah penting agar agar tidak disalahgunakan dan jatuh ke
tangan orang-orang yang tidak berkepentingan. Informasi ini dapat berupa
password, nomor kartu kredit, ataupun informasi pribadi lainnya.
Algoritma kriptografi
yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau
pesan yang akan
disampaikan. Yang penting,
algoritma tersebut harus memenuhi 4 persyaratan berikut :
o Confidelity (kerahasiaan), yaitu layanan agar isi
pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain
(kecuali puhak pengirim, pihak penerima, atau pihak-pihak yang memiliki ijin).
Umumnya hal ini dilakukan dengan cara membuat suatu algoritma mamtematis yang
mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
o Authentication (keotentikan), yaitu layanan yang berhubungan dengan identifikasi. Baik
otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi
keaslian data atau informasi.
o Data integrity (keutuhan data), yaitu layanan yang mampu mengenali atau mendeteksi
adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah
(oleh pihak lain).
o Non-repudiation (anti-penyalahgunaan), yaitu layanan yang dapat mencegah suatu pihak
untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan
tersebut berasal darinya).
Kriptografi pada
dasarnya terdiri dari dua proses penting, yaitu proses enkripsi dan proses
dekripsi. Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan
rahasia (ciphertext). Ciphertext inilah yang nantinya akan dikirimkan melalui
saluran komunikasi terbuka. Pada saat ciphertext diterima oleh penerima pesan,
maka pesan rahasia tersebut diubah lagi menjadi pesan terbuka melalui proses
dekripsi sehingga pesan tadi dapat dibaca kembali oleh penerima pesan.
Dalam sistem komputer,
pesan terbuka (plaintext) diberi lambang M, yang merupakan singkatan dari
Message. Plaintext ini dapat berupa tulisan, foto, atau video yang berbentuk
data biner.
2.2
Elemen-Elemen Kriptografi
Dalam kriptografi,
terdapat beberapa elemen-elemen yang secara langsung berhubungan dengan
kriptografi. Diantaranya adalah :
§ Pesan,
Plainteks dan Cipherteks
Pesan
adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain
untuk pesan adalah plainteks. 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 cipherteks
§ 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.
§ Enkripsi
dan dekripsi
Proses menyandikan plainteks
menjadi cipherteks disebut enkripsi. Sedangkan proses mengembalikan cipherteks
menjadi plainteks semula dinamakan dekripsi.
§ Cipher
Algoritma kriptografi disebut juga
cipher yaitu aturan untuk enciphering dan deciphering, 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.
§ Sistem
kriptografi
Sistem kriptografi merupakan
kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan
cipherteks yang mungkin dan kunci.
§ 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.
§ 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 kriptografi dan kriptanalisis.
2.3 Metode Kriptografi
Dalam menjaga kerahasiaan
data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk
data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang
kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah
sampai di penerima, ciphertext tersebut ditranformasikan kembali ke dalam
bentuk plaintext agar dapat dikenali.
Proses tranformasi dari
plaintext menjadi ciphertext disebut proses Encipherment atau enkripsi
(encryption), sedangkan proses mentransformasikan kembali ciphertext menjadi
plaintext disebut proses dekripsi (decryption).
Untuk mengenkripsi dan
mendekripsi data. Kriptografi menggunakan suatu algoritma (cipher) dan kunci
(key). Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan
mendekripsi data. Sedangkan kunci merupakan sederetan bit yang diperlukan untuk
mengenkripsi dan mendekripsi data.
Shannon mengatakan
bahwa Algoritma kriptografi harus memiliki kekuatan untuk melakukan konfusi dan
difusi. Konfusi (confusion) adalah mengaburkan hubungan antara plaintext dan
ciphertext. Cara paling mudah untuk melakukan konfusi adalah menggunakan
substitusi. Konfusi menimbulkan kesulitan dalam usaha musuh untuk mencari
keteraturan dan pola statistik antara plaintext dan ciphertext. Sementara
difusi (difusion) adalah menyebarkan redudansi plaintext dengan menyebarkan
masukan ke seluruh ciphertext. Cara yang paling mudah untuk dapat melakukan
difusi adalah dengan menggunakan metode transposisi. Jika menggunakan difusi,
akan dibutukan waktu ang lebih lama untuk memecakan sandi rahasia ini. Sehingga
dapat digunakan untuk mengamankan informasi. Pada implementasinya sebuah
algoritma sandi harus memperhatikan kualitas layanan dari keseluruhan sistem
dimana dia diimplementasikan. Algoritma sandi yang handal adalah algoritma
sandi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma
itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi adalah
kriptanalisa.
Secara umum berdasarkan
kesamaan kuncinya, algoritma sandi dibedakan menjadi :
§ Algoritma
kunci simetris
Dalam symmetric
cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada
prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan dari kunci
yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah sistem ini
sering disebut sebagai secret-key ciphersystem. Kunci untuk membuat pesan yang di
sandikan sama dengan kunci untuk membuka pesan yang disandikan itu sehingga
algoritma ini disebut juga sebagai single-key algorithm. Jadi pembuat pesan dan
penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci
tersebut termasuk pihak-pihak yang tidak diinginkan dapat membuat dan
membongkar rahasia ciphertext. Jumlah kunci yang dibutuhkan
umumnya adalah : nC2
= n . (n-1) / 2 dengan n menyatakan banyaknya pengguna. Contoh dari
sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.
Kriptografi
secret key seringkali disebut sebagai kriptografi konvensional atau kriptografi
simetris (Symmetric Cryptography) dimana proses dekripsi adalah kebalikan dari
proses enkripsi dan menggunakan kunci yang sama.
Kriptografi
simetris dapat dibagi menjadi dua, yaitu penyandian blok dan penyandian alir.
Penyandian blok bekerja pada suatu data yang terkelompok menjadi blok-blok data
atau kelompok data dengan panjang data yang telah ditentukan. Pada penyandian
blok, data yang masuk akan dipecah-pecah menjadi blok data yang telah
ditentukan ukurannya. Penyandian alir bekerja pada suatu data bit tunggal atau
terkadang dalam satu byte. Jadi format data yang mengalami proses enkripsi dan
dekripsi adalah berupa aliran bit-bit data.
Algoritma yang
ada pada saat ini pada umumnya bekerja untuk penyandian blok karena kebanyakan
proses pengiriman data pada saat ini menggunakan blok-blok data yang telah
ditentukan ukurannya untuk kemudian dikirim melalui saluran komunikasi.
Kelebihan dari
algoritma kunci simetris antara lain : Kecepatan operasi lebih tinggi bila
dibandingkan dengan algoritma asimetrik ; Karena kecepatannya yang cukup
tinggi, maka dapat digunakan pada sistem real-time. Sementera kelemahannya : Untuk tiap pengiriman pesan dengan pengguna
yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi
kesulitan dalam manajemen kunci tersebut ; permasalahan dalam pengiriman kunci
itu sendiri yang disebut “key distribution problem”
§ Algoritma
kunci asimetris
Algoritma
Asimetris atau sering disebut algoritma public key, penggunaan kunci dalam
algoritma ini adalah, kunci yang dipakai dalam proses enkripsi berbeda dengan
kunci yang dipakai pada proses dekripsi, jadi jumlah kunci enkripsi ≠ kunci
dekripsi.
Ada 2 jenis
kunci di algoritma ini, yaitu : Kunci Publik adalah kunci yang digunakan untuk
melakukan proses enkripsi data. Kunci ini disebut publik karena siapapun dapat
mengetahuinya ; Kunci Privat adalah kunci yang digunakan untuk melakukan proses
dekripsi data. Kunci ini disebut privat karena 1 kunci privat hanya dimiliki
oleh 1 orang saja. Kunci privat sering juga disebut kunci rahasia. Istilah
kunci rahasia dalam algoritma simetris digunakan untk menyatakan kunci enkripsi
dan dekripsi, sementara pada algoritma asimetris digunakan untuk menyatakan
kunci privat, karena kunci publik tidak dirahasiakan.
Kelebihan dari algoritma ini yaitu : masalah keamanan
pada distribusi kunci dapat lebih baik, masalah manajemen kunci yang
lebih baik karena jumlah kunci yang lebih sedikit. Kelemahannya
: kecepatan yang lebih
rendah bila dibandingkan dengan algoritma simetris, untuk
tingkat keamanan sama,
kunci yang digunakan
lebih panjang dibandingkan dengan algoritma
simetris.
Berdasarkan arah
implementasi dan pembabakan zamannya dibedakan menjadi :
§ Algoritma
Sandi Klasik
Sebelum komputer
ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma
kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik,
adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap
karakter pesan. Semua algoritma klasik termasuk ke dalam sistrm kriptografi
simetris dan digunakan jauh sebelum kriptografi kunci publik
ditemukan.Kriptogarfi klasik memiliki beberapa ciri, yaitu berbasis karakter ,
menggunakan pena dan kertas saja, belum ada computer, termasuk ke dalam
kriptografi kunci simetris. Menurut Ariyus Dony (1998), terdapat tiga alasan
mengapa harus mempelajari algoritma klasik antara lain : memahami konsep dasar
kriptografi, dasar algoritma kriptografi modern, memahami kelemahan sistem
kode.
Menurut Munir (2006),
algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher,
yaitu :
§ Cipher
substitusi (substitution cipher)
Di dalam cipher substitusi setiap
unit plainteks diganti dengan satu unit cipherteks. Satu “unit” di isini
berarti satu huruf, pasanga huruf, atau dikelompokkan lebih dari dua huruf. Algoritma
substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh
kaisar Romawi , Julius Caesar (sehingga dinamakan juga casear cipher), untuk
mengirimakan pesan yang dikirimkan kepada gubernurnya.
§ Cipher
transposisi (transposition cipher)
Pada cipher transposisi,
huruf-huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan
kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di
dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling)
karena transpose setiap karakter di dalam teks sama dengan mempermutasikan
karakter-karkater tersebut.
Pada metode
kriptografi simetris atau konvensional digunakan satu buah kunci. Bila kunci
dinotasikan denan ‘K’ maka proses enkripsi-dekripsi metode kriptografi
simeteris dapat dinotasikan dengan :Ek(P) = C dan Dk (C) = P dan keseluruhan
sistem dinyatakan sebagai : Dk(Ek(P))=P.
§ Algoritma
Sandi Modern
Algoritma
kriptografi modern tidak lagi mengandalkan keamanannya pada kerahasiaan
algoritma tetapi kerahasiaan kunci. Plaintext yang sama bila disandikan dengan
kunci yang berbeda akan menghasilkan ciphertext yang berbeda pula. Dengan
demikian algoritma kriptografi dapat bersifat umum dan boleh diketahui oleh
siapa saja, akan tetapi tanpa pengetahuan tentang kunci, data tersandi tetap
saja tidak dapat terpecahkan. Sistem kriptografi atau Cryptosystem adalah
sebuah algoritma kriptografi ditambah semua kemungkinan plaintext, ciphertext
dan kunci.
Sedangkan berdasarkan
besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat
dibedakan menjadi dua jenis yaitu :
Ø Algoritma
block cipher
Algoritma block cipher merupakaan
algoritma kriptografi yang bekerja pada suatu data yang berbentuk blok/kelompok
data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali
proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama.
Informasi/data yang hendak dikirim
dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan
dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam
blok-blok yang berukuran sama.
Ø Algoritma
stream cipher
Algoritma stream
cipher merupakaan algoritma yang dalam operasinya bekerja dalam suatu pesan
berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa
aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.
Informasi/data
yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte
atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan
tranformasi enkripsi yang berubah setiap waktu.
Pada algoritma
penyandian blok (block cipher), plainteks yang masuk akan diproses dengan
panjang blok yang tetap yaitu n, namun terkadang jika ukuran data ini terlalu
panjang maka dilakukan pemecahan dalam bentuk blok yang lebih kecil. Jika dalam
pemecahan dihasilkan blok data yang kurang dari jumlah data dalam blok maka
akan dilakukan proses pading (penambahan beberapa bit).
Terdapat
bermacam-macam mode operasi dalam blok cipher, diantaranya adalah:
• Electronic Codebook (ECB). Pada mode operasi
ECB sebuah blok input plaintext dipetakan secara statis ke sebuah blok output
ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan ciphertext yang
selalu sama pula. Sifat- sifat dari mode operasi ECB : sederhana dan efisien, memungkinkan
implementasi parallel, tidak menyembunyikan pola plaintext, dan dimungkinkan
terjadi adanya active attack.
• Cipher Block Chaining (CBC). Pada mode
oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi
selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi blok saat
itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya
tapi bergantung pula pada blok-blok plaintext sebelumnya. Sehingga untuk
plaintext yang sama, belum tentu menghasilkan ciphertext yang sama pula.
• Kriptografi Hibrid. Permasalahan yang menarik
pada bidang kemanan informasi adalah adanya trade off antara kecepatan dengan
kenyamanan. Semakin aman semakin tidak nyaman, berlaku juga sebaliknya semakin
nyaman semakin tidak aman. Salah satu contohnya adalah bidang kriptografi.
Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrida. Kriptografi
hibrida sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data
oleh algoritma simetrik dan kemudahan transfer kunci menggunakan algoritma
asimetrik. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi
kenyamanan serta keamanan. Aplikasi kriptografi hibrida yang ada saat ini pada
umumnya ditujukan untuk penggunaan umum atau mainstream yang merupakan pengguna
komputer. Aplikasi pada umumnya mengikuti perkembangan hardware komputer yang
semakin cepat dari waktu ke waktu. Sehingga hardware yang sudah lama tidak
dapat difungsikan sebagaimana mestinya. Selain itu banyak perangkat embedded
dengan kekuatan pemrosesan maupun daya yang terbatas. Terutama dengan trend
akhir akhir ini, hampir semua orang memiliki handheld device yang mempunyai
kekuatan terbatas, seperti telepon seluler.
2.4 Fungsi Hash pada Kriptografi
Fungsi hash adalah
fungsi yang menerima masukkan string yang panjangnya sembarang dan
mentransformasikannya menjadi string keluaran yang panjangnya tetap (nilai
hash), umumnya berukuran jauh lebih kecil daripada string masukkannya. Nama
lain fungsi hash adalah : Fungsi kompresi (compression function), Cetak-jari
(fingerprint), Cryptographic checksum, Message integrity check (MIC), Manipulation
detection code (MDC).
Ide dasar dari fungsi
hash adalah menghitung nilai hash dari kunci atau nilai asli, kemudian
membandingkan kunci atau nilai asli dengan isi pada memori yang beralamat nomor
hashnya tanpa harus memeriksa isi tabel satu per satu sehingga lebih efisien.
Fungsi hash
Kriptografis adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan
sehingga dapat dipakai untuk tujuan keamanan data. Umumnya digunakan untuk
keperluan autentikasi dan integritas data. Persamaan fungsi hash secara
matematis ialah h= H(M); M = pesan ukuran sembarang, h = nilai hash (hash
value) atau pesan-ringkas (messagedigest); h <<<< M.
Sifat-Sifat Fungsi Hash
Kriptografi :
Ø Tahan
preimej (Preimage resistant) : bila diketahui nilai hash h maka sulit (secara
komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
Ø Tahan
preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit
mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
Ø Tahan
tumbukan (Collision-resistant) : sulit mencari dua input berbeda m1 dan m2 yang
menyebabkan hash(m1) = hash(m2).
Fungsi Hash merupakan fungsi yang
bersifat satu arah dimana jika kita masukkan data, maka dia akan menghasilkan
sebuah “checksum” atau “fingerprint” dari data tersebut. Sebuah pesan yang
dilewatkan ke fungsi hash akan menghasilkan keluaran yang disebut Message
Authenticated Code (MAC). Dilihat dari sisi matematik, hash function memetakan
satu set data ke dalam sebuah set yang lebih kecil dan terbatas ukurannya. Sifat-sifat
fungsi hash satu – arah adalah sebagai berikut : Fungsi Hash dapat diterapkan
pada blok data berukuran berapa saja ; Hash menghasilkan nilai (h) dengan panjang
tetap (fixed-length output) ; H(x) mudah dihitung untuk setiap nilai x yang
diberikan ; 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) ; Untuk setiap x yang diberikan, tidak
mungkin mencari y ¹ x sedemikian sehingga H(y) = H(x) ; Tidak mungkin mencari pasangan x dan y
sedemikian sehingga H(x) = H(y). Aplikasi fungsi hash satu arah bertujuan
untuk: Menjaga integritas data, Menghemat waktu pengiriman, Menormalkan panjang
data yang beraneka ragam.
Ada beberapa fungsi
hash yang umum digunakan saat ini, antara lain : MD5, SHA (Secure Hash
Algorithm).
2.5 Analisis Algoritma pada Kriptografi
Kali ini akan dibahas
mengenai penerapan algoritma asimetris ElGanal, dan juga sistem kriptografi
MD-5.
Ø Algoritma
ElGanal
Algoritma
ElGamal merupakan salah satu algoritma kriptografi kunci publik (asimetris)
yang ditemukan oleh seorang ilmuwan Mesir Taher ElGamal pada tahun 1985.
Kekuatan dari algoritma ElGamal ini terletak pada sulitnya menghitung logaritma
diskrit. Algoritma ini menggunakan dua jenis kunci, yaitu kunci publik dan
kunci rahasia. Algoritma ElGamal mempunyai kunci publik berupa tiga pasang
bilangan dan kunci rahasia berupa satu bilangan.
Algoritma ini
melakukan proses enkripsi dan dekripsi pada blok-blok plaintext dan dihasilkan
blok-blok ciphertext yang masing-masing terdiri dari dua pasang bilangan. Untuk
proses enkripsi menggunakan kunci publik, sedangkan proses dekripsi menggunakan
kunci privat.
Sebelum proses
enkripsi dilakukan, hal pertama yang harus dilalui adalah proses pembangkitan
kunci, keluaran dari proses ini adalah berupa kunci publik yang nantinya akan
dikirimkan kepada pengirim pesan untuk meng-enkripsi pesan rahasia. Berikut
adalah langkah dari pembangkitkan kunci ElGanal :
a. Pilih sebarang bilangan
prima p>255 ( p dapat dipublikasikan).
b. Pilih dua buah bilangan
acak, g dan x, dengan syarat g < p dan 0 ≤ x
≤ p–2.
c. Hitung y = gx
mod p.
y adalah bagian
dari kunci publik, sehingga kunci publik algoritma ElGamal berupa pasangan 3
bilangan, yaitu (y,g,p). Sedangkan kunci rahasianya adalah bilangan x tersebut.
Perlu ditekankan kembali, bahwa proses pembangkitan kunci ini dilakukan di sisi
penerima pesan, lalu setelah kunci publik dibangkitkan, kunci publik dikirimkan
kepada pengirim pesan untuk selanjutnya dilakukan proses enkripsi.
Pada proses
enkripsi Algoritma ElGanal, pesan dienkripsi menggunakan kunci public (y,g,p) dan sebarang
bilangan acak rahasia k anggota {0,1,…, p - 2}. Misalkan m adalah
pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok
karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga
diperoleh plainteks m1, m2, …, mn dengan
mi anggota {1, 2,…, p - 1} , i =1, 2,…, n .
Langkah-langkahnya :
a.
Susun plaintext menjadi blok-blok m1 m2, ..., mn, dengan setiap blok
adalah satu karakter pesan.
b.
Konversikan masing-masing karakter ke dalam kode
ASCII, maka diperoleh plaintext sebanyak n
bilangan, yaitu m1 m2,
..., mn.
c.
Untuk i dari sampai n
kerjakan:
o Pilih sebarang bilangan
acak rahasia ki €{0,1,...,p-2}
o Hitung ai = gki mod p
o Hitung bi = ykimi mod p
d.
Diperoleh ciphertext yaitu (ai,bi), i
= 1,2,...,n. Jadi ukuran ciphertext
dua kali ukuran plaintext.
Skenario selanjutnya adalah pengirim mengirimkan pesan
kepada penerima.
Pada proses dekripsi Algoritma
ElGamal, setelah menerima
cipherteks (a,b) , proses selanjutnya adalah mendekripsi cipherteks
menggunakan kunci publik p dan kunci rahasia x. Dapat ditunjukkan
bahwa plainteks m dapat diperoleh dari cipherteks menggunakan kunci
rahasia x. Langkah-langkahnya :
a.
Ciphertext (ai,bi),
i = 1,2,...,n, kunci publik p dan kunci rahasia x.
b.
Untuk i dari sampai n
kerjakan:
o Hitung ai p-1-x mod
p
o Hitung mi = bi/aix mod p = bi (aix)-1 mod p
c.
Diperoleh plaintext yaitu m1 m2, ..., mn.
d.
Konversikan masing-masing bilangan m1 m2, ..., mn
ke dalam karakter sesuai dengan kode ASCII-nya, kemudian hasilnya
digabungkan kembali.
Ø MD-5
Message Digest 5
(MD-5) adalah salah satu penggunaan fungsi hash satu arah yang paling banyak
digunakan. MD-5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit,
kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari MD-5
berupa 4 buah blok yang masing-masing 32 bit yang mana akan menjadi 128 bit
yang biasa disebut nilai hash.
Setiap pesan
yang akan dienkripsi, terlebih dahulu dicari berapa banyak bit yang terdapat
pada pesan. Kita anggap sebanyak b bit. Di sini b adalah bit non negatif
integer, b bisa saja nol dan tidak harus selalu kelipatan delapan.
Terdapat 5
langkah yang dibutuhkan untuk untuk menghitung intisari pesan :
a. Menambahkan
bit, pesan akan ditambahkan bit-bit tambahan sehingga panjang bit akan kongruen
dengan 448, mod 512. Hal ini berarti pesan akan mempunyai panjang yang hanya
kurang 64 bit dari kelipatan 512 bit. Penambahan bit selalu dilakukan walaupun
panjang dari pesan sudah kongruen dengan 448, mod 512 bit. Penambahan bit
dilakukan dengan menambahkan “1” di awal dan diikuti “0” sebanyak yang diperlukan
sehingga panjang pesan akan kongruen dengan 448, mod 512.
b. Penambahan
Panjang Pesan, setelah penambahan bit, pesan masih membutuhkan 64 bit agar
kongruen dengan kelipatan 512 bit. 64 bit tersebut merupakan perwakilan dari b
(panjang pesan sebelum penambahan bit dilakukan). Bit-bit ini ditambahkan ke
dalam dua word (32 bit) dan ditambahkan dengan low-order terlebih dahulu.
Penambahan pesan ini biasa disebut juga MD Strengthening atau Penguatan MD
c. Inisialisasi
MD-5, pada MD-5 terdapat empat buah word 32 bit register yang berguna untuk
menginisialisasi message digest pertama kali. Register-register ini di
inisialisasikan dengan bilangan hexadesimal. Register-register ini biasa
disebut dengan nama Chain variabel atau variabel rantai.
d. Proses
Pesan di dalam Blok 16 Word, pada MD-5 juga terdapat 4 (empat) buah fungsi
nonlinear yang masing-masing digunakan pada tiap operasinya (satu fungsi untuk
satu blok).
e. Keluaran
MD-5, keluaran dari MD-5 adalah 128 bit dari word terendah A dan tertinggi word
D masing-masing 32 bit.
BAB III
KESIMPULAN
Kriptografi adalah ilmu
dan seni untuk menjaga keamanan pesan ketika pesan di kirim dari suatu tempat
ke tempat yang lain. Kriptografi dapat juga diartikan sebagai ilmu yang mempelajari
mengenai bagaimana cara mengamankan suatu informasi. Pengamanan ini dilakukan
dengan mengenkrip informasi tersebut dengan suatu kunci khusus. Terdapat empat
prinsip yang harus dipenuhi oleh sebuah algoritma kriptografi, yakni
kerahasiaan, keotentikan, keutuhan data, dan terhindar dari penyalahgunaan.
Kriptografi memiliki beberapa elemen yang
menyertai, antara lain Pesan, Plainteks dan Cipherteks, pengirim dan penerima,
enkripsi dekripsi, chipper, sistem kriptografi, penyadap, kriptanalis dan
kriptologi.
Metode kriptografi berdasarkan persamaan
kuncinya meliputi algoritma kunci simetris dan algoritma kunci asimetris.
Berdasarkan arah impelmentasi dan pembabakan waktu dibedakan menjadi algoritma
sandi klasik dan algoritma sandi modern. Sementara berdasarkan besar
data yang diolah dalam satu kali proses dibedakan menjadi dua, yakni algoritma
block chiper dan stream chiper
Fungsi hash pada
kriptografi adalah. fungsi yang menerima masukkan string yang panjangnya
sembarang dan mentransformasikannya menjadi string keluaran yang panjangnya
tetap (nilai hash), umumnya berukuran jauh lebih kecil daripada string
masukkannya, yang memiliki beberapa sifat keamanan tambahan sehingga dapat
dipakai untuk tujuan keamanan data.
DAFTAR PUSTAKA
o
id.wikipedia.org/wiki/Kriptografi
o hadiwibowo.wordpress.com/2006/08/06/apa-sih-kriptografi-itu/
o elib.unikom.ac.id/download.php?id=78617
o ilmu-kriptografi.blogspot.com/
o robby.c.staff.gunadarma.ac.id%2FDownloads%2Ffiles%2F4565%2FKRIPTOGRAFI.doc
o bwahyudi.staff.gunadarma.ac.id%2FDownloads%2Ffiles%2F13543%2Fkriptografi-01.docQ
terimakasih sudah membantu saya untuk mendapatkn tugas kriptograti sebagai bahan ancuan pembuatan makalah :)
BalasHapusFree APK premium | Download APK Gratis
sama-sama, terimakasih atas kunjungannya
Hapus