Rabu, 01 Mei 2013

Kriptografi


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 ≤ xp–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

2 komentar:

  1. terimakasih sudah membantu saya untuk mendapatkn tugas kriptograti sebagai bahan ancuan pembuatan makalah :)

    Free APK premium | Download APK Gratis

    BalasHapus