• Tidak ada hasil yang ditemukan

Implementasi aritmetika Optimal Extension Field (OEF) menggunakan bahasa pemrograman C

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi aritmetika Optimal Extension Field (OEF) menggunakan bahasa pemrograman C"

Copied!
44
0
0

Teks penuh

(1)

IMPLEMENTASI ARITMETIKA OPTIMAL EXTENSION FIELD

(OEF) MENGGUNAKAN BAHASA PEMROGRAMAN C

LUQMAN AZIZ FEBRIAN NUGRAHA

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(2)

IMPLEMENTASI ARITMETIKA OPTIMAL EXTENSION FIELD

(OEF) MENGGUNAKAN BAHASA PEMROGRAMAN C

LUQMAN AZIZ FEBRIAN NUGRAHA

Skripsi

sebagai salah satu syarat untuk memperoleh gelar

Sarjana Komputer pada

Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(3)

ABSTRACT

LUQMAN AZIZ FEBRIAN NUGRAHA. Optimal Extension Field (OEF) Arithmetic Implementation Using C Programming Language. Under the direction of SUGI GURITMAN.

Cryptography is the science to keep the message secure. Cryptography involves encryption and decryption of messages. Nowadays, the minimum key size for public key cryptography to reach the minimum security is claimed to be 1024 bit (RSA). With somekind of algorithm, the desktop computer that has 32 bit machine architecture could compute a number with that size easily, but not with the smaller machine that has only 8 bit or 16 bit architecture like handphones and smart cards. Those small machines need more time or maybe unable to compute a number with that size. Elliptic Curve Cryptography (ECC) is the solution of this problem. ECC has a great advantage. It can give a high security level of cryptography with smaller key size. As an example, ECC key with the size of 160 bit is claimed to be at the same level of security as compared to the conventional RSA key with 1024 bit of size. ECC implements a different kind of arithmetic field than that of the usual cryptosystem.

In this research, Optimal Extension Field (OEF) is implemented. The arithmetic operations that were implemented are addition, susbtraction, multiplication, squaring, reduction, exponentiation and inversion. OEF arithmetic depends on the parameters n, c, m and that were chosen. The result shows that in addition and substraction, the time of execution is mostly influenced by parameter m. In multiplication, parameter m also influences the execution time. Multiplication with Schoolbook algorithm is faster than that of using Karatsuba algorithm with one iteration. In squaring, using squaring algorithm is faster than that of using ordinary multiplication algorithm. In reduction, OEF with parameter =2 executes faster than other value of . Left to right exponentiation using Schollbook multiplication executes faster than that of using Karatsuba multiplication. The fastest algorithm for OEF inversion is using Itoh and Tsujii inversion algorithm with the combination of Frobenius map, addition-chain algorithm and Binary invers algorithm for invers in the subfield .

(4)

Judul : Implementasi Aritmetika Optimal Extension Field (OEF) Menggunakan Bahasa Pemrograman C

Nama : Luqman Aziz Febrian Nugraha NIM : G64060223

Menyetujui: Pembimbing

Dr. Sugi Guritman NIP. 19620927 199203 1 004

Mengetahui:

Ketua Departemen Ilmu Komputer

Dr. Ir. Sri Nurdiati, M.Sc NIP. 19601126 198601 2 001

Tanggal Lulus:

(5)

PRAKATA

Puji dan syukur Penulis panjatkan kepada Allah SWT atas segala curahan rahmat dan karunia-Nya sehingga skripsi ini dapat diselesaikan. Skripsi ini merupakan hasil penelitian yang dilakukan dari bulan Februari sampai bulan Desember 2010 dengan bidang kajian Implementasi Aritmetika Optimal Extension Field (OEF) Menggunakan Bahasa Pemrograman C.

Ucapan terima kasih penulis sampaikan kepada pihak yang telah membantu penyelesaian tugas akhir ini antara lain:

1. Bapak Dr. Sugi Guritman selaku pembimbing atas bimbingan, arahan dan nasihat yang diberikan selama pengerjaan tugas akhir ini.

2. Bapak Endang Purnama Giri, S.Kom, M.Kom dan Ibu Shelvie Nidya Neyman, S.Kom, M.Si selaku penguji atas waktu, masukan dan koreksi yang telah diberikan.

3. Ibu, ayah dan adik tercinta yang selalu memberikan kasih sayang, doa dan dukungan. 4. Anna Chintya Dewi yang telah memberikan semangat, doa dan dukungannya.

5. Iki Lobo dan Haryadi selaku rekan satu bimbingan, juga kepada Fauzi Fathurahman dan Ineza Febrianty Ansorry atas segala bantuan yang telah diberikan.

6. Departemen Ilmu Komputer, staf dan dosen yang telah banyak membantu baik selama penelitian maupun pada masa perkuliahan.

7. Rekan-rekan ILKOMERZ 43 yang telah banyak membantu penulis selama menjalani waktu di Departemen Ilmu Komputer IPB.

Penulis menyadari masih banyak kekurangan dalam penelitian ini. Oleh karena itu, kritik dan saran sangat penulis harapkan untuk perbaikan di masa mendatang. Semoga penelitian ini dapat bermanfaat, Amin.

Bogor, Maret 2011

(6)

RIWAYAT HIDUP

Penulis lahir di Temanggung pada tanggal 28 Februari 1988. Penulis merupakan anak pertama dari tiga bersaudara dengan ayah bernama Maksum Rifa’i dan Ibu bernama Murtafiah.

(7)

DAFTAR ISI

Halaman

DAFTAR TABEL ... v

DAFTAR GAMBAR ... v

PENDAHULUAN Latar Belakang ... 1

Tujuan ... 1

Ruang Lingkup ... 1

Manfaat Penelitian ... 1

TINJAUAN PUSTAKA Field ... 1

Field Prima ( ) ... 2

Optimal Extension Field (OEF) ... 2

Polinomial Tak-teruraikan (Irreducible Polynomial) dalam OEF ... 2

Algoritme Karatsuba Satu Iterasi ... 2

Algoritme Invers dalam ... 3

Pemetaan Frobenius(Frobenius Map) ... 3

Algoritme Addition-Chain ... 3

Left to Right Exponentiation ... 3

Pengujian Blackbox ... 3

METODE PENELITIAN Studi Literatur ... 4

Analisis ... 4

Implementasi ... 4

Lingkungan Pengembangan ... 4

Pengujian ... 4

HASIL DAN PEMBAHASAN Analisis ... 4

Implementasi ... 5

Pengujian ... 11

KESIMPULAN DAN SARAN Kesimpulan ... 13

Saran ... 14

(8)

DAFTAR TABEL

Halaman

1 Tipe data dalam bahasa pemrograman C ... 5

2 Return value fungsi cmp_fpm ... 5

3 Waktu eksekusi operasi invers dalam ... 11

4 Waktu eksekusi operasi jumlah ... 11

5 Waktu eksekusi operasi kurang ... 12

6 Waktu eksekusi operasi kali... 12

7 Waktu eksekusi operasi kuadrat ... 12

8 Waktu eksekusi operasi reduksi ... 12

9 Waktu eksekusi operasi pangkat menggunakan algoritme Schoolbook ... 13

10 Waktu eksekusi invers : algoritme perkalian Schoolbook ... 13

11 Waktu eksekusi invers : algoritme perkalian Karatsuba ... 13

DAFTAR GAMBAR

Halaman 1 Metodologi Penelitian ... 4

(9)

PENDAHULUAN

Latar Belakang

Kriptografi merupakan suatu solusi mengamankan pesan apabila komunikasi dilakukan pada jalur yang tidak aman. Bila menggunakan protokol kriptografi, sebelum dikirimkan, pesan diubah terlebih dahulu menggunakan suatu kunci tertentu menjadi sebuah bentuk data yang tidak dapat dibaca secara langsung. Proses tersebut disebut enkripsi. Setelah pesan sampai, pihak penerima akan mengubah kembali pesan agar dapat dibaca menggunakan pasangan kunci enkripsi. Proses tersebut disebut dekripsi. Dengan hal ini, pengiriman pesan menjadi lebih aman.

Sejalan dengan kemajuan teknologi, kajian mengenai kriptografi pun semakin berkembang. Perkembangan ini memicu diciptakannya ber-bagai algoritme kriptografi. Sebagian besar algoritme kriptografi yang ada menekankan keamanannya pada komputasi aritmetika yang rumit dan perhitungan yang sangat sulit. Sebagai contoh, algoritme RSA dalam per-hitungannya untuk membangkitkan kunci publik dan kunci privat membutuhkan bilangan

n yang merupakan hasil perkalian dari dua buah bilangan prima p dan q dengan panjang bit yang sama. Saat ini, panjang bit minimal untuk n

yang dibutuhkan agar algoritma RSA dikatakan aman adalah 1024 bit (Hankerson et al. 2004).

