• Tidak ada hasil yang ditemukan

Misalkan keluarga fungsi hash yang dikonstruksi dengan

Dalam dokumen Algorithm Construction of HLI Hash Function (Halaman 29-37)

dan . Untuk , ada reduksi

dengan waktu polinomial dari untuk suatu ke masalah menemukan tumbukan dari fungsi hash hasil konstruksi.

16

3 METODE

Penelitian ini merupakan telaah pustaka sehingga tahap pertama dari penelitian ini adalah mengkaji beberapa jurnal dan buku yang terkait dengan fungsi hash dan konsep latis yang mendasarinya. Selanjutnya dilakukan konstruksi fungsi hash berbasis latis sebagai varian dari fungsi hash berbasis latis yang sudah dikembangkan. Fungsi hash harus memenuhi sifat kemudahan komputasi sehingga fungsi hash hasil konstruksi akan dianalisis kecepatannya. Selain itu harus memenuhi sifat one way dan collision resistant sehingga fungsi hash hasil konstruksi juga akan dianalisis keamanannya.

Mengkonstruksi algoritme fungsi hash berbasis latis

Tahap pertama adalah telaah pustaka dari jurnal dan buku yang terkait dengan fungsi hash berbasis latis, selanjutnya dirangkum dan dikembangkan menjadi algoritme fungsi hash berbasis latis yang baru. Berikut langkah-langkahnya:

1. Mempelajari landasan teori mengenai -ary latis.

2. Mengkaji konstruksi fungsi hash dari Ajtai dan pengembangannya. 3. Mengkaji fungsi hash berbasis latis ideal dan latis cyclic.

4. Mengkaji fungsi hash SWIFFT.

5. Mengkonstruksi algoritme keluarga fungsi hash dengan membuat kunci fungsi hash yang lebih kecil ukurannya memilih polinomial tak terurai yang berbeda dengan SWIFFT.

Menganalisis kecepatan dari algoritme fungsi hash hasil konstruksi

Fungsi hash hasil konstruksi akan dianalisis kecepatannya dengan cara: 1. Mempelajari landasan teori mengenai analisis algoritme.

2. Mendefinisikan fungsi kompleksitas waktu dari fungsi hash hasil konstruksi dengan menghitung banyaknya operasi dalam fungsi hash hasil konstruksi yang terdiri dari banyaknya operasi dasar (jumlah, kurang, kali, bagi), operasi assignment, dan perbandingan (ekspresi logika).

3. Menentukan order atau bentuk Oh-besar dari fungsi kompleksitas waktu sebagai ukuran efisiensi fungsi hash hasil konstruksi.

Menganalisis keamanan dari fungsi hash hasil konstruksi

Keamanan dari fungsi hash sangat penting, sehingga perlu dianalisis kemananan dari fungsi hash hasil konstruksi dengan cara sebagai berikut:

1. Menganalisis sifat satu arah (one way) dari fungsi hash berbasis latis, yang terkait dengan salah satu masalah komputasi dalam latis yaitu

17 diberikan suatu basis latis , maka tentukan vektor bebas

linear dengan yang

meminimalkan .

2. Menganalisis sifat tahan tumbukan (resistant collision) dari fungsi hash berbasis latis, yang terkait dengan salah satu masalah komputasi dalam latis yaitu Shortest Vector Problem (SVP). SVP adalah jika diberikan suatu basis latis , maka tentukan vektor terpendek tak nol yang berada dalam latis .

3. Menganalisis sifat tahan tumbukan dengan menunjukkan bahwa polinomial yang tak teruraikan atas dan monik serta untuk setiap vektor satuan hasil kali ring dari dan merupakan vektor pendek.

18

4 HASIL DAN PEMBAHASAN

Konstruksi Algoritme Fungsi Hash HLI

Misalkan bilangan prima ganjil, dinotasikan

sebagai field intejer bilangan prima. Selanjutnya diambil polinomial

yang bersifat monik berderajat . Polinomial dapat ditulis sebagai vektor intejer bilangan prima

. Ring polinomial modular adalah himpunan semua polinomial berderajat paling banyak dengan koefisien dalam , yaitu

.

Untuk sembarang yang ditulis

didefinisikan operasi penjumlahan sebagai berikut

dan operasi perkalian yaitu

.

Representasi yang lebih sederhana dari dan lebih memudahkan jika diimplementasikan dalam komputer adalah bahwa dapat dipandang sebagai himpunan semua vektor intejer berdimensi , yaitu

.

Selanjutnya, suatu latis berdimensi yang didefinisikan dari ring polinomial modular secara umum disebut latis ideal. Untuk mendapatkan latis ideal sebagai berikut: untuk suatu maka ada ideal

dan . Sehingga diperoleh

. Lemma 4.1.1

Setiap ideal dengan polinomial berderajat-n yang monik dan tak teruraikan, isomorph dengan latis berdimensi penuh dalam .

