Stsn6's Weblog

Akan Selalu Memberikan Yang Terbaik Untuk Negara

manajemen Kunci,.

Manajemen Kunci
Kekuatan sistem kriptografi secara total bergantung pada keamanan kunci. Kunci perlu dilindungi selama fase daur hidupnya.
Daur hidup kunci dimulai dari pembangkitan kunci (generation) sampai kunci tidak diperlukan lagi untuk kemudian dihancurkan (destruction). Secara garis besar, daur hidup kunci digambarkan pada Gambar 1 sbb:
Gambar 1. Daur hidup kunci
Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di dalam daur hidupnya.
Pada umumnya setiap kunci akhirnya diganti dengan kunci lain. Jadi, keseluruhan fase membentuk siklus (lingkaran) karena penghancuran kunci biasanya diikuti dengan penggantiannya dengan kunci baru (garis putus-putus).
Manajemen kunci yang dibahas difokuskan pada algoritma kriptografi simetri karena manajemen kunci untuk algoritma kunci-publik sangat berbeda dengan algoritma simetri.
Pembangkitan Kunci (Key Generation)
Pembangkitan kunci pada algoritma simetri jauh lebih mudah daripada pembangkitan kunci pada algoritma kunci-publik. Karena kunci simetri umumnya rangkaian bii atau rangkaian karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri.
Masalah utama yang muncul pada pembangkitan kunci adalah bagaimana membuat kunci yang tidak dapat diprediksi. Metode yang dapat digunakan untuk menjawab hal ini adalah dengan teknik manual (misalnya pelemparan koin/dadu), pembangkitan dari data pribadi (misalnya PIN), atau menggunakan pembangkit bilangan acak.
Pada algoritma kunci-publik, pembangkitan kunci merupakan masalah tersendiri, karena pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu, pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci.
Oleh karena itu, pada algoritma kunci-publik dibutuhkan program khusus untuk membangkitkan kunci. Masalah yang timbul di sini adalah kepercayaan pengguna terhadap program tersebut. Pada RSA misalnya, bila program hanya dapat membangkitkan bilangan prima yang terbatas, maka pihak lawan dapat membangkitkan sendiri bilangan-bilangan prima yang terbatas itu dan menggunakannya sebagai faktor dari salah satu parameter RSA.
Penyebaran Kunci (Key Distribution)
Jika pengguna menggunakan kunci untuk melindungi informasi yang disimpan di dalam storage, maka tidak ada kebutuhan untuk menyebarkan kunci.
Tetapi, untuk kebutuhan komunikasi secara aman, maka diperlukan kebutuhan untuk mengirimkan kunci.
Protokol pertukaran kunci dengan menggunakan algoritma kunci-publik (lihat pembahasan Protokol Kriptografi) dapat digunakan untuk mendistribusikan kunci.
Penyimpanan Kunci (Key Storage)
Kunci disimpan di tempat yang aman yang tidak memungkinkan  pihak lawan mengaksesnya. Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik (misalnya disimpan di dalam lemari  besi).
Alternatif lain, kunci dapat disimpan di dalam smart card yang hanya dapat dibaca dengan menggunakan kode rahasia.
Kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah ini.
1. kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Konsep ini mengarah pada konsep key hierarchy, yang dalam hal ini setiap kunci di dalam hirarkhi digunakan untuk melindungi kunci di bawahnya.
2. kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat terpisah. Jika kunci akan digunakan, maka setiap komponen direkonstruksi kembali.
Misalkan kunci K dibagi menjadi dua komponen, K1 dan K2. Membagi dua langsung K sedemikian sehingga setengah bagian pertama menjadi K1 dan setengah bagian sisanya menjadi K2 tidak dianjurkan, karena dapat memungkinkan pihak lawan menemukan K jika ia hanya mengetahui salah satu dari K1 dan K2. Misalkan K panjangnya 64 bit, dan lawan mengetahui K1, maka K dapat ditentukan dengan hanya 232 percobaaan untuk menemukan K2 secara exhaustive search (lebih sedikit dibandingkan 264 percobaan).
Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K1 dan K2 sedemikian sehingga K = K1  K2. Dalam hal ini, ukuran K1 dan K2 sama dengan ukuran K, sehingga jika salah satu dari komponen K1 atau K2 diketahui, maka K relatif lebih sukar ditentukan.
Penggunaan Kunci (Key Usage)
Setiap kunci digunakan sesuai tujuannya. Misalnya ada kunci yang digunakan untuk mengenkripsi pesan, dan ada kunci yang  digunakan untuk mengenkripsi kunci lainnya.
Supaya setiap kunci mempunyai penggunaan yang unik, maka kita perlu membeli label pada setiap kunci, yang dalam hal ini label menspesifikasikan penggunaan kunci. Misalnya, label tersebut menspesifikasikan ‘kunci untuk mengenkripsi data’, ‘kunci untuk mengenkripsi kunci’, ‘kunci untuk pembangkitan bilangan acak’, dan sebagainya.
Untuk algoritma kunci-publik, pengguna perlu memberi label untuk dua pasang kunci yang setiap pasang terdiri dari kunci publik dan kunci rahasia. Satu pasang kunci untuk enkripsi dan satu pasang lagi untuk sidik dijital.
Perubahan Kunci (Key Change)
Kunci sebaiknya diubah secara periodik dan teratur. Sistem kriptografi harus mempunyai kemampuan untuk mengubah kunci.
Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya dimata penyerang.
Pada sistem EFTPOS (Electronic Funds Transfer at Point of Sale), kunci diubah setiap kali setelah selesai satu transaksi.
Tidak ada aturan seberapa sering kunci seharusnya diubah. Tetapi cukup jelas dimengerti bahwa setiap kunci seharusnya diubah jauh sebelum ia dapat ditemukan dengan cara exhaustive search.
Penghancuran Kunci (Key Destruction)
Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara yang aman.
Jika kunci dicatat pada media kertas, maka cara penghancurannya misalnya menggunakan alat pemotong kertas (crosscut), membakarnya, atau menguburnya.
Jika kunci disimpan di dalam media elektronik (seperti CD), maka cara penghancurannya bisa dengan menghapusnya atau menimpanya (overwritten) sedemikian sehingga tidak meninggalkan jejak yang bisa dilacak oleh penyerang.
Kunci yang yang disimpan pada material lain dihancurkan sedemikian rupa sehingga ia tidak mungkin ditemukan kembali secara fisik maupun secara elektronik.
Otoritas Sertifikasi (Certification Authority)
Kunci publik perlu diberi sertifikat kepemilikian untuk mencegah pemakaian oleh orang yang tidak berhak. Serangan yang umum terjadi pada kunci publik tanpa identitas adalah penyamaran (impersonation attack). Seseorang yang memiliki kunci publik orang lain dapat menyamar seolah-olah dialah pemilik kunci itu.
Pemegang otoritas sertifikasi (Certification Authority atau CA) memberikan sertifikat yang ditandatangani secara dijital. Sertifikat ini berisi identitas pemilik kunci publik, nilai kunci publik itu sendiri, dan informasi tambahan seperti waktu kadaluarsa (expired time) sertifikasi. Sertifikat ini dapat dianggap sebagai ‘surat pengantar’ dari CA.
Misalnya CERTA adalah sertifikat yang dikeluarkan oleh CA yang berisi kunci publik pengguna yang bernama A dan identitas A. Jadi, CERTA mengikat identitas A dengan nilai kunci publiknya.
Supaya sertifikasi itu dapat dicek kebenarannya, maka kunci publik pemilik CA harus diketahui secara luas. Seseorang yang memiliki kunci publik CA dapat memverifikasi bahwa tanda tangan di dalam sertifikat itu sah dan karena itu mendapat jaminan bahwa kunci publik di dalam sertifikat itu benar milik A.
Penting dicatat bahwa sembarang orang (atau CA) dapat mengeluarkan sertifikat untuk kunci publik A. Misalkan A dan B memiliki sertifikat yang dikeluarkan oleh CA yang berbeda. Jika A memerlukan jaminan tentang sertifikat kunci publik B, maka A perlu memiliki salinan kunci publik CA yang mengeluarkan sertifikat untuk B.

· Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di dalam daur hidupnya.

Pada umumnya setiap kunci akhirnya diganti dengan kunci lain. Jadi, keseluruhan fase membentuk siklus (lingkaran) karena penghancuran kunci biasanya diikuti dengan penggantiannya dengan kunci baru (garis putus-putus).

· Manajemen kunci yang dibahas difokuskan pada algoritma kriptografi simetri karena manajemen kunci untuk algoritma kunci-publik sangat berbeda dengan algoritma simetri.

Pembangkitan Kunci (Key Generation)

· Pembangkitan kunci pada algoritma simetri jauh lebih mudah daripada pembangkitan kunci pada algoritma kunci-publik. Karena kunci simetri umumnya rangkaian bii atau rangkaian karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri.

· Masalah utama yang muncul pada pembangkitan kunci adalah bagaimana membuat kunci yang tidak dapat diprediksi. Metode yang dapat digunakan untuk menjawab hal ini adalah dengan teknik manual (misalnya pelemparan koin/dadu), pembangkitan dari data pribadi (misalnya PIN), atau menggunakan pembangkit bilangan acak.

· Pada algoritma kunci-publik, pembangkitan kunci merupakan masalah tersendiri, karena pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu, pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci.

· Oleh karena itu, pada algoritma kunci-publik dibutuhkan program khusus untuk membangkitkan kunci. Masalah yang timbul di sini adalah kepercayaan pengguna terhadap program tersebut. Pada RSA misalnya, bila program hanya dapat membangkitkan bilangan prima yang terbatas, maka pihak lawan dapat membangkitkan sendiri bilangan-bilangan prima yang terbatas itu dan menggunakannya sebagai faktor dari salah satu parameter RSA.

