link pak mesran

Kamis, 27 Juni 2013

Artikel Fungsi Hash Pada Kriptografi

                                                   Artikel Fungsi Hash Pada Kriptograf

 


Abstrak
Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan data. Algoritma kriptografi modern merupakan  algoritma yang beroperasi dalam metode bit. Algoritma enkripsi dan dekripsi memproses semua data dan informasi  dalam  bentuk  rangkaian  bit.  Rangkaian   bit  yang  menyatakan  plainteks  dienkripsi  menjadi cipherteks  dalam  bentuk  rangkaian  bit,  demikian  sebaliknya.  Algoritma  kriptografi  modern  terbagi  ke dalam  tiga, yaitu algoritma  simetri  (block cipher dan  stream cipher), algoritma asimetri dan  fungsi hash. Fungsi hash dalam dunia ilmu komputer digunakan untuk penyimpanan data pada database dan digunakan untuk  enkripsi  dan  dekripsi  data  dalam  kriptografi.    Makalah  ini  membahas  tentang  fungsi  hash kriptografis, sifat-sifat fungsi hash dan penerapannya pada dunia kriptografi.
1.  PENDAHULUAN
Sejak  digunakan  dalam  perang  dunia,  kriptografi  terus mengalami  perkembangan.  Jika dahulu  kriptografi  menyamarkan  teks  asli  (plainteks) menjadi  teks  sandi  (cipherteks)  dengan  keluaran  berupa  karakter  huruf  yang  dikenal  dengan  kriptografi  klasik,  kini  teks  sandi  yang dihasilkan  ialah  berupa mode  bit  yang  dikenal  dengan  kriptografi modern.  Perkembangan  ini tidak  lepas dari penggunaan komputer digital yang merepresentasikan data dalam bentuk biner . (rizky, 2009:2). Kriptografi modern kini  lebih banyak digunakan, karena cenderung  lebih aman daripada kriptografi klasik.  Algoritma kriptografi modern terbagi ke dalam algoritma simetri, algoritma asimetri dan fungsi  hash.  Algoritma  simetri  ialah  algoritma  yang  mempergunakan  kunci  yang  sama  pada enkripsi  dan  dekripsinya.  Algoritma  ini  merupakan  algoritma  yang  paling  umum  digunakan. Algoritma asimetri  ialah algoritma yang mempergunakan kunci yang berbeda pada enkripsi dan dekripsinya  (yusuf, 2004:50). 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  (rinaldi, 2006:2). 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.
2.  FUNGSI HASH KRIPTOGRAFIS
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 (message- digest); h <<<< M. Misalkan: size(M) = 1 MB, size(h) = 128 bit
Nama lain fungsi hash adalah:
a)  fungsi kompresi (compression function)
b)  cetak-jari (fingerprint)
c)  cryptographic checksum
d)  message integrity check (MIC)
e)  manipulation detection code (MDC)
Sifat-Sifat Fungsi Hash Kriptografi
a)  Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
b)  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).
c)  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 dan  tidak  dapat diubah kembali menjadi pesan semula. Sebuah pesan yang dilewatkan ke fungsi hash akan menghasilkan  keluaran  yang  disebut  Message  Authenticated  Code  (MAC).  Dilihat  dari  sisi matematik,  fungsi  hash  memetakan  satu  set  data  ke  dalam  sebuah  set  yang  lebih  kecil  dan terbatas ukurannya.
Sifat-sifat fungsi hash satu-arah adalah sebagai berikut:
a)  Fungsi H dapat diterapkan pada blok data berukuran berapa saja.
b)  H menghasilkan nilai (h) dengan panjang tetap (fixed-length output).
c)  H(x) mudah dihitung untuk setiap nilai x yang diberikan.
d)  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).
e)  Untuk  setiap  x  yang  diberikan,  tidak mungkin mencari  y  ¹  x  sedemikian  sehingga H(y) = H(x).
f)  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,
hi = H(Mi, hi – 1)    Skema fungsi hash ditunjukkan pada Gambar 2.1.

