• Tidak ada hasil yang ditemukan

SIMULASI SKEMA OTENTIKASI DAN TANDA TANG

N/A
N/A
Protected

Academic year: 2018

Membagikan "SIMULASI SKEMA OTENTIKASI DAN TANDA TANG"

Copied!
109
0
0

Teks penuh

(1)

SIMULASI SKEMA OTENTIKASI DAN TANDA TANGAN

DIGITAL SCHNORR BERBASIS WEB

FANDI ALI MUSTIKA 41509010072

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER

UNIVERSITAS MERCU BUANA JAKARTA

(2)
(3)

SIMULASI SKEMA OTENTIKASI DAN TANDA TANGAN DIGITAL SCHNORR

BERBASIS WEB

Laporan Tugas Akhir

Diajukan Untuk Melengkapi Salah Satu Syarat

Untuk Memperoleh Gelar Sarjana Komputer

Oleh :

FANDI ALI MUSTIKA

41509010072

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS MERCU BUANA

JAKARTA

(4)

ii Yang bertanda tangan dibawah ini:

NIM : 41509010072

Nama : Fandi Ali Mustika

Judul Skripsi : Simulasi Skema Otentikasi dan Tanda Tangan Digital

Schnorr Berbasis Web

Menyatakan bahwa skripsi dengan judul yang tersebut diatas adalah hasil karya

saya sendiri dan bukan plagiat kecuali kutipan-kutipan dan teori-teori yang

digunakan dalam skripsi ini. Apabila ternyata ditemukan di dalam laporan skripsi

saya terdapat unsur plagiat, maka saya siap untuk mendapatkan sanksi akademik

yang terkait dengan hal tersebut.

Jakarta, September 2012

(5)

iii

Yang bertanda tangan di bawah ini menyatakan bahwa Laporan Tugas akhir

dari mahasiswa berikut ini :

Nama : Fandi Ali Mustika

NIM : 41509010072

Jurusan : Teknik Informatika

Fakultas : Ilmu Komputer

Judul : Simulasi Skema Otentikasi dan Tanda Tangan Digital Schnorr

Berbasis Web

Telah diperiksa dan disetujui sebagai Laporan Tugas Akhir

Jakarta, September 2012

Raka Yusuf, ST., MTI., Pembimbing

(6)

iv

Otentikasi (authentication) merupakan identifikasi yang dilakukan oleh

masing-masing pihak yang saling berkomunikasi, maksudnya beberapa pihak

yang berkomunikasi harus mengidentifikasi satu sama lainnya. Informasi yang

didapatkan oleh satu pihak dari pihak lain harus diidentifikasi untuk memastikan

keaslian informasi yang diterima. Tanda tangan digital adalah suatu mekanisme

otentikasi yang memungkinkan pembuat pesan menambahkan sebuah kode yang

bertindak sebagai tanda tangannya. Skema yang dapat digunakan untuk

melakukan proses tanda tangan digital terhadap suatu pesan juga

bermacam-macam. Skema otentikasi dan tanda tangan digital Schnorr merupakan skema

tanda tangan digital yang mengambil keamanan dari permasalahan menghitung

logaritma diskrit.

Skema tanda tangan ini menggunakan bilangan prima dan perpangkatan

modulo dalam proses pembentukan kuncinya. Skema otentikasi dapat

dimodifikasi menjadi skema tanda tangan digital. Proses pembentukan kunci

privat dan publiknya sama seperti sekema otentikasi, namun pada skema tanda

tangan digital ditambahkan sebuah fungsi hash. Pengembangan sistem yang

digunakan dalam membangun perangkat lunak ini adalah metode Luther.

Perangkat lunak untuk simulasi skema otentikasi dan tanda tangan digital Schnorr

ini akan membantu pemahaman kriptografi terutama mengenai skema otentikasi

dan tanda tangan digital Schnorr dan perangkat lunak ini juga dapat digunakan

sebagai fasilitas pendukung dalam proses belajar mengajar mencakup input

variabel-variabel, kunci privat, kunci public, pesan, pembentukkan digital

signature, proses verifikasi dan proses deskripsi.

(7)

v

Otentikasi (authentication) constituting identification that did by each

mutually party gets communication, fathom a meaning severally party which get

communication shall identify one same another. Information that got by one party

of other party shall be identified to ensure accepted information authenticity.

Digital signature is an otentikasi's mechanism that enable order maker adds one

code which act as signature it. Scheme applicabling to do digital signature process

to an order also miscellaneous. otentikasi's scheme and undersign digital Schnorr

constitutes digital signature scheme that take security of about problem account

diskrit's logarithm.

Undersign scheme this utilize prime number and about rank modulo in

processes its key forming. Scheme otentikasi can be modified as digital signature

scheme. Forming process keys privat and its public as as sekema otentikasi, but on

undersign scheme digital enhanced one hash's function. System development that

is utilized in build this software Luther's method. Software for simulated

schematic otentikasi and undersign digital Schnorr this will help kriptografi's

grasp especially about scheme otentikasi and undersign digital Schnorr and this

software can also be utilized as facility of supporting in processes tea ching and

learning to range variable inputs, privat's key, public's key, send away for, digital

pembentukkan signature, process verification and description process.

(8)

vi

Puji Syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena atas

karunia yang telah diberikan kepada penulis sehingga penulis dapat

menyelesaikan Laporan Tugas Akhir tepat pada waktunya, dimana Laporan Tugas

Akhir tersebut merupakan salah satu persyaratan untuk dapat menyelesaikan

Program Studi Strata Satu (S1) pada Jurusan Teknik Informatika Universitas

Mercu Buana.

Penulis menyadari bahwa Laporan Tugas Akhir ini masih belum dapat

dikatakan sempurna. Karena itu, kritik dan saran akan diterima dengan senang

hati. Penulis juga menyadari bahwa Laporan Tugas Akhir ini takkan dapat selesai

tepat pada waktunya tanpa bantuan, bimbingan, dan motivasi dari berbagai

pihak. Maka dari itu, dengan segala kerendahan hati, Penulis ingin

menyampaikan ucapan terima kasih kepada :

1. Bapak Raka Yusuf, ST, M.T.I,selaku Pembimbing Tugas Akhir yang

telah membimbing penulis dengan semua nasihat, semangat, ilmu dan

segala bantuan yang tidak dapat disebutkan satu per satu oleh penulis

dikarenakan jumlah bantuan yang diberikan memang sangat amat banyak.

2. Bapak Anis Cherid, SE., M.T.I., selaku KaProdi pada Jurusan Teknik

Informatika Universitas Mercu Buana.

3. Bapak Tri Daryanto, S.Kom, M.T., selaku Koordinator Tugas Akhir pada

Jurusan Teknik Informatika Universitas Mercu Buana.

4. Bapak Dr. Harwi Karya, selaku Dekan Fakultas Ilmu Komputer

Universitas Mercu Buana atas nasihat, saran, motivasi, dan juga

keramah-tamahannya kepada penulis sehingga penulis merasa lebih terpacu untuk

dapat menyelesaikan Laporan Tugas Akhir ini.

5. Kedua orang tua yang selama ini telah membesarkan penulis.

6. Beserta semua pihak yang telah memotivasi dan ikut memberikan

bantuannya kepada penulis yang namanya tidak dapat penulis sebutkan

(9)

vii kedepannya, Terima Kasih.

Jakarta, Agustus 2012

(10)

viii

Hal.

HALAMAN JUDUL ... i

LEMBAR PERNYATAAN ... ii

LEMBAR PENGESAHAN ... iii

ABSTRAK ... iv

ABSTRACT ... v

KATA PENGANTAR ... vi

DAFTAR ISI ... viii

DAFTAR GAMBAR ... xiii

DAFTAR TABEL ... xv

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Perumusan Masalah ... 2

1.3 Tujuan dan Manfaat ... 3

1.4 Batasan Masalah ... 3

1.5 Metodologi Penyelesaian ... 3

1.6 Sistematis Penulisan ... 4

BAB II LANDASAN TEORI ... 7

2.1 Kriptografi ... 7

2.2 Aplikasi Kriptografi ... 8

2.2.1 Kerahasian ... 8

2.2.2 Otentikasi ... 9

2.2.3 Integritas ... 10

2.2.4 Nir-Penyangkalan ... 11

2.3 Fungsi One-Way Hash SHA 1 ... 12

2.4 Landasan Matematis Kriptografi ... 17

2.4.1 Bilangan Prima ... 17

(11)

ix

2.4.4 Aritmatika Modular ... 19

2.4.5 Inverse Aritmatika Modular ... 20

2.4.6 Logaritma Diskrit ... 21

2.5 Otentikasi dan Tanda Tangan Digital ... 22

2.5.1 Otentikasi ... 22

2.5.2 Digital Signature ... 23

2.6 Schnorr Authentication and Digital Signature Scheme ... 24

2.6.1 Key Generation ... 25

2.6.2 Protokol Otentikasi ... 26

2.6.3 Protokol Tanda Tangan Digital ... 27

2.7 Flowchart ... 29