Penyebaran Kunci (Key Distribution)

· Jika pengguna menggunakan kunci untuk melindungi informasi yang disimpan di dalam storage, maka tidak ada kebutuhan untuk menyebarkan kunci.

· Tetapi, untuk kebutuhan komunikasi secara aman, maka diperlukan kebutuhan untuk mengirimkan kunci.

· Protokol pertukaran kunci dengan menggunakan algoritma kunci-publik (lihat pembahasan Protokol Kriptografi) dapat digunakan untuk mendistribusikan kunci.

Penyimpanan Kunci (Key Storage)

· Kunci disimpan di tempat yang aman yang tidak memungkinkan pihak lawan mengaksesnya. Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik (misalnya disimpan di dalam lemari besi).

· Alternatif lain, kunci dapat disimpan di dalam smart card yang hanya dapat dibaca dengan menggunakan kode rahasia.

· Kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah ini.

1. kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Konsep ini mengarah pada konsep key hierarchy, yang dalam hal ini setiap kunci di dalam hirarkhi digunakan untuk melindungi kunci di bawahnya.

2. kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat terpisah. Jika kunci akan digunakan, maka setiap komponen direkonstruksi kembali.

· Misalkan kunci K dibagi menjadi dua komponen, K1 dan K2. Membagi dua langsung K sedemikian sehingga setengah bagian pertama menjadi K1 dan setengah bagian sisanya menjadi K2 tidak dianjurkan, karena dapat memungkinkan pihak lawan menemukan K jika ia hanya mengetahui salah satu dari K1 dan K2. Misalkan K panjangnya 64 bit, dan lawan mengetahui K1, maka K dapat ditentukan dengan hanya 232 percobaaan untuk menemukan K2 secara exhaustive search (lebih sedikit dibandingkan 264 percobaan).

· Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K1 dan K2 sedemikian sehingga K = K1 Å K2. Dalam hal ini, ukuran K1 dan K2 sama dengan ukuran K, sehingga jika salah satu dari komponen K1 atau K2 diketahui, maka K relatif lebih sukar ditentukan.

Penggunaan Kunci (Key Usage)

· Setiap kunci digunakan sesuai tujuannya. Misalnya ada kunci yang digunakan untuk mengenkripsi pesan, dan ada kunci yang digunakan untuk mengenkripsi kunci lainnya.

· Supaya setiap kunci mempunyai penggunaan yang unik, maka kita perlu membeli label pada setiap kunci, yang dalam hal ini label menspesifikasikan penggunaan kunci. Misalnya, label tersebut menspesifikasikan ‘kunci untuk mengenkripsi data’, ‘kunci untuk mengenkripsi kunci’, ‘kunci untuk pembangkitan bilangan acak’, dan sebagainya.

· Untuk algoritma kunci-publik, pengguna perlu memberi label untuk dua pasang kunci yang setiap pasang terdiri dari kunci publik dan kunci rahasia. Satu pasang kunci untuk enkripsi dan satu pasang lagi untuk sidik dijital.

Perubahan Kunci (Key Change)

· Kunci sebaiknya diubah secara periodik dan teratur. Sistem kriptografi harus mempunyai kemampuan untuk mengubah kunci.

· Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya dimata penyerang.

· Pada sistem EFTPOS (Electronic Funds Transfer at Point of Sale), kunci diubah setiap kali setelah selesai satu transaksi.

· Tidak ada aturan seberapa sering kunci seharusnya diubah. Tetapi cukup jelas dimengerti bahwa setiap kunci seharusnya diubah jauh sebelum ia dapat ditemukan dengan cara exhaustive search.

Penghancuran Kunci (Key Destruction)

· Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara yang aman.

· Jika kunci dicatat pada media kertas, maka cara penghancurannya misalnya menggunakan alat pemotong kertas (crosscut), membakarnya, atau menguburnya.

