Algorithm Construction of HLI Hash Function

KONSTRUKSI ALGORITME FUNGSI HASH HLI

RACHMAWATI DWI ESTUNINGSIH

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa tesis berjudul Konstruksi Algoritme
Fungsi Hash HLI adalah benar karya saya dengan arahan dari komisi pembimbing
dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun.
Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun
tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan
dalam Daftar Pustaka di bagian akhir disertasi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Januari 2014
Rachmawati Dwi Estuningsih

NIM G551110011

RINGKASAN
RACHMWATI DWI ESTUNINGSIH. Konstruksi Algoritme Fungsi Hash HLI.
Dibimbing oleh SUGI GURITMAN dan BIB PARUHUM SILALAHI.
Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek
keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan
autentikasi asal data. Integritas data adalah suatu layanan yang berkaitan dengan
pengubahan data dari pihak-pihak yang tidak berwenang. Kriptografi yang terkait
dengan tujuan keamanan integritas data adalah fungsi hash. Fungsi hash
merupakan fungsi yang secara komputasi efisien memetakan bitstring dengan
panjang sembarang ke bitstring dengan panjang tetap yang disebut sebagai nilai
hash. Penggunaan fungsi hash dalam menjaga integritas dan autentikasi informasi
antara lain dalam pembuatan digital signature, virus protection, dan distribusi
software.
Gambaran sederhana fungsi hash dalam menjaga integritas dan autentikasi
informasi yang dikirim adalah pengirim mengirim informasi dan nilai hash kepada
penerima. Jika nilai hash informasi yang dikirim sama dengan nilai hash yang
dikirim oleh pengirim, maka informasi tidak mengalami perubahan. Jika
sebaliknya, maka berarti pesan telah mengalami perubahan.

Fungsi hash harus memiliki sifat satu arah dan tahan tumbukan. Fungsi hash
dikatakan bersifat satu arah apabila secara komputasi tak layak menentukan
input jika diketahui nilai hash sehingga
. Sedangkan, sifat tahan
adalah secara komputasi tak layak menentukan
tumbukan dari fungsi hash
pasangan input dan dengan
sehingga outputnya sama,
.
Tujuan dari penelitian ini adalah membuat konstruksi algoritme fungsi hash
yang diberi nama HLI, menganalisis kecepatan dan keamanan dari fungsi hash
hasil konstruksi. Selanjutnya, dibandingkan dengan fungsi hash yang telah ada
sebelumnya yaitu SWIFFT.
Fungsi hash HLI dikonstruksi dengan operasi polinomial modular dengan
. Ring polinomial modular yang dinotasikan sebagai
adalah himpunan semua polinomial berderajat paling banyak
dan lebih
dengan koefisien dalam . Representasi yang lebih sederhana dari
memudahkan jika diimplementasikan dalam komputer adalah bahwa
dapat

dipandang sebagai himpunan semua vektor intejer modulo
berdimensi .
adalah latis . Selanjutnya latis yang
Sedangkan terhadap operasi vektor,
didefinisikan dari ring polinomial disebut latis ideal.
Fungsi hash HLI melibatkan algoritme adisi dan multiplikasi dari ring
. Algoritme adisi melibatkan sebanyak
operasi jumlah modulo
dan
operasi kali modulo . Jadi secara
algoritme multiplikasi melibatkan sebanyak
umum algoritme fungsi hash HLI melibatkan
operasi kali modulo
dan
operasi jumlah modulo . Namun, jika inputnya biner maka algoritme
multiplikasi hanya melibatkan operasi kali modulo , sehingga algoritme fungsi
hash melibatkan operasi kali modulo dan operasi jumlah modulo .
Keamanan dari fungsi hash dapat dilihat dari terpenuhinya dua sifat yaitu
satu arah dan tahan tumbukan. Pembuktian bahwa fungsi hash HLI bersifat satu
arah mengikuti pembuktian dari Micciancio. Fungsi hash HLI bersifat tahan


tumbukan karena telah dipilih polinomial yang tak teruraikan atas dan monik.
hasil
Selain itu terbukti bahwa untuk setiap vektor satuan
kali ring dari
dan
merupakan vektor pendek. Jika input dari fungsi hash
operasi
merupakan bilangan biner maka fungsi hash HLI hanya melibatkan
penjumlahan modulo . Sehingga waktu yang digunakan hampir sama dengan
SWIFFT. Keunggulan fungsi hash HLI adalah mempunyai ukuran kunci yang
lebih kecil daripada SWIFFT. Hal ini berpengaruh pada memori untuk
penyimpanan kunci lebih kecil.

Kata kunci: fungsi hash, ring polinomial modular, latis

SUMMARY
RACHMAWATI DWI ESTUNINGSIH. Algorithm Construction of HLI Hash
Function. Supervised by SUGI GURITMAN and BIB PARUHUM SILALAHI.
Cryptography is a study of mathematical techniques related to aspects of

information security regarding on confidentiality, data integrity, entity
authentication, and data origin authentication. Data integrity is a service, which is
associated with the conversion of data carried out by unauthorized parties. To
maintain data integrity, one can use hash functions. An hash function is a
computationally efficient function to map an arbitrary length bitstring to a fixed
length bitstring called as hash value. The use of hash function in maintaining the
information integrity and authentication is in digital signatures, virus protection,
and software distribution.
Illustration of the hash function in the integrity and authentication of
information that is emailed as follow. The sender sends the information and hash
value to the recipient. If the hash value of the information is equal to the hash
value that is sent by the sender, then information has not been changed. Otherwise
the information has been changed.
An hash function has two properties, one way and collision resistance. An
hash function is called one way if it is computationally infeasible to find any
input such that
when given any hash value . Meanwhile an hash
function is called collision resistant if it is computationally infeasible to find any
where
such that

.
two inputs
The purpose of this study is to construct a HLI hash function algorithm, to
analyze the speed and security of the hash functions as a results of construction.
Furthermore, it is to compare it with SWIFFT.
Hash function is constructed based on the result of algebraic operations on
. Modular polynomial ring noted
modular polynomial ringwith
as
is a set of all polynomials of degree at most
with
can be represented as a set of integer vector of modulo in
coefficients in .
dimension . So, it is simple to implement in a computer. In vector operations,
is lattice
. Furthermore, alattice that is defined from certain polynomial
ring is called ideal lattice.
HLI hash function is consists of addition and multiplication algorithm in
the
ring. Addition algorithm consists of sumation operations of modulo