2.7.1 Simbol-simbol Flowchart ... 29

2.8 PHP ... 31

2.9 Xampp ... 32

2.10 Metodologi Pengembangan Aplikasi (Luther) ... 33

BAB III KONSEP, PERANCANGAN, DAN PENGUMPULAN MATERIAL ... 36

3.1 Konsep ... 36

3.1.1 Tujuan ... 36

3.1.2 Macam Aplikasi ... 36

3.2 Perancangan ... 37

3.2.1 Perancangan Proses ... 37

3.2.1.1 Key Generation ... 37

3.2.1.2 Otentikasi ... 39

3.2.1.3 Tanda Tangan Digital ... 40

3.2.2 Perancangan Interface ... 42

3.2.2.1 Form Utama ... 42

3.2.2.2 Form Pembentukan Kunci ... 43

3.2.2.3 Form Skema Otentikasi ... 44

(12)

x

3.2.2.6 Form Input Variabel s ... 47

3.2.2.7 Form Input Variabel r ... 48

3.2.2.8 Form Input Variabel e ... 49

3.2.2.9 Form Test GCD ... 49

3.2.2.10 Form Teori ... 50

3.2.2.11 Form About ... 51

3.3 Pengumpulan Bahan ... 52

3.3.1 Gambar ... 52

3.3.2 Teori ... 53

3.3.2.1 Proses Pembentukan Kunci ... 53

3.3.2.2 Proses Kerja Skema Otentikasi ... 54

3.3.2.3 Proses Kerja Skema Tanda Tangan Digital ... 55

3.3.3 Skenario ... 55

BAB IV PEMBUATAN DAN PENGUJIAN ... 58

4.1 Pembuatan ... 58

4.1.1 Proses Pembuatan Kunci ... 58

4.1.2 Proses Otentikasi ... 59

4.1.3 Proses Tanda Tangan Digital ... 60

4.2 Pengujian ... 72

4.2.1 Metode Black Box Testing ... 73

4.2.1.1 Skenario Pengujian Terhadap Form Utama ... 73

4.2.1.2 Skenario Pengujian Terhadap Form Key Generation ... 74

4.2.1.3 Skenario Pengujian Terhadap Form Input Nilai p, q, dan a ... 74

4.2.1.4 Skenario Pengujian Terhadap Form GCD ... 75

4.2.1.5 Skenario Pengujian Terhadap Form Authentication ... 75

4.2.1.6 Skenario Pengujian Terhadap Form Nilai r ... 76

4.2.1.7 Skenario Pengujian Terhadap Form Nilai e ... 77

4.2.1.8 Skenario Pengujian Terhadap Form Digital Signature ... 77

4.2.1.9 Skenario Pengujian Terhadap Form Teori ... 78

(13)

xi

4.2.2.1 Hasil Pengujian Form Utama ... 79

4.2.2.2 Hasil Pengujian Form Key Generation ... 80

4.2.2.3 Hasil Pengujian Form Input Nilai p, q, dan a ... 81

4.2.2.4 Hasil Pengujian Form GCD ... 81

4.2.2.5 Hasil Pengujian Form Authentication ... 82

4.2.2.6 Hasil Pengujian Form Nilai r ... 83

4.2.2.7 Hasil Pengujian Form e ... 83

4.2.2.8 Hasil Pengujian Form Digital Signature ... 84

4.2.2.9 Hasil Pengujian Form Teori ... 85

4.2.2.10 Hasil Pengujian Form About ... 85

4.2.3 Pengujian Tatap Muka ... 81

BAB V KESIMPULAN DAN SARAN ... 93

5.1 Kesimpulan ... 93

5.2 Saran ... 93

DAFTAR PUSTAKA ... 94

(14)
(15)

xiii

Hal.

Gambar 2.1 Gambaran Umum Proses Kriptografi ... 6

Gambar 2.2 Simbol Flow Direction ... 30

Gambar 2.3 Simbol Terminator ... 30

Gambar 2.4 Simbol Processing ... 30

Gambar 2.5 Simbol Decision ... 31

Gambar 2.6 SImbol Input-Output ... 31

Gambar 2.7 Xampp ... 33

Gambar 2.8 Metode Pengembangan Aplikasi ... 34

Gambar 3.1 Flowchart Key Generation ... 38

Gambar 3.2 Flowchart Otentication ... 39

Gambar 3.3 Flowchart Digital Signature ... 40

Gambar 3.4 Rancangan Form Utama ... 42

Gambar 3.5 Rancangan Form Pembentukan Kunci ... 43

Gambar 3.6 Rancangan Form Skema Otentication ... 44

Gambar 3.7 Rancangan Form Skema Tanda Tangan Digital ... 45

Gambar 3.8 Rancangan Form Input Variabel p, q, dan a ... 46

Gambar 3.9 Rancangan Form Input Variabel s ... 47

Gambar 3.10 Rancangan Form Input Variabel r ... 48

Gambar 3.11 Rancangan Form Input Variabel e ... 49

Gambar 3.12 Rancangan Form Test GCD ... 50

Gambar 3.13 Rancangan Form Teori ... 51

Gambar 3.14 Rancangan Form About ... 52

Gambar 3.15 Seha Sedang Mengetik ... 53

Gambar 3.16 Fandi Sedang Mengetik ... 53

Gambar 3.17 (a) Gambar Surat Mewakili Objek Yang Akan Dikirimkan Oleh Seha ... 53

Gambar 3.17 (b) Gambar Surat Mewakili Objek Yang Akan Dikirimkan Oleh Fandi ... 53

(16)

xiv

Gambar 3.20 (a) Gambar Surat Mewakili Objek Yang Akan Dikirimkan

Oleh Seha ... 57

Gambar 3.20 (b) Gambar Surat Mewakili Objek Yang Akan Dikirimkan Oleh Fandi ... 57

Gambar 4.1 Form Utama ... 81

Gambar 4.2 Form Key Generation ... 82

Gambar 4.3 Form Input Nilai Variabel p, q, dan a ... 83

Gambar 4.4 Form Authentication ... 84

Gambar 4.5 Form Digital Signature ... 85

Gambar 4.6 Form Teori ... 86

(17)

xv

Hal.

Tabel 2.1 Daftar-daftar Properti Dari Keempat SHA ... 14

Tabel 4.1 Skenario Pengujian Form Utama ... 73

Tabel 4.2 Skenario Pengujian Form Key Generation ... 74

Tabel 4.3 Skenario Pengujian Form Input Variabel p, q, dan a ... 74

Tabel 4.4 Skenario Pengujian Form GCD ... 75

Tabel 4.5 Skenario Pengujian Form Authentication ... 76

Tabel 4.6 Skenario Pengujian Form Nilai r ... 76

Tabel 4.7 Skenario Pengujian Form Nilai e ... 77

Tabel 4.8 Skenario Pengujian Form Digital Signature ... 77

Tabel 4.9 Skenario Pengujian Form Teori ... 78

Tabel 4.10 Skenario Pengujian Form About ... 79

Tabel 4.11 Hasil Pengujian Form Utama ... 79

Tabel 4.12 Hasil Pengujian Form Key Generation... 80

Tabel 4.13 Hasil Pengujian Form Input Variabel p, q, dan a... 81

Tabel 4.14 Hasil Pengujian Form GCD ... 82

Tabel 4.15 Hasil Pengujian Form Authentication... 82

Tabel 4.16 Hasil Pengujian Form Nilai r ... 83

Tabel 4.17 Hasil Pengujian Form Nilai e ... 84

Tabel 4.18 Hasil Pengujian Form Digital Signature ... 84

Tabel 4.19 Hasil Pengujian Form Teori ... 85

(18)
(19)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Simulasi sebagai proses pengolahan data dengan penggunaan rangkaian

model-simbolik pada pengoperasian sistem tiruan tidak mengharuskan dan tidak

mengajukan penggunaan fungsi-fungsi dan persamaan tertentu sebagai model

simbolik penyelesaian persoalan, tetapi sebaliknya simulasi yang terdiri dari

tahapan-tahapan dan langkah-langkah pengolahan data haruslah dilengkapi

dengan model-model simbolik yang sesuai dengan memberikan hasil

pengoperasian tiruan dalam bentuk data output yang berguna untuk penyelesaian

persoalan.

Sesuai dengan bentuk simulasi yang terdiri dari tahapan dan

langkah-langkah pengolahan data, aplikasi simulasi untuk setiap persoalan haruslah

berdasarkan pemodelan untuk persoalan yang perlu diselesaikan. Simulasi bersifat

terbuka dan dapat digunakan untuk penyelesaian berbagai bentuk persoalan sistem

yang sesuai dengan berbagai bidang, namun kegunaannya relatif tergantung pada

kelayakan serta manfaat dari hasil simulasi yang diperoleh pada penyelesaian

persoalan yang berlatar belakang sistem.

Otentikasi (authentication) merupakan identifikasi yang dilakukan oleh

masing-masing pihak yang saling berkomunikasi, maksudnya beberapa pihak