Gambar 2.1  Fungsi hash satu-arah
Aplikasi fungsi hash satu arah bertujuan untuk:
1.  Menjaga integritas data
a)  Fungsi hash sangat peka terhadap perubahan 1 bit pada pesan
b)  Pesan berubah 1 bit, nilai hash berubah sangat signifikan.
c)  Bandingkan  nilai  hash  baru  dengan  nilai  hash  lama.  Jika  sama,  pesan masih  asli. Jika  tidak sama, pesan sudah dimodifikasi
2.    Menghemat waktu pengiriman.
a)  Misal untuk memverifikasi sebuah salinan arsip dengan arsip asli.
Fungsi Hash satu arah 5
b)  Salinan dokumen berada di tempat yang jauh dari basisdata arsip asli
c)  Daripada mengirim salinan arsip tersebut secara keseluruhan ke komputer pusat (yang  membutuhkan waktu transmisi lama), lebih mangkus mengirimkan message digest-nya.
d)  Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip master.
3.    Menormalkan panjang data yang beraneka ragam.
a)  Misalkan password panjangnya bebas (minimal 8 karakter)
b)  Password disimpan di komputer host (server) untuk keperluan otentikasi pemakai komputer.
c)  Password disimpan di dalam basisdata.
d)  Untuk menyeragamkan panjang  field password di dalam basisdata, password disimpan dalam bentuk nilai hash (panjang nilai hash tetap).
2.1.  Sidik Jari
Kini   akan   dibahas  mengenai   keutuhan   pesan   saat dikirimkan. Saat pengirim pesan hendak mengirimkan pesannya,     dia     harus   membuat    sidik     jari   dari   pesan  yang akan dikirim untuk penerima pesan. Pesan (yang besarnya dapat  bervariasi) yang akan di-hash disebut preimej,    sedangkan    outputnya     yang    memiliki  ukurannya    tetap,    disebut    nilai    hash.  Kemudian, melalui   saluran   komunikasi   yang   aman,   dia mengirimkan sidik  jarinya  kepada penerima.  Setelah penerima menerima pesan si  pengirim, penerima kemudian    juga  membuat   sidik   jari   dari  pesan   yang telah   diterimanya   dari   pengirim.   Kemudian   kedua sidik   jari   dibandingkan.   Jika   kedua   sidik    jari    itu  identik, maka penerima dapat  yakin bahwa pesan  itu utuh tidak diubah-ubah sejak dibuatkan sidik jari yang diterimanya.  Jika pesan sudah diubah,  tentunya akan menghasilkan nilai hash yang berbeda.

Fungsi  hash  untuk membuat  sidik  jari  tersebut  dapat  diketahui  oleh  siapapun,  tak  terkecuali, sehingga  siapapun dapat memeriksa keutuhan dokumen atau pesan  tertentu. Tak ada algoritma rahasia dan umumnya tak ada pula kunci rahasia.  Jaminan dari keamanan sidik  jari berangkat dari kenyataan bahwa hampir  tidak ada dua pre-image yang memiliki nilai hash yang sama. Inilah yang disebut dengan sifat bebas collision dari suatu fungsi hash yang baik. Selain itu, sangat sulit untuk membuat suatu preimej jika hanya diketahui hash-valuenya saja.
2.2.  Tanda Tangan Digital
Penerima  pesan  dapat merasa  yakin  bahwa  sidik  jari  yang  datang  bersama  pesan  yang diterimanya memang berkorelasi. Namun bagaimana penerima pesan dapat merasa yakin bahwa pesan  itu  beasal dari pengirim  tanpa ada gangguan dari pihak  yang  tidak diinginkan pada  saat pesan melintas melalui saluran komunikasi? Untuk mencegah  terjadinya  pemalsuan  sidik  jari,  pengirim  pesan membubuhkan  tanda tangannya  pada  pesan  tersebut. Dalam  dunia  elektronik,  pengirim  pesan membubuhkan  tanda tangan  digitalnya  pada  pesan  yang  akan  dikirimkan  untuk  penerima  sehingga  penerima  dapat merasa yakin bahwa pesan itu memang dikirim oleh pengirim. Sifat yang diinginkan dari tanda tangan digital diantaranya adalah:
a)  Tanda  tangan  itu asli  (otentik),  tidak mudah ditulis/ditiru oleh orang  lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga penandatangan tak bisa menyangkal bahwa dulu ia tidak pernah menandatanganinya.
b)  Tanda  tangan  itu hanya  sah untuk dokumen  (pesan)  itu saja. Tanda  tangan  itu  tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah.
c)  Tanda tangan itu dapat diperiksa dengan mudah.
d)  Tanda  tangan  itu  dapat  diperiksa  oleh  pihak-pihak  yang  belum  pernah  bertemu dengan penandatangan.
e)  Tanda tangan itu juga sah untuk kopi dari dokumen yang sama persis. Meskipun  ada  banyak  skenario,  ada  baiknya  kita  perhatikan  salah  satu  skenario  yang cukup umum dalam penggunaan tanda tangan digital. Tanda tangan digital memanfaatkan fungsi hash  satu  arah  untuk  menjamin  bahwa  tanda  tangan  itu  hanya  berlaku  untuk  dokumen  yang bersangkutan  saja.  Bukan  dokumen  tersebut  secara  keseluruhan  yang  ditandatangani,  namun biasanya yang ditandatangani adalah sidik  jari dari dokumen  itu beserta  timestamp-nya dengan menggunakan kunci privat. Timestamp berguna untuk menentukan waktu pengesahan dokumen.