multiplication operations of modulo .
and multiplication consists of
multiplication
Generally, algorithm of HLI hash function consists of
operations of modulo and
addition operations of modulo . However, if the
input is binary number then multiplication algorithm only consists of
multiplication operation of modulo , so algorithm of HLI hash function consists
of multiplication operations of modulo and
addtion operations of modulo
.
An hash function is secured if it has two properties, i.e., one way and
collision resistance. HLI hash function hash is one way, it is following the proof
of Micciancio. It is has collision resistant because of polynomial is irreducible
over and monic. Moreover, it is proved that for every unit vector

, the vector
is small vector. If the input of hash function is a
addition operations of
binary number then HLI hash function only involves

modulo . So the time that used almost same with SWIFFT. The excellence of
HLI hash function is the key size smaller than SWIFFT. This effect on memory
for key storage is smaller.

Keywords: hash function, modular polynomial ring, lattice

© Hak Cipta Milik IPB, Tahun 2013
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan
atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan
IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis ini
dalam bentuk apa pun tanpa izin IPB

KONSTRUKSI ALGORITME FUNGSI HASH HLI

RACHMAWATI DWI ESTUNINGSIH


Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Sains
pada
Program Studi Matematika Terapan

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2014

Penguji Luar Komisi pada Ujian Tesis: Dr Ir Fahren Bukhari, MSc

Judul Tesis : Konstruksi Algoritme Fungsi Hash HLI
Nama
: Rachmawati Dwi Estuningsih
NIM
: G551110011

Disetujui oleh

Komisi Pembimbing

Dr Sugi Guritman
Ketua

Dr Ir Bib Paruhum Silalahi, Mkom
Anggota

Diketahui oleh

Ketua Program Studi
Matematika Terapan

Dekan Sekolah Pascasarjana

Dr Jaharuddin, MS

Dr Ir Dahrul Syah, MScAgr

Tanggal Ujian:

5 Desember 2013

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian ini ialah kriptografi, dengan judul Konstruksi Algoritme
Fungsi Hash HLI.
Terima kasih penulis ucapkan kepada Bapak Dr Sugi Guritman dan Bapak
Dr Ir Bib Paruhum Silalahi, MKom selaku pembimbing, serta Bapak Dr Ir Fahren
Bukhari, MSc selaku penguji luar yang telah banyak memberi saran. Di samping
itu, penghargaan penulis sampaikan kepada Direktur Akademi Kimia Analisis
Bogor yang telah memberikan kesempatan untuk melanjutkan studi. Ungkapan
terima kasih juga disampaikan kepada suami, anak, ibu, ayah, serta seluruh temanteman, atas segala doa dan kasih sayangnya.
Semoga karya ilmiah ini bermanfaat.

Bogor, Januari 2014
Rachmawati Dwi Estuningsih

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vi

1 PENDAHULUAN
Latar Belakang
Tujuan Penelitian
Manfaat Penelitian

1
1
2
2

2 TINJAUAN PUSTAKA
Fungsi
Fungsi Hash
Aljabar
Latis
Kompleksitas Waktu
Polinomial Atas
Ring Polinomial Modular
Penelitian Terkait

3
3
3
6
8
9
10
11
13

3 METODE
Mengkonstruksi algoritme fungsi hash berbasis latis
Menganalisis kecepatan dari algoritme fungsi hash hasil konstruksi
Menganalisis keamanan dari fungsi hash hasil konstruksi

16
16
16
16

4 HASIL DAN PEMBAHASAN
Konstruksi Algoritme Fungsi Hash HLI
Analisis Kecepatan
Analisis Keamanan
Perbandingan dengan SWIFFT

18
18
20
22
23

5 SIMPULAN DAN SARAN
Simpulan
Saran

25
25
25

DAFTAR PUSTAKA

26

RIWAYAT HIDUP

33

DAFTAR TABEL
1
2
3
4

Bentuk Oh-besar
Hasil Program Fungsi Hash HLI
Perbandingan Ukuran Kunci dari SWIFFT dan HLI
Perbandingan Umum SWIFFT dan HLI

10
22
24
24

DAFTAR GAMBAR
1 Hubungan antara Panjang Input dan Waktu Running Program

22

DAFTAR LAMPIRAN
1 Program Fungsi Hash HLI
2 Hasil Program Fungsi Hash
3 Pembuktian bahwa
- - Bersifat Tak Teruraikan

27
30
32