yang berkomunikasi harus mengidentifikasi satu sama lainnya. Informasi yang

didapat oleh suatu pihak dari pihak lain harus diidentifikasi untuk memastikan

keaslian dari informasi yang diterima. Identifikasi terhadap suatu informasi dapat

berupa tanggal pembuatan informasi, isi informasi, waktu kirim, dan hal-hal

lainnya yang berhubungan dengan informasi tersebut. Otentikasi pesan memang

berhasil melindungi kedua belah pihak yang saling bertukar pesan dari pihak

ketiga. Tetapi, otentikasi pesan tidak bisa mencegah kemungkinan kedua belah

pihak saling menyerang satu sama lain. Pada situasi dimana tidak ada kepercayaan

penuh antara pengirim dan penerima pesan, diperlukan suatu mekanisme yang

lebih daripada sekedar otentikasi. Solusi yang paling menarik dari masalah ini

(20)

mekanisme otentikasi yang memungkinkan pembuat pesan menambahkan sebuah

kode yang bertindak sebagai tanda tangannya. Tanda tangan tersebut menjamin

integritas dan sumber dari sebuah pesan.

Skema otentikasi dan tanda tangan digital mengambil sekuritas dari

permasalahan menghitung logaritma diskrit. Skema ini menggunakan bilangan

prima dan perpangkatan modulo dalam proses pembentukan kuncinya. Skema ini

dipatenkan di Amerika Serikat dan akan berakhir pada tanggal 19 Februari 2008.

Skema otentikasi dapat dimodifikasi menjadi skema tanda tanda digital. Proses

pembentukan kunci privat dan publiknya sama seperti skema otentikasi, hanya

saja pada skema tanda tangan digital ditambahkan sebuah fungsi hash.

Berdasarkan uraian di atas, penulis bermaksud untuk mengambil tugas

akhir (skripsi) dengan judul Perangkat Lunak Simulasi skema otentikasi dan tanda

tangan digital.

1.2 Perumusan Masalah

Permasalahan yang diambil pada tugas akhir ini adalah

1. Bagaimana memanfaatkan teknologi komputer unutk membuat simulasi

Otentikasi dan Tanda Tangan Digital Schnorr.

2. Bagaimana menampilkan prosedur kerja dari otentikasi dan tanda tangan

digital schnorr diweb.

3. Bagaimana membangun sebuah simulasi tentang otentikasi dan tanda tangan

digital schnorr.

1.3Tujuan dan Manfaat

Tujuan dari tugas akhir ini adalah:

1. Membuat aplikasi simulasi skema otentikasi dan tanda tangan digital

Schnorr yang mampu menjelaskan secara terinci prosedur kerja dari skema

tersebut.

2. Menghasilkan kunci privet dan publik yang akan digunakan oleh tanda

tangan digital sebagai verifikasi.

(21)

1. Dapat membantu pemahaman terhadap skema otentikasi dan tanda tangan

digital Schnorr.

2. Sebagai fasilitas pendukung dalam proses belajar mengajar yang dapat

membantu pemahaman kriptografi terutama menguasai skema otentikasi

dan tanda tangan digital Schnorr.

1.4 Batasan Masalah

Batasan permasalahan dalam membuat perangkat lunak simulasi skema

otentikasi dan tanda tangan digital Schnorr adalah sebagai berikut:

1. Perangkat lunak akan menampilkan tahap-tahap perhitungan dalam bentuk

desimal.

2. Pihak yang berinteraksi hanya 2 orang, yaitu Seha sebagai pihak pertama dan

Fandi sebagai pihak kedua.

1.5 Metodologi Penyelesaian

Metode yang akan digunakan dalam pembuatan perangkat lunak ini

menggunakan metode Luther yang terdiri dari langkah-langkah berikut :

1. Konsep (Concept)

Tahap konsep adalah tahap untuk menentukan tujuan dan siapa pengguna

program. Selain itu menentukan macam aplikasi (presentasi, interaktif, dan

lain) dan tujuan aplikasi (hiburan, pelatihan, pembelajaran, dan

lain-lain).

2. Perancangan (Disign)

Perancangan adalah tahap pembuatan spesifikasi mengenai arsitektur

program, tampilan, dan kebutuhan material/bahan untuk program.

3. Pengumpulan Bahan (Material Collecting)

Pengumpulan bahan adalah tahap dimana pengumpulan bahan yang sesuai

dengan kebutuhan yang dilakukan seperti teks, gambar, animasi, suara,

dan lain-lain yang diperlukan untuk tahap berikutnya.

4. Pembuatan (Assembly)

Tahap pembuatan simulasi otentikasi dan tanda tangan digital Schnorr

(22)

aplikasi didasarkan pada tahap perancangan yag di lanjutkan ke tahap

pembuatan apa yang telah direncanakan pada tahap perancangan.

5. Pengujian (Testing)

Dilakukan setelah selesai tahap pembuatan dengan menjalankan aplikasi

dan di lihat apakah tepat sasaran pada tujuan pembuatan aplikasi tersebut

serta adanya kesalahaan atau tidak. Fungsi dari pengujian ini adalah untuk

melihat apakah hasil pembuatan aplikasi sesuai dengan yang direncanakan.

6. Penulisan Sistem

Tahap ini dilakukan setelah tahap pengujian selesai, maka diadakannya

penulisan sistem yang bertujuan sebagai instruksi atau buku petunjuk.

Pada tahap ini disusun buku sebagai dokumentasi dari pelaksanaan tugas

akhir.

1.6 Sistematika Penulisan

Dalam penulisan tugas akhir ini digunakan susunan bab sebagai berikut:

BAB I PENDAHULUAN

Pada bab ini diuraikan latar belakang masalah, perumusahan

masalah, tujuan dan manfaat, batasan masalah, dan metodologi

penyelesaian.

BAB II LANDASAN TEORI

Dalam bab ini diuraikan landasan teori yang digunakan sebagai

kerangka berfikir dan menjadi landasan bagi penulis untuk

menganalisa dan memecahkan suatu masalah dalam pembuatan

aplikasi ini.

BAB III KONSEP, PERANCANGAN, DAN

PENGUMPULAN MATERIAL

Dalam bab ini diuraikan perancangan program aplikasi skema

otentikasi dan tanda tangan digital Schnorr ini, meliputi analisa

(23)

dan rancangan sistem, sehingga pembuatan program berjalan

sesuai dengan tujuan yang diharapkan.

BAB IV PEMBUATAN DAN PENGUJIAN SISTEM

Dalam bab ini diuraikan penjelasan kebutuhan sistem yang

digunakan untuk melakukan uji coba terhadap program aplikasi

skema otentikasi dan tanda tanga digital Schnorr ini.

BAB V KESIMPULAN DAN SARAN

Pada bab ini diuraikan hasil yang diperoleh dari perancangan

program aplikasi skema otentikasi dan tanda tangan digital Schnorr

(24)
(25)

7

BAB II

LANDASAN TEORI

2.1Kriptografi

Menurut Munir (1996:2) kriptografi adalah ilmu yang mempelajari

teknik-teknik matematika yang berhubungan dengan aspek-aspek pada keamanan

informasi misalnya kerahasiaan, integritas data, otentikasi pengirim/penerima

data, dan otentikasi data. kriptografi berasal dari bahasa Yunani yaitu dari kata ‘cryptos’ dan ‘graphia’ yang berarti penulisan rahasia. Kriptografi adalah suatu

ilmu yang mempelajari penulisan secara rahasia. Kriptografi bertujuan menjaga

kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut

tidak dapat diketahui oleh pihak yang tidak sah.

Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat

disebut juga sebagai cleartext. Proses yang dilakukan untuk mengubah plaintext

ke dalam ciphertext disebut encryption atau encipherment. Sedangkan proses

untuk mengubah ciphertext kembali ke plaintext disebut decryption atau

decipherment.

Secara sederhana, konsep umum kriptografi dapat dilihat pada Gambar 2.1

berikut.

Enkripsi Dekripsi

Plain Text Cipher Text Plain Text

KUNCI KUNCI

Gambar 2.1 Gambaran umum proses kriptografi

Kriptografi merupakan suatu ilmu atau seni mengamankan pesan yang

dilakukan oleh seorang cryptographer. Sedangkan cryptanalysis adalah suatu ilmu

dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut

cryptanalyst.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk

(26)

seperangkat parameter yang menentukan transformasi pen-cipher-an tertentu

disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa

kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses

pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem

yang digunakan.

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara

matematis sebagai berikut :

EK (M) = C (Proses Enkripsi)

DK (C) = M (Proses Dekripsi)

Pada saat proses enkripsi, pesan M (message) disandikan dengan suatu

kunci K (key), sehingga dihasilkan pesan C (ciphertext). Pesan C adalah pesan

terenkripsi dan tidak dapat dibaca. Dalam hal ini, C berfungsi sebagai sandi

rahasia yang hanya dapat dibaca oleh pihak-pihak yang berhak. Sedangkan pada

proses dekripsi, pesan C tersebut disandikan kembali dengan menggunakan kunci

K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.