Sebuah perangkat komputer dengan prosesor 32 bit atau 64 bit yang ada sekarang ini hanya mampu melakukan operasi aritmetika dan memberikan hasil sepanjang bit tersebut. Akan tetapi, dengan menggunakan suatu perangkat lunak yang menerapkan algoritme tertentu, komputer mampu melakukan operasi aritmetika pada bilangan dengan panjang bit lebih dari itu. Selain itu, hal itu juga ditunjang kemampuan prosesor yang cepat.

Namun, tidak sama halnya dengan mesin kecil yang hanya ditunjang prosesor 8 bit atau 16 bit. Walaupun menggunakan bantuan perangkat lunak khusus, mesin ini akan tetap kesulitan atau mungkin tidak mampu melakukan operasi aritmetika pada bilangan yang besar untuk memperoleh tingkat keamanan minimal dari algoritme kriptografi seperti RSA.

Elliptic curve cryptography atau kriptografi kurva elips adalah salah satu solusi untuk membangun sistem kriptografi yang lebih efisien untuk mendapatkan tingkat keamamanan yang tinggi. Sebagai contoh, sebuah kunci

kurva elips sepanjang 160 bit mempunyai tingkat keamanan yang setara dengan kunci RSA sepanjang 1024 bit (Hankerson et al.

2004). Dengan menggunakan kriptografi kurva elips ini, sistem kriptografi dengan tingkat keamanan yang tinggi juga dapat diterapkan pada mesin-mesin kecil seperti smart card atau

handphone.

Dasar dari kriptografi kurva elips ini adalah pada penggunaan field aritmetika yang berbeda dari algoritme kriptografi biasa. Salah satu field

aritmetika yang dapat diterapkan pada kriptografi kurva elips adalah aritmetika

optimal extension field. Pada penelitian ini, akan diimplementasikan aritmetika optimal extension field 8 bit dan 16 bit menggunakan bahasa pemrograman C.

Tujuan

Tujuan dari penelitian ini adalah :

1. mengimplementasikan operasi-operasi aritmetika Optimal Extension Field (OEF) menggunakan bahasa pemrograman C. Selanjutnya, akan diukur kinerja dari operasi-operasi tersebut.

2. membandingkan keunggulan pada beberapa algoritme yang diterapkan.

Ruang Lingkup

Ruang lingkup penelitian ini difokuskan pada implementasi untuk operasi penjumlahan, pengurangan, perkalian, reduksi, kuadrat, pemangkatan dan invers pada OEF dengan menggunakan bahasa pemrograman C. OEF yang diimplementasikan adalah 8 bit dan 16 bit dengan 4 macam kombinasi parameter OEF yang berbeda.

Manfaat Penelitian

Penelitian ini dapat bermanfaat sebagai dasar operasi aritmetika kriptografi kurva elips yang dapat memberikan tingkat keamanan yang tinggi dengan panjang kunci yang lebih kecil. Operasi-operasi aritmetika ini dapat diimplementasikan pada sistem dengan arsitektur mesin 8 bit atau 16 bit.

TINJAUAN PUSTAKA

Field

(10)

penjumlahan (+) dan perkalian (∙), dengan syarat:

1. ( , +) merupakan grup komutatif dengan nilai identitas 0.

yang anggotanya terdiri atas 0 sampai dengan p -1 dengan p bilangan prima. Operasi aritmetika pada field prima merupakan operasi modulo p

sehingga hasilnya merupakan struktur field

(Hankerson et al. 2004).

Optimal Extension Field (OEF)

OEF adalah field berhingga dengan : 1. = 2 ± untuk n dan c berupa integer

dengan log2|c| < n/2; dan

2. Terdapat sebuah polinomial tak-teruraikan

f(z) = zm – ada dalam [ ]

Jika c∈{+1}, maka OEF disebut Tipe I. Jika = 2, maka OEF disebut Tipe II. OEF Tipe I mempunyai keuntungan aritmetika yang sederhana dalam subfield , sedangkan OEF Tipe II memungkinkan penyederhanaan dalam aritmetika extension field (Hankerson et al. 2004).

Yang membuat hasil pangkatnya 1 adalah 3 dan 6. Karena 3 < 6, maka order dari 2 adalah 3. jumlah anggota selain nol. Oleh karena itu, 3 merupakan elemen primitif dalam .

Menurut Bailey dan Paar (1998), misalkan

dan sebagai akibat dari teorema tersebut adalah misalkan adalah elemen primitif (primitive root modulo n) dalam dan m adalah pembagi dari p-1. Maka, xm – adalah suatu polinomial tak-teruraikan.

Algoritme Karatsuba Satu Iterasi

Rumus umum untuk algoritme Karatsuba satu iterasi adalah :

misalkan ada dua polinomial berderajat d

(11)

Untuk genap, 0 < i < 2m-2 , nilai adalah dalam seperti algoritme extended Euclidean

dan algoritme binary.

Algoritme extended Euclidean merupakan perluasan dari algoritme Euclidean untuk mencari nilai x dan y sehingga ax + by = d

dimana d = gcd(a,b). Algoritme Binary Invers