· Jika kunci disimpan di dalam media elektronik (seperti CD), maka cara penghancurannya bisa dengan menghapusnya atau menimpanya (overwritten) sedemikian sehingga tidak meninggalkan jejak yang bisa dilacak oleh penyerang.

· Kunci yang yang disimpan pada material lain dihancurkan sedemikian rupa sehingga ia tidak mungkin ditemukan kembali secara fisik maupun secara elektronik.

Otoritas Sertifikasi (Certification Authority)

· Kunci publik perlu diberi sertifikat kepemilikian untuk mencegah pemakaian oleh orang yang tidak berhak. Serangan yang umum terjadi pada kunci publik tanpa identitas adalah penyamaran (impersonation attack). Seseorang yang memiliki kunci publik orang lain dapat menyamar seolah-olah dialah pemilik kunci itu.

· Pemegang otoritas sertifikasi (Certification Authority atau CA) memberikan sertifikat yang ditandatangani secara dijital. Sertifikat ini berisi identitas pemilik kunci publik, nilai kunci publik itu sendiri, dan informasi tambahan seperti waktu kadaluarsa (expired time) sertifikasi. Sertifikat ini dapat dianggap sebagai ‘surat pengantar’ dari CA.

· Misalnya CERTA adalah sertifikat yang dikeluarkan oleh CA yang berisi kunci publik pengguna yang bernama A dan identitas A. Jadi, CERTA mengikat identitas A dengan nilai kunci publiknya.

· Supaya sertifikasi itu dapat dicek kebenarannya, maka kunci publik pemilik CA harus diketahui secara luas. Seseorang yang memiliki kunci publik CA dapat memverifikasi bahwa tanda tangan di dalam sertifikat itu sah dan karena itu mendapat jaminan bahwa kunci publik di dalam sertifikat itu benar milik A.

· Penting dicatat bahwa sembarang orang (atau CA) dapat mengeluarkan sertifikat untuk kunci publik A. Misalkan A dan B memiliki sertifikat yang dikeluarkan oleh CA yang berbeda. Jika A memerlukan jaminan tentang sertifikat kunci publik B, maka A perlu memiliki salinan kunci publik CA yang mengeluarkan sertifikat untuk B.

ref:

Kriptografi/Manajemen Kunci /Rinaldi Munir/IF-ITB

Oktober 15, 2009 Posted by | Uncategorized | Tinggalkan komentar

Konsep Fungsi Hash Function pada aplikasi Kriptografi

Konsep Fungsi Hash Function pada aplikasi Kriptografi

Indra Adi Putra

Tingkat II Teknik Rancang Bangun Peralatan Sandi

Sekolah Tinggi Sandi Negara

Abstraksi

Hash function adalah suatu fungsi yang berguna untuk mengkompresi/memperkecil sebuah string  yang panjang menjadi sebuah string yang lebih pendek. Dalam dunia kriptografi, hash function bukan merupakan suatu barang yang baru.  Merupakan salah satu cabang dalam kriptografi, hash function memiliki daya tarik tersendiri dikarenakan cukup banyak aplikasi yang menggunakan hash function dalam penerapannya. Hash function digunakan sebagai otentikasi, integritas dan digital signature, salah satu aplikasinya yaitu penggunaan password dalam aplikasi digital atau internet.

  1. Pendahuluan

Kerahasiaan dan keamanan saat melakukan pertukaran data adalah hal yang sangat penting dalam  komunikasi data, baik untuk tujuan keamanan bersama, maupun untuk privasi individu. Mereka yang menginginkan agar datanya tidak diketahui oleh pihak-pihak yang tidak berkepentingan selalu berusaha melakukan upaya-upaya pengamanan informasi terhadap informasi yang akan dikomunikasikan. Untuk menjamin keaslian dari suatu data yang dikirim perlu adanya suatu tindakan yang mengarah pada konsep otentikasi agar integritas data tetap terjaga. Konsep Otentikasi tersebut meliputi Fungsi hash, identifikasi, Otentikasi entitas, dan tanda tangan digital.

Pada bagian awal ini akan coba dijelaskan konsep dasar dari otentikasi. Yaitu konsep dasar dari one-way function atau sering kita sebut sebagai fungsi hash. Hash Function kriptografi adalah suatu fungsi dengan inputan yang berubah-ubah panjangnya (atau sangat panjang) dan memetakannya sehingga menghasilkan output  yang pendek dan panjang nya tetap. Fungsi satu arah (one-way function) sering disebut juga sebagai fungsi hash, message digest,  fingerprint, fungsi kompresi dan message authentication code(MAC). Fungsi ini biasanya diperlukan bila kita menginginkan pengambilan sidik jari dari suatu pesan.

Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari fungsi ini diharapkan pula mempunyai kemampuan yang serupa dengan sidik jari manusia  dimana sidik jari pesan diharapkan menunjukj ke satu pesan dan tidak dapat menunjuk ke pesan lainnya. Dinamakan juga sebagai fungsi kompresi karena masukan fungsi satu arah ini selalu lebih besar dari keluarannya sehingga seolah olah mengalami kompresi.