Dengan demikian, keamanan suatu pesan tergantung pada kunci yang

digunakan dan tidak tergantung pada algoritma yang digunakan. Sehingga

algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis,

serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi

massal. Tidak menjadi masalah apabila seseorang mengetahui algoritma yang kita

gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat

membaca pesan.

2.2Aplikasi Kriptografi

Untuk meningkatkan sebuah aplikasi yang akan dibangun, penulis akan

membahas mengenai aspek keamanan yang disediakan oleh kriptografi yang

diungkapkan oleh Munir (1996:239).

2.2.1Kerahasian

Kerahasian terkait dengan kerahasiaan data atau informasi. Pada sistem

pemerintahan kerahasiaan data-data pribadi (privacy) sangat penting. Hal ini

(27)

jika data pribadi anda, misalnya data KTP atau kartu keluarga, dapat diakses

secara online. Maka setiap orang dapat melihat tempat dan tanggal lahir anda,

alamat anda, dan data lainnya. Data ini dapat digunakan untuk melakukan

penipuan dan pembobolan dengan mengaku-aku sebagai anda (atau keluarga

anda).

Ancaman atau serangan terhadap kerahasiaan data ini dapat dilakukan

dengan menggunakan penerobosan akses, penyadapan data (sniffer, key logger),

dan melalui kebijakan yang tidak jelas (tidak ada).

Untuk itu kerahasiaan data ini perlu mendapat perhatian yang besar dalam

implementasi sistem pemerintahan di Indonesia. Proteksi terhadap data ini dapat

dilakukan dengan menggunakan firewall (untuk membatasi akses), segmentasi

jaringan (juga untuk membatasi akses), enkripsi (untuk menyandikan data

sehingga tidak mudah disadap), serta kebijakan yang jelas mengenai kerahasiaan

data tersebut.

Pengujian terhadap kerahasian data ini biasanya dilakukan secara berkala dengan

berbagai metode.

Ada beberapa jenis informasi yang tersedia didalam sebuah jaringan

komputer. Setiap data yang berbeda pasti mempunyai grup pengguna yang

berbeda pula dan data dapat dikelompokkan sehingga beberapa pembatasan

kepada pengunaan data harus ditentukan. Pada umumnya data yang terdapat

didalam suatu perusahaan bersifat rahasia dan tidak boleh diketahui oleh pihak

ketiga yang bertujuan untuk menjaga rahasia perusahaan dan strategi perusahaan.

Backdoor, sebagai contoh, melanggar kebijakan perusahaan dikarenakan

menyediakan akses yang tidak diinginkan kedalam jaringan komputer perusahaan.

Kerahasiaan dapat ditingkatkan dan didalam beberapa kasus

pengengkripsian data. Kontrol akses adalah cara yang lazim digunakan untuk

membatasi akses kedalam sebuah jaringan komputer. Sebuah cara yang mudah

tetapi mampu untuk membatasi akses adalah dengan menggunakan kombinasi dari

username dan password untuk proses otentikasi pengguna dan memberikan akses

kepada pengguna yang telah dikenali. Didalam beberapa lingkungan kerja

keamanan jaringan komputer, ini dibahas dan dipisahkan dalam konteks

(28)

Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data

jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali.

Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada

penerima (receiver). Setelah sampai di penerima, data sandi tersebut

ditranformasikan kembali ke dalam bentuk data jelas agar dapat dikenali.

2.2.2Otentikasi

Otentikasi merupakan identifikasi yang dilakukan oleh masing–masing

pihak yang saling berkomunikasi, maksudnya beberapa pihak yang berkomunikasi

harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu pihak

dari pihak lain harus diidentifikasi untuk memastikan keaslian dari informasi yang

diterima. Identifikasi terhadap suatu informasi dapat berupa tanggal pembuatan

informasi, isi informasi, waktu kirim dan hal-hal lainnya yang berhubungan

dengan informasi tersebut. Aspek ini berhubungan dengan metode untuk

menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau

memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang

kita hubungi adalah betul-betul server yang asli.

Masalah pertama, membuktikan keaslian dokumen, dapat dilakukan

dengan teknologi pemberian cap air dan tanda tangan digital. Pemberian cap air

juga dapat digunakan untuk menjaga hak milik intelektualitas, yaitu dengan menandai dokumen atau hasil karya dengan “tanda tangan” pembuat. Masalah kedua biasanya berhubungan dengan akses kontrol, yaitu berkaitan dengan

pembatasan orang yang dapat mengakses informasi.

Dalam hal ini pengguna harus menunjukkan bukti bahwa memang dia

adalah pengguna yang sah, misalnya dengan menggunakan kata sandi aspek/servis

dari security biometric (ciri-ciri khas orang), dan sejenisnya. Ada tiga hal yang

dapat ditanyakan kepada orang untuk menguji siapa dia:

A. What you have (misalnya kartu ATM)

B. What you know (misalnya PIN atau password)

C. What you are (misalnya sidik jari, biometric)

Penggunaan teknologi smart card, saat ini kelihatannya dapat

(29)

menggunakan sertifikat digital. Otentikasi biasanya diarahkan kepada orang

(pengguna), namun tidak pernah ditujukan kepada server atau mesin. Pernahkan

kita bertanya bahwa mesin ATM yang sedang kita gunakan memang benar-benar

milik bank yang bersangkutan? Bagaimana jika ada orang nakal yang membuat

mesin seperti ATM sebuah bank dan meletakkannya di tempat umum? Dia dapat

menyadap data-data (informasi yang ada di magnetic strip) dan PIN dari orang

yang tertipu. Memang membuat mesin ATM palsu tidak mudah.

Tetapi, bisa anda bayangkan betapa mudahnya membuat halaman web

palsu yang menyamar sebagai web sebuah bank yang memberikan layanan bank

internet. (Ini yang terjadi dengan kasus klikBCA.com)

2.2.3Integritas

Aspek integritas terkait dengan keutuhan data. Aspek ini menjamin bahwa

data tidak boleh diubah tanpa ijin dari pihak yang memiliki hak. Acaman terhadap

aspek integritas dilakukan dengan melalui penerobosan akses, pemalsuan

(spoofing), virus yang mengubah atau menghapus data, dan man in the middle

attack (yaitu penyerangan dengan memasukkan diri di tengah-tengah pengiriman

data). Proteksi terhadap serangan ini dapat dilakukan dengan menggunakan tanda

tangan digital, sertifikat digital, code otentikasi pesan, fungsi hash, dan checksum.

Pada prinsipnya mekanisme proteksi tersebut membuat kode sehingga perubahan

satu bit pun akan mengubah kode.

Contoh permasalahan integritas dapat dilihat pada sistem perhitungan

pemilihan umum tahun 2004 kemarin, dimana pada awal proses perhitungan

masih terdapat data uji coba. Hal ini menimbulkan keraguan atas integritas dari

data yang berada di dalamnya.

Jaringan komputer yang dapat diandalkan juga berdasar pada fakta bahwa

data yang tersedia apa yang sudah seharusnya. Jaringan komputer mau tidak mau

harus terlindungi dari serangan yang dapat merubah data selama dalam proses

persinggahan (transmisi). Man-in-the-Middle merupakan jenis serangan yang

dapat merubah integritas dari sebuah data yang mana penyerang (attacker) dapat

(30)

Di dalam jaringan komputer yang aman, partisipan dari sebuah transaksi

data harus yakin bahwa orang yang terlibat dalam komunikasi data dapat

diandalkan dan dapat dipercaya. Keamanan dari sebuah komunikasi data sangat

diperlukan pada sebuah tingkatan yang dipastikan data tidak berubah selama

proses pengiriman dan penerimaan pada saat komunikasi data. Ini tidak harus

selalu berarti bahwa traffic perlu di enkripsi, tapi juga tidak tertutup kemungkinan

serangan Man-in-the-Middle dapat terjadi. Man in the middle attack adalah

serangan dimana seseorang menempatkan diri di tengah pembicaraan dan

menyamar sebagai orang lain.

2.2.4Nir-Penyangkalan

Aspek ini menjaga agar seseorang tidak dapat menyangkal telah

melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan email

untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan

email tersebut. Aspek ini sangat penting dalam hal perdagangan elektronik.

Penggunaan tanda tangan, sertifikat, dan teknologi kriptografi secara umum dapat

menjaga aspek ini. Akan tetapi hal ini masih harus didukung oleh hukum sehingga

status dari tanda tangan digital itu jelas legal.

Setiap tindakan yang dilakukan dalam sebuah sistem yang aman telah

diawasi (logged), ini dapat berarti penggunaan kakas (tool) untuk melakukan

pengecekan sistem berfungsi sebagaimana seharusnya. Log juga tidak dapat

dipisahkan dari bagian keamanan sistem yang dimana bila terjadi sebuah

penyusupan atau serangan lain akan sangat membantu proses investigasi. Log dan

catatan waktu, sebagai contoh, bagian penting dari bukti di pengadilan jika

cracker tertangkap dan diadili. Untuk alasan ini maka nir-penyangkalan dianggap