merupakan algoritme invers yang mengganti operasi pembagian pada algoritme extended Euclidean dengan operasi shift (pembagian dengan 2) dan pengurangan (Hankerson et al.

proses prekomputasi karena nilainya bersifat tetap (Hankerson et al. 2004).

Menggunakan pemetaan Frobenius ini memberi kemudahan dalam melakukan perhitungan . Untuk menghitung , cukup dilakukan perkalian koefisien polinomial dengan nilai koefisien Frobenius yang bersesuaian.

Algoritme Addition-Chain

Algoritme ini digunakan untuk menghitung

= ⋯ dengan cepat

menggunakan bantuan Pemetaan Frobenius. Contoh penggunaan algoritme ini untuk m = 5

T1  ap satu algoritme pemangkatan. Ide dari algoritme ini adalah memangkatkan a(z) sampai an(z). Contoh, menghitung a13 pada field dapat dilakukan dengan

= = ( ( . ) ) .

Contoh tersebut dapat diuraikan sebagai berikut a. tulis 13 dalam biner : 1101

b. inisialisasi nilai awal hasil pangkat x = 1 c. mulai dari bit paling signifikan

- x = x2 mod p

- jika nilai bitnya 1, x = xa mod p

(Mahfouz 2004; Hankerson et al. 2004). Pengujian Blackbox

Pengujian blackbox memfokuskan pada keperluan fungsional dari software sehingga metode ini memungkinkan pengembang

software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Pengujian blackbox

berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :

1. kesalahan fungsi 2. kesalahan interface

3. kesalahan struktur data 4. kesalahan performa

5. kesalahan inisialisasi dan terminasi

Salah satu metode pengujian blackbox

adalah comparison testing. Dalam beberapa situasi dimana keandalan suatu software amat kritis, beberapa aplikasi sering menggunakan

software dan hardware ganda. Ketika software

ganda dibuat, tim pengembang software lainnya membangun versi independen dari aplikasi dengan spesifikasi yang sama. Setiap versi dapat diuji dengan data uji yang sama untuk memastikan seluruhnya menyediakan output

yang sama. Kemudian seluruh versi dieksekusi secara paralel dengan perbandingan hasil real

-time untuk memastikan konsistensi (Pressman 2001).

METODE PENELITIAN

(12)

dapat dilihat pada Gambar 1. Penjelasan untuk masing-masing langkah adalah sebagai berikut : Studi Literatur

Tahapan ini diperlukan untuk mempelajari prinsip dasar aritmetika optimal extension field. Selain itu, juga mempelajari algoritme serta kajian umum lain yang berkaitan dengan field

tersebut.

Gambar 1 Metodologi Penelitian Analisis

Dalam aritmetika OEF, hal yang paling penting adalah penentuan parameter yang digunakan, yaitu n, c, m dan . Hankerson et al. (2004) dan Cohen et al. (2006) menyebutkan bahwa keamanan kunci kriptografi kurva elips 160 bit setara dengan kunci RSA konvensional 1024 bit. Oleh karena itu, dilakukan pemilihan parameter sehingga nm mendekati 160.

Pada tahap ini, dilakukan analisis mencakup penentuan nilai parameter n, c, m dan yang akan dipakai. Kemudian, akan ditentukan cara merepresentasikan OEF tersebut.

Implementasi

Tahap ini mencakup implementasi operasi-operasi aritmetika dalam OEF. Operasi-operasi-operasi yang diimplementasikan adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers pada aritmetika OEF menggunakan bahasa pemrograman C.

Lingkungan Pengembangan

Sistem dibangun dan diuji dengan menggunakan hardware dan software dengan spesifikasi tertentu. Hardware yang digunakan berupa netbook dengan spesifikasi:

1. Prosesor Intel Atom N450 1,66 GHz 2. RAM 1 GB

Software yang digunakan yaitu: 1. Sistem Operasi Windows 7 2. Bloodshed Dev-C++ 4.9.9.2 3. Notepad++

4. Winmerge Pengujian

Pengujian pada penelitian ini dilakukan dengan metode black box. Pengujian dilakukan dengan membandingkan output yang dihasilkan dengan output yang seharusnya. Karena setelah dicari, belum ditemukan software yang melakukan perhitungan serupa, output yang benar dicari secara hitung manual. Selain itu, dari pengujian ini akan dihitung kecepatan eksekusi dari masing-masing operasi. Operasi-operasi yang akan diuji adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers.

HASIL DAN PEMBAHASAN

Analisis

Dalam implementasi OEF, hal pertama yang harus dilakukan adalah menentukan parameter

n, c, m dan yang akan digunakan. Pada penelitian ini, konfigurasi p yang digunakan adalah p = 2nc dengan n, c > 0. OEF yang akan diimplementasikan adalah dengan panjang 8 bit dan 16 bit sehingga yang dicari adalah dipilih karena jika menggunakan nilai tersebut, tingkat keamanan sistem kriptografi kurva elips yang dihasilkan dapat setara dengan 1024 bit. Untuk pemilihan , dipilih yang merupakan elemen primitif (primitive root modulo p) dalam

.

Dalam penelitian ini, parameter yang digunakan untuk OEF 8 bit adalah

n = 7, c = 1, m = 21, = 3 Tipe I, nm = 147

n = 6, c = 3, m = 30, = 2 Tipe II, nm = 180

sedangkan untuk OEF 16 bit

(13)

Untuk memudahkan penyebutan dalam tulisan ini, OEF yang menggunakan parameter :

- n = 7, c = 1, m = 21 , = 3

selanjutnyaakandisebut OEF nomor 1

- n = 6, c = 3, m = 30 , = 2

selanjutnyaakandisebut OEF nomor 2

- n = 14, c = 3, m = 12, = 2

selanjutnyaakandisebut OEF nomor 3

- n = 13, c = 1, m = 13, = 2

selanjutnyaakandisebut OEF nomor 4 Anggota adalah polinomial, misalkan

a(z) ∈ maka a(z) dapat ditulis sebagai direpresentasikan dalam suatu array yang berisi nilai koefisien representasi dengan i

bersesuaian dengan indeks dari array tersebut. Representasi diilustrasikan pada Gambar 2.

Indeks m-1 ... 2 1 0

Isi ...

Gambar 2 Representasi pada array

Implementasi

Operasi-operasi aritmetika pada optimal extension field ini diimplementasikan dalam bahasa pemrograman C. Bahasa pemrograman C merupakan bahasa prosedural sehingga dalam pengimplementasiannya berbentuk fungsi. Beberapa jenis tipe data dalam bahasa pemrograman C dapat dilihat pada Tabel 1. Tabel 1 Tipe data dalam bahasa pemrograman

C

Tipe Data Panjang Bit

char 8

short 16

long 32

Untuk merepresentasikan nilai-nilai dari suku polinomial OEF, digunakan tipe data long unsigned yang mempunyai panjang 32 bit. Dalam penelitian ini, yang diimplementasikan adalah OEF 8 bit dan 16 bit. Oleh karena itu,

tipe data tersebut sudah dapat menampung hasil perkalian dalam aritmetika subfield yang nilai maksimalnya (216 - 1) (216 - 1) < (232 - 1). Dalam implementasinya, polinomial OEF direpresentasikan dengan tipe data struct sebagai berikut

Operasi aritmetika optimal extension field

ini diimplementasikan dalam bentuk fungsi-fungsi. Beberapa fungsi-fungsi dasar yang digunakan adalah :

a. copy_fpm

Fungsi ini digunakan sebagai operasi sama dengan (=) pada fpm. Fungsi ini akan menyalin nilai koefisien suku-suku polinomial dari suatu fpm ke fpm yang lain. Algoritme dari fungsi copy_fpm adalah sebagai berikut

Input : fpm b dan a

Dari algoritme tersebut terlihat bahwa fungsi copy_fpm akan mengalokasikan memori untuk

b sebesar a.length. Kemudian, semua variabel yang ada pada b diberikan nilai yang sama dengan a.

b. cmp_fpm

Fungsi ini digunakan untuk membandingkan nilai antara dua fpm. Fungsi ini mempunyai tiga kemungkinan return value (nilai kembali). Misal masukan pertama a dan masukan kedua

b, ketiga kemungkinan return value dari fungsi cmp_fpm dapat dilihat pada Tabel 2.

Tabel 2 Return value fungsi cmp_fpm Return Value Keterangan

(-1) a < b

0 a = b

(14)

Algoritme dari fungsi cmp_fpm adalah

Dari algoritme tersebut terlihat bahwa fungsi cmp_fpm akan membandingkan jumlah tempat di array yang digunakan pada a dan b. Jika a

lebih banyak daripada b maka a > b dan sebaliknya jika b lebih banyak daripada a maka

a < b. Jika array yang digunakan keduanya sama, maka akan dibandingkan mulai dari digit

array paling signifikan antara keduanya. Jika semua nilai digit array sama, maka a = b. Aritmetika pada subfield

Sebelum masuk ke algoritme optimal extension field , akan dijelaskan terlebih dahulu mengenai aritmetika pada subfield . Anggota direpresentasikan sebagai polinomial yang suku-sukunya mempunyai nilai koefisien. Operasi aritmetika yang digunakan pada suku-suku polinomial tersebut adalah aritmetika field prima . Dalam OEF, aritmetika field prima terhadap koefisien-koefisien polinomial ini biasa disebut sebagai aritmetika pada subfield.

Misal a(z) dan b(z) ∈ , maka a(z) dan

b(z) dapat ditulis sebagai berikut

a(z) = + ··· + + +

b(z) = + ··· + + + Aritmetika yang digunakan pada a(z) dan b(z) secara keseluruhan adalah aritmetika optimal extension field. Akan tetapi, aritmetika yang digunakan pada operasi antar koefisien elemen-elemen a(z) dan b(z) yaitu ai dan bi adalah aritmetika field prima .

Operasi-operasi aritmetika subfield yang digunakan pada aritmetika adalah sebagai berikut :

Dengan begitu, dapat dipastikan bahwa c∈ . Aritmetika OEF mendapat keuntungan dengan operasi ini karena tidak menyebabkan adanya

carry.

b. Pengurangan

Operasi pengurangan dalam juga merupakan operasi kurang modulo p

c = (a - b) mod p

Nilai a , b < p maka (a - b) > -p. Oleh karena itu, langkah modulo p dapat dengan mudah dilakukan dengan

p - b + a jika a < b

Dengan begitu, dapat dipastikan bahwa c ∈ . c. Perkalian modulo p yang dilakukan akan memastikan c

dan membuat panjang bit c menjadi w

kembali. Dalam penelitian ini, operasi modulo dalam dilakukan dengan suatu fungsi khusus.

d. Reduksi

Operasi a mod b bila dijalankan secara konvensional adalah mengurangkan a dengan b

sampai a < b. Akan tetapi, dengan menggunakan algoritme reduksi cepat yang dikemukakan Baley (2000) berikut, operasi modulo dapat dilakukan dengan lebih efisien. Algoritmenya adalah sebagai berikut

Input : n, c, p = 2nc, x < p2

Output : r = x modulo p 1. q0  x >> n

(15)

3. rr0 invers dalam yang diimplementasikan dalam penelitian ini, yaitu algoritme invers Extended

Euclidean dan algoritme Binary Invers. Algoritme Extended Euclidean

Operasi-operasi aritmetika pada yang diimplementasikan adalah :

a. Penjumlahan

Fungsi ini melakukan proses penjumlahan dua anggota . Rumusnya adalah sebagai

(16)

hasil tiap penjumlahan direduksi dengan cara mengurangkannya dengan p.

b. Pengurangan

Fungsi ini melakukan proses pengurangan dua anggota . Rumus dan algoritmenya hampir sama dengan penjumlahan sebagai berikut

Algoritmenya adalah sebagai berikut Input : a dan b dengan m koefisien

Dengan melihat algoritme tersebut, dapat diketahui bahwa algoritme pengurangan untuk dilakukan dengan mengurangkan koefisien-koefisien representasi polinomial yang bersesuaian. Kemudian jika diperlukan (ai < bi ), p dikurangkan terlebih dahulu dengan bi kemudian baru ditambah dengan ai.

c. Perkalian

Dalam penelitian ini, diimplementasikan dua algoritme perkalian. Kedua algoritme tersebut adalah algoritme Schoolbook dan algoritme Karatsuba.

Algoritme perkalian Schoolbook

Algoritme Schoolbook adalah metode perkalian yang sudah biasa kita pakai sejak sekolah dasar. Rumusnya :

( ) = ( ) ( )

Algoritme perkalian Schoolbook adalah sebagai berikut

Dengan menggunakan algoritme Schoolbook, operasi perkalian dilakukan sebanyak n2 dan penjumlahan sebanyak (n-1)2(Mahfouz 2004). Algoritme perkalian Karatsuba

Waktu untuk melakukan operasi kali lebih lama dibandingkan waktu untuk melakukan operasi jumlah. Metode perkalian Karatsuba mempunyai keunggulan dengan menurunkan jumlah operasi perkalian yang dilakukan. Pada penelitian ini, algoritme Karatsuba yang digunakan adalah algoritme Karatsuba satu iterasi.

Contoh penggunaan algoritme Karatsuba pada polinomial berderajat 1

a(z)b(z) = ( + ) ( + )

= + (( + ) ( + ) –

– )z +

(17)

Schoolbook, operasi perkalian yang dilakukan adalah 4 kali.

Selain menambah banyaknya operasi jumlah, algoritme ini juga memerlukan variabel yang lebih banyak untuk melakukan perhitungan. Algoritme Karatsuba satu iterasi adalah sebagai berikut

Mahfouz (2004) mengatakan bahwa salah satu hal yang mempengaruhi kecepatan algoritme Karatsuba adalah rasio antara waktu eksekusi operasi kali dan waktu eksekusi operasi jumlah. Rasio yang diperlukan agar algoritme ini lebih cepat dibandingkan algoritme Schoolbook adalah lebih besar dari 3. Contoh untuk m = 3

misal r adalah rasio

r = Tmul / Tadd

Tmul = waktu operasi kali

Tadd = waktu operasi tambah kompleksitas waktu algoritme Schoolbook

TSB = 9Tmul + 4Tadd = (9r + 4) Tadd Sedangkan kompleksitas algoritme Karatsuba

TKA = 6Tmul + 13Tadd = (6r + 13) Tadd

Agar algoritme Karatsuba lebih cepat, maka

TSB > TKA

Operasi kuadrat (pemangkatan dua) adalah sebuah bentuk khusus dari perkalian. Operasi kuadrat dapat dituliskan sebagai perkalian

( ) ( ) dengan ( ) = ( ). Operasi ini

didefinisikan secara khusus karena memberikan suatu keuntungan dalam efisiensi operasi. Hasil dari operasi kali polinomial berderajat dua

( )dan ( ) adalah

(18)

17. end if 18. end for 19. c2k – 2  Dk-1 e. Reduksi

Perkalian dua polinomial berderajat m pada umumnya akan menghasilkan polinomial berderajat 2m. Oleh karena itu, perlu dilakukan reduksi OEF untuk memastikan hasil perkalian

c(z) ∈ . Rumus reduksi dalam aritmetika

Fungsi ini merupakan fungsi pemangkatan pada OEF. Algoritme yang digunakan pada fungsi ini adalah left to right exponentiation. Algoritme ini bekerja dengan menggunakan nilai biner dari bilangan pemangkatnya (k). Algoritme ini melakukan proses perkalian polinomial sebanyak n dimana n adalah banyaknya bit k yang bernilai 1 dan melakukan operasi kuadrat sebanyak t dimana t adalah

Pada penelitian ini, diimplementasikan dua fungsi pangkat. Pertama adalah fungsi pangkat yang operasi kali-nya menggunakan algoritme

Schoolbook dan kedua adalah fungsi pangkat yang operasi kali-nya menggunakan algoritme Karatsuba. Algoritme ini relatif sederhana untuk diimplementasikan karena hanya memerlukan beberapa operasi perkalian untuk menurunkan invers dalam menjadi invers dalam subfield

. Untuk melakukan perhitungan efisien

= ⋯ mod f

Dengan bantuan pemetaan Frobenius tersebut, penghitungan dapat dilakukan secara efisien menggunakan algoritme

additionchain. Dalam penelitian ini, pemetaan Frobenius hanya dilakukan sampai i = 2. Hal ini ditujukan untuk menyederhanakan algoritme

additionchain secara umum. Algoritme

additionchain sendiri adalah sebagai berikut Input : a, p, m, , n, c

Output : b = = ⋯ mod f

(19)

4. bt1

Langkah selanjutnya setelah didapat adalah mencari . dapat dihitung dengan

=

Nilai adalah sebuah bilangan ∈ . Langkah selanjutnya, yaitu mencari invers dari dilakukan menggunakan algoritme invers dalam aritmetika sehingga waktu eksekusinya pun relatif cepat.

Langkah terakhir adalah mengalikan ( )

dengan dan didapatkan

= ( )

Algoritme invers secara lengkap adalah Input : a∈ , a≠ 0

Fungsi invers dalam penelitian ini diimplementasikan dalam 4 kombinasi, yaitu

 algoritme perkalian menggunakan Karatsuba dan algoritme invers dalam menggunakan Binary Invers

 algoritme perkalian menggunakan Karatsuba dan algoritme invers dalam menggunakan Extended Euclidean

 algoritme perkalian menggunakan

Schoolbook dan algoritme invers dalam menggunakan Binary Invers

 algoritme perkalian menggunakan

Schoolbook dan algoritme invers dalam menggunakan Extended Euclidean. Pengujian

Pengujian dilakukan dengan cara membandingkan output yang dihasilkan sistem dengan output yang dihitung dengan cara manual sehingga dapat diuji kebenaran dari

output tersebut. Pengujian dilakukan sebanyak 10 kali menggunakan koefisien-koefisien polinomial yang ditentukan secara acak. Kemudian, setelah dipastikan nilai kebenarannya, pada masing-masing fungsi aritmetika OEF dihitung nilai rata-rata waktu eksekusinya. Hal tersebut dilakukan lagi sebanyak 10 kali kemudian dihitung waktu rata-rata dari waktu rata-rata-rata-rata hasil pengujian terhadap masing-masing fungsi aritmetika OEF. Invers dalam

Waktu eksekusi operasi invers menggunakan dua algoritme invers tersebut terdapat pada Tabel 3.

Dari Tabel 3 terlihat bahwa kecepatan rata-rata eksekusi menggunakan algoritme Binary Invers

lebih cepat daripada menggunakan algoritme

Extended Euclidean sejalan dengan yang dikemukakan oleh Crandall dan Promerance (2005) bahwa algoritme Binary sering lebih cepat dibandingkan Euclid. Hali ini terjadi karena algoritme Binary Invers menggunakan operasi shift, tambah, dan kurang yang cost-nya lebih kecil dibanding operasi kali dan bagi yang digunakan pada algoritme Extended Euclidean. Penjumlahan

Hasil pengujian untuk fungsi penjumlahan ditampilkan pada Tabel 4.

Tabel 4 Waktu eksekusi operasi jumlah

(20)

OEF nomor 1 lebih cepat dibanding OEF nomor 2 karena besar m pada OEF nomor 1 lebih kecil dibanding pada OEF nomor 2. Begitu juga OEF nomor 3 lebih cepat daripada OEF nomor 4 karena jumlah m yang lebih kecil.

Pengurangan

Selanjutnya, waktu eksekusi operasi pengurangan ini dapat dilihat pada Tabel 5. Tabel 5 Waktu eksekusi operasi kurang

OEF PARAMETER Waktu rata-rata (µs) OEF nomor 2. Begitu juga OEF nomor 3 lebih cepat daripada OEF nomor 4 karena nilai m

yang lebih kecil. Perkalian

Waktu eksekusi operasi perkalian dapat dilihat pada Tabel 6.

Tabel 6 Waktu eksekusi operasi kali

OEF PARAMETER Waktu rata-rata (µs)

Pada operasi kali yang menggunakan algoritme

Schoolbook, waktu eksekusi pada OEF nomor 1 lebih cepat dibanding dengan OEF nomor 2. Begitu juga menggunakan OEF nomor 3 lebih cepat dibanding menggunakan OEF nomor 4. Dari sini juga terlihat bahwa besar m sangat berpengaruh pada operasi kali.

Sama seperti pada algoritme Schoolbook, pada operasi kali yang menggunakan algoritme Karatsuba, waktu eksekusi pada OEF nomor 1 lebih cepat dibanding dengan OEF nomor 2. Begitu juga menggunakan OEF nomor 3 lebih cepat dibanding menggunakan OEF nomor 4. Dari sini juga terlihat bahwa besar m sangat berpengaruh pada operasi kali.

Apabila dibandingkan antara algoritme

Schoolbook dan algoritme Karatsuba, terlihat bahwa waktu eksekusi pada operasi kali yang menggunakan algoritme Schoolbook lebih cepat dibanding jika menggunakan algoritme Karatsuba. Hal ini terjadi karena algoritme

Karatsuba membutuhkan banyak variabel sehingga memerlukan lebih banyak waktu juga untuk mengakses memory. Selain itu, hal ini juga karena rasio (waktu eksekusi operasi kali / waktu operasi tambah) pada mesin yang digunakan kurang dari 3. Rata-rata waktu dari 1000 operasi kali dengan bilangan acak pada komputer yang digunakan pada penelitian ini adalah 3,024 µs sedangkan untuk operasi tambah adalah 2,544 µs. Jadi, rasionya kurang dari 3 yaitu sekitar 1,2.

Kuadrat

Waktu eksekusi operasi kuadrat dapat dilihat pada Tabel 7.

Tabel 7 Waktu eksekusi operasi kuadrat OEF PARAMETER Waktu rata-rata (µs) Waktu operasi menggunakan algoritme kuadrat secara khusus memang lebih cepat dibandingkan menggunakan algoritme perkalian

Schoolbook. Hal ini terjadi karena operasi kali yang dilakukan pada algoritme kuadrat lebih sedikit dibanding jika menggunakan algoritme

Schoolbook. Reduksi

Tabel 8 menunjukkan waktu eksekusi operasi reduksi pada .

Tabel 8 Waktu eksekusi operasi reduksi

(21)

Pangkat

Untuk waktu eksekusi fungsi pangkat ditampilkan pada Tabel 9.

Fungsi pangkat bila menggunakan algoritme

Schoolbook untuk mengalikan polinomial memang lebih cepat waktu eksekusinya. Hal ini sejalan dengan perbandingan waktu operasi kali antara dua algoritme tersebut pada penelitian ini, yaitu perkalian menggunakan algoritme

Schoolbook lebih cepat dibanding menggunakan algoritme Karatsuba. Selain itu, juga terlihat bahwa hal yang mempengaruhi kecepatan eksekusi fungsi pangkat ini adalah nilai dari parameter m. Semakin besar nilai m, semakin lama waktu eksekusinya.

Invers dalam

Waktu eksekusi fungsi invers yang menggunakan algoritme perkalian Schoolbook

ditampilkan pada Tabel 10. Waktu eksekusi fungsi invers yang menggunakan algoritme perkalian Karatsuba ditampilkan pada Tabel 11. Tabel 10 Waktu eksekusi invers : algoritme

perkalian Schoolbook

OEF PARAMETER Waktu rata-rata (µs) Dari dua tabel tersebut dapat disimpulkan bahwa operasi invers yang menggunakan algoritme perkalian Schoolbook mempunyai waktu eksekusi yang lebih cepat dibandingkan dengan operasi invers yang menggunakan algoritme perkalian Karatsuba. Jika dilihat dari algoritme invers dalam , operasi invers yang

menggunakan Binary Invers lebih cepat waktu eksekusinya dibandingkan dengan operasi invers yang menggunakan algoritme Extended

Euclidean. Dari sini dapat disimpulkan bahwa kombinasi operasi invers terbaik adalah menggunakan algoritme perkalian Schoolbook

dan algoritme Binary Invers untuk perhitungan invers dalam -nya.

KESIMPULAN DAN SARAN

Kesimpulan

Implementasi Aritmetika Optimal Extension

Field (OEF) menggunakan Bahasa Pemrograman C telah berhasil dilakukan. Aritmetika optimal extension field mempunyai beberapa keunggulan dalam komputasi. Hal yang paling penting dalam OEF adalah memilih parameter yang sesuai dengan arsitektur mesin dan memenuhi tingkat keamanan yang ingin dicapai. OEF dengan parameter c = 1 mempunyai keunggulan perhitungan modulo dalam yang lebih cepat. OEF dengan parameter = 2 mempunyai keunggulan dalam mempercepat perhitungan reduksi OEF.

Dari pengujian yang dilakukan sebanyak 10 kali dengan polinomial yang dipilih secara acak untuk masing-masing operasi pada optimal extension field, sistem menghasilkan output

yang benar. Dari penelitian ini, didapat beberapa kesimpulan. Pada penjumlahan dan pengurangan, terlihat bahwa semakin besar nilai parameter m semakin lama waktu eksekusinya. Untuk operasi kali, waktu eksekusi menggunakan algoritme Schoolbook lebih cepat dibandingkan menggunakan algoritme Karatsuba. Salah satu hal yang menyebabkan algoritme Schoolbook lebih cepat dari Karatsuba adalah rasio antara waktu perkalian dan penjumlahan pada mesin yang digunakan pada penelitian ini adalah kurang dari 3 yaitu 1,2.

Operasi kuadrat yang didefinisikan secara khusus lebih cepat waktu eksekusinya dibandingkan jika digunakan algoritme perkalian Schoolbook. Pada operasi reduksi, OEF yang mempunyai nilai = 2 mempunyai waktu eksekusi lebih cepat dibanding nilai lainnya. Selain itu, semakin besar nilai m

semakin lama juga waktu eksekusinya. Operasi pangkat yang menggunakan algoritme

(22)

algoritme perkalian Schoolbook dan algoritme

Binary Invers untuk perhitungan invers dalam -nya.

Saran

Penelitian ini dapat dikembangkan lebih lanjut dengan mencoba kombinasi parameter yang lebih banyak. Untuk operasi perkalian, dapat dicoba algoritme Karatsuba secara rekursif agar dapat dibandingkan kinerjanya dengan algoritme Karatsuba satu iterasi. Penelitian ini juga dapat dikembangkan dengan mencoba membangun sistem kriptografi kurva elips menggunakan aritmetika optimal extension field hasil dari penelitian ini.

DAFTAR PUSTAKA

Baley DV. 2000. Computation in Optimal Extension Fields [tesis]. Worcester Polytechnic Institute.

Bailey DV, Paar C. 1998. Optimal Extension Fields for Fast Arithmetic in Public-Key Algorithm. Springer Lecture Notes in Computer Science 1463:472-485.

Cohen H, Frey G, Rosen KH, editor. 2006.

Handbook of Elliptic and Hyperelliptic Curve Cryptography. New York : Chapman & Hall/CRC.

Crandall R, Pomerance C. 2005. Prime Number A Computational Perspective. Ed 2. New York : Springer Science+Business Media, Inc.

Hankerson D, Menezes A, Vanstone S. 2004.

Guide to Elliptic Curve Cryptography. New York : Springer.

Mahfouz A.M. 2004. Elliptic Curve Cryptosystem over Optimal Extension Fields for Computationally Constrained Devices [disertasi]. Pretoria : University of Pretoria.

(23)
(24)

ABSTRACT

LUQMAN AZIZ FEBRIAN NUGRAHA. Optimal Extension Field (OEF) Arithmetic Implementation Using C Programming Language. Under the direction of SUGI GURITMAN.

Cryptography is the science to keep the message secure. Cryptography involves encryption and decryption of messages. Nowadays, the minimum key size for public key cryptography to reach the minimum security is claimed to be 1024 bit (RSA). With somekind of algorithm, the desktop computer that has 32 bit machine architecture could compute a number with that size easily, but not with the smaller machine that has only 8 bit or 16 bit architecture like handphones and smart cards. Those small machines need more time or maybe unable to compute a number with that size. Elliptic Curve Cryptography (ECC) is the solution of this problem. ECC has a great advantage. It can give a high security level of cryptography with smaller key size. As an example, ECC key with the size of 160 bit is claimed to be at the same level of security as compared to the conventional RSA key with 1024 bit of size. ECC implements a different kind of arithmetic field than that of the usual cryptosystem.

In this research, Optimal Extension Field (OEF) is implemented. The arithmetic operations that were implemented are addition, susbtraction, multiplication, squaring, reduction, exponentiation and inversion. OEF arithmetic depends on the parameters n, c, m and that were chosen. The result shows that in addition and substraction, the time of execution is mostly influenced by parameter m. In multiplication, parameter m also influences the execution time. Multiplication with Schoolbook algorithm is faster than that of using Karatsuba algorithm with one iteration. In squaring, using squaring algorithm is faster than that of using ordinary multiplication algorithm. In reduction, OEF with parameter =2 executes faster than other value of . Left to right exponentiation using Schollbook multiplication executes faster than that of using Karatsuba multiplication. The fastest algorithm for OEF inversion is using Itoh and Tsujii inversion algorithm with the combination of Frobenius map, addition-chain algorithm and Binary invers algorithm for invers in the subfield .

(25)

PENDAHULUAN

Latar Belakang

Kriptografi merupakan suatu solusi mengamankan pesan apabila komunikasi dilakukan pada jalur yang tidak aman. Bila menggunakan protokol kriptografi, sebelum dikirimkan, pesan diubah terlebih dahulu menggunakan suatu kunci tertentu menjadi sebuah bentuk data yang tidak dapat dibaca secara langsung. Proses tersebut disebut enkripsi. Setelah pesan sampai, pihak penerima akan mengubah kembali pesan agar dapat dibaca menggunakan pasangan kunci enkripsi. Proses tersebut disebut dekripsi. Dengan hal ini, pengiriman pesan menjadi lebih aman.

Sejalan dengan kemajuan teknologi, kajian mengenai kriptografi pun semakin berkembang. Perkembangan ini memicu diciptakannya ber-bagai algoritme kriptografi. Sebagian besar algoritme kriptografi yang ada menekankan keamanannya pada komputasi aritmetika yang rumit dan perhitungan yang sangat sulit. Sebagai contoh, algoritme RSA dalam per-hitungannya untuk membangkitkan kunci publik dan kunci privat membutuhkan bilangan

n yang merupakan hasil perkalian dari dua buah bilangan prima p dan q dengan panjang bit yang sama. Saat ini, panjang bit minimal untuk n

yang dibutuhkan agar algoritma RSA dikatakan aman adalah 1024 bit (Hankerson et al. 2004).

Sebuah perangkat komputer dengan prosesor 32 bit atau 64 bit yang ada sekarang ini hanya mampu melakukan operasi aritmetika dan memberikan hasil sepanjang bit tersebut. Akan tetapi, dengan menggunakan suatu perangkat lunak yang menerapkan algoritme tertentu, komputer mampu melakukan operasi aritmetika pada bilangan dengan panjang bit lebih dari itu. Selain itu, hal itu juga ditunjang kemampuan prosesor yang cepat.

Namun, tidak sama halnya dengan mesin kecil yang hanya ditunjang prosesor 8 bit atau 16 bit. Walaupun menggunakan bantuan perangkat lunak khusus, mesin ini akan tetap kesulitan atau mungkin tidak mampu melakukan operasi aritmetika pada bilangan yang besar untuk memperoleh tingkat keamanan minimal dari algoritme kriptografi seperti RSA.

Elliptic curve cryptography atau kriptografi kurva elips adalah salah satu solusi untuk membangun sistem kriptografi yang lebih efisien untuk mendapatkan tingkat keamamanan yang tinggi. Sebagai contoh, sebuah kunci

kurva elips sepanjang 160 bit mempunyai tingkat keamanan yang setara dengan kunci RSA sepanjang 1024 bit (Hankerson et al.

2004). Dengan menggunakan kriptografi kurva elips ini, sistem kriptografi dengan tingkat keamanan yang tinggi juga dapat diterapkan pada mesin-mesin kecil seperti smart card atau

handphone.

Dasar dari kriptografi kurva elips ini adalah pada penggunaan field aritmetika yang berbeda dari algoritme kriptografi biasa. Salah satu field

aritmetika yang dapat diterapkan pada kriptografi kurva elips adalah aritmetika

optimal extension field. Pada penelitian ini, akan diimplementasikan aritmetika optimal extension field 8 bit dan 16 bit menggunakan bahasa pemrograman C.

Tujuan

Tujuan dari penelitian ini adalah :

1. mengimplementasikan operasi-operasi aritmetika Optimal Extension Field (OEF) menggunakan bahasa pemrograman C. Selanjutnya, akan diukur kinerja dari operasi-operasi tersebut.

2. membandingkan keunggulan pada beberapa algoritme yang diterapkan.

Ruang Lingkup

Ruang lingkup penelitian ini difokuskan pada implementasi untuk operasi penjumlahan, pengurangan, perkalian, reduksi, kuadrat, pemangkatan dan invers pada OEF dengan menggunakan bahasa pemrograman C. OEF yang diimplementasikan adalah 8 bit dan 16 bit dengan 4 macam kombinasi parameter OEF yang berbeda.

Manfaat Penelitian

Penelitian ini dapat bermanfaat sebagai dasar operasi aritmetika kriptografi kurva elips yang dapat memberikan tingkat keamanan yang tinggi dengan panjang kunci yang lebih kecil. Operasi-operasi aritmetika ini dapat diimplementasikan pada sistem dengan arsitektur mesin 8 bit atau 16 bit.

TINJAUAN PUSTAKA

Field

(26)

PENDAHULUAN

Latar Belakang

Kriptografi merupakan suatu solusi mengamankan pesan apabila komunikasi dilakukan pada jalur yang tidak aman. Bila menggunakan protokol kriptografi, sebelum dikirimkan, pesan diubah terlebih dahulu menggunakan suatu kunci tertentu menjadi sebuah bentuk data yang tidak dapat dibaca secara langsung. Proses tersebut disebut enkripsi. Setelah pesan sampai, pihak penerima akan mengubah kembali pesan agar dapat dibaca menggunakan pasangan kunci enkripsi. Proses tersebut disebut dekripsi. Dengan hal ini, pengiriman pesan menjadi lebih aman.

Sejalan dengan kemajuan teknologi, kajian mengenai kriptografi pun semakin berkembang. Perkembangan ini memicu diciptakannya ber-bagai algoritme kriptografi. Sebagian besar algoritme kriptografi yang ada menekankan keamanannya pada komputasi aritmetika yang rumit dan perhitungan yang sangat sulit. Sebagai contoh, algoritme RSA dalam per-hitungannya untuk membangkitkan kunci publik dan kunci privat membutuhkan bilangan

n yang merupakan hasil perkalian dari dua buah bilangan prima p dan q dengan panjang bit yang sama. Saat ini, panjang bit minimal untuk n

yang dibutuhkan agar algoritma RSA dikatakan aman adalah 1024 bit (Hankerson et al. 2004).

Sebuah perangkat komputer dengan prosesor 32 bit atau 64 bit yang ada sekarang ini hanya mampu melakukan operasi aritmetika dan memberikan hasil sepanjang bit tersebut. Akan tetapi, dengan menggunakan suatu perangkat lunak yang menerapkan algoritme tertentu, komputer mampu melakukan operasi aritmetika pada bilangan dengan panjang bit lebih dari itu. Selain itu, hal itu juga ditunjang kemampuan prosesor yang cepat.

Namun, tidak sama halnya dengan mesin kecil yang hanya ditunjang prosesor 8 bit atau 16 bit. Walaupun menggunakan bantuan perangkat lunak khusus, mesin ini akan tetap kesulitan atau mungkin tidak mampu melakukan operasi aritmetika pada bilangan yang besar untuk memperoleh tingkat keamanan minimal dari algoritme kriptografi seperti RSA.

Elliptic curve cryptography atau kriptografi kurva elips adalah salah satu solusi untuk membangun sistem kriptografi yang lebih efisien untuk mendapatkan tingkat keamamanan yang tinggi. Sebagai contoh, sebuah kunci

kurva elips sepanjang 160 bit mempunyai tingkat keamanan yang setara dengan kunci RSA sepanjang 1024 bit (Hankerson et al.

2004). Dengan menggunakan kriptografi kurva elips ini, sistem kriptografi dengan tingkat keamanan yang tinggi juga dapat diterapkan pada mesin-mesin kecil seperti smart card atau

handphone.

Dasar dari kriptografi kurva elips ini adalah pada penggunaan field aritmetika yang berbeda dari algoritme kriptografi biasa. Salah satu field

aritmetika yang dapat diterapkan pada kriptografi kurva elips adalah aritmetika

optimal extension field. Pada penelitian ini, akan diimplementasikan aritmetika optimal extension field 8 bit dan 16 bit menggunakan bahasa pemrograman C.

Tujuan

Tujuan dari penelitian ini adalah :

1. mengimplementasikan operasi-operasi aritmetika Optimal Extension Field (OEF) menggunakan bahasa pemrograman C. Selanjutnya, akan diukur kinerja dari operasi-operasi tersebut.

2. membandingkan keunggulan pada beberapa algoritme yang diterapkan.

Ruang Lingkup

Ruang lingkup penelitian ini difokuskan pada implementasi untuk operasi penjumlahan, pengurangan, perkalian, reduksi, kuadrat, pemangkatan dan invers pada OEF dengan menggunakan bahasa pemrograman C. OEF yang diimplementasikan adalah 8 bit dan 16 bit dengan 4 macam kombinasi parameter OEF yang berbeda.

Manfaat Penelitian

Penelitian ini dapat bermanfaat sebagai dasar operasi aritmetika kriptografi kurva elips yang dapat memberikan tingkat keamanan yang tinggi dengan panjang kunci yang lebih kecil. Operasi-operasi aritmetika ini dapat diimplementasikan pada sistem dengan arsitektur mesin 8 bit atau 16 bit.

TINJAUAN PUSTAKA

Field

(27)

penjumlahan (+) dan perkalian (∙), dengan syarat:

1. ( , +) merupakan grup komutatif dengan nilai identitas 0.

yang anggotanya terdiri atas 0 sampai dengan p -1 dengan p bilangan prima. Operasi aritmetika pada field prima merupakan operasi modulo p

sehingga hasilnya merupakan struktur field

(Hankerson et al. 2004).

Optimal Extension Field (OEF)

OEF adalah field berhingga dengan : 1. = 2 ± untuk n dan c berupa integer

dengan log2|c| < n/2; dan

2. Terdapat sebuah polinomial tak-teruraikan

f(z) = zm – ada dalam [ ]

Jika c∈{+1}, maka OEF disebut Tipe I. Jika = 2, maka OEF disebut Tipe II. OEF Tipe I mempunyai keuntungan aritmetika yang sederhana dalam subfield , sedangkan OEF Tipe II memungkinkan penyederhanaan dalam aritmetika extension field (Hankerson et al. 2004).

Yang membuat hasil pangkatnya 1 adalah 3 dan 6. Karena 3 < 6, maka order dari 2 adalah 3. jumlah anggota selain nol. Oleh karena itu, 3 merupakan elemen primitif dalam .

Menurut Bailey dan Paar (1998), misalkan

dan sebagai akibat dari teorema tersebut adalah misalkan adalah elemen primitif (primitive root modulo n) dalam dan m adalah pembagi dari p-1. Maka, xm – adalah suatu polinomial tak-teruraikan.

Algoritme Karatsuba Satu Iterasi

Rumus umum untuk algoritme Karatsuba satu iterasi adalah :

misalkan ada dua polinomial berderajat d

(28)

Untuk genap, 0 < i < 2m-2 , nilai adalah dalam seperti algoritme extended Euclidean

dan algoritme binary.

Algoritme extended Euclidean merupakan perluasan dari algoritme Euclidean untuk mencari nilai x dan y sehingga ax + by = d

dimana d = gcd(a,b). Algoritme Binary Invers

merupakan algoritme invers yang mengganti operasi pembagian pada algoritme extended Euclidean dengan operasi shift (pembagian dengan 2) dan pengurangan (Hankerson et al.

proses prekomputasi karena nilainya bersifat tetap (Hankerson et al. 2004).

Menggunakan pemetaan Frobenius ini memberi kemudahan dalam melakukan perhitungan . Untuk menghitung , cukup dilakukan perkalian koefisien polinomial dengan nilai koefisien Frobenius yang bersesuaian.

Algoritme Addition-Chain

Algoritme ini digunakan untuk menghitung

= ⋯ dengan cepat

menggunakan bantuan Pemetaan Frobenius. Contoh penggunaan algoritme ini untuk m = 5

T1  ap satu algoritme pemangkatan. Ide dari algoritme ini adalah memangkatkan a(z) sampai an(z). Contoh, menghitung a13 pada field dapat dilakukan dengan

= = ( ( . ) ) .

Contoh tersebut dapat diuraikan sebagai berikut a. tulis 13 dalam biner : 1101

b. inisialisasi nilai awal hasil pangkat x = 1 c. mulai dari bit paling signifikan

- x = x2 mod p

- jika nilai bitnya 1, x = xa mod p

(Mahfouz 2004; Hankerson et al. 2004). Pengujian Blackbox

Pengujian blackbox memfokuskan pada keperluan fungsional dari software sehingga metode ini memungkinkan pengembang

software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Pengujian blackbox

berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :

1. kesalahan fungsi 2. kesalahan interface

3. kesalahan struktur data 4. kesalahan performa

5. kesalahan inisialisasi dan terminasi

Salah satu metode pengujian blackbox

adalah comparison testing. Dalam beberapa situasi dimana keandalan suatu software amat kritis, beberapa aplikasi sering menggunakan

software dan hardware ganda. Ketika software

ganda dibuat, tim pengembang software lainnya membangun versi independen dari aplikasi dengan spesifikasi yang sama. Setiap versi dapat diuji dengan data uji yang sama untuk memastikan seluruhnya menyediakan output

yang sama. Kemudian seluruh versi dieksekusi secara paralel dengan perbandingan hasil real

-time untuk memastikan konsistensi (Pressman 2001).

METODE PENELITIAN

(29)

Untuk genap, 0 < i < 2m-2 , nilai adalah dalam seperti algoritme extended Euclidean

dan algoritme binary.

Algoritme extended Euclidean merupakan perluasan dari algoritme Euclidean untuk mencari nilai x dan y sehingga ax + by = d

dimana d = gcd(a,b). Algoritme Binary Invers

merupakan algoritme invers yang mengganti operasi pembagian pada algoritme extended Euclidean dengan operasi shift (pembagian dengan 2) dan pengurangan (Hankerson et al.

proses prekomputasi karena nilainya bersifat tetap (Hankerson et al. 2004).

Menggunakan pemetaan Frobenius ini memberi kemudahan dalam melakukan perhitungan . Untuk menghitung , cukup dilakukan perkalian koefisien polinomial dengan nilai koefisien Frobenius yang bersesuaian.

Algoritme Addition-Chain

Algoritme ini digunakan untuk menghitung

= ⋯ dengan cepat

menggunakan bantuan Pemetaan Frobenius. Contoh penggunaan algoritme ini untuk m = 5

T1  ap satu algoritme pemangkatan. Ide dari algoritme ini adalah memangkatkan a(z) sampai an(z). Contoh, menghitung a13 pada field dapat dilakukan dengan

= = ( ( . ) ) .

Contoh tersebut dapat diuraikan sebagai berikut a. tulis 13 dalam biner : 1101

b. inisialisasi nilai awal hasil pangkat x = 1 c. mulai dari bit paling signifikan

- x = x2 mod p

- jika nilai bitnya 1, x = xa mod p

(Mahfouz 2004; Hankerson et al. 2004). Pengujian Blackbox

Pengujian blackbox memfokuskan pada keperluan fungsional dari software sehingga metode ini memungkinkan pengembang

software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Pengujian blackbox

berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :

1. kesalahan fungsi 2. kesalahan interface

3. kesalahan struktur data 4. kesalahan performa

5. kesalahan inisialisasi dan terminasi

Salah satu metode pengujian blackbox

adalah comparison testing. Dalam beberapa situasi dimana keandalan suatu software amat kritis, beberapa aplikasi sering menggunakan

software dan hardware ganda. Ketika software

ganda dibuat, tim pengembang software lainnya membangun versi independen dari aplikasi dengan spesifikasi yang sama. Setiap versi dapat diuji dengan data uji yang sama untuk memastikan seluruhnya menyediakan output

yang sama. Kemudian seluruh versi dieksekusi secara paralel dengan perbandingan hasil real

-time untuk memastikan konsistensi (Pressman 2001).

METODE PENELITIAN

(30)

dapat dilihat pada Gambar 1. Penjelasan untuk masing-masing langkah adalah sebagai berikut : Studi Literatur

Tahapan ini diperlukan untuk mempelajari prinsip dasar aritmetika optimal extension field. Selain itu, juga mempelajari algoritme serta kajian umum lain yang berkaitan dengan field

tersebut.

Gambar 1 Metodologi Penelitian Analisis

Dalam aritmetika OEF, hal yang paling penting adalah penentuan parameter yang digunakan, yaitu n, c, m dan . Hankerson et al. (2004) dan Cohen et al. (2006) menyebutkan bahwa keamanan kunci kriptografi kurva elips 160 bit setara dengan kunci RSA konvensional 1024 bit. Oleh karena itu, dilakukan pemilihan parameter sehingga nm mendekati 160.

Pada tahap ini, dilakukan analisis mencakup penentuan nilai parameter n, c, m dan yang akan dipakai. Kemudian, akan ditentukan cara merepresentasikan OEF tersebut.

Implementasi

Tahap ini mencakup implementasi operasi-operasi aritmetika dalam OEF. Operasi-operasi-operasi yang diimplementasikan adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers pada aritmetika OEF menggunakan bahasa pemrograman C.

Lingkungan Pengembangan

Sistem dibangun dan diuji dengan menggunakan hardware dan software dengan spesifikasi tertentu. Hardware yang digunakan berupa netbook dengan spesifikasi:

1. Prosesor Intel Atom N450 1,66 GHz 2. RAM 1 GB

Software yang digunakan yaitu: 1. Sistem Operasi Windows 7 2. Bloodshed Dev-C++ 4.9.9.2 3. Notepad++

4. Winmerge Pengujian

Pengujian pada penelitian ini dilakukan dengan metode black box. Pengujian dilakukan dengan membandingkan output yang dihasilkan dengan output yang seharusnya. Karena setelah dicari, belum ditemukan software yang melakukan perhitungan serupa, output yang benar dicari secara hitung manual. Selain itu, dari pengujian ini akan dihitung kecepatan eksekusi dari masing-masing operasi. Operasi-operasi yang akan diuji adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers.

HASIL DAN PEMBAHASAN

Analisis

Dalam implementasi OEF, hal pertama yang harus dilakukan adalah menentukan parameter

n, c, m dan yang akan digunakan. Pada penelitian ini, konfigurasi p yang digunakan adalah p = 2nc dengan n, c > 0. OEF yang akan diimplementasikan adalah dengan panjang 8 bit dan 16 bit sehingga yang dicari adalah dipilih karena jika menggunakan nilai tersebut, tingkat keamanan sistem kriptografi kurva elips yang dihasilkan dapat setara dengan 1024 bit. Untuk pemilihan , dipilih yang merupakan elemen primitif (primitive root modulo p) dalam

.

Dalam penelitian ini, parameter yang digunakan untuk OEF 8 bit adalah

n = 7, c = 1, m = 21, = 3 Tipe I, nm = 147

n = 6, c = 3, m = 30, = 2 Tipe II, nm = 180

sedangkan untuk OEF 16 bit

(31)

dapat dilihat pada Gambar 1. Penjelasan untuk masing-masing langkah adalah sebagai berikut : Studi Literatur

Tahapan ini diperlukan untuk mempelajari prinsip dasar aritmetika optimal extension field. Selain itu, juga mempelajari algoritme serta kajian umum lain yang berkaitan dengan field

tersebut.

Gambar 1 Metodologi Penelitian Analisis

Dalam aritmetika OEF, hal yang paling penting adalah penentuan parameter yang digunakan, yaitu n, c, m dan . Hankerson et al. (2004) dan Cohen et al. (2006) menyebutkan bahwa keamanan kunci kriptografi kurva elips 160 bit setara dengan kunci RSA konvensional 1024 bit. Oleh karena itu, dilakukan pemilihan parameter sehingga nm mendekati 160.

Pada tahap ini, dilakukan analisis mencakup penentuan nilai parameter n, c, m dan yang akan dipakai. Kemudian, akan ditentukan cara merepresentasikan OEF tersebut.

Implementasi

Tahap ini mencakup implementasi operasi-operasi aritmetika dalam OEF. Operasi-operasi-operasi yang diimplementasikan adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers pada aritmetika OEF menggunakan bahasa pemrograman C.

Lingkungan Pengembangan

Sistem dibangun dan diuji dengan menggunakan hardware dan software dengan spesifikasi tertentu. Hardware yang digunakan berupa netbook dengan spesifikasi:

1. Prosesor Intel Atom N450 1,66 GHz 2. RAM 1 GB

Software yang digunakan yaitu: 1. Sistem Operasi Windows 7 2. Bloodshed Dev-C++ 4.9.9.2 3. Notepad++

4. Winmerge Pengujian

Pengujian pada penelitian ini dilakukan dengan metode black box. Pengujian dilakukan dengan membandingkan output yang dihasilkan dengan output yang seharusnya. Karena setelah dicari, belum ditemukan software yang melakukan perhitungan serupa, output yang benar dicari secara hitung manual. Selain itu, dari pengujian ini akan dihitung kecepatan eksekusi dari masing-masing operasi. Operasi-operasi yang akan diuji adalah penjumlahan, pengurangan, perkalian, kuadrat, reduksi, pemangkatan dan invers.

HASIL DAN PEMBAHASAN

Analisis

Dalam implementasi OEF, hal pertama yang harus dilakukan adalah menentukan parameter

n, c, m dan yang akan digunakan. Pada penelitian ini, konfigurasi p yang digunakan adalah p = 2nc dengan n, c > 0. OEF yang akan diimplementasikan adalah dengan panjang 8 bit dan 16 bit sehingga yang dicari adalah dipilih karena jika menggunakan nilai tersebut, tingkat keamanan sistem kriptografi kurva elips yang dihasilkan dapat setara dengan 1024 bit. Untuk pemilihan , dipilih yang merupakan elemen primitif (primitive root modulo p) dalam

.

Dalam penelitian ini, parameter yang digunakan untuk OEF 8 bit adalah

n = 7, c = 1, m = 21, = 3 Tipe I, nm = 147

n = 6, c = 3, m = 30, = 2 Tipe II, nm = 180

sedangkan untuk OEF 16 bit

(32)

Untuk memudahkan penyebutan dalam tulisan ini, OEF yang menggunakan parameter :

- n = 7, c = 1, m = 21 , = 3

selanjutnyaakandisebut OEF nomor 1

- n = 6, c = 3, m = 30 , = 2

selanjutnyaakandisebut OEF nomor 2

- n = 14, c = 3, m = 12, = 2

selanjutnyaakandisebut OEF nomor 3

- n = 13, c = 1, m = 13, = 2

selanjutnyaakandisebut OEF nomor 4 Anggota adalah polinomial, misalkan

a(z) ∈ maka a(z) dapat ditulis sebagai direpresentasikan dalam suatu array yang berisi nilai koefisien representasi dengan i

bersesuaian dengan indeks dari array tersebut. Representasi diilustrasikan pada Gambar 2.

Indeks m-1 ... 2 1 0

Isi ...

Gambar 2 Representasi pada array

Implementasi

Operasi-operasi aritmetika pada optimal extension field ini diimplementasikan dalam bahasa pemrograman C. Bahasa pemrograman C merupakan bahasa prosedural sehingga dalam pengimplementasiannya berbentuk fungsi. Beberapa jenis tipe data dalam bahasa pemrograman C dapat dilihat pada Tabel 1. Tabel 1 Tipe data dalam bahasa pemrograman

C

Tipe Data Panjang Bit

char 8

short 16

long 32

Untuk merepresentasikan nilai-nilai dari suku polinomial OEF, digunakan tipe data long unsigned yang mempunyai panjang 32 bit. Dalam penelitian ini, yang diimplementasikan adalah OEF 8 bit dan 16 bit. Oleh karena itu,

tipe data tersebut sudah dapat menampung hasil perkalian dalam aritmetika subfield yang nilai maksimalnya (216 - 1) (216 - 1) < (232 - 1). Dalam implementasinya, polinomial OEF direpresentasikan dengan tipe data struct sebagai berikut

Operasi aritmetika optimal extension field

ini diimplementasikan dalam bentuk fungsi-fungsi. Beberapa fungsi-fungsi dasar yang digunakan adalah :

a. copy_fpm

Fungsi ini digunakan sebagai operasi sama dengan (=) pada fpm. Fungsi ini akan menyalin nilai koefisien suku-suku polinomial dari suatu fpm ke fpm yang lain. Algoritme dari fungsi copy_fpm adalah sebagai berikut

Input : fpm b dan a

Dari algoritme tersebut terlihat bahwa fungsi copy_fpm akan mengalokasikan memori untuk

b sebesar a.length. Kemudian, semua variabel yang ada pada b diberikan nilai yang sama dengan a.

b. cmp_fpm

Fungsi ini digunakan untuk membandingkan nilai antara dua fpm. Fungsi ini mempunyai tiga kemungkinan return value (nilai kembali). Misal masukan pertama a dan masukan kedua

b, ketiga kemungkinan return value dari fungsi cmp_fpm dapat dilihat pada Tabel 2.

Tabel 2 Return value fungsi cmp_fpm Return Value Keterangan

(-1) a < b

0 a = b

Gambar

Gambar 1  Metodologi Penelitian
Tabel 2  Return value fungsi cmp_fpm
Tabel 4  Waktu eksekusi operasi jumlah
Tabel 8  Waktu eksekusi operasi reduksi
+6

Referensi

Dokumen terkait

This study is aimed to find out the students’ perception toward the teaching and learning process at Muhammadiyah University of Gorontalo, specifically at the

Hal ini menunjukkan bahwa perlakuan jumlah pencucian maupun proses pengepresan rumput laut setelah perebusan dengan larutan KOH tidak memberikan pengaruh yang signifikan

Perlu diperhatikan terapi diet pada penderita KVA karena dengan pemberian vitamin A dosis besar namun status gizi terutama status lemak, protein yang rendah maka pemberian vitamin A

Penelitian lainnya adalah penelitian yang dilakukan oleh (Eka Maryati 2014) dengan judul “Pengaruh Sanksi Pajak, Motivasi Dan Tingkat Pendidikan Terhadap Kepatuhan Wajib

Dengan demikian setiap produk hukum seperti undang-undang, peraturan pemerintah, peraturan presiden, ataupun bahkan setiap tindakan atau kebijakan pemerintah haruslah

Praktik mengajar terbimbing adalah praktik mengajar dimana mahasiswa praktikan mendapat arahan dalam pembuatan perangkat pembelajaran, persiapan mengajar, evaluasi

Pada gambar 12 yang merupakan data pengamatan radar untuk siang hari selama bulan Maret ini menunjukkan total reflektifitas awan diatas danau Matano dan Towuti

Untuk itu peneliti ingin mengkaji lebih jauh tentang media berbasis IT. Maka peneliti mengkaji tentang pengaruh penggunaan media Aurora 3D Presentation terhadap motivasi