Bukti:

Misalkan dengan dan berderajat paling banyak . Jelas bahwa polinomial bebas linear pada . Jika polinomial bebas linear pada , maka latis memuat n vektor

bebas linear yaitu . Jika polinomial tidak

bebas linear, maka ada polinomial tak nol

sehingga . Jadi untuk suatu

19 atau , padahal dan polinomial berderajat maka hal tersebut tidak mungkin kecuali kalau dan adalah 0.

Dari sini dapat dikonstruksi sebuah keluarga fungsi hash berbasis latis, yaitu dengan memilih parameter adalah bilangan bulat dimana habis dibagi oleh dan adalah bilangan prima. Input dari fungsi hash ini adalah dengan . Kunci dari fungsi hash adalah dua vektor sembarang . Dari kunci inilah nantinya akan dibangkitkan vektor-vektor yang lain yaitu

untuk . Selanjutnya, dapat

didefinisikan keluarga fungsi hash:

dimana . Berikut algoritme fungsi hash berbasis latis secara umum:

1. Parameter : dan adalah bilangan bulat dan adalah bilangan prima. 2. Kunci : dua vektor sembarang

3. Input : dengan .

4. Output: .

Fungsi hash ini harus bersifat kompresi yang artinya panjang output harus lebih kecil dibanding panjang input. Panjang input dari fungsi hash HLI adalah Sedangkan panjang output adalah Jadi agar fungsi hash HLI memenuhi sifat kompresi maka parameter yang dipilih di atas harus memenuhi

.

Dalam penelitian ini dipilih yang merupakan polinomial monik dan tak teruraikan. Pemilihan modulo pada perkalian polinomial dalam menyebabkan multiplikasi dari sembarang dua anggota dalam representasi vektor menjadi lebih sederhana dan lebih mudah jika diimplementasikan dengan komputer. Berikut ini ilustrasinya:

. Dari hasil ini, diambil , maka

dan berikutnya diperoleh

Secara umum, untuk berlaku

Sehingga algoritme multiplikasi dalam adalah sebagai berikut:

Input: vektor dalam

Output: vektor sebagai hasil multiplikasi dari dan dalam .

1. Inisialisasi dan .

20

a. dimana menotasikan putaran dari ke kanan satu satuan.

b. dimana adalah vektor yang semua komponennya 0 selain komponen ke- yaitu .

3. Jika , hitung .

4. Return

Langkah-langkah dalam algoritme di atas pada dasarnya merupakan perkalian matriks intejer modular , yaitu

Sehingga algoritme untuk fungsi hash ini adalah sebagai berikut: Kunci : dua vektor sembarang

Input : dengan .

Output: vektor sebagai hasil multiplikasi dan adisi dalam ring .

1. Inisialisasi .

2. Untuk bilangan bulat s/d , hitung: a. b. c. d. 3. Return Analisis Kecepatan

Analisis kecepatan di sini maksudnya adalah menghitung banyaknya operasi dalam algoritme fungsi hash yang dikonstruksi. Pertama akan dihitung banyaknya operasi dalam algoritme penjumlahan dalam ring , yaitu sebagai berikut:

1. Sebuah operasi assigment sebagai statemen awal untuk variabel s yang merupakan banyaknya elemen vektor yang akan dijumlahkan.

2. Inti dari operasi penjumlahan di sini ada dalam blok statemen ‘if’ yaitu

sebuah operasi untuk mengecek apakah salah satu vektor yang akan dijumlahkan merupakan vektor nol kemudian:

a. Jika salah satu vektor merupakan vektor nol maka ada sebuah assigment yang menyatakan hasil penjumlahan merupakan vektor yang satunya. Dengan kata lain di sini tidak perlu operasi penjumlahan modulo .

21 b. Jika kedua vektor bukan vektor nol maka untuk dilakukan sebanyak

kali operasi penjumlahan modulo .

Selanjutnya, dalam algoritme multiplikasi dalam ring ada algoritme perkalian skalar dan vektor modulo dan algoritme memutar vektor ke kanan satu satuan. Oleh karena itu sebelum menghitung banyak operasi perkalian dalam ring, akan dihitung operasi dalam perkalian skalar dan vektor modulo sebagai berikut:

1. Sebuah operasi assigment yang menyatakan variabel awal adalah banyak elemen vektor.

2. Dalam menghitung hasil perkalian ada buah operasi perkalian modulo . Sedangkan banyak operasi dalam algoritme memutar vektor satu satuan ke kanan adalah:

1. Sebuah operasi assigment yang menyatakan variabel awal adalah banyak elemen vektor.

2. Dalam memutar vektor ada dua operasi yaitu mengambil elemen terakhir dari vektor kemudian menyisipkan elemen tersebut sebagai elemen pertama dari vektor.