sebagai sebuah faktor penting didalam keamanan jaringan komputer yang

berkompeten.

Definisi dari nir-penyangkalan adalah sebagai berikut :

1. Kemampuan untuk mencegah seorang pengirim untuk menyangkal kemudian

(31)

2. Proteksi dari penyangkalan oleh satu satu dari entitas yang terlibat didalam

sebuah komunikasi yang turut serta secara keseluruhan atau sebagian dari

komunikasi yang terjadi.

Proses tranformasi dari data jelas menjadi data sandi disebut proses

enkripsi, sedangkan proses mentransformasikan kembali data sandi menjadi data

jelas disebut proses dekripsi.

Untuk mengenkripsi dan mendekripsi data, kriptografi menggunakan suatu

algoritma (cipher) dan kunci (key). Algoritma adalah fungsi matematika yang

digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan

sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data.

2.3Fungsi One-Way Hash SHA-1

Menurut Munir (1996:217) sebuah fungsi hash (hash function atau hash

algorithm) adalah suatu cara untuk menghasilkan sebuah digital “fingerprint

kecil dari sembarang data. Fungsi ini memecahkan dan mencampurkan data untuk

menghasilkan fingerprint yang sering disebut sebagai nilai hash (hash value).

Nilai hash ini sering direpresentasikan dengan sebuah string pendek dari

huruf-huruf dan angka-angka yang kelihatan acak (berbentuk heksadesimal). Sebuah

fungsi hash yang baik adalah suatu fungsi yang tidak (jarang) memiliki output

nilai hash yang sama untuk input yang berbeda.

Secure Hash Algorithm, SHA-1 ini dikembangkan oleh NIST (National

Institute of Standard and Technology). SHA-1 dapat diterapkan dalam

penggunaan Algoritma Tanda Tangan Digital (Digital Signature Algorithm) yang

dispesifikasikan dalam Standar Tanda Tangan Digital (Digital Signature Standard)

dan SHA tersebut dapat diterapkan untuk aplikasi federal.

Untuk suatu pesan yang panjangnya < 264, SHA-1 akan menghasilkan

keluaran sebanyak 160 bit dari pesan tersebut dan pesan keluaran itu disebut

pencerna pesan. Panjang jarak pencerna pesan dapat berkisar antara 160 sampai

512 bit tergantung algoritmanya. Berdasarkan cirinya SHA-1 dapat digunakan

dengan algoritma kriptografi lainnya seperti Algoritma Tanda Tangan Digital atau

(32)

SHA-1 dikatakan aman karena proses SHA-1 dihitung secara infisibel

untuk mencari pesan yang sesuai untuk menghasilkan pencerna pesan atau dapat

juga digunakan untuk mencari dua pesan yang berbeda yang akan menghasilkan

pencerna pesan yang sama.

Menurut jenisnya SHA dapat dispesifikasikan menjadi 4 bagian yaitu:

SHA-1, SHA-256, SHA-384, dan SHA-512. Berikut ini merupakan daftar-daftar

properti dari keempat SHA.

Tabel 2.1 Daftar-daftar properti dari keempat SHA Algorithm Message

Size (Bits)

Block Size

(Bits)

Word Size

(Bits)

Message

Digest Size

(Bits)

Security2

(Bits)

SHA-1 < 264 512 32 160 80

SHA-256 < 264 512 32 256 128

SHA-384 < 2128 1024 64 384 192

SHA-512 < 2128 1024 64 512 256

Untuk SHA-1 ukuran blok pesan -m bit- dapat ditentukan tergantung dari

algoritmanya. Pada SHA-1 masing-masing blok pesan mempunyai 512 bit dimana

dapat dilakukan dengan 16 urutan sebesar 32 bit.

SHA-1 digunakan untuk menghitung pencerna pesan pada pesan atau file

data yang diberikan sebagai masukkan. Tujuan pengisian pesan adalah untuk

menghasilkan total dari pesan yang diisi menjadi perkalian dari 512 bits.

Beberapa hal yang dilakukan dalam pengisian pesan :

a. Panjang dari pesan,M adalah k bits dimana panjang k < 264. Tambahkan bit “1” pada akhir pesan. Misalkan pesan yang asli adalah “01010000” maka setelah diisi menjadi “010100001”.

b. Tambahkan bit “0”, angka bit “0” tergantung dari panjang pesan. Misalnya

:Pesan asli yang merupakan bit string : abcde

01100001 01100010 01100011 01100100

01100101.

(33)

01100001 01100010 01100011 01100100 0110010 1.

Panjang k = 40 dan angka bit di atas adalah 41dan 407 ditambah bit “0” (448 –

(40+1) = 407). Kemudian diubah dalam hex:

61626364 65800000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000

c. Untuk memperoleh 2 kata dari k,angka bit dalam pesan asli yaitu jika k <

232 maka kata pertama adalah semua bit ”0”. Maka gambaran dari 2 kata

dari k = 40 dalam hex adalah 00000000 00000028.

61626364 65800000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000028

SHA-1 menggunakan urutan fungsi logika yang dilambangkan dengan f0,

f1,…, f79. Untuk masing-masing ft, dimana 0  t < 79 akan menghasilkan output

sebanyak 32 bit.

Fungsinya adalah sebagai berikut:

(B  C)  ( B  D) 0  t  19

B  C  D 20  t  39

(B  C)  (B  D)  (C  D) 40  t  59

B  C  D 60  t  79

fungsi XOR

ft (B, C, D) =

Konstanta kata yang digunakan pada SHA-1 yang disimbolkan secara berurutan dari K(0), K(1),…, K(79) dalam bentuk hex adalah sebagai berikut :

5A827999 0  t  19

6ED9EBA1 20  t  39

8F1BBCDC 40  t  59

CA62C1D6 60 t  79

(34)

Algoritma SHA-1 dapat diringkas sebagai berikut:

a. Penghitungan menggunakan dua penyangga dimana masing-masing

penyangga terdiri dari lima sebesar 32 bit kata dan urutan 80 juga sebesar

32 bit kata. Lima kata pertama pada penyangga kata diberi nama A, B, C,

D, E sedangkan lima kata kedua diberi nama H0, H1, H2, H3, dan H4.

Kemudian pada 80 kata yang berurutan diberi nama W0, W1, …, W79 dan

pada penghitungan ini juga memakai sebuah variabel sementara, TEMP.

b. Lakukan pengisian pesan, M dan kemudian parsingkan pesan tersebut ke

dalam N 512 bit blok pesan, M(1), M(2), …, M(n). Caranya : 32 bit pertama

dari blok pesan ditunjukkan ke M0(i), lalu 32 bit berikutnya adalah M1(i)

dan selanjutnya berlaku hingga M15(i).

c. Inisialisasi Nilai Hash (dalam bentuk hex) :

H0 = 67452301 H3 = 10325476

H1 = EFCDAB89 H4 = C3D2E1F0

H2 = 98BADCFE

d. Lakukan proses M1, M2, …, Mn dengan cara membagi Mi ke dalam 16

kata W0, W1, …, W15 dimana W0 merupakan left most.

e. Hitung : For t = 16 to 79

Wt = S1(Wt-3  Wt-8  Wt-14  Wt-16)

f. Inisialisasi 5 variabel A, B, C, D, dan E dengan nilai Hash :

A = H0 ; B = H1; C = H2; D = H3; E = H4.

g. Hitung : For t = 0 to 79

TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt

E = D; D = C; C = S30(B); B = A; A = TEMP.

h. Hitung Nilai Hash :

H0 = H0 + A ; H1 = H1 + B ;

H2 = H2 + C ; H3 = H3 + D ;

H4 = H4 + E.

Hasil dari pencerna pesan sebesar 160 bit dari pesan, M adalah : H0 H1 H2 H3

(35)

2.4Landasan Matematis Kriptografi

Dalam aplikasi ini digunakan beberapa landasan matematis kriptografi

dalam pembuatan aplikasi ini dengan menggunakan beberapa bilangan yaitu:

2.4.1Bilangan Prima

Bilangan prima adalah bilangan integer yang lebih besar dari satu yang

memiliki faktor bilangan satu dan bilangan itu sendiri. Dalam proses

pembangkitan bilangan prima, sering dihadapkan dengan beberapa masalah

berikut ini:

1. Permasalahan banyaknya bilangan prima yang tersedia. Ahli matematika telah

menemukan bahwa jumlah bilangan prima yang tersedia pada bilangan 512 bit

adalah sekitar 10151 (Berdasarkan buku ‘Applied Cryptography’,Bruce

Schneier).

2. Mungkinkah dua orang atau lebih mendapatkan dua bilangan prima yang

sama? Bila terdapat satu milyar (109) orang yang masing-masing berusaha

mendapatkan 1000 bilangan prima, maka diperlukan hanya 1012 bilangan

prima yang berbeda untuk memenuhinya. Bandingkan 1012 bilangan prima

yang diperlukan dengan 10151 bilangan prima yang tersedia. Bayangkan pula

bila disediakan bilangan 1024 bit, maka akan tersedia bilangan prima sekitar