1 PENDAHULUAN
Latar Belakang
Perkembangan teknologi komputer dan telekomunikasi pada saat ini
mempengaruhi cara masyarakat dalam berkomunikasi. Salah satunya adalah cara
masyarakat melakukan pertukaran informasi atau pesan, yang dahulu biasanya
melalu pos sekarang banyak yang beralih dengan menggunakan email melalui
jaringan internet. Karena email menggunakan jaringan internet yang merupakan
infrastruktur telekomunikasi yang dapat dipergunakan oleh banyak pihak maka
terbuka peluang penyadapan informasi oleh pihak lain. Oleh karena itu aspek
keamanan dalam pertukaran informasi menjadi sangat penting.
Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek
keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan
autentikasi asal data. Integritas data adalah suatu layanan yang berkaitan dengan
pengubahan data dari pihak-pihak yang tidak berwenang. Untuk menjamin
integritas data, kita harus mampu mendeteksi manipulasi data dari pihak-pihak
yang tidak berwenang. Manipulasi data diartikan sebagai hal-hal yang berkaitan
dengan penghapusan, penyisipan, dan penggantian data.
Untuk menjaga integritas data dapat digunakan fungsi hash. Fungsi hash
merupakan fungsi yang secara komputasi efisien memetakan bitstring dengan
panjang sembarang ke bitstring dengan panjang tetap yang disebut sebagai nilai
hash. Penggunaan fungsi hash dalam menjaga integritas dan autentikasi informasi
antara lain dalam pembuatan digital signature, virus protection, dan distribusi
software.
Gambaran sederhana fungsi hash dalam menjaga integritas dan autentikasi
informasi yang dikirim adalah pengirim mengirim informasi dan nilai hash kepada
penerima. Jika nilai hash informasi yang dikirim sama dengan nilai hash yang
dikirim oleh pengirim, maka informasi tidak mengalami perubahan. Jika
sebaliknya, maka berarti pesan telah mengalami perubahan.
Fungsi hash yang banyak digunakan dewasa ini umumnya dirancang
berbasis aritmetik boolean, mirip dengan pola konstruksi algoritme sistemkripto
kunci simetrik. Namun, fungsi hash tersebut telah mendapat banyak serangan
untuk melemahkan sifat keamanannya. Beberapa contoh metode serangan yang
dimaksud seperti; kriptanalisis linear, kriptanalis diferensial, dan kriptanalis
tanggal lahir yang umumnya berbasis teori kombinatorika dan peluang. Efektifitas
serangan-serangan itu dikarenakan konstruksi fungsi yang bersangkutan umumnya
tidak disertai bukti keamanan teoritik yang berlandaskan pada problem komputasi
matematik.
Sebenarnya telah dicoba konstruksi fungi hash yang tumpuan
keamanannya berlandaskan problem komputasi dalam area teori bilangan. Karena
kinerja algoritmenya sangat lambat maka fungsi hash tersebut kurang aplikatif.
Hal inilah yang menarik minat para peneliti kriptografi untuk merancang
algoritme fungsi hash yang efisien dan didukung bukti keamanan teoritik
berlandaskan problem komputasi matematik. Problem komputasi latis diharapkan
dapat menjadi dasar untuk mendapatkan fungsi hash yang ideal. Pada dasa warsa
terakir ini penelitian di bidang kriptografi berbasis latis meningkat.

2
Sistemkripto berbasis problem latis mulai diperkenalkan pada pertengahan
tahun 1990-an. Pengenalan ini berdasarkan pada keunggulan dari problem latis,
yaitu menjanjikan pembuktian keamanan kuat yang berdasarkan worst-case
hardness, implementasi yang efisien, dan kriptografi berbasis latis diyakini aman
terhadap komputer kuantum.
Konstruksi kriptografi berbasis latis pertama kali disajikan oleh Ajtai pada
tahun 1996. Ajtai mendefinisikan keluarga fungsi satu arah yang keamanannya
bertumpu pada problem komputasi kasus terburuk dari aproksimasi SVP dengan
faktor nc, dimana n adalah dimensi latis dan konstanta c>0. Selanjutnya, Goldreich
(1996) menunjukkan bahwa fungsi satu arah tersebut merupakan fungsi hash yang
tahan tumbukan.
Pada tahun 2002, Micciancio menggunakan latis cyclic sebagai sumber
kerumitan baru dan membentuk fungsi satu arah yang efisien dari asumsi
kompleksitas kasus terburuk. Peikert (2005) memodifikasi asumsi dari fungsi
yang dibentuk Micciancio dapat ditunjukkan bahwa fungsi tersebut merupakan
fungsi hash yang tahan tumbukan.
Lyubashevsky (2008) mengkonstruksi algoritme fungsi hash berbasis latis
yang mengutamakan efisiensi yang disebut SWIFFT. Pada dasarnya fungsi hash
SWIFFT adalah varian yang sangat optimal dari fungsi hash dan sangat efisien
dalam praktek karena penggunaan Fast Fourier Transform (FFT) di Zq.
Dalam penelitian ini akan dikonstruksi algoritme keluarga fungsi hash
sebagai varian dari SWIFFT, kemudian dilakukan analisis kecepatan dan
keamanan dari fungsi hash hasil konstruksi.

Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1. Melakukan konstruksi algoritme fungsi hash berbasis latis.
2. Menganalisis kecepatan dari fungsi hash hasil konstruksi.
3. Menganalisis keamanan dari fungsi hash hasil konstruksi.

Manfaat Penelitian
1.
2.
3.
4.

Manfaat dari penelitian ini antara lain:
Memberikan rangkuman mengenai fungsi hash berbasis latis.
Memberikan varian baru dari fungsi hash berbasis latis.
Menjadi acuan bagi pengguna fungsi hash dalam hal kecepatan dan keamanan
dari fungsi hash berbasis latis.
Metode untuk pembuktian keamanan fungsi hash dapat digunakan sebagai
acuan pembuktian dari fungsi hash yang lain.

3

2 TINJAUAN PUSTAKA
Fungsi
dari himpunan
ke himpunan ,
Definisi 2.1.1 (Fungsi) Suatu fungsi
dinotasikan
, didefinisikan sebagai suatu aturan yang memetakan setiap
anggota ke tepat satu anggota (Menezes et al. 1996).
Dalam hal ini , disebut domain dan disebut kodomain dari . Jika
adalah hasil pemetaan dari oleh , maka disebut imej dari dan
dan
disebut preimej dari oleh , dan dinotasikan
. Himpunan imej dari
disebut imej dari
dan dinotasikan
. Jelas bahwa
semua anggota
Ada tiga sifat fungsi yaitu injektif (satu-satu), surjektif (onto), dan
bijektif (korespondensi satu-satu)
disebut fungsi injektif jika setiap
Definisi 2.1.2 (Injektif) Suatu fungsi
anggota dari
adalah imej dari paling banyak satu anggota (Menezes et al.
1996).
Dari definisi tersebut maka
(kardinalitas
harus sama atau
kurang dari kardinalitas ).
Definisi 2.1.3 (Surjektif) Suatu fungsi
disebut fungsi surjektif jika
untuk setiap anggota merupakan imej dari paling sedikit satu anggota A, atau
. Dengan kata lain,
dan kardinalitas
lebih kecil dari
kardinalitas (Menezes et al. 1996).
Definisi 2.1.4 (Bijektif) Suatu fungsi
disebut fungsi bijektif jika
merupakan fungsi injektif dan juga fungsi surjektif (Menezes et al. 1996).