Namun, kompresi hasil fungsi ini dapat dikembalikkan ke asalnya sehingga disedefinisi dari beberapa jenis fungsi hash akan diberikan, dan dasar serangan terhadap fungsi hash akan dibahas. Maka akan dijelaskan secara singkat bagaimana mereka dapat digunakan untuk melindungi integritas informasi. Perlindungan integritas perangkat lunak akan diperlakukan sebagai
contoh. Kemudian model umum dijelaskan dan yang luas diberikan gambaran yang diajukan skema. Di sini akan dibuat pembedaan antara fungbut fungsi satu arah.

Fungsi hash contohnya pada MD 5 atau SHA-1, pada awalnya dibuat ntuk digunakan dalam beberapa skema kriptografi dengan persyaratan keamanan tertentu, telah menjadi standart tertentu bagi banyak pengembang dan perancang protokol agar memperoleh standar keamanan yang tinggi.

Definisi dari fungsi hash telah diberikan, dan mengapa fungsi satu arah merupakan konsep dasar dari suatu teknik otentikasi?. Banyak serangan informasi yang dilakukan oleh lawan agar mendapatkan informasi yang diinginkan, untuk mencegah hal tersebut dapat dilakukan berbagai cara salah satunya dengan otentikasi dan tanda tangan digital. Hal ini yang mendasari fungsi hash menjadi konsep dasar dari otentikasi agar integritas data dapat terjaga.

  1. Teori yang Mendukung

[1] Definition Let l, n be positive integers. We call f a hash function with n-bit output

and l-bit key if f is a deterministic function that takes two inputs, the first of arbitrary

length, the second of length l bits, and outputs a binary string of length n. Formally, H : {0, 1}∗ × {0, 1}l → {0, 1}n .

[2] Definition Hash function H is one-way if, for random key k and an n-bit string w, it

is hard for the attacker presented with k, w to find x so that Hk (x) = w.

[3] Definition Hash function H is second-preimage resistant if it is hard for the attacker

presented with a random key k and random string x to find y = x so that Hk (x) =

Hk (y).

[4] Definition Hash function H is collision resistant if it is hard for the attacker presented

with a random key k to find x and y = x so that Hk (x) = Hk (y).

referensi :

Mironov

, Ilya. 2005. Microsoft Research, Silicon Valley Campus

http://mironov@microsoft.com

  1. Pembahasan

Pada dasarnya, fungsi satu arah adalah suatu fungsi yang berguna untuk mengkompresi/memperkecil sebuah string  yang panjang menjadi sebuah string yang lebih pendek. Dalam dunia kriptografi, hash function bukan merupakan suatu barang yang baru.  Merupakan salah satu cabang dalam kriptografi, hash function memiliki daya tarik tersendiri dikarenakan cukup banyak aplikasi yang menggunakan hash function dalam penerapannya. Hash function digunakan sebagai otentikasi, integritas dan digital signature, salah satu aplikasinya yaitu penggunaan password dalam aplikasi digital atau internet.

Setidaknya terdapat 2 sifat yang memenuhi suatu fungsi hash, seperti yang dijelaskan sebelumnya pada abstraksi, fungsi hash adalah fungsi yang memenuhi sifat kompresi, yaitu terdapat h memetakan sebarang input x dengan panjang bit berhingga ke output tetap h(x) dengan panjang n. Atau dengan kata lain input tersebut selalu lebih besar dari keluarannya sehingga data menjadi lebih kecil (kompresi). Selanjutnya harus memiliki sifat mudah dihitung, terdapat h dengan input x dengan h(x) mudah dihitung.

Pada bagian ini akan diberikan untuk fungsi-fungsi hash yang tidak menggunakan kunci rahasia (Manipulasi Deteksi Kode atau MDC) dan untuk fungsi hash yang menggunakan kunci rahasia (Message Authentication Code
atau MAC).

Manipulation Detection Code

Dikatakan memenuhi sifat Manipulation Detection Code jika memenuhi sifat  sebagai berikut :

  1. Preimage Resistance

secara perhitungan sangat sulit menentukan x’ diberikan y, sehingga h(x’)=y

  1. Second Preimage Resistance

diberikan x secara perhitungan sehingga sangat sulit untuk menentukan   x’ = x sehingga h(x’)= h(x)

  1. Collision resistance