10305. Angka ini diperoleh dari jumlah bilangan prima yang kurang dari n

adalah sekitar n / (ln n).

3. Permasalahan apakah seseorang mampu membuat database yang dapat

menyimpan seluruh bilangan prima dari 2 hingga kurang dari 21024. Hal ini

dapat dilakukan tetapi mustahil. Bila mempunyai harddisk yang berkapasitas

1035 word (untuk mempermudah perhitungan, dianggap setiap word sanggup

menyimpan satu bilangan prima), maka akan diperlukan sekitar 10270harddisk

untuk menyimpan seluruh bilangan prima yang kurang dari 21024.

Selain itu, pemfaktoran bilangan prima besar juga tidak mudah. Bila

mencari faktor prima besar sedemikian sulit, permasalahannya adalah bagaimana

dapat membangkitkan bilangan prima dengan mudah. Triknya adalah dengan

melakukan pengujian terhadap suatu bilangan prima apakah bilangan tersebut

(36)

Cara yang salah untuk mendapatkan bilangan prima adalah dengan

membangkitkan suatu bilangan acak dan kemudian mencoba memfaktorkannya.

Cara yang benar adalah membangkitkan bilangan acak dan kemudian mencoba

apakah merupakan bilangan prima. Terdapat beberapa metode uji prima,

pengujian menentukan apakah suatu bilangan termasuk bilangan prima atau bukan

dengan tingkat keyakinan tertentu. Jadi kita tidak yakin seratus persen bahwa

bilangan yang kita tes adalah betul-betul bilangan prima.

2.4.2 Algoritma Penguji Bilangan Prima Rabin-Miller

Salah satu metode yang paling banyak dipakai untuk menguji bilangan

prima adalah metode Rabin-Miller. Algoritma Rabin-Miller menerima masukan

berupa bilangan ganjil (n) yang lebih besar sama dengan 3 dan sebuah bilangan

bulat (t) yang lebih kecil dari n. Bilangan t adalah parameter keyakinan, yaitu

berapa kali pengujian dilakukan terhadap n untuk memastikan bahwa n adalah

bilangan prima.

Adapun algoritma Rabin-Miller adalah sebagai berikut :

RABIN-MILLER (n,t)

n-1 = 2s r; dengan s ganjil; for 1 ← 1 to t

do a ← random; dengan 2 ≤ a ≤ n-2

y ← ar mod n

if y ≠ 1 and y ≠ n-1

do j ← 1

while j ≤ s-1 and y ≠ n-1

do y ← y2 mod n

if y = 1 return false; bukan prima

j ← j + 1

if y ≠ n – 1 return false; bukan prima

(37)

2.4.3Faktor Persekutuan Terbesar (Greatest Common Divisor)

Dua buah bilangan dikatakan relatif prima jika mereka tidak memiliki

faktor prima yang sama kecuali 1. Dengan perkataan lain, jika Faktor Persekutuan

Terbesardari a dan n adalah sama dengan satu, maka a dan n adalah relatif prima.

Bentuk ini dapat ditulis seperti berikut :

gcd(a,n) = 1

Salah satu metode untuk menghitung faktor persekutuan terbesar dari dua

buah bilangan adalah dengan menggunakan algoritma Euclidean yang ditulis dalam bukunya ‘Elements’ sekitar 300 tahun sebelum masehi. Algoritma ini bukan hasil rancangannya. Para ahli sejarah menyatakan bahwa algoritma

mungkin 200 tahun lebih tua. Algoritma ini merupakan algoritma nontrivial tertua

yang masih eksis di dunia. Knuth mendeskripsikannya dengan beberapa

modifikasi modern dan dirancang dalam ilustrasi bahasa Pascal seperti berikut :

Begin

P := A; Q := B; While Q ≠ 0 Do Begin

R := P Mod Q; P := Q;

Q := R; End

GCD(A,B) := P End

2.4.4Aritmatika Modular

Aritmatika modular merupakan operasi matematika yang banyak

diimplementasikan pada metode kriptografi. Operasi modulo dua ini melibatkan

bilangan 0 dan 1 saja sehingga identik dengan bit pada komputer.

Secara mendasar, a ≡ b (mod n) jika a = b + kn untuk beberapa bilangan

integer k. Jika a merupakan non-negatif dan b di antara 0 sampai n, dimana b

merupakan sisa hasil bagi dari a ketika dibagi dengan n. Dengan kata lain, b

adalah hasil dari a modulo n. Kadang-kadang a juga disebut kongruen dengan b

modulo n.

Operasi a mod n menghasilkan sisa bagi dari a, dimana sisa bagi

merupakan beberapa bilangan integer dari 0 sampai n – 1. Operasi ini merupakan

(38)

Kriptografi banyak menggunakan perhitungan mod n, karena perhitungan

logaritma diskrit dan akar kuadrat mod n merupakan persoalan sulit. Aritmatika

modular lebih mudah dikerjakan pada komputer, karena operasi ini membatasi

hasil yang didapatkan sehingga hasil operasi dari k-bit modulo n tidak akan lebih

dari n.

Metode yang dapat digunakan untuk menghitung am mod n adalah

algoritma fast exponentiation. Operasi am mod n dapat dihitung dengan jumlah

perkalian paling banyak 2.(2log (m + 1)) dengan algoritma sebagai berikut :

Konversikan m ke biner : bk bk-1 … b1 b0 {Initialisasi} I := k; Product := a While I >= 0 Do

If bI = 0 Then Product := Product^2 Else Product := Product * a;

Product := Product mod n; I := I – 1;

2.4.5Inverse Aritmatika Modular

Inverse merupakan operasi kebalikan. Inverse perkalian dari 4 adalah ¼

karena 4 * ¼ = 1. Dalam modulo, persoalan ini agak rumit. Misalkan 4 * x ≡ 1 (mod 7)

Atau bentuk penulisan ekivalen lainnya dapat dinyatakan dengan :

4x = 7k + 1

Dengan x dan k adalah bilangan integer.

Persoalannya adalah untuk mencari x sehingga,

1 = (a * x) mod n

Atau dapat ditulis seperti berikut :

a-1≡ x (mod n)

Persoalan inverse modular agak sulit untuk diselesaikan. Kadang-kadang

dapat memiliki penyelesaian, dan kadang-kadang tidak. Sebagai contoh, inverse

modular dari 5 modulo 14 adalah 3, sedangkan 2 mod 14 tidak memiliki inverse

modular.

Secara umum, a-1 ≡ x (mod n) memiliki sebuah solusi unik jika a dan n

adalah relatif prima. Jika a dan n bukan relatif prima, maka a-1≡ x (mod n) tidak

(39)

(n – 1) adalah relatif prima dengan n dan memiliki tepat satu inverse modulo n

dalam range tersebut.

Untuk menghitung inverse modular dari a-1 ≡ x (mod n) dapat digunakan

algoritma extended Euclidean yang dapat dijabarkan seperti berikut :

1. Bentuk Array A[3x2] dimana A[1,1] = n dan A[1,2] = a

2. Isikan A[2,1] .. A[3,2] dengan matriks Identitas.

3. Hitung bilangan bulat m dengan kondisi m * A[1,2]  A[1,1]; usahakan m

maksimum.

4. Hitung nX = A[1,1] - m * A[1,2].

5. Ubah nilai A[1,1] = A[1,2] dan A[1,2] = nX.

6. Lakukan langkah 4 dan 5 untuk baris kedua dan ketiga dari array A.

7. Ulang langkah 3 sampai 5 hingga elemen terakhir dari baris 1 = 0.

8. Jika A[3,1]  0 maka x = A[3,1] sebaliknya x = A[3,1] + n.

2.4.6Logaritma Diskrit

Eksponensial modular merupakan salah satu fungsi yang sering dipakai

dalam kriptografi. Fungsi ini dapat dirumuskan seperti berikut :

ax mod n

Masalah invers dari eksponensial modular adalah mencari logaritma

diskrit dari suatu nilai. Ini merupakan masalah yang sulit. Misalkan diberikan

suatu persoalan untuk mencari nilai x dimana ax  b (mod n).

Sebagai contoh, misalkan diketahui sebuah persamaan 3x = 15 (mod 17),

maka nilai x adalah 6. Ini merupakan salah satu contoh logaritma diskrit yang

memiliki penyelesaian. Tidak semua logaritma diskrit mempunyai penyelesaian.

Contohnya adalah seperti berikut : 3x  7 (mod 13).

2.5 Otentikasi dan Tanda Tangan Digital

Sebelum lebih jauh, aplikasi ini juga menggunakan dua cara untuk

mengetahui keaslian kunci yang dikirim atau yang diterima yaitu dengan

(40)

2.5.1 Otentikasi

Menurut Munir (2006:259) Otentikasi merupakan sebuah istilah yang

digunakan dalam pengertian yang luas. Secara tersirat kata tersebut mempunyai

arti lebih dari sekedar menyampaikan ide yaitu bahwa alat tersebut telah

menyediakan jaminan bahwa informasi tidak dimanipulasi oleh pihak yang tidak