Fungsi Hash
Definisi 2.2.1 (Fungsi hash) Fungsi hash adalah fungsi yang secara komputasi
efisien memetakan bitstring dengan panjang sembarang ke bitstring dengan
panjang tetap yang disebut dengan nilai hash (Menezes et al. 1996).
Secara umum fungsi hash dibagi menjadi dua, yaitu: fungsi hash tak
berkunci dan fungsi hash berkunci. Fungsi hash tak berkunci mempunyai
spesifikasi mengatur parameter input tunggal (pesan). Sedangkan fungsi hash
berkunci mempunyai spesifikasi mengatur dua parameter input berbeda (pesan
dan kunci). Fungsi hash juga dapat didefinisikan sebagai berikut:
yang mempunyai
Definisi 2.2.2 (Fungsi hash) Fungsi hash adalah fungsi
minimal dua sifat berikut:
1. Kompresi:
memetakan input
dengan sembarang panjang bit yang
berhingga, ke output
dengan panjang bit tetap .
dan suatu input ,
mudah
2. Kemudahan komputasi: diketahui
dihitung (Menezes et al. 1996).

4
Sedangkan berdasarkan kegunaannya fungsi hash dibedakan menjadi dua,
yaitu:
1. MDC (Manipulation Detection Code), merupakan subkelas dari fungsi
hash tak berkunci. MDC bertujuan untuk memberikan jaminan integritas
data sebagaimana diperlukan dalam aplikasi khusus. Dua bahasan yang
termasuk dalam MDC adalah:
a. Fungsi hash satu arah (one way hash function/OWHF):fungsi hash ini
bersifat bahwa jika diketahui suatu nilai hash, maka untuk menentukan
sembarang inputnya adalah tak layak.
b. Fungsi hash tahan tumbukan (collision resistant hash function/CRHF):
fungsi hash ini mempunyai sifat bahwa jika diketahui suatu nilai hash,
maka untuk menentukan sembarang dua inputnya adalah tak layak.
2. MAC (Massage Authentication Code), merupakan subkelas dari fungsi
hash berkunci. MAC mempunyai dua parameter berbeda, yaitu: input
pesan dan kunci rahasia. MAC bertujuan untuk menjamin integritas data
dan asal data.
Berikut ini tiga sifat fungsi hash tak berkunci
dengan input
dan
:
output
1. Ketahanan preimej (preimage resistance), jika diketahui sembarang nilai
hash , maka secara perhitungan tak layak mencari sehingga
. Istilah lain untuk ketahanan preimej adalah satu-arah (one-way).
2. Ketahanan preimej kedua (2nd-preimage resistance), jika diketahui ,
maka secara perhitungan tak layak mencari
sehingga
. Istilah lain untuk ketahanan preimej kedua adalah ketahanan
tumbukan lemah (weak collision resistance).
3. Ketahanan tumbukan (collision resistance), secara perhitungan tak layak
mencari dua input berbeda
sehingga
. Istilah lain
untuk ketahanan tumbukan adalah ketahanan tumbukan kuat (strong
collision resistance).
Hubungan logika dari ketiga sifat tersebut dinyatakan dalam proposisi
berikut ini:
Proposisi 2.2.3 Fungsi hash yang mempunyai sifat ketahanan tumbukan, maka
dijamin mempunyai sifat ketahanan preimej kedua. Kontraposisinya, fungsi
hash yang gagal bersifat ketahanan preimej kedua, maka pasti tidak tahan
tumbukan.
Bukti:
Andaikan mempunyai sifat ketahanan tumbukan dan ambil satu input . Karena
tahan tumbukan, maka tak layak mencari
dengan
sehingga
. Ini berarti bersifat tahan preimej kedua.
Proposisi 2.2.4 Fungsi hash yang tidak tahan preimej kedua, tidak ada jaminan
tahan preimej. Begitu pula sebaliknya, fungsi hash yang gagal bersifat tahan
preimej, juga tidak menjamin tahan preimej kedua.
Berdasarkan sifat-sifat di atas, berikut ini dipertegas mengenai definisi
OWHF dan CRHF.