Keabsahan  tanda  tangan  digital  dapat  diperiksa  oleh  penerima  pesan.  Pertama-tama penerima membuat  kembali  sidik  jari  pesan  yang  diterimanya. Lalu  penerima mendekripsikan tanda  tangan  digital  pengirim  untuk  mendapatkan  sidik  jari  yang  asli.  Penerima  kemudian membandingkan  kedua  sidik  jari  tersebut.  Jika  kedua  sidik  jari  tersebut  sama,  maka  dapat diyakini bahwa pesan tersebut ditanda tangani oleh pengirim pesan.
2.3.  Sertifikat Digital
Pengiriman  pesan  dengan  tanda  tangan  digital  dapat  dilakukan  jika  pengirim  dan penerima pesan sudah saling mengenal dan mengetahui kunci untuk ekripsi dan dekripsi pesan. Jika  pengirim  dan  penerima  pesan  belum  saling mengenal  atau  tidak  saling mengetahui  kunci untuk  enkripsi  dan  dekripsi,  maka  perlu  adanya  pihak  ketiga.  Setiap  anggota  jaringan diasumsikan telah memiliki saluran komunikasi pribadi yang aman dengan pihak ketiga. Saluran inilah  yang  dimanfaatkan  untuk  mengirim  kunci  publik  penerima  ke  pengirim  pesan  (dan sebaliknya).  Pihak  ketiga  ini  menjadi  penjamin  keabsahan  kunci  jika  pengirim  dan  penerima pesan  sebelumnya  tidak pernah  bertukar kunci publik. Skenario  ini  tetap membutuhkan kunci-8 kunci  kriptografi  (baik  itu  simetris  ataupun  asimetris)  untuk  pengamanan  saluran  komunikasi antara pihak ketiga dengan pengirim atau penerima pesan. Masalah di atas dapat dipecahkan dengan penggunaan sertifikat digital. Jadi pihak ketiga sukup menanda  tangani kunci publik milik setiap orang di  jaringan  tersebut. Sebenarnya dalam sertifikat  tersebut  tak  hanya  berisi  kunci  publik,  namun  dapat  berisi  pula  informasi  penting lainnya  mengenai  jati  diri  pemilik  kunci  publik,  seperti  misalnya  nama,  alamat,  pekerjaan, jabatan,  perusahaan  dan  bahkan  hash  dari  suatu  informasi  rahasia. Semua  orang mempercayai otoritas pihak ketiga dalam memberikan  tanda  tangan, sehingga orang-orang dalam  jaringan  itu merasa aman menggunakan kunci publik yang telah ditandatangani pihak ketiga.

Jika  seseorang  berhasil  mencuri  sertifikat  digital  yang  dipertukarkan  antara  pengirim  dan penerima  pesan,  serta  menggantinya  dengan  sertifikat  digital  milik  dirinya  sendiri,  maka pengirim  dan  penerima  pesan  dapat  segera  melihat  bahwa  sertifikat  digital  yang  diterimanya bukan ‘lawan bicara’ yang semestinya. Serangan  terhadap  sistem  yang  memiliki  pengamanan  dengan  sertifikat  digital  sulit dilakukan.  Secara  teoritis  keunggulan  dari  tanda  tangan  digital  adalah  kemampuan  untuk melakukan  proses  otentikasi  secara  off-line.  Pemeriksa  cukup memiliki  kunci  publik  dari OS utama  untuk  mengetahui  sah-tidaknya  kunci  publik  dari  lawan  bicaranya.  Selain  itu  untuk meningkatkan  keamanan,  kunci  publik  OS  utama  bisa  saja  diintegrasikan  dalam  program aplikasi. Namun kenyataannya, karena ada kemungkinan sertifikat digital tersebut hilang, tercuri atau  identitas  pemilik  sertifikat  berubah  (perubahan  alamat  surat  elektronik  atau  nomor  KTP misalnya), maka  sertifikat digital perlu diperiksa keabsahannya dengan melihat daftar sertifikat terbatalkan (certificate revocation list) yang disimpan oleh OS. 9
3.  ALGORITMA FUNGSI HASH KRIPTOGRAFI 
Beberapa algoritma fungsi hash kriptografi:

Penjelasan tentang Algoritma MD-5
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[10]. Pesan dengan panjang b bit dapat digambarkan seperti berikut : m_0 m_1 …..m_(b-1) Terdapat 5 langkah yang dibutuhkan untuk untuk menghitung intisari pesan. Adapun langkah–langkah tersebut dijelaskan pada subbab-subbab berikut :
  1.  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.[3,10] . Penambahan bit dilakukan dengan menambahkan “1” di awal dan diikuti “0” sebanyak yang diperlukan sehingga panjang pesan akan kongruen dengan 448, mod 512.
  1. 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[3].
  1.  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.
  1.  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.
  1. Keluaran MD-5
Keluaran dari MD-5 adalah 128 bit dari word terendah A dan tertinggi word D masing-masing 32 bit.

Kesimpulan
Beberapa kesimpulan yang dapat diperoleh dari Artikel  ini adalah:
  1. Message Digest 5 (MD5) adalah sebuah fungsi hash satu arah yang mengubah masukan dengan panjang variabel menjadi keluaran dengan panjang tetap yaitu 128 bit.
  2.  Rerata kecepatan dari program aplikasi MD-5 adalah 7,1633 Mbytes/detik
  3.  Aplikasi yang dibuat hanya efektif digunakan untuk ukuran file kurang dari 40 Mbytes.
  4. Sumber daya komputer berpengaruh terhadap kecepatan enkripsi.

Tidak ada komentar:

Posting Komentar