mempunyai wewenang. Otentikasi bersifat spesifik dalam topik keamanan yang

berusaha dicapai. Contohnya meliputi pengendalian akses, otentikasi entity,

otentikasi pesan, integritas data, non-repudiation, dan otentikasi kunci.

Otentikasi merupakan salah satu hal yang paling penting dalam keamanan

informasi. Hingga pertengahan tahun 1970-an, dipercaya bahwa kerahasiaan dan

otentikasi terhubung secara erat. Dengan penemuan dari fungsi-fungsi hash dan

tanda tangan digital, disadari bahwa kerahasiaan dan otentikasi sebenarnya adalah

masalah yang terpisah dan independen. Awalnya tidak kelihatan penting untuk

memisahkan keduanya tetapi terdapat situasi dimana hal tersebut tidak hanya

berguna tetapi juga penting. Contohnya, jika terdapat komunikasi dua pihak antara

Anto dan Badu yang berlangsung, dimana Anto berada di suatu negara dan Badu

di negara lainnya, Negara tuan rumah mungkin tidak memperbolehkan

kerahasiaan dalam saluran komunikasi karena satu atau kedua negara mungkin

ingin memonitor semua komunikasi. Namun, Anto dan Badu ingin meyakinkan

identitas masing-masing, dan juga integritas serta keaslian dari informasi yang

mereka kirim dan mereka terima.

Skenario diatas menggambarkan beberapa aspek otentikasi yang

independen. Jika Anto dan Badu ingin meyakinkan identitas masing-masing,

terdapat dua kemungkinan yang dapat dipertimbangkan.

1. Anto dan Badu dapat berkomunikasi tanpa penundaan waktu. Berarti mereka

berkomunikasi secara waktu yang real.

2. Anto atau Badu dapat saling menukar pesan dengan penundaan waktu. Berarti

pesan mungkin di-routing melalui jaringan yang berbeda, disimpan, dan

disampaikan pada beberapa saat kemudian.

Dalam kemungkinan pertama, Anto dan Badu akan memverifikasi

identitas masing-masing secara waktu yang real. Hal ini dapat dicapai oleh Anto

(41)

dapat meresponnya secara tepat. Badu dapat melakukan tindakan yang sama untuk

mengidentifikasi Anto. Jenis otentikasi ini secara umum dikenal sebagai otentikasi

entitas atau secara sederhana disebut identifikasi.

Dalam kemungkinan kedua, tidaklah tepat untuk mengirimkan challenge

dan menunggu respon, dan selain itu jalur komunikasi mungkin hanya tersedia

pada satu arah. Teknik yang berbeda sekarang diperlukan untuk meng-otentikasi

keaslian pesan. Bentuk otentikasi ini disebut otentikasi keaslian data.

2.5.2Digital Signature

Menurut Munir (2006:239) tanda tangan digital adalah suatu mekanisme

otentikasi yang memungkinkan pembuat pesan menambahkan sebuah kode yang

bertindak sebagai tanda tangannya. Tanda tangan tersebut menjamin integritas dan

sumber dari sebuah pesan.

Penandatanganan digital terhadap suatu dokumen adalah sidik jari dari

dokumen tersebut beserta timestamp-nya dienkripsi dengan menggunakan kunci

privat pihak yang menandatangani. Tanda tangan digital memanfaatkan fungsi

hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk

dokumen yang bersangkutan saja. Keabsahan tanda tangan digital itu dapat

diperiksa oleh pihak yang menerima pesan.

Sifat yang diinginkan dari tanda tangan digital diantaranya adalah :

1 Tanda tangan itu asli (otentik), tidak mudah ditulis / ditiru oleh orang lain.

Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti,

sehingga penandatangan tak bisa menyangkal bahwa dulu ia pernah

menandatanganinya.

2 Tanda tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu

tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga

berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan

tersebut tidak lagi sah.

3 Tanda tangan itu dapat diperiksa dengan mudah.

4 Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu

dengan penandatangan.

(42)

2.6Schnorr Authentication and Digital Signature Scheme

Skema otentikasi dan tanda tangan digital mengambil sekuritas dari

permasalahan menghitung logaritma diskrit. Skema ini juga menggunakan

bilangan prima dan perpangkatan modulo dalam proses pembentukan kuncinya.

Tingkat kesulitan untuk memecahkan algoritma ini adalah sekitar 2t, dimana nilai

t ini dapat ditentukan sendiri.

Skema ini dipatenkan di Amerika Serikat dan akan berakhir pada tanggal

19 Pebruari 2008. Skema otentikasi dapat dimodifikasi menjadi skema tanda tanda

digital. Proses pembentukan kunci privat dan publiknya sama seperti skema

otentikasi, hanya saja pada skema tanda tangan digital ditambahkan sebuah fungsi

hash.

2.6.1Key Generation

Menurut Munir (2006:274) pembentukan kunci berfungsi untuk

menghasilkan kunci privat dan kunci publik yang akan digunakan dalam skema

otentikasi dan skema tanda tangan digital. Proses pembentukan kunci adalah

sebagai berikut:

1. Pilih 2 buah bilangan prima p dan q, dan sebuah nilai a yang memenuhi syarat

berikut:

a. Bilangan q adalah faktor prima dari (p-1). Ini berarti GCD(q, p-1)

tidak boleh bernilai 1.

b. Harus memenuhi operasi: aq  1 (mod p).

2. Pilih sebuah nilai s, dimana s < q. (s adalah kunci privat)

3. Hitung nilai v dengan rumus berikut:

v = a-s mod p

(v adalah kunci publik).

Untuk lebih memahami proses pembentukan kunci, perhatikan contoh berikut:

1. Dipilih dua buah bilangan prima p = 816961, q = 23 dan a = 40433 yang

memenuhi kedua syarat yang telah dijelaskan pada poin pertama proses

pembentukan kunci.

(43)

3. Hitung: v = a-s mod p

v = (a-1)s mod p

v = ((a-1 mod p)s mod p)

v = ((40433-1 mod 816961)15 mod 816961)

v = 578423

4. Kunci privat: s = 15.

5. Kunci publik: v = 578423.

2.6.2Protokol Otentikasi

Misalkan, seha dan fandi sedang berkomunikasi di dua tempat berbeda

melalui aplikasi messenger (chatting). Permasalahan yang muncul adalah

bagaimana Seha dan Fandi dapat mengidentifikasi identitas satu sama lain untuk

memastikan bahwa orang yang sedang diajak komunikasi adalah benar-benar

orang yang dimaksud. Dengan skema otentikasi schnorr, Seha dan Fandi dapat

memverifikasi identitas masing-masing secara waktu yang real. Hal ini dapat

dilakukan dengan mengirimkan beberapa nilai matematis dimana hanya mereka

berdua yang dapat meresponnya secara tepat.

Menurut Munir (2006:251) Protokol dari otentikasi schnorr dapat

dijabarkan sebagai berikut :

1. Seha mengambil sebuah bilangan acak r, yang lebih kecil daripada q dan

menghitung x = ar mod p.

2. Seha mengirimkan x kepada Fandi.

3. Fandi mengirimkan sebuah bilangan acak e yang berada di antara 0 dan 2t– 1.

4. Seha menghitung y = (r + se) mod q dan mengirimkan y kepada Fandi.

5. Fandi memverifikasi bahwa x = ayve mod p.

Dengan menggunakan contoh proses pembentukan kunci pada subbab

2.7.1, perhatikan contoh skema otentikasi di bawah ini:

1. Seha memilih nilai r = 20 (r lebih kecil dari q yang bernilai 23) dan

menghitung:

x = ar mod p

x = 4043320 mod 816961

(44)

2. Seha mengirimkan x = 738635 kepada Fandi.

3. Fandi mengirimkan sebuah nilai e = 59195082 kepada seha.

4. Seha menghitung:

y = (r + se) mod q

y = (20 + 15 . 59195082) mod 23

y = 3

Seha mengirimkan y = 3 kepada Fandi.

5. Fandi memverifikasi bahwa:

x = ((ay).(ve)) mod p

x = ((ay) mod p . (ve) mod p) mod p

x = (404333 mod 816961) . (57842359195082 mod 816961)

mod 816961

x = (346483 . 402127) mod 816961

738635 = 738635 (True), Proses otentikasi berhasil.

2.6.3Protokol Tanda Tangan Digital (Digital Signature)

Protokol ini dapat dianalogikan seperti pengiriman surat yang

menggunakan tanda tangan biasa. Fandi memang dapat merasa yakin bahwa tanda

tangan Seha adalah asli, tetapi bagaimana Fandi dapat memastikan bahwa isi

pesan adalah asli dan tidak diganti oleh pihak ketiga. Untuk memastikan keaslian

dan keutuhan pesan, Seha membubuhkan tanda tangan digitalnya pada pesan

tersebut. Tanda tangan digital itu tidak mudah ditiru orang lain, hanya sah untuk

pesan itu saja dan dapat diperiksa oleh Fandi.

Menurut Munir (2006:253) Protokol dari skema tanda tangan digital