5
Definisi 2.2.5 (OWHF) OWHF adalah fungsi hash dengan dua sifat pada definisi
fungsi hash ditambah sifat ketahanan preimej dan ketahanan primej kedua. Istilah
lain OWHF adalah fungsi hash satu arah lemah (Menezes et al. 1996).
Definisi 2.2.6 (CRHF) CRHF adalah fungsi hash yang bersifat kompresi dan
kemudahan komputasi ditambah sifat ketahanan preimej dan ketahanan tumbukan.
Istilah lain untuk CRHF adalah fungsi hash satu arah kuat (Menezes et al. 1996).
Sedangkan definisi lengkap untuk MAC diberikan berikut ini:
Definisi 2.2.7 (Algoritme MAC) Algoritme MAC adalah keluarga fungsi
dengan parameter kunci rahasia k mempunyai sifat:
,
1. Kemudahan komputasi (ease of computation): diketahui fungsi
diberikan nilai dan input , maka
mudah dihitung. Hasil fungsi ini
disebut nilai-MAC atau MAC saja.
2. Kompresi (compression):
memetakan input
dengan sembarang
dengan panjang bit tetap .
panjang bit berhingga, ke output
Selanjutnya diberikan suatu deskripsi dari keluarga fungsi , untuk setiap
(musuh tidak boleh mengetahui), sifat
nilai tetap yang dibolehkan
keamanan berikut dipenuhi:
3. Ketahanan komputasi (computation resistance): diberikan nol atau lebih
pasangan teks-MAC
, secara komputasi tak layak menghitung
untuk sembarang input baru
sembarang pasangan
(termasuk mungkin
untuk suatu (Menezes et al. 1996).
Jika ketahanan komputasi tidak dipenuhi, algoritme MAC disebut pemalsuan
MAC. Ketahanan komputasi mengakibatkan secara perhitungan tak layak
jika diketahui satu atau lebih pasangan teks-MAC
menentukan kunci
. Sebaliknya, ketahanan kunci tidak harus mengakibatkan ketahanan
komputasi. Hubungan logika sifat keamanan fungsi hash yang berkunci dan yang
tak berkunci diberikan dalam proposisi berikut:
adalah fungsi hash yang tahan komputasi (berarti tahan
Proposisi 2.2.8 Jika
terhadap serangan pilih teks tanpa tahu kunci ), maka:
pasti tahan tumbukan
1.
2.
tahan preimej.
Bukti:
Misalkan
adalah tahan komputasi, maka:
, tanpa tahu
tidak layak
1. Jika telah dipilih pasangan
menghitung (memilih) pasangan
dengan
sehingga
.
2. Andaikan
tidak tahan preimej, tanpa tahu
bisa dipilih pasangan
dengan adalah preimej dari .
Kebanyakan fungsi hash
didisain melalui proses iteratif yang
menginputkan bitstring dengan panjang sembarang dan mengoutputkan bitstring
dengan panjang tetap. Misalkan
adalah bitstring dengan panjang sembarang
, nilai hash
adalah bitstring dengan panjang tetap
dihitung melalui tahapan proses berikut:

6
1. Proses penambahan bit ekstra (padding). Input dibagi menjadi blok,
,
Yang setiap blok
mempunyai panjang
Jika bukan kelipatan
dari , maka dilakukan penambahan bit ekstra (padding) agar blok terakhir
mempunyai panjang . Sering juga ditambahkan blok ekstra
sebagai
representasi biner rata kanan dari . Blok ini menyimpan informasi
panjang yang asli.
2. Proses kompresi. Setiap blok
akan bertindak sebagai input dari fungsi
kompresi yang menghitung secara iteratif dengan rumusan
.
adalah vektor inisial yang nilainya didefinisikan sebelumnya,
adalah
nilai berantai yang disebut variabel berantai (channing variable)
merupakan bitstring dengan panjang
. Output dari proses ini
adalah .
3. Proses finalisasi. Proses ini sifatnya opsional, yaitu mentransformasikan
oleh fungsi ke bitstring dengan panjang m,
.
adalah fungsi identitas, yaitu
Jika proses ini tidak dilakukan berarti
.

Aljabar
Di sini akan diberikan definisi dari ruang vektor dan basis sebagai dasar
aljabar dari latis. Nantinya dapat dilihat bahwa latis yang dibangkitkan oleh suatu
yang direntang
basis mempunyai kemiripan dengan subruang vektor dalam
oleh basis .
Definisi 2.3.1 (Ruang Vektor) Diberikan sembarang himpunan dan sembarang
field . Pada didefinisikan aturan jumlah dan aturan perkalian skalar vektor.
jika terhadap aturan-aturan tersebut memenuhi 10
disebut ruang vektor atas
aksioma-aksioma berikut:
1.
.
.
2.
3.
.
, dalam hal ini
.
4.
5.
.
6.
.
.
7.
8.
.
.
9.
10.
dimana 1 adalah unsur identitas dari terhadap operasi
kali (Anton and Rorres 2000).
Definisi 2.3.2 (Subruang) Misalkan
adalah ruang vektor atas skalar
dan
.
disebut subruang dari jika
juga merupakan ruang vektor atas
terhadap operasi yang sama dengan (Anton and Rorres 2000).

7
Definisi 2.3.3 (Kombinasi Linear) Misalkan adalah ruang vektor atas skalar .
terdiri atas vektor dalam . Suatu
Didefinisikan himpunan
vektor
disebut kombinasi linear dari
jika
sehingga
(Anton and Rorres 2000).
Teorema 2.3.4 Misalkan
adalah ruang vektor atas skalar , dan
adalah himpunan yang terdiri atas vektor dalam . Himpunan
yang anggotanya semua kombinasi linear dari , dinotasikan
, yaitu
,
merupakan subruang dari (Anton and Rorres 2000).
Dalam hal ini
disebut subruang yang direntang oleh . Selanjutnya,
‫ۃ‬A‫ ۄ‬merupakan subruang terkecil yang memuat , artinya untuk setiap subruang
dari yang memuat , pasti
.
Definisi 2.3.5 (Bebas Linear) Misalkan adalah ruang vektor atas skalar , dan
adalah himpunan yang terdiri atas
vektor dalam .
disebut bebas linear jika
.
Ingkarannya, disebut terpaut linear jika

(Anton and Rorres 2000).
Definisi 2.3.6 (Basis) Misalkan adalah ruang vektor atas skalar , dan adalah
himpunan berhingga vektor-vektor di dalam . Dikatakan adalah basis untuk
jika bebas linear dan
(Anton and Rorres 2000).
Definisi 2.3.7 (Ring) Ring adalah himpunan dengan dua operasi biner, yaitu
penjumlahan
dan perkalian
yang memenuhi aksioma-aksioma berikut :
bukan himpunan kosong
a.
b.
c.
d.
e.
f.
g.
h.
(Anton and Rorres 2000).
Definisi 2.3.8 (Ideal) Diketahui
ring komutatif dengan elemen satuan dan
. Himpunan disebut ideal pada jika dan hanya jika memenuhi ketiga
aksioma berikut:
a.
b.
c.
(Anton and Rorres 2000).

8
merupakan suatu ideal dari R. Dibentuk koleksi himpunan
=
dan disebut sebagai koset. Diperhatikan
bahwa I juga merupakan koset, yaitu
. Diperhatikan juga bahwa
karena
dan berakibat
.
Misalkan

Lemma 2.3.9 (Ring kuosen) Diketahui ring komutatif dengan elemen satuan
dan ideal sejati pada . Didefinisikan penjumlahan dan perkalian koset sebagai
berikut:
a.
b.
maka
merupakan ring komutatif dengan elemen satuan dan ring
tersebut dinamakan ring kuosen terhadap (Anton and Rorres 2000).
dan .
Definisi 2.3.10 (Homomorfisme) Diberikan ring
homomorfisme ring jika
memenuhi
a.
b.
.
Selanjutnya, jika
surjektif disebut epimorfisme dan jika
isomorfisme.

adalah

bijektif disebut

Latis
Latis merupakan objek geometrik dalam ruang dimensi- yang dapat
diilustrasikan sebagai himpunan titik-titik dengan susunan yang teratur dan
periodik. Berikut ini definisi latis secara matematik:
Definisi 2.4.1 (Latis) Misalkan
bebas linear dalam ruang vektor
himpunan

adalah himpunan
. Latis yang dibangkitkan oleh

vektor
adalah

beranggotakan semua kombinasi linear dari anggota-anggota . Dalam hal ini,
disebut dengan basis untuk
dan dapat dinyatakan sebagai matriks
.
Definisi 2.4.2 (Parallelepiped dasar) Untuk sembarang latis
dapat didefinisikan himpunan

dengan basis

yang disebut parallelepiped dasar atau daerah fundamental dasar dari latis .
Paralellepiped merupakan bangun pejal setengah terbuka. Jika
diilustrasikan dalam ruang berdimensi dua, maka paralellepiped merupakan
bidang jajaran genjang setengah terbuka.

9
Definisi 2.4.4 (Dual latis) Dual dari latis
sebagai

, dinotasikan

, didefinisikan
.

Dalam pendefinisian masalah latis digunakan aproksimasi dengan faktor
aproksimasi
dan kualitas dari solusinya diukur dengan sembarang fungsi
dari latis yaitu
.
Definisi 2.4.5 (Shortest independent vectors problem yang diperumum, notasi:
) Diberikan basis latis , carilah buah vektor latis yang bebas linear
dengan
).
Definisi 2.4.6 (Guaranteed distance decoding, notasi:
) Diberikan basis
, carilah titik latis
dengan
latis dan sebuah titik target
, dimana adalah rank dari latis.
Definisi 2.4.7 (Incremental guaranteed distance decoding problem,
notasi:
) Diberikan basis latis berdimensi, himpunan -vektor
latis yang bebas linear
, titik target
, dan bilangan
real
, carilah vektor latis
dengan
.
Definisi 2.4.8 (
monik berderajat , carilah
Definisi 2.4.9 (
dengan

) Diberikan ideal
dan

, carilah

) Diberikan ideal
dan