sangat sulit secara perhitungan untuk mencari sebarang dua input x’ = x, sehingga h(x’)=h(x)

Berdasarkan sifatnya, MDC (manipulation detection code) dibagi menjadi :

  • One Way Hash Functions (OWHFs)

Definisi tentang One Way Hash Function rupanya diberikan oleh R. Merkle dan MO Rabin. Definisi satu arah fungsi hash adalah fungsi h yang memenuhi kondisi berikut:

  1. Argumen X dapat sewenang-wenang panjang dan hasilnya h (X) memiliki panjang tetap n bit (dengan  n ≥ 64).
  2. Fungsi hash memenuhi sifat satu arah jika  diberikan Y dalam gambar h, itu terlalu sulit untuk menemukan pesan x sedemikian sehingga h (X) = Y dan diberikan X dan h (X) yang sulit untuk menemukan pesan X = X sedemikian sehingga h (X) = h (X).
  • Collision Resistant Hash Functions (CRHFs)

Definisi tentang Collision Resistant Hash Functions adalah fungsi h yang memenuhi kondisi berikut :

  1. terdapat x dengan sebarang panjang dan hasilnya h(x) memiliki panjang tetap n bit (dengan n ≥ 128).
  2. fungsi hash memiliki sifat satu arah jika diberikan y yang sangat sulit untukmenemukan pesan x sedemikian sehingga h(x)=y dan diberikan x dan h(x) sedemikian sehingga h(x)= h'(x).
  3. Memiliki sifat Collision Resistant Hash Functions jika sangat sulit untuk menemukan dua pesan (input) yang berbeda dengan output yang sama

Message Authentication Code (MAC)

Message Authentication Codes telah digunakan untuk waktu yang lama dalam masyarakat perbankan dan dengan demikian lebih tua dari penelitian terbuka di kriptologi yang dimulai pada pertengahan tahun tujuh puluhan.

Definisi Message Authentication Code (MAC) merupakan fungsi hk dengan parameter kunci rahasia k, dengan sifat sifat sebagai berikut :

  1. Mudah dihitung
  2. Kompresi
  3. Computation resistance

secara perhitungan sangat sulit untuk mendapatkan kunci rahasia k diberikan satu atau lebih pasangan

Oktober 15, 2009 Posted by | Uncategorized | Tinggalkan komentar

SHA 1 (overview)

LATAR BELAKANG

Berkembangnya pemanfaatan terhadap teknologi informasi sangat membantu manusia dalam menjalankan aktivitasnya. Perkembanagan tersebut melatarbelakangi berkembangnya teknologi proteksi komunikasi data. Salah satu upaya untuk mengamankan data dalam suatu sistem komunikasi dapat dilakukan dengan kriptografi. Kriptografi adalah seni atau ilmu yang mempelajari pengamanan terhadap suatu data atau informasi. Ada empat  aspek yang ditawarkan kriptografi dalam menjaga keamanan data atau informasi. Keempat aspek tersebut ialah kerahasiaan (Confidentiality), integritas data  (Data Integrity), otentikasi (Authentication), dan pembuktian yang tak tersangkal (Non-Repudiation). Banyak sekali terdapat teknik kriptografi yang dapat digunakan untuk mengenkripsi (proses data encoding untuk mencegah pihak yang tidak berwenang melihat atau memodifikasinya) data. Salah satu tekniknya adalah dengan Secure Hash Algorithm. Secure Hash Algorithm (SHA) merupakan hasil rekonstruksi struktur algoritma MD 4. SHA mengalami perkembangan dari tahun ke tahun sehingga memunculkan algoritma-algoritma secure hash. SHA family tersebut adalah SHA 0, SHA 1, SHA 224, SHA 256, SHA 384, SHA 512. Dalam paper ini, hanya akan membahas mengenai SHA 1.

Kata kunci : kriptografi, SHA-1, fungsi hash

TEORI PENDUKUNG

Definisi 1: Fungsi adalah….

Definisi 2:

Suatu fungsi hash h memetakan bit-bit string dengan panjang sembarang ke sebuah string dengan panjang tertentu misal n. Dengan domain Ddan range R maka h: DèR dan |D| > |R|. [Lembaga Sandi Negara, 2007:189]

Definisi 3:

Collision adalah kondisi dimana ketika dua masukan yang berbeda di hashing, maka akan menghasilkan nilai hash yang identik.

Definisi 4:  Bit adalah suatu digit biner 0, 1 atau λ. String biner panjang-n adalah suatu barisan hingga bit dengan panjang-n., atau dengan kata lain string biner panjan-n adalah suatu barisan an an-1 … a1 dengan ai ∈{0,1}.