Perhitungan banyak operasi dari dua algoritme di atas dapat digunakan untuk menghitung banyaknya operasi dari algoritme perkalian dua vektor dalam ring yaitu:

1. Ada 2 operasi assigment sebagai statemen awal untuk variabel dan T, variabel merupakan banyak elemen dari vektor.

2. Variabel H sebagai hasil perkalian skalar dan vektor modulo yang melibatkan operasi perkalian modulo .

3. Dalam blok statement ‘for’ yang diulang

a. Ada empat buah operasi yaitu variabel S sebagai hasil memutar vektor, variabel c sebagai hasil penjumlahan, variabel T sebagai hasil penyisipan c ke vektor S, dan variabel b.

b. Jika b bukan nol maka ada operasi perkalian modulo dan operasi penjumlahan modulo .

Algoritme fungsi hash dapat dihitung banyak operasinya adalah sebagai berikut:

1. Ada lima buah operasi assigment sebagai statement awal untuk variabel n, m, k, H dan C.

2. Dalam blok statemen ‘for’ yang diulang kali, yaitu: a. Empat buah assigment untuk variabel a, b, K dan C

b. Sebuah multiplikasi dalam ring yang melibatkan operasi perkalian modulo .

c. Dua buah adisi dalam ring yang masing-masing melibatkan operasi penjumlahan modulo .

Jika diambil parameter maka dalam algoritme fungsi hash tidak melibatkan multiplikasi dalam ring . Sehingga hanya melibatkan penjumlahan dalam ring yang terdiri operasi penjumlahan modulo yang diulang sebanyak kali. Jadi algoritme fungsi hash dengan parameter dan input dengan panjang terdiri dari operasi modulo .

Selain dihitung kompleksitas algoritme, juga dilakukan percobaan menghitung waktu lamanya program dalam menghitung nilai hash. Dalam

22

percobaan ini diambil parameter , sedangkan panjang input ( ) diambil dalam 6 titik. Untuk memperoleh nilai waktu, di sini setiap nilai m diulang sebanyak 5 kali kemudian dihitung rata-ratanya sehingga diperoleh hasil sebagai berikut:

Tabel 2 Hasil Program Fungsi Hash HLI Panjang Input (bit) Waktu (detik)

1024 0,33 2048 0,643 4096 1,373 8192 2,718 16384 5,357 32768 10,745

Jika disajikan dalam grafik sebagai berikut:

Gambar 1 Hubungan antara Panjang Input dan Waktu Running Program Dari Gambar 1 dapat dilihat bahwa untuk input dengan bilangan biner dihasilkan waktu yang linear dengan panjang input. Dari Tabel 2 dilakukan uji linearitas untuk mengetahui apakah panjang input dan waktu mempunyai hubungan yang linear atau tidak. Uji linearitas dengan menggunakan program Minitab menghasilkan nilai . Karena nilai kurang dari 5%=0,05 maka dapat disimpulkan bahwa terdapat hubungan yang linear antara panjang input dan waktu.

Analisis Keamanan

Keamanan dari fungsi hash dapat dilihat dari terpenuhinya dua sifat yaitu satu arah dan tahan tumbukan. Fungsi hash bersifat satu arah jika diketahui suatu

0 2 4 6 8 10 12 0 5000 10000 15000 20000 25000 30000 35000 W a k t u ( d e t i k )

23 nilai hash maka untuk menentukan inputnya adalah tidak layak. Pembuktian bahwa fungsi hash berbasis latis bersifat satu arah mengikuti pembuktian dari Micciancio (2002). Selanjutnya, fungsi hash disebut bersifat tahan tumbukan jika diketahui suatu nilai hash maka untuk menentukan sembarang dua input yang berbeda adalah tak layak. Pembuktian fungsi hash dengan tak teruraikan atas bersifat tahan tumbukan telah ditunjukkan oleh Lyubashevsky (2006). Menurut Lyubashevsky(2006) untuk mendapatkan sifat tahan tumbukan maka polinomial

harus bersifat:

a. adalah polinomial monik, berderajat , tak teruraikan atas , b. Untuk setiap vektor satuan , hasil kali ring dari

dan merupakan vektor pendek, artinya terbatas .

Polinomial merupakan polinomial berderajat n dan monik karena koefisien dari suku pemimpin adalah satu. Dalam penelitian ini dipilih parameter n yang sesuai untuk aplikasi nyata, umumnya dipilih nilai n adalah kuasa 2 ( disesuaikan dengan ukuran mesin. Telah diperiksa untuk n=8, 16, 32, 64, 128, 256, 512, 1024 dengan menggunakan software matematika bahwa polinomial bersifat tak teruraikan. Untuk sifat kedua ditunjukkan dengan teorema berikut

Dalam dokumen Algorithm Construction of HLI Hash Function (Halaman 29-37)

Dokumen terkait