dengan

polinomial

.
dan
.

Kompleksitas Waktu
Fungsi kompleksitas waktu adalah ukuran matematis berapa lama algoritme
adalah
mampu menyelesaikan suatu masalah. Fungsi kompleksitas waktu
yang mengambil nilai input integer positif
dan mempunyai sifat
akan
membesar jika membesar. Berikut diberikan pengertian dominasi fungsi sebagai
dasar dalam mempelajari fungsi kompleksitas waktu.
Definisi 2.5.1 (Dominasi fungsi) Misalkan
. Kita katakan bahwa
dan
mendominasi (atau didominasi ) jika ada konstanta
sedemikian sehingga
, dimana
.
Definisi 2.5.2 (Fungsi kompleksitas waktu) Fungsi kompleksitas waktu
adalah fungsi yang mengukur banyaknya operasi dalam suatu algoritme yang
mempunyai variabel input .
Berikut ini beberapa bentuk Oh-besar yang sering muncul dalam analisis
algoritme:

10
Tabel 1 Bentuk Oh-Besar
Bentuk Oh-besar
O(1)
O(
O(n)
O(
O( )
O( )
O( ), m=0, 1, 2, …
O( ), c>1
O(n!)

Definisi 2.5.3 (Big Oh) Suatu fungsi

Nama
Konstan
Logaritmik
Linear
Kuadratik
Kubik
Polinomial
Eksponensial
Faktorial

jika
.

Polinomial Atas
Definisi 2.6.1 (Polinomial atas ) Diberikan field , suatu ekspresi dalam notasi
, berbentuk

disebut polinomial dalam x atas jika
.
dikatakan berderajat n, notasi deg
, jika
Polinomial
dan
untuk setiap
. Dalam hal demikian,
disebut koefisien
pemimpin (leading) dan sukunya
disebut suku pemimpin. Polinomial
dengan koefisien pemimpin disebut monik.
Didefinisikan
sebagai himpunan semua polinomial atas , maka dapat
dituliskan
.
,
Definisi 2.6.2 (Pembagian polinomial) Misalkan
dikatakan membagi habis
, notasi
, jika ada
sehingga
. Dalam hal demikian,
disebut pula faktor atau pembagi
dari
, atau
disebut kelipatan dari
.
Proposisi 2.6.3 (Algoritme pembagian) Untuk
selalu bisa ditemukan sepasang polinomial
dimana

dan
,
sehingga berlaku
.

Definisi 2.6.4 (Polinomial teruraikan dan tak-teruraikan)
Polinomial
dikatakan teruraikan (reducible) atas
jika ada
keduanya tak-konstan (berderajat positif) sehingga
. Polinomial tak-teruraikan (irreducible) atas merupakan ingkaran dari

11
polinomial teruraikan atas . Jadi,
dikatakan tak-teruraikan atas
jika hanya mempunyai faktor konstan atau dirinya sendiri. Dengan kata lain,
konstan atau
konstan.

Ring Polinomial Modular
Misalkan adalah suatu ideal dalam
, berarti untuk setiap
dan
berlaku
. Proposisi berikut menegaskan bahwa
struktur
beranalog dengan .
Proposisi 2.7.1
memiliki struktur daerah ideal utama. Artinya, untuk setiap
ideal
dalam
, ada tepat satu polinomial monik
dan berderajat
terkecil dalam
sehingga
, terkadang
.
dinotasikan
Berdasarkan proposisi 2.7.1, untuk selanjutnya setiap disebut ideal
dalam
dimaksudkan
monik dan berderajat terkecil dalam .
, himpunan
Untuk suatu
disebut koset dari yang memuat
. Keluarga koset dinotasikan
Ketika pada

dan jelas merupakan subhimpunan dari

.
didefinisikan operasi jumlah koset dan kali koset:

Maka diperoleh proposisi sebagai berikut
Proposisi 2.7.2

merupakan ring dan disebut ring kuosen.

Dengan memandang bahwa
J adalah subgrup normal, maka

adalah grup terhadap operasi jumlah dan
merupakan partisi dari
.

Proposisi 2.7.3 (Teorema Dasar Homomorfisme) Diberikan ring dan , jika
adalah epimorfisme ring, maka
isomorfik dengan (notasi:
dengan pemadanan isomorfisme
.
Untuk intejer positif , ambil polinomial monik
. Didefinisikan pemetaan
,
dihitung sebagai sisa dari
Dengan
lemma berikut
Lemma 2.7.4

adalah homomorfisme ring.

dengan deg
dengan rumus untuk setiap

dibagi

, sehingga diperoleh

12
Bukti:
Ambil

,

berdasarkan

proposisi

2.6.3,

berarti

ada

sehingga

Akibatnya ada

sehingga

Dan
ada
sehingga

.
Teorema 2.7.5 Ring
dan
adalah isomorfik.
Bukti:
adalah epimorfisme ring.
Berdasarkan Lemma 2.7.4,
Akibatnya, dengan Proposisi 2.7.3 diperoleh
.
Dalam hal ini,
.
Sedangkan

.
Karena deg

dan dari definisi mod, maka bisa dinyatakan
.
dan

Sehingga, dari Teorema 2.7.5, pemadanan isomorfisme
bisa dinyatakan sebagai berikut. Jika
dan
maka
dan
.
Akibatnya diperoleh proposisi berikut
Proposisi 2.7.6 Aritmetik ring
aritmetik polinomial modular , yaitu

dapat dibawa (diisomorfismekan) ke

dengan operasi jumlah dan kali polinomial modulo

.

13
Ambil sembarang
, maka
dapat dipandang sebagai anggota
, akibatnya untuk setiap
diperoleh
.
berderajat
Perkalian
ini, kemudian didefinisikan sebagai aturan kali skalar di dalam
. Karena
adalah grup komutatif terhadap operasi jumlah ring, maka
diperoleh teorema berikut
Teorema 2.7.7 Terhadap operasi jumlah ring dan aturan kali skalar,
dengan basis baku
.
merupakan ruang vektor atas
Selanjutnya,
dan
adalah dua ruang vektor yang isomorfik dengan
pemadanan isomorfisme
.

Penelitian Terkait
Konstruksi kriptografi berbasis latis pertama kali disajikan oleh Ajtai pada
tahun 1995. Ajtai
merepresentasikan keluarga fungsi satu arah yang
keamanannya bergantung pada worst-case hardness dari nc-aproksimasi SVP
untuk beberapa konstan
. Berikut algoritme fungsi hash dari Ajtai:
Paramater : bilangan bulat
Kunci : matriks
Fungsi hash :

diberikan oleh

.

Selanjutnya, Goldreich (1996) menunjukkan bahwa fungsi hash yang
dikemukakan oleh Ajtai merupakan fungsi hash yang tahan tumbukan dengan
memilih parameter
. Namun fungsi hash ini mempunyai ukuran kunci yang
besar sehingga kurang efisien dalam prakteknya. Pada tahun 2002, Micciancio
menggunakan latis cyclic sebagai sumber kerumitan baru dan membentuk fungsi
satu arah yang efisien dari asumsi kompleksitas kasus terburuk. Sembarang
matriks A diganti dengan blok matriks
dengan setiap blok

adalah matriks seperti berikut

,

Dengan menggunakan notasi matriks bisa ditulis
dengan
,

dan

.

14
Berikut ini algoritmenya:
Parameter : bilangan bulat
Kunci : m/n vektor
Fungsi hash :

dengan
dan vektor
.
diberikan oleh
.

.

Peikert (2005) menunjukkan bahwa fungsi tersebut merupakan fungsi hash
yang tahan tumbukan. Selanjutnya, Lyubashevsky (2008) mengkonstruksi
algoritme fungsi hash berbasis latis yang mengutamakan efisiensi yang disebut
SWIFFT. Pada dasarnya fungsi hash SWIFFT adalah varian yang sangat optimal
dari fungsi hash dan sangat efisien dalam praktek karena penggunaan Fast
Fourier Transform (FFT) di Zq. Berikut ini algoritme dari SWIFFT:
Parameter : Bilangan bulat
dan
Kunci : m/n vektor
Input : m/n vektor
Output : vektor

dengan

, q bilangan prima,

.
.
.
.

Keluarga fungsi hash berbasis latis mempunyai aspek keamanan yang
bertumpu pada masalah komputasi kasus terburuk dari aproksimasi latis. Analisis
keamanan dari keluarga fungsi hash berbasis latis meliputi sifat satu arah dan
tahan tumbukan yaitu dengan menunjukkan bahwa untuk menemukan invers dan
tumbukan dari fungsi hash serumit menyelesaikan masalah aproksimasi latis yang
mendasarinya. Hal ini diharapkan dapat memberikan keamanan yang lebih kuat
daripada pendekatan klasik yang berlandaskan pada teori kombinatorika dan
peluang.
Sebuah fungsi hash berbasis latis memiliki sifat satu arah jika dapat
dibuktikan bahwa masalah menemukan invers dari fungsi tersebut dapat direduksi
dengan waktu polinomial dari masalah latis yang tidak dapat diselesaikan dengan
waktu polinomial. Selanjutnya, untuk membuktikan bahwa fungsi hash hasil
konstruksi bersifat satu arah, akan ditunjukkan untuk mencari invers dari fungsi
hash serumit menyelesaikan masalah latis dalam kasus terburuk yaitu masalah
SIVP (Shortest Independent Vector Problem). Peikert dan Rossen (2006)
menunjukkan sifat satu arah melalui dua langkah, yaitu:
) dapat direduksi menjadi
1. Masalah latis dalam kasus terburuk (
masalah kasus terburuk menengah yaitu incremental GDD (

)

2. Masalah kasus terburuk menengah (
) dapat direduksi menjadi
masalah mencari invers dari fungsi hash hasil konstruksi.
Sebuah fungsi hash berbasis latis terbukti tahan tumbukan jika masalah
menemukan tumbukan dari fungsi tersebut dapat direduksi dengan waktu
polinomial dari masalah latis yang tidak dapat diselesaikan dengan waktu
polinomial. Hal ini berarti jika dapat ditemukan tumbukan dari fungsi hash
dengan waktu polinomial, maka dengan algoritme reduksi dengan waktu
polinomial yang menggunakan algoritme menemukan tumbukan dapat diperoleh

15
solusi untuk masalah latis yang tidak dapat diselesaikan dengan waktu polinomial.
Ini merupakan kontradiksi, sehingga untuk menemukan tumbukan tidak semudah
menyelesaikan masalah latis tersebut. Lyubashevsky dan Micciancio (2006) telah
menunjukkan bahwa fungsi hash berbasis latis bersifat tahan tumbukan dengan
menunjukkan Lemma 2.8.1 dan Teorema 2.8.2 sebagai berikut:
Lemma 2.8.1 Ada reduksi dari
polinomial.
Teorema 2.8.2 Misalkan
dan

ke

dengan waktu

keluarga fungsi hash yang dikonstruksi dengan
. Untuk
, ada reduksi

untuk suatu ke masalah menemukan
dengan waktu polinomial dari
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 langkahlangkahnya:
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
Shortest Independent Vector Problem (SIVP). SIVP adalah jika

17
diberikan suatu basis latis
, maka tentukan
vektor bebas
dengan
yang
linear
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
hasil kali ring dari
dan
vektor satuan
merupakan vektor pendek.

18

4 HASIL DAN PEMBAHASAN
Konstruksi Algoritme Fungsi Hash HLI
bilangan prima ganjil, dinotasikan
Misalkan
sebagai field intejer bilangan prima. Selanjutnya diambil polinomial
yang bersifat monik berderajat .
Polinomial
dapat ditulis sebagai vektor intejer bilangan prima
. Ring polinomial modular
adalah
dengan koefisien
himpunan semua polinomial berderajat paling banyak
dalam , yaitu
.
yang ditulis
Untuk sembarang

didefinisikan operasi penjumlahan sebagai berikut

dan operasi perkalian yaitu
.
Representasi yang lebih sederhana dari
dan lebih memudahkan jika
dapat dipandang sebagai
diimplementasikan dalam komputer adalah bahwa
himpunan semua vektor intejer berdimensi , yaitu
.
Selanjutnya, suatu latis
berdimensi
yang didefinisikan dari ring
polinomial modular secara umum disebut latis ideal. Untuk mendapatkan latis
sebagai berikut: untuk suatu
maka ada ideal
ideal
dan
. Sehingga diperoleh
.
Lemma 4.1.1
dengan
polinomial berderajat-n yang monik dan
Setiap ideal
tak teruraikan, isomorph dengan latis berdimensi penuh dalam .
Bukti:
Misalkan
dengan
dan berderajat paling banyak
. Jelas
bebas linear pada . Jika polinomial
bahwa polinomial
bebas linear pada , maka latis
memuat n vektor
. Jika polinomial
tidak
bebas linear yaitu
bebas linear, maka ada polinomial tak nol
sehingga
. Jadi
untuk suatu
. Karena polinomial berderajat- dan tak teruraikan maka
polinomial

19
atau
, padahal
dan polinomial berderajat
maka hal tersebut
dan adalah 0.
tidak mungkin kecuali kalau
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
pada perkalian
monik dan tak teruraikan. Pemilihan modulo
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
Input: vektor

adalah sebagai berikut:

Output: vektor sebagai hasil multiplikasi dari dan
dan
.
1. Inisialisasi
2. Untuk intejer
s.d
, hitung:

dalam
dalam

.

20
a.

dimana

menotasikan putaran dari

ke kanan satu

satuan.
dimana
adalah vektor yang semua komponennya 0
selain komponen keyaitu
.
, hitung
.
3. Jika
4. Return
Langkah-langkah dalam algoritme di atas pada dasarnya merupakan
perkalian matriks intejer modular
, yaitu
b.

Sehingga algoritme untuk fungsi hash ini adalah sebagai berikut:
Kunci : dua vektor sembarang
dengan
Input :
Output: vektor
dalam ring
.
.
1. Inisialisasi
2. Untuk bilangan bulat
a.
b.
c.
d.
3. Return

.

sebagai hasil multiplikasi dan adisi

s/d

, hitung:

Analisis Kecepatan
Analisis kecepatan di sini maksudnya adalah menghitung banyaknya operasi
dalam algoritme fungsi hash yang dikonstruksi. Pertama akan dihitung banyaknya
, yaitu sebagai berikut:
operasi dalam algoritme penjumlahan dalam ring
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 .
ada algoritme
Selanjutnya, dalam algoritme multiplikasi dalam ring
perkalian skalar dan vektor modulo dan algoritme memutar vektor ke kanan satu
satuan. Oleh karena itu sebelum menghitung banyak operasi perkalian dalam ring,
sebagai
akan dihitung operasi dalam perkalian skalar dan vektor modulo
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.
yang
2. Variabel H sebagai hasil perkalian skalar dan vektor modulo
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
. Sehingga hanya melibatkan penjumlahan
melibatkan multiplikasi dalam ring
yang terdiri
operasi penjumlahan modulo
yang diulang
dalam ring
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)
1024
2048
4096
8192
16384
32768

Waktu (detik)
0,33
0,643
1,373
2,718
5,357
10,745

Jika disajikan dalam grafik sebagai berikut:
12
W
a 10
k
t 8
u
6
(
d
e
t
i
k

4
2
0

)
0

5000

10000

15000

20000

25000

30000

35000

Panjang Input (bit)

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

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:
adalah polinomial monik, berderajat , tak teruraikan atas ,
a.
b. Untuk setiap vektor satuan
, hasil kali ring dari
terbatas
.
dan merupakan vektor pendek, artinya
merupakan polinomial berderajat n dan
Polinomial
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
bersifat tak teruraikan. Untuk sifat kedua
bahwa polinomial
ditunjukkan dengan teorema berikut
Teorema 4.3.1 Jika
dan
adalah sembarang dua vektor satuan anggota
dan
, maka
.
Bukti:
dan , maka representasi polinomial bisa
Ambil sembarang vektor satuan
dituliskan sebagai
dan
dengan
sehingga diperoleh representasi dari adalah
, maka bukti selesai karena
jika
vektor satuan sehingga
. Jika
sehingga
dengan
sehingga

Karena
diperoleh

yang berarti
adalah
, maka bukti juga selesai karena
. Jika
, maka ada

maka jelas bahwa
dan
. Dari sini diperoleh

sehingga
.

terbatas ke
,
Walaupun dalam teorema 4.3.1 menyatakan bahwa
akan tetapi dari buktinya nilai
adalah
yang lebih kecil dibandingkan
untuk
.
dengan