Definisi 5:

a. Sebuah heksadesimal adalah elemen dari himpunan {0,1,…,9,A,…}. Sebuah heksadesimal adalah representasi dari 4 bit string. Contohnya 8=1000 dan E=1110.

b. Word sama dengan 32 bit string dimana direpresentasikan sebagai 8 digit hekasadesimal. Untuk melakukan konversi word ke 8 digit heksadesimal, caranya yaitu sama dengan poin a. Contoh :

0001 1010 1111 1001 1100 0011 1011 0010  = 1AF9C3B2

c. Blok sama dengan 512 bit string.

Definisi 6:

Menurut wikipedia gerbang logika adalah suatu entitas dalam elektronika dan matematika Boolean yang mengubah satu atau beberapa masukan logik menjadi sebuah sinyal keluaran logik.

PENDAHULUAN

Pada tahun 1993, NIST (National Institute of Standards and Technology) dan NSA (National Security Agency) mendesain dan mempublikasikan SHA. SHA kemudian berkembang dan mengalami revisi pada tahun 1995 menjadi SHA 1 yang telah diadopsi oleh Amerika sebagai fungsi hash dalam skema digital signature algorithm (DSA) dalam FIPS 180-1 serta diadopsi juga oleh Internet RFC3174-nb. SHA 1 pada dasarnya merupakan hasik rekonstruksi struktur pada algoritma MD4. SHA 1 memetakan inputan string dengan panjang sembarang menjadi suatu nilai hash dengan panjang tetap yaitu 160 bit. Ukuran internal state pada SHA 1 adalah 160 bit, sedangkan ukuran bloknya adalah 64 bytes.

Sebelum muncul SHA 1, terdapat pula SHA 0 yang termasuk dalam keluarga SHA. Banyak ahli kriptografi yang mengadakan penelitian terhadap kripanalisis SHA 0 dan ditemukan beberapa fakta mengenai perkembangan kripanalisis tersebut. Fakta-fakta tersebut antara lain:

  1. Pada saat konferensi CRYPTO 98, dua orang peneliti dari Perancis mempresentasikan sebuah attack terhadap SHA 0 dimana collisions dapat ditemukan dengan kompleksitas 261. Nilai kompleksitas tersebut lebih rendah dari nilai kompleksitas ideal suatu hash function, yaitu 280.
  2. Pada tahun 2004, Chen dan Biham telah berhasil menemukan near-collisions untuk SHA 0, yaitu menemukan dua berita yang hampir mempunyai nilai hash yang sama dimana dari 160 bit output yang dihasilkan, ternyata 142 bitnya sama. Mereka juga menemukan full collisions pada SHA 0 dengan 62 round dari total 80 round.
  3. Pada 12 Agustus 2004, sebuah collision untuk full SHA 0 diumumkan oleh empat orang peneliti yaitu Joux, Carribault, Lemuet, dan Jalby. Dengan menggunakan Chabaud dan Joux attack, ternyata ditemukan collision dengan kompleksitas 251 dan membutuhkan 80.000 jam dengan menggunakan superkomputer yang di dalamnya terdapat 256 buah prosesor Itanium 2.
  4. Pada 17 Agustus 2004, saat Rump Session CRYPTO 2004, sebuah hasil pendahuluan diumumkan oleh Wang, Feng, Lai, dan Yu tentang attack terhadap SHA 0, MD 5, dan fungsi hash lainnya. Kompleksitas attack mereka terhadap SHA 0 adalah sekitar 240, jauh lebih baik dibandingkan attack yang dilakuka oleh Joux dan lainnya.
  5. Pada Februari 2005, Wang, Yiqun Lisa Yin, dan Yu kembali melakukan sebuah attack. Mereka menemukan collision pada SHA 0 dalam 239 operasi.

Dari hasil kripanalisis tersebut, beberapa ahli kriptografi menyarankan untuk menggunakan SHA 1 sebagai kriptosistem yang baru. Dalam FIPS disebutkan bahwa SHA-1 bisa dikatakan aman karena secara komputasi tidak mungkin menemukan sebuah pesan berpasangan jika diberikan message digestnya, atau secara komputasi tidak mungkin menemukan dua pesan yang berbeda dimana menghasilkan message digest yang sama.

CARA KERJA SHA-1