Schnorr dapat dijabarkan sebagai berikut:

1. Seha mengambil sebuah bilangan acak, r, yang lebih kecil daripada q dan

menghitung x = ar mod p.

2. Seha menggabungkan M dan x, dan menghitung nilai hash dari hasil

penggabungan.

e = H(M, x).

3. Seha menghitung y = (r + se) mod q. Tandatangannya adalah e dan y. Seha

(45)

4. Fandi menghitung x’ = ayve mod p dan memverifikasi nilai e dengan nilai hash

dari penggabungan dari M dan x’. e = H(M,x’).

Jika nilai e sesuai dengan nilai hash, maka tandatangan tersebut dianggap

valid.

Dengan menggunakan contoh proses pembentukan kunci pada subbab 2.7.1,

perhatikan contoh skema tanda tangan digital di bawah ini:

Misalkan nilai M (pesan) = 100

1. Seha memilih nilai r = 17 (r lebih kecil dari q yang bernilai 23) dan

menghitung:

x = ar mod p

x = 4043317 mod 816961

x = 402127

2. Seha menggabungkan M dan x, dan menghitung nilai hash dari hasil

penggabungan.

Hasil penggabungan M (100) dan x (402127) = 100402127

Misalkan fungsi hash H(z) = (z * 2) + 1,

maka e = H(M, x) = (100402127 * 2) + 1 = 200804255.

3. Seha menghitung:

y = (r + se) mod q

y = (17 + 15 . 200804255) mod 23

y = 11

Tanda tangan digital adalah e (200804255) dan y (11). Seha mengirimkannya

kepada Fandi.

6. Fandi menghitung:

x’ = ((ay).(ve)) mod p

x’ = ((ay) mod p . (ve) mod p) mod p

x’ = (4043311 mod 816961) . (578423200804255 mod 816961)

mod 816961

x’ = (131633 . 501222) mod 816961

x’ = 402127

(46)

Fandi memverifikasi: e = H(M, x’)

200804255 = (100402127 * 2) + 1

200804255 = 200804255 (True)

Verifikasi tanda tangan sesuai.

2.7Flowchart

(RFF Electronics, 2010) Flowchart merupakan suatu grafik yang terdiri

dari sekumpulan simbol-simbol dan garis-garis yang memperlihatkan secara

terstruktur tentang urutan dan hubungan antar proses beserta instruksinya yang

terdapat pada suatu program. Dengan demikian setiap simbol menggambarkan

proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis

penghubung. Pada umumnya flowchart terlebih dahulu dibuat sebelum membuat

atau merancang suatu program. Flowchart sangat berperan penting dalam

mendeskripsikan urutan poses kegiatan menjadi lebih jelas. Ketika sewaktu-waktu

ada suatu proses baru yang ingin ditambahkan maka dapat dilakukan penambahan

dengan lebih mudah menggunakan flowchart. Setelah flowchart selesai buat,

barulah si perancang menerjemahkannya ke bentuk program dengan bahasa

pemrograman yang sudah ditetapkan sebelmunya. Berikut adalah simbol-simbol

yang umumnya sering digunakan dalam menggambar alur algoritma suatu

program :

2.7.1Simbol-Simbol Flowchart

Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat

bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai

antara lain :

1. Simbol Flow Direction / Flow Line

Simbol Flow Direction / Flow Line adalah simbol yang digunakan untuk

menghubungkan antara simbol yang satu dengan simbol yang lain. Simbol

(47)

Gambar 2.2 Simbol Flow Direction / Flow Line

2. Simbol Terminator

Simbol Terminator adalah simbol yang melambangkan sebuah permulaan

(start) atau akhir (end) dari suatu program.

Gambar 2.3 Simbol Terminator

3. Simbol Processing

Simbol Processing adalah simbol yang umumnya digunakan untuk

menggambarkan sebuah proses yang sedang dilakukan oleh program.

Gambar 2.4 Simbol Processing 4. Simbol Decision

Simbol Decision adalah simbol yang digunakan jika terdapat sebuah

(48)

Gambar 2.5 Simbol Decision

5. Simbol Input-Output

Simbol Input-Output adalah simbol yang menyatakan proses input atau

output pada sebuah program.

Gambar 2.6 Simbol Input-Output

2.8PHP

PHP singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai

bahasa server side scripting dalam pengembangan web yang disisipkan pada

dokument HTML. Penggunaan PHP memungkinkan web dapat dibuat dinamis

sehingga maintenance situ web tersebut dapat menjadi lebih mudah dan efisien.

PHP merupakan software open source yang disebarkan dan dilesensikan secara

gratis. PHP ditulis dalam bahasa C.

PHP memiliki kelebihan yang tidak dimiliki oleh script sejenis. PHP

difokuskan pada pembuatan script server side yang bisa melakukan apa saja yang

dapat dilakukan oleh CGI seperti mengumpulkan data dari form, menghasilkan isi

(49)

dapat digunakan pada semua sistem operasi. PHP tidak terbatas pada hasil

keluaran HTML. PHP juga memiliki kemampuan untuk mengolah keluaran

gambar, file, PDF, dan movies flash (Peranginangin, 2006).

Sintaks program PHP ditulis dengan apitan tanda khusus PHP. Ada empat

macam tag PHP yang digunakan untuk menandai blok script PHP yaitu:

1. <?php … ?>

2. <script language=”PHP”> … </script>

3. <? … ?>

4. <% … %>

2.9Xampp

Xampp merupakan kakas yang menyediakan paket perangkat lunak ke

dalam satu buah paket. Dengan meng-install Xampp maka tidak perlu lagi

melakukan instalisasi dan konfigurasi web server Apache, PHP dan MySQL

secara manual. Xampp akan menginstalisasi dan mengkonfigurasinya secara

otomatis.

Gambar 2.7 Xampp

2.10 Metodologi Pengembangan Aplikasi (LUTHER)

Banyak metodologi pengembangan perangakat lunak, tidak pas diterapkan

(50)

Bagitu pula pada penelitian ini, metode yang dipakai dalam aplikasi skema

otentikasi dan tanda tangan digital schnorr ini. Salah satunya menurut Sutopo

(2003), yang berpendapat bahwa metodologi pengembangan multimedia terdiri

dari 6 tahapan, yaitu concept, desaign, metrial collecting, assembly, testing dan

distribution seperti gambar di bawah ini:

Gambar 2.8 Metode Pengembangan Aplikasi 1. Konsep

Di era tahun 70-an dan 80-an menjadi tonggak revolusi komunikasi data yang

menjadikan jaringan komputer global seagai media komunikasi yang kemudian

berkembang pesat. Komputer yang ada dirumah atau diperkantoran dapat

dihubungkan dengan internet untuk berkomunikasi dan mencari informasi

keseluruhan dunia tanpa perlu pergi keperpustakaan.

2. Design

Perancangan adalah tahap pembuatan spesifikasi mengenai arsitektur program,

tampilan, dan kebutuhan material/bahan untuk program. Spesifikasi dibuat serinci

mungkin sehingga pada tahap berikutnya. 1. Concept

2. Design

3. Material Collecting

4. Assembly

Gambar

Gambar 2.2 Simbol Flow Direction / Flow Line
Gambar 2.6 Simbol Input-Output
Gambar 2.7 Xampp
Gambar 2.8 Metode Pengembangan Aplikasi
+7

Referensi

Dokumen terkait

Sejak tahun 2007, Universitas Brawijaya telah mendeklarasikan visinya sebagai Entrepreneurial University yang bertujuan untuk meningkatkan daya saingnya melalui :

Penulis sampaikan ucapan terima kasih pada Sekretaris Direktorat Jenderal Bina Pengendalian Daerah Aliran Sungai dan Hutan Lindung, Kementerian Lingkungan Hidup dan

c). Pokja dan LKM kurang memahami alur besaran kegiatan tinjauan partisipatif, tinjauan internal dilaksanakan tetapi outputnya kurang maksimal. Tinjauan eksternal

Adapun beberapa langkah dalam proses pembuatan anyaman seperti pada gambar 4 diatas, langkah- langkah tersebut sebagai berikut: Mempersiapkan manequin sebagai alat cetak

hasil regresi secara parsial (uji t) menunjukkan bahwa kelima variabel yaitu pendidikan istri (X1) sebesar 0,039, curah jam kerja (X2) sebesar 0,022, lamanya penggunaan alat

g) sampel pertinggal bahan awal dan produk jadi disimpan dalam jumlah yang g) sampel pertinggal bahan awal dan produk jadi disimpan dalam jumlah yang cukup untuk dilakukan

Jurnal Eksakta diterbitkan oleh Pusat Kajian Bidang MIPA Universitas Negeri Padang dan memuat naskah ilmiah dalam bidang MIPA. Naskah dapat berupa: hasil penelitian, artikel ulas

sebatas proses transformasi pengetahuan mengenai fakta masa lalu belaka, tetapi yang terpenting adalah bagaimana siswa dapat belajar dari sejarah itu. Untuk itu, guru meminta