Langkah-langkah pada SHA-1 adalah sebagai berikut:

  1. Melakukan padding terhadap pesan sehingga panjangnya adalah 448 modulus 512.
  2. 64 bit sisanya adalah representasi biner dari panjang pesan.
  3. Melakukan inisialisasi5 word buffer (160 bit)A, B, C, D, dan E dengan  nilai A=67452301, B=efcdab89, C=98badcfe, D= 10325476, dan E=c3d2e1f0.
  4. Memproses pesan dalam blok-blok 16 word (512 bit) dengan ketentuan:
  • Ekspansi 16 words menjadi 80 words dengan teknik mixing dan shifting.
  • Menggunakan 4 round dari 20 operasi bit pada blok pesan dan buffer.
  • Menambahkan output dengan input untuk mempeoleh nilai buffer yang baru.
  1. Output nilai hash adalah nilai terakhir dari buffer.

APLIKASI SHA 1

SHA-1 merupakan algoritma hash yang banyak diaplikasikan dalam keamanan protokol menggunakan SSL (Secure Sockets Layer), PGP (Pretty Good Privacy), XML Signature, dan beberapa aplikasi lainnya. SHA 1 digunakan karena memiliki beberapa kelebihan antara lain:

a. validate a password (memvalidasi password); nilai hash dari password akan disimpan, kemudian ketika password diotentikasi, maka password yang dimasukkan oleh user akan dihitung hashnya dan jika hashnya sesuai maka password dinyatakan valid. Namun untuk mendapatkan password yang asli tidak dapat diperoleh dari hash yang telah disimpan.

b. [1] [2] Challenge handshake authentication; untuk menghindari kesalahan pengiriman password dalam kondisi “clear”, client dapat mengirim nilai hash sebuah password melalui internet untuk divalidasi oleh server tanpa beresiko disadapnya password yang asli.

c.[3] [4] anti-tamper ; untuk memastikan data tidak berubah selama ditransmisikan. Penerima akan menghitung nilai hash dan mencocokkan dengan hash yang dikirimkan, apabila nilainya sama berarti data yang dikirimkan tidak berubah.

d.[5] [6] digital signatures; dilakukan dengan cara mengenkrip nilai hash sebuah dokumen dengan menggunakan private key, sehingga menghasilkan tanda tangan digital untuk dokumen tersebut. Orang lain dapat mengecek otentikasi dokumen tersebut dengan cara mendekrip tanda tangan tersebut menggunakan public key untuk mendapatkan nilai hash yang asli dan membandingkannya dengan nilai hash dari teks.

KRIPTANALISIS SHA 1

Banyak para ahli kriptografi mengadakan  penelitian terhadap kekuatan kriptosistem SHA 1. Setelah berjalan kurang lebih 10 tahun, akhirnya apada tahun 2005, Rijmen dan Oswald mempublikasikan serangan pada versi SHA 1 yangdireduksi (hanya menggunakan 53 round dari 80 round) dan hasilnya telah ditemukan collision dengan kompleksitas sekitar 280 operasi.  Pada tahun yang sama, Xiayoun Wang, Yiqun Lisa Yin, dan Hongbo Yo juga mengumumkan serangan yang dapat menemukan collision pada versi penuh SHA 1 yang memerlukan sekitar 269 operasi.

SIMPULAN DAN SARAN

SIMPULAN

a)      SHA-1 adalah suatu algoritma hash yang memetakan inputan string dengan panjang sembarang menjadi output dengan panjang tetap yaitu 160 bit.

REFERENSI

Ernastuti, Algoritma Routing Untuk Identifikasi Jalur Terpendek Pada Incomplete-Hypercube http//: www.repository.gunadarma.ac.id:8000/OSSOC_06_690.pdf terakhir diakses pada tangaal 14 Oktober 2009 pada pukul 10.22 WIB)

(http://id.wikipedia.org/wiki/Gerbang_logika terakhir diakses pada tanggal 14 Oktober 2009 pada pukul 10.48).

(http://ezine.echo.or.id/ezine16/04_hash.txt terakhir diakses pada tanggal 14 oktober 2009 pada pukul 09.25 WIB)

(http://www.itl.nist.gov/fipspubs/fip180-1.htm terakhir diakses tanggal 14 oktober 2009 pada pukul 09.32 )

(http://earief.wordpress.com/2007/06/13/sha-%E2%80%93-algoritma-kriptografi-hash/ TERAKHIR DIAKSES pada tanggal 14 Oktober 2009 pada pukul 11.14)

http://www.informatika.org/~rinaldi//MakalahIF3058-2009-b020.pdf Terakhir diakses pada tanggal 14 Oktober 2009 pada pukul 11.32 WIB)

Tim Penyusun Lembaga Sandi Negara.2007. Jelajah Kriptologi.Jakarta:Lembaga Sandi Negara.

Oktober 15, 2009 Posted by | Uncategorized | Tinggalkan komentar