implementasi kriptografi kurva eliptik dengan algoritma elgamal dan metode pembangkitan bilangan...

Upload: dion-prayoga

Post on 03-Jun-2018

245 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    1/81

    DAFTAR ISI

    Halaman

    Persetujuan ii

    Pernyataan iii

    Penghargaan iv

    Abstrak vi

    Abstract vii

    Daftar Isi viii

    Daftar Tabel x

    Daftar Gambar xi

    Daftar Lampiran xii

    Bab 1 Pendahuluan 1

    1.1 Latar Belakang 1

    1.2 Perumusan Masalah 2

    1.3 Tujuan dan Manfaat 2

    1.4 Manfaat Penelitian 3

    1.5 Batasan Masalah 3

    1.6 Metodologi Penelitian 3

    1.7 Sistematika Penulisan 4

    Bab 2 Tinjauan Pustaka 6

    2.1 Pengenalan Kriptografi 6

    2.1.1 Definisi 6

    2.1.2 Terminologi 7

    2.2 Sistem Kriptografi 13

    2.2.1 Kriptografi Kunci Simetri 13

    2.2.2 Kriptografi Kunci Asimetri 14

    2.3 Kriptografi Kurva Eliptik 17

    2.3.1 Pengenalan 17

    2.3.2 Sistem Kriptografi Kurva Eliptik 19

    2.3.3 Field 22

    2.3.4 Group 242.4 Bilangan Prima 24

    2.4.1 Metode Pengujian Bilangan Prima Rabin-Miller 25

    2.4.2 Implementasi Pembangkit Bilangan Prima 26

    2.5 Algoritma ElGamal 27

    Bab 3 Analisis dan Perancangan 28

    3.1 Analisis Sistem 28

    3.1.1 Analisis Kriptografi Kurva Eliptik 29

    3.1.2 Analisis Algoritma ElGamal 33

    3.1.3 Analisis Metode Pembangkit Bilangan Prima Rabin-Miller 37

    3.2 Perancangan Sistem 383.3 Perancangan DFD (Data Flow Diagram) 41

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    2/81

    3.3.1 DFD Level 0 42

    3.3.2 DFD Level 1 42

    3.4 Perancangan User Interface 43

    3.4.1 Tampilan Menu Utama 43

    3.4.2 Tampilan Menu Proses Pembentukan Kunci 443.4.3 Tampilan Menu Proses Enkripsi 45

    3.4.4 Tampilan Menu Proses Dekripsi 46

    3.4.5 Tampilan Menu About 47

    Bab 4 Implementasi dan Pengujian 48

    4.1 Implementasi Sistem 48

    4.1.1 Spesifikasi Kebutuhan Perangkat Keras 48

    4.1.2 Spesifikasi Kebutuhan Perangkat Lunak 49

    4.2 Hasil Implementasi dan Pengujian 49

    4.2.1 Hasil Enkripsi 49

    4.2.2 Hasil Dekripsi 514.3 Tampilan Sistem 52

    4.3.1 Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem 53

    4.3.2 Tampilan Form Pembentukan Kunci pada Aplikasi ElGamal 53

    Elliptic Curve Cryptosystem

    4.3.3 Tampilan Form Enkripsi pada Aplikasi Elgamal Elliptic Curve 55

    Cryptosystem

    4.3.4 Tampilan Form Dekripsi pada Aplikasi ElGamal Elliptic Curve 61

    Cryptosystem

    4.3.5 Tampilan Form About pada Aplikasi ElGamal Elliptic Curve 65

    Cryptosystem

    Bab 5 Kesimpulan dan Saran 66

    5.1 Kesimpulan 66

    5.2 Saran 66

    Daftar Pustaka 68

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    3/81

    DAFTAR TABEL

    Nomor

    Tabel

    Nama Tabel Halaman

    3.1

    3.2

    3.3

    4.1

    4.2

    4.3

    Nilai Quadratic Residue Modulo 17 (QR17)

    Nilai Elemen E17(1,1)

    Konversi Karakter ke Kode ASCII

    Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi

    Hasil Enkripsi

    Hasil Dekripsi

    30

    31

    35

    48

    50

    51

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    4/81

    DAFTAR GAMBAR

    Nomor

    Gambar

    Nama Gambar Halaman

    2.12.2

    2.3

    2.4

    2.5

    2.6

    2.7

    2.8

    2.9

    3.1

    3.23.3

    3.4

    3.5

    3.6

    3.7

    3.8

    3.9

    3.10

    3.11

    3.12

    4.1

    4.2

    4.3

    4.4

    4.54.6

    4.7

    4.8

    4.9

    4.10

    4.11

    4.12

    4.13

    4.14

    4.154.16

    Plainteks berupa Teks dan CipherteksnyaPlainteks berupa Gambar dan Cipherteksnya

    Enkripsi Data Tertentu di dalam Arsip Basis Data

    (a) Skema Enkripsi dan Dekripsi

    (b) Contoh Ilustrasi Enkripsi dan Dekripsi

    Skema Kriptografi Simetri

    Skema Kriptografi Asimetri

    Sebuah Surat yang Dibubuhi Tanda Tangan Digital

    Contoh Kurva Eliptik untuk Persamaan y2= x3 x

    Contoh Kurva Eliptik untuk Persamaan y2= x

    3+ x + 1

    Tahapan Proses Enkripsi ElGamal Kriptografi Kurva Eliptik

    Tahapan Proses Dekripsi ElGamal Kriptografi Kurva EliptikFlowchart Pembentukan Kunci Kriptografi Kurva Eliptik

    Flowchart Enkripsi Kriptografi Kurva Eliptik ElGamal

    Flowchart Dekripsi Kriptografi Kurva Eliptik ElGamal

    DFD Level 0

    DFD Level 1 Proses Enkripsi dan Dekripsi

    Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem

    Tampilan Menu Proses Pembentukan Kunci Aplikasi ElGamal

    Elliptic Curve Cryptosystem

    Tampilan Menu Proses Enkripsi Aplikasi ElGamal Elliptic

    Curve Cryptosystem

    Tampilan Menu Proses Dekripsi Aplikasi ElGamal Elliptic

    Curve Cryptosystem

    Tampilan Form Mengenai Aplikasi

    Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem

    Tampilan Form Pembentukan Kunci Aplikasi ElGamal Elliptic

    Curve Cryptosystem

    Tampilan Form Pembentukan Kunci Setelah Semua Data

    Dimasukkan

    Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    Langkah 1 pada Proses EnkripsiLangkah 2 pada Proses Enkripsi

    Langkah 3 pada Proses Enkripsi

    Langkah 4 pada Proses Enkripsi

    Langkah 5 pada Proses Enkripsi

    Langkah 6 pada Proses Enkripsi

    Tampilan Awal Form Dekripsi pada Aplikasi ElGamal Elliptic

    Curve Cryptosystem

    Langkah 1 dari Proses Dekripsi

    Langkah 2 dari Proses Dekripsi

    Langkah 3 dari Proses Dekripsi

    Langkah 4 dari Proses DekripsiTampilan Form About pada Aplikasi ElGamal Elliptic Curve Cryptosystem

    89

    10

    12

    14

    15

    16

    18

    18

    34

    3639

    40

    41

    42

    42

    43

    44

    45

    46

    47

    53

    54

    55

    56

    5758

    58

    59

    60

    60

    61

    62

    63

    64

    6465

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    5/81

    DAFTAR LAMPIRAN

    Halaman

    A.ListingProgram A-1

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    6/81

    BAB I

    PENDAHULUAN

    1.1 Latar Belakang

    Keamanan merupakan aspek yang sangat penting dalam berkomunikasi, kerahasiaan

    data atau informasi harus dapat dijaga dari pihak pihak yang tidak berwenang

    sehingga data atau informasi tersebut dapat terkirim kepada penerima yang

    semestinya. Sejak zaman dahulu, manusia telah banyak menciptakan cara untuk

    menjaga keamanan dan keutuhan pesan yang dikirim pada pihak yang berhak

    menerimanya, salah satunya adalah dengan menggunakan penyandian. Penyandian

    sendiri adalah proses enkripsi dan deskripsi terhadap pesan yang akan dikirimkan.

    Ada berbagai cara untuk melakukan penyandian dan sudah ada sejak dulu, ada

    yang menggunakan besar diameter kayu sebagai kunci, sebuah pita lantas ditulis dandigulung pada kayu tersebut dan terciptalah sebuah metode untuk menyandikan pesan

    dengan menggunakan kayu sebagai kuncinya. Semakin berkembangnya peradaban

    membuat cara (algoritma) yang digunakan semakin berkembang. Salah satunya adalah

    kriptografi kurva eliptik yang dicetuskan oleh Neal Koblitz dan Victor S. Miller pada

    tahun 1985.

    Kriptografi kurva eliptik mendasarkan keamanannya pada permasalahan

    matematis kurva eliptik yang berbeda dengan persamalahan matematis logaritma

    diskrit dan pemfaktoran bilangan bulat biasa karena tidak ada algoritma waktu

    subeksponensial yang diketahui untuk memecahkan permasalahan matematis

    logaritma diskrit kurva eliptik (Elliptic Curve Discrete Logarithm Problem). Karena

    alasan tersebutlah maka algoritma kriptografi kurva eliptik mempunyai keuntungan

    jika dibandingkan dengan algoritma kunci publik lainnya yaitu dalam hal ukuran

    panjang kunci yang lebih pendek tetapi memiliki tingkat keamanan yang sama.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    7/81

    Elliptic Curve Discrete Logarithm Problem (ECDLP) pada implementasinya

    mempunyai tiga buah protokol yaitu Elliptic Curve Digital Signature Algorithm

    (ECDSA), Elliptic Curve Diffie-Hellman (ECDH) dan Elliptic Curve ElGamal

    (ECElGamal)[8]. Untuk skripsi ini akan digunakan salah satu dari tiga protokol

    tersebut yaitu kriptografi kurva eliptik elgamal (ElGamal ECC), yang menggunakan

    algoritma ElGamal sebagai algoritma untuk proses enkripsi dan kriptografi kurva

    eliptik sebagai proses menghasilkan kunci publik, selain itu untuk pembangkit

    bilangan primanya akan digunakan metode Rabin-Miller.

    1.2 Perumusan Masalah

    Salah satu hal yang menyebabkan kriptografi kurva eliptik kurang populer

    adalah karena kerumitannya dan banyaknya operasi matematis yang

    berhubungan dengan titik-titik pada kurva eliptik oleh karena itu perlu

    dikaji bagaimana menyederhanakan kriptografi kurva eliptik ini sehingga

    dapat mudah digunakan dan dipelajari. Selain itu hal lain yang

    menyebabkan kriptografi kurva eliptik kurang populer adalah lamanya

    proses enkripsi dekripsi sehinggga perlu dilakukan analisis performansi

    waktu proses.

    1.3 Tujuan dan Manfaat

    Tujuan dari penelitian ini adalah membuat sebuah aplikasi keamanan yang

    mengimpelementasikan kriptografi kurva eliptik.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    8/81

    1.4 Manfaat Penelitian

    Manfaat dari penelitian ini adalah:

    1. Dapat menambah pengetahuan tentang kriptografi kurva eliptik2. Dapat mengetahui tingkat keamanan dan efektifitas kriptografi kurva eliptik

    1.5 Batasan Masalah

    Berikut adalah masalah masalah yang akan dibatasi dalam pengerjaan skripsi ini:

    1. Kriptografi kurva eliptik yang digunakan hanya menggunakan medan berhingga(finite field) Fp, algoritma yang digunakan untuk proses enkripsi adalah ElGamal

    dan pembangkit bilangan prima akan menggunakan metode Rabin Miller.

    2. Bahasa pemrograman yang digunakan adalahMicrosoft Visual Basic.3. Informasi yang dienkripsi hanya berupafileteks.4. Kurva eliptik 2 = 3 + + () yang digunakan dibatasi hanya

    menggunakan nilai a = 1 dan b = 1 sehingga kurva nya menjadi 2 = 3 + +

    1 ()5. Bilangan prima yang dibangkitkan dengan metode pembangkitan bilangan prima

    Rabin-Miller dibatasi hanya sebesar dua digit.

    1.6 Metodologi Penelitian

    Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut:

    a. Studi LiteraturMetode ini dilaksanakan dengan melakukan studi kepustakaan yang relevan serta

    buku-buku maupun artikel-artikel atau e-book dan juga jurnal internasional yang

    didapatkan melalui internet.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    9/81

    b. AnalisisPada tahap ini digunakan untuk mengolah data yang ada dan kemudian melakukan

    analisis terhadap hasil studi literatur yang diperoleh sehingga menjadi suatu

    informasi.

    c. Perancangan Perangkat LunakPada tahap ini, digunakan seluruh hasil analisa terhadap studi literatur yang

    dilakukan untuk merancang perangkat lunak yang akan dihasilkan. Dalam tahapan

    ini juga dilakukan perancangan model antarmuka serta proses kerja sistem untuk

    memudahkan dalam proses implementasi.

    d. Implementasi dan Pengujian SistemPada tahap ini dilakukan implementasi perangkat lunak yang sudah dibangun dan

    dilakukan pengujian pada perangkat lunak untuk mengetahui seberapa besar

    tingkat keamanan, lama enkripsi dan integritas data.

    1.7 Sistematika Penulisan

    Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, sebagai berikut:

    BAB 1: PENDAHULUAN

    Bab ini merupakan penjelasan mengenai latar belakang pemilihan topik penelitian

    Implementasi Kriptografi Kurva Eliptik dengan Algoritma ElGamal dan Metode

    Pembangkitan Bilangan Prima Rabin-Miller, rumusan masalah, batasan masalah,

    tujuan penelitian, manfaat penelitian, metode penelitian serta sistematika penulisan.

    BAB 2: TINJAUAN PUSTAKA

    Bab ini akan menjelaskan teori-teori yang berkaitan dengan kriptografi kurva eliptik,

    operasi perhitungan pada titik, algoritma kriptografi ElGamal, serta metode

    pembentukan bilangan prima Rabin Miller.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    10/81

    BAB 3: ANALISIS DAN PERANCANGAN SISTEM

    Bab ini akan menjabarkan tentang analisis kebutuhan untuk menghasilkan suatu

    rancang bangun yang pada tahap selanjutnya diimplementasikan dengan bahasa

    pemrograman.

    BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM

    Bab ini berisikan sejumlah informasi yang berkaitan dengan implementasi sistem hasil

    perancangan serta analisis kinerja sistem berdasarkan data yang diperoleh.

    BAB 5: KESIMPULAN DAN SARAN

    Bab ini akan memuat kesimpulan secara umum dari uraian pada bab - bab

    sebelumnya, serta saran yang berguna untuk pengembangan lebih lanjut pada masa

    yang akan datang.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    11/81

    BAB II

    TINJAUAN PUSTAKA

    2.1 Pengenalan Kriptografi

    2.1.1 Definisi

    Jika seseorang bertukar pesan (misalnya surat) dengan orang lain, maka orang tersebut

    tentu ingin pesan yang dikirim sampai ke pihak yang dituju dengan aman. Pengertian

    aman di sini sangat luas. Aman bisa berarti bahwa selama pengiriman pesan, pesan

    tersebut tidak dibaca oleh orang yang tidak berhak. Sebab, mungkin saja pesan yang

    dikirim berisi sesuatu yang rahasia sehingga jika pesan rahasia dibaca oleh pihak

    lawan atau pihak yang tidak berkepentingan, maka bocorlah kerahasiaan pesan yang

    dikirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan

    (confidentialityatauprivacy). [4]

    Aman bisa juga berarti bahwa pesan yang dikirim sampai dengan utuh ke

    tangan penerima, artinya isi pesan tidak diubah atau dimanipulasi selama pengiriman

    oleh pihak ketiga. Di sisi penerima pesan, tentu ingin memastikan bahwa pesan yang

    diterima adalah pesan yang masih asli, bukan pesan yang sudah ditambah-tambah atau

    dikurangi. Ini adalah masalah keamanan pesan yang disebut integritas data (data

    integrity). Selain itu, penerima yakin bahwa pesan tersebut memang benar berasal dari

    pengirim yang sebenarnya, bukan dari orang lain yang menyamar seperti si pengirim,

    dan pengirim pun yakin bahwa orang yang dikirimi pesan adalah orang yang

    sesungguhnya. Ini adalah masalah keamanan pesan yang dinamakan otentikasi

    (authentication).[4]

    Sebagai seorang penerima pesan, tentu ingin memastikan kelak pengirim pesan

    tidak membantah pernah mengirim pesan. Ini adalah masalah keamanan yang disebut

    penyangkalan (repudiation). Zaman sekarang, banyak orang yang membantah telah

    mengirim atau menerima pesan. Padahal penerima yakin bahwa memang menerima

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    12/81

    pesan dari orang tersebut. Jika pengirim membantah telah mengirim pesan, maka

    perlu dibuktikan ketidakbenaran penyangkalan tersebut (non-repudiation).[4]

    Keempat masalah keamanan yang disebutkan di atas, yaitu kerahasiaan,

    integritas data, otentikasi dan penyangkalan dapat diselesaikan dengan menggunakan

    kriptografi. Kriptografi tidak hanya menyediakan alat untuk keamanan pesan, tetapi

    juga sekumpulan teknik yang berguna.[9]

    Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptos artinya

    secret (rahasia), sedangkan graphein artinya writing (tulisan). Jadi, kriptografi

    berarti secret writing (tulisan rahasia)[5]. Ada beberapa definisi kriptografi yang

    telah dikemukakan di dalam berbagai literatur, seperti:

    1. Bruce Schneier di dalam bukunya Applied Cryptography menyatakan bahwa:Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is

    the art and science of keeping messages secure).[2]

    2. Menezes, Alfred J., Paul C. van Oorschot dan Scott A. Vanstone dalam bukumereka Handbook of Applied Cryptography menyatakan bahwa: Kriptografi

    adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan

    dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta

    otentikasi.

    2.1.2 Terminologi

    Di dalam kriptografi, akan sering ditemukan berbagai istilah atau terminologi.Beberapa istilah yang penting untuk diketahui diberikan di bawah ini.

    1. Plainteks dan Cipherteks.Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti

    maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas

    (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir,

    saluran telekomunikasi) atau yang disimpan di dalam media perekaman (kertas,

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    13/81

    storage). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat

    berbentuk citra (image), suara/bunyi (audio) dan video atau berkas biner lainnya.

    Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu

    disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi

    disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus

    dapat ditransformasikan kembali menjadi plainteks semula agar pesan yang

    dierima bisa dibaca. Gambar 2.1 dan 2.2 memperlihatkan contoh dari dua buah

    plainteks, masing-masing berupa teks dan gambar, serta cipherteks yang

    berkoresponden. [9]

    (a) Plainteks (b) Cipherteks

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.1 Plainteks berupa Teks dan Cipherteksnya

    (a) Plainteks (b) Cipherteks

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.2 Plainteks berupa Gambar dan Cipherteksnya

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    14/81

    2. Pengirim dan penerimaKomunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim

    (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima

    (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang,

    mesin (komputer), kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan

    dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob), sedangkan di

    dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin

    (contoh: mesin ATM berkomunikasi dengan komputerserverdi bank).

    Pengirim tentu menginginkan pesan dapat dikirim secara aman, yaitu ia yakin

    bahwa pihak lain tidak dapat membaca isi pesan yang dikirim. Solusinya adalah

    dengan cara menyandikan pesan menjadi cipherteks. [9]

    3. Enkripsi dan dekripsiProses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption)

    atau enciphering. Sedangkan, proses mengembalikan cipherteks menjadi plainteks

    semula dinamakan dekripsi (decryption) atau deciphering. Enkripsi dan dekripsi

    dapat diterapkan baik pada pesan yang dikirim maupun pada pesan tersimpan.

    Istilah encryption of data in motion mengacu pada enkripsi pesan yang

    ditransmisikan melalui saluran komunikasi, sedangkan istilah encryption of data

    at-restmengacu pada enkripsi dokumen yang disimpan di dalam storage. Contoh

    encryption of data in motionadalah pengiriman nomor PIN dari mesin ATM ke

    komputer server di kantor bank pusat. Contoh encryption of data at-rest adalah

    enkripsi filebasis data di dalam hard disk. Gambar 2.3 memperlihatkan enkripsifilebasis data, di mana enkripsi hanya dilakukan terhadap field-field tertentu saja

    (Nama, Tinggi dan Berat). [9]

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    15/81

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.3 Enkripsi Data tertentu di dalam Arsip Basisdata

    4. Cipherdan kunciAlgoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan

    deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.

    Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan

    deciphering.

    Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara

    dua buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan

    himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang

    memetakan elemen-elemen antara kedua himpunan tersebut. Misalkan P menyatakan

    plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C,

    E(P) = C

    Dan fungsi dekripsi D memetakan C ke P,

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    16/81

    D(C) = P

    Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka

    kesamaan berikut harus benar,

    D(E(P))= P [9]

    Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (work)

    yang dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa

    mengetahui kunci yang digunakan. Kerja ini dapat diekivalenkan dengan waktu,

    memori, uang, dan lain-lain. Semakin banyak kerja yang diperlukan, yang berarti juga

    semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografi

    tersebut, yang berarti semakin aman digunakan untuk menyandikan pesan.

    Jika keamanan kriptografi ditentukan dengan menjaga kerahasiaan

    algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted.

    Algoritma restricted mempunyai sejarah tersendiri di dalam kriptografi. Algoritma

    restricted biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama

    lain. Mereka membuat suatu algoritma enkripsi yang hanya diketahui oleh anggota

    kelompok itu saja. Tetapi, algoritma restricted tidak cocok lagi saat ini, sebab setiap

    kali ada anggota kelompok keluar, maka algoritma kriptografi harus diganti lagi.

    Kriptografi modern mengatasi masalah di atas dengan penggunaan kunci, yang

    dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga

    kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi

    enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan.

    Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulissebagai

    EK(P) = C dan DK(C) = P

    dan kedua fungsi ini memenuhi

    DK(EK(P)) = P

    Gambar 2.4(a) berikut memperlihatkan skema enkripsi dan dekripsi dengan

    menggunakan kunci, sedangkan Gambar 2.4(b) mengilustrasikan enkripsi dan dekripsi

    terhadap sebuah pesan. [9]

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    17/81

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.4(a) Skema Enkripsi dan Dekripsi,

    (b) Contoh Ilustrasi Enkripsi dan Dekripsi Pesan

    2.2 Sistem Kriptografi

    Kriptogafi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistemkriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi,

    semua plainteks dan cipherteks yang mungkin dan kunci. Di dalam sistem kriptografi,

    cipherhanyalah salah satu komponen saja. [9]

    Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi

    dapat dibedakan menjadi kriptografi kunci-simetri (symmetric-key cryptography) dan

    kriptografi kunci-asimetri (asymmetric-key cryptography). [7]

    2.2.1 Kriptografi Kunci Simetri

    Pada sistem kriptografi kunci-simetri, kunci untuk enkripsi sama dengan kunci untuk

    dekripsi, oleh karena itulah dinamakan kriptografi simetri. Istilah lain untuk

    kriptografi kunci-simetri adalah kriptografi kunci privat (private-key cryptography),

    kriptografi kunci rahasia (secret-key cryptography). Sistem kriptografi kunci-simetri

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    18/81

    (atau disingkat menjadi kriptografi simetri saja), mengasumsikan pengirim dan

    penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan

    sistem kriptografi simetri terletak pada kerahasiaan kuncinya. Kriptografi simetri

    merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga

    pada tahun 1976. Beberapa algoritma kriptografi modern yang termasuk ke dalam

    sistem kriptografi simetri, diantaranya adalah Data Encryption Standard (DES),

    Blowfish, Twofish, Triple-DES, International Data Encryption Standard (IDEA),

    Serpent, dan yang terbaru adalahAdvanced Encryption Standard(AES). [9]

    Secara umum, cipher yang termasuk ke dalam kriptografi simetri beroperasi

    dalam mode blok (block cipher), yaitu setiap kali enkripsi/dekripsi dilakukan terhadap

    satu blok data (yang berukuran tertentu), atau beroperasi dalam mode aliran (stream

    cipher), yaitu setiap kali enkripsi/dekrisi dilakukan terhadap satu bit atau satu byte

    data. Aplikasi kriptografi sismetri yang utama adalah melindungi kerahasiaan data

    yang dikirim melalui saluran tidak aman dan melindungi kerahasiaan data yang

    disimpan pada media yang tidak aman. Kelemahan dari sistem ini adalah baik

    pengirim maupun penerima pesan harus memiliki kunci yang sama, sehingga pengirim

    pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima

    pesan. Gambaran skema kriptografi simetri dapat dilihat pada gambar 2.5:

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.5 Skema Kriptografi Simetri

    2.2.2 Kriptografi Kunci Asimetri

    Jika kunci enkripsi tidak sama dengan kunci untuk dekripsi, maka kriptografinya

    dinamakan sistem kriptografi asimetri. Nama lainnya adalah kriptografi kunci-publik

    (public-key cryptography), sebab kunci untuk enkripsi tidak rahasia dan dapat

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    19/81

    diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi

    hanya diketahui oleh penerima pesan (karena itu rahasia). Pada kriptografi jenis ini,

    setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan

    kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik. Hanya

    penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci

    privatnya sendiri. Gambaran dari skema kriptografi asimetri ini dapat dilihat pada

    gambar 2.6:

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.6 Skema Kriptografi Asimetri

    Contoh algoritma kriptografi kunci-publik diantaranya RSA, Elgamal, DSA,

    NTRU dan sebagainya. [9]

    Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang terkunci

    dan memiliki lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat

    ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak

    dan membaca surat di dalamnya karena ia yang memiliki kunci. Keuntungan sistem

    ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat

    sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke penerima

    melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan.

    Saluran untuk mengirim pesan umumnya tidak aman.

    Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia

    dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup

    membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk

    mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan

    kriptografi kunci-simetris dimana jumlah kunci yang dibuat adalah sebanyak jumlah

    pihak yang diajak berkorespondensi. Contoh penggunaan, misalkan jaringan komputer

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    20/81

    menghubungkan kompuer karyawan di kantor cabang dengna komputer manajer di

    kantor pusat. Seluruh kepala cabang diberitahukan bahwa kalalu mereka mengirim

    laporan ke manajer di kantor pusat, mereka harus mengenkripsi laporan tersebut

    dengan kunci publik manajer (kunci publik manajer diumumkan kepada seluruh

    kepala cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya

    manajer yang dapat melakukan dekripsi, karena hanya dialah yang memegang kunci

    privat. Selama proses transmisi cipherteks dari kantor cabang ke kantor pusat melalui

    saluran komunikasi, mungkin saja data yang dikirim disadap oleh pihak ketiga, namun

    pihak ketiga ini tidak dapat mengembalikan cipherteks ke plainteksnya karena tidak

    mengetahui kunci untuk dekripsi.

    Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik mempunyai

    kontribusi yang luar biasa dibandingkan dengan sistem kriptografi simetri. Kontribusi

    yang paling penting adalah tanda-tangan digital pada pesan untuk memberikan aspek

    keamanan otentikasi, integritas data dan nirpenyangkalan. Tanda-tangan digital adalah

    nilai kriptografis yang bergantung pada isi pesan dan kunci yang digunakan. Pengirim

    pesan mengenkripsi pesan (yang sudah diringkas) dengan kunci privatnya, hasil

    enkripsi inilah yang dinamakan tanda-tangan digital. Tanda tangan digital dilekatkan

    (embed) pada pesan asli. Penerima pesan memverifikasi tanda-tangan digital dengan

    menggunakan kunci publik. Gambar 2.7 memperlihatkan sebuah surat elektronik yang

    di bagian bawah sudah dibubuhi tanda-tangan digital (di antara BEGIN dan END

    SIGNATURE). [9]

    (sumber: Munir, Rinaldi. 2006)

    Gambar 2.7 Sebuah Surat yang Dibubuhi Tanda-Tangan Digital

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    21/81

    2.3 Kriptografi Kurva Eliptik

    2.3.1 Pengenalan

    The Elliptic Curce Cryptosystem (ECC) diperkenalkan pada tahun 1985 oleh Neal Koblitz

    dan Victor Millerdari Universitas Washington. Kurva eliptik mempunyai masalah logaritma

    yang terpisah sehingga sulit untuk dipecahkan. Kriptografi kurva eliptik termasuk sistem

    kriptografi kunci publik yang mendasarkan keamanannya pada permasalahan matematis kurva

    eliptik. Tidak seperti permasalahan matematis logaritma diskrit/ Discrete Logarithm Problem

    (DLP) dan pemfaktoran bilangan bulat/ Integer Factorization Problem (IFP), tidak ada

    algoritma waktu sub-eksponensial yang diketahui untuk memecahkan permasalahan

    matematis algoritma diskrit kurva eliptik/ Elliptic Curve Discrete Logarithm Problem

    (ECDLP). Oleh karena alasan tersebut algoritma kriptografi kurva eliptik mempunyai

    keuntungan bila dibandingkan algoritma kriptografi kunci publik lainnya, yaitu dalam hal

    ukuran kunci yang lebih pendek tetapi tingkat keamanan yang sama.[8]

    Kurva eliptik juga digunakan pada beberapa algoritma pemfaktoran integer yang juga

    memiliki aplikasi dalam kriptografi, seperti Lenstra Elliptic Curve Factorization. Algoritma

    kunci publik didasarkan pada variasi perhitungan matematis yang terbilang sangat sulit

    dipecahkan tanpa pengetahuan tertentu mengenai bagaimana perhitungan tersebut dibuat.

    Pembuat algoritma menyimpan kunci rahasia dan menyebarkan kunci publiknya. Algoritma

    kunci publik digunakan untuk mengenkripsi pesan dimana hanya pembuat algoritma yang

    dapat memecahkannya. Sistem kunci publik awal, seperti algoritma RSA, menggunakan dua

    bilangan prima yang sangat besar. Pengguna memilih dua bilangan prima acak yang besar

    sebagai kunci rahasianya dan mempublikasikan hasil perhitungannya sebagai kunci publik.

    Pemfaktoran bilangan bilangan besar yang sangat sulit dapat menjaga kerahasiaan kunci

    rahasia itu dari orang lain.[1]

    Persoalan lain menyangkut perhitungan aljabar ab = c, dimana a dan c diketahui.

    Perhitungan semacam itu menyangkut bilangan kompleks atau real yang dapat dengan mudah

    dipecahkan menggunakan algoritma. Tetapi dalam kumpulan bilangan terbatas yang besar,

    menemukan solusi untuk perhitungan semacam itu sangat sulit dan dikenal sebagai discrete

    logarithm problem. Kurva eliptik dapat ditulis dengan perhitungan matematis sebagai berikut

    [10]:

    y2= x3+ ax + b

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    22/81

    Contoh kurva eliptik dapat dilihat pada gambar 2.8 dan gambar 2.9.

    Gambar 2.8 Contoh Kurva Eliptik Untuk Persamaan y

    2

    = x

    3

    x

    Gambar 2.9 Contoh Kurva Eliptik Untuk Persamaan y2= x

    3+ x + 1

    Kumpulan titik pada kurva dapat membentuk kumpulan abelian (dengan titik pada tak

    terhingga sebagai elemen identitas). Jika nilai x dan y dipilih dari daerah terbatas yang besar,

    solusi akan membentuk suatu kumpulan abelian terbatas. Permasalahan logaritma diskrit pada

    kumpulan kurva eliptik tersebut dipercaya lebih sulit dibandingkan permasalahan yang sama

    (perkalian bilangan tidak nol) dalam daerah terbatas. Selain itu, kunci dalam algoritma

    kriptografi kurva eliptik dapat dipilih yang lebih pendek untuk keamanan yang cukup tinggi.

    Sebagai salah satu sistem kripto kunci publik, belum ada pembuktian matematis untuk tingkat

    kesulitanElliptic Curve Cryptosystemyang telah dipublikasikan sampai tahun 2006.[1]

    Elliptic Curve Cryptosystem mempunyai panjang kunci 160 bit yang dipercaya

    mempunyai tingkat keamanan yang setara dengan RSA 1024 bit. Elliptic Curve Cryptosystem

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    23/81

    menggunakan parameter yang lebih kecil dibandingkan sistem algoritma konvensional.

    Elliptic Curve Cryptosystemsendiri sudah dipelajari selama bertahun tahun. Kurva eliptik

    menghasilkan bilangan prima Zpatau menghasilkan batasan GF(2n), merupakan sesuatu yang

    menarik sebab digunakan untuk menyediakan suatu cara membangun algoritma kriptografi.

    Elliptic Curve Cryptosystem mempunyai potensi untuk menyediakan kunci umum sistem

    kripto yang lebih cepat dengan ukuran kunci yang lebih kecil.[1]

    2.3.2 Sistem Kriptografi Kurva Eliptik

    Kurva eliptik yang digunakan dalam kriptografi didefinisikan dengan menggunakandua tipe daerah terbatas : daerah karakteristik ganjil (Fp, dimana p > 3 adalah bilangan prima

    yang besar) dan daerah karakteristik dua (F2m). Karena perbedaan itu menjadi tidak begitu

    penting, kedua daerah terbatas tersebut dapat ditunjukkan sebagai Fq, dimana q = p atau q =

    2m. Elemen dari Fpadalah integer (0

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    24/81

    1. Penjumlahan (addition), jika a, b Fp, dimana a + b = r, dimana r adalah sisa pembagian a+ b dengan bilangan prima p, 0 1. Penjumlahan seperti ini disebutpenjumlahan modulo p (mod p).

    2. Perkalian (multiplication), jika a,b Fp, maka a * b = s, dimana s adalah sisa pembagian a* b dengan bilangan prima p, 0 1. Perkalian seperti ini disebut perkalianmodulo p (mod p).

    Bidang terbatas F2m biasa disebut dengan bidang terbatas biner (biner finite

    field), dapat dipandang sebagai ruang vector dimensi m pada F2. Karena itu ada

    himpunan yang beranggotakan m elemen {0,1,, 1} di dalam F2msedemikian rupa sehingga setiap a F2mdapat ditulis secara unik ke dalam bentuk:[2]

    a = a00+ a11+ + am-11+ am, untuk ai{0,1}

    Salah satu cara untuk merepresentasikan elemen elemen pada F2m adalah

    dengan representasi basis polinomial. Pada representasi basis polynomial elemen pada

    F2m merupakan polinomial dengan derajat lebih kecil dari m, dengan koefisien

    bilangan 0 atau 1.[2]

    {am-1xm-1+ + a2x

    2+ a1x1+ a0x

    0| ai: 0,1}

    3 = 12 + 123 = 12 + 1 + 11 3 + 3

    Persamaan kurva eliptik menggunakan rumus

    2 =

    3 +

    +

    yang

    digambarkan diatas dimana a, b . disebut bilangan prima jika dan hanyajika p > 3 yang merupakan kelompok ganjil. Kurva eliptik (EC) dapat diubah menjadi

    kelompok abelian dengan semua titik dari EC, yang meliputi ketidak-terbatasan O

    dibawah kondisi 4a3+27b2 0 (mod p), jika (x1,y1) dan Q(x2,y2) ada pada kurvaeliptik. Titik yang ketiga R adalah P + Q = (x3,y3). Titik yang ketiga dari R bisa

    digambarkan sebagai berikut : Pertama digambarkan sebuah garis yang melewati P

    dan Q. cari persimpangan titik R pada kurva eliptik dan kemudian temukan titik

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    25/81

    pemantulan dari R berkenaan dengan X-axis, yang merupakan penjumlahan dari P dan

    Q.[2]

    Salah satu ECC yang terkenal adalah Elliptic Curve Direcrete Logarithm

    Problem(ECDLP) yang dinyatakan sebagai berikut : Diambil suatu bilangan prima p

    dan tentukan persamaan kurva eliptik, kemudian xp menyatakan titik P yang

    ditambahkan dengan dirinya sendiri sebanyak x kali, dan bila Q merupakan kelipatan

    P maka Q = xP untuk suatu x. Keamanan dari ECDLP diperoleh dari sulitnya

    mendapatkan x bila P dan Q diketahui, apalagi nilai P dan Q cukup besar.

    Kompleksitas algoritma untuk mencarinya dengan eksponensial dan diperlukan

    logaritma diskrit.[2]

    Contoh : Diketahui p = 17, dipilih a = 1 dan b = 5 dan menggunakan

    persamaan sebelumnya dengan Z17 menjadi 2 = 3 + + 5 (mod 17). Karenanyapenyamaan yang diberikan kurva eliptik:[1]

    1. P = (3,1) dan Q(8,10) dua titik pada kurva eliptik. Kemudian P + Q = R(x3,y3) merupakanhasil perhitungan di bawah ini :

    + = (3,1) + (8,10)3 =2 12 1 2 1 2 =9

    52 3 8

    Karena 9 x 51(mod 17) = 9 x 7 (mod 17) = 12. Ini menghasilkanx3= (12

    2-3-8)(mod 17) =14

    3 = 1 + 95 (3 14) = 1 + 1 2 (11) =133 (17) = 3

    Maka P + Q = R(14,3)

    2. P = (3,1) kemudian 2P = P + P = (x3,y3). Perhitungannya seperti di bawah ini :2 = (3,1) + (3,1)

    3 =312 +

    21 2 21 =2 7 + 1

    2 2 6 = 1 42 6 = 190(17) = 3

    dan

    3 = 1 + 312 +

    21 (1 3) = 1 + 1 4(3 3) =1(17) = 16Maka 2P = (3,16)

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    26/81

    2.3.3 Field

    Field adalah kumpulan dari elemen, X dan Y, yang terdapat dalam fungsi.

    Beberapa contoh darifieldadalah bilangan real, bilangan kompleks, bilangan rasional

    dan bilangan integer modulo bilangan prima. Contoh yang terakhir ini merupakan

    salah satu contoh finite field. Persyaratan dari sebuah field adalah penjumlahan dan

    perkalian biasa, ditambah eksistensi dari inversi penjumlahan dan perkalian, kecuali 0

    yang tidak mempunyai inversi perkalian. Dengan perkataan lain, sebuah field

    mempunyai penjumlahan, pengurangan, perkalian dan pembagian. Operasi-operasi ini

    selalu menghasilkan sebuah hasil yang terdapat di dalam field tersebut dengan

    pengecualian pembagian dengan bilangan nol yang tidak terdefinisi.[1]

    Bilangan kompleks dapat didefinisikan sebagai b.i + a dengan aturan reduksi t2

    + 1 = 0. Untuk melakukan perkalian bilangan kompleks, kita dapat menganggap t

    sebagai unknown (tak dikenal), mengumpulkan bilangan pangkat dari t dan

    menerapkan aturan reduksi untuk menyederhanakan hasilnya. Konstruksi ini berlaku

    untuk aturan reduksi lainnya yang mengandung bilangan pangkat lebih besar dari t.

    Koefisien dari bilangan pangkat dari t boleh berasal dari semua field, tetapi bila kita

    mengambil integer modulop sebagai field-nya, kita mendapatkan sebuah finite field

    dengan pmelemen, dimana m adalah derajat dari aturan reduksi. Tidak semua aturan

    reduksi berlaku, kita harus menggunakan polinomial yang tidak dapat direduksi lagi

    (irreducible polynomial). [1]

    Sebagai catatan, ketika mengalikan elemen dari field sebenarnya dua aturanreduksi bekerja secara simultan, yaitu aturan untuk mereduksi koefisien modulo p dan

    aturan untuk mereduksi pangkat besar dari t. Konstruksi ini bekerja untuk semua p dan

    m, selama p adalah bilangan prima. Faktanya, setiap finite fielddapat dikonstruksikan

    dengan cara ini. Fakta ini sebenarnya direferensikan kepada Galois fielddengan pm

    elemen, dengan menggunakan notasi GF(pm). Bilangan prima p merupakan

    karakteristik darifield.[1]

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    27/81

    Representasi field menentukan bit-pattern mana yang akan digunakan untuk

    merepresentasikan bermacam-macam elemen field. Representasi dipilih untuk

    membuat operasi aritmatikafieldmenjadi efisien.[1]

    2.3.4 Group

    Groupmerupakan kumpulan dari field. Terdapat tiga buah grouputama yang sangat

    disukai oleh para ahli kriptografi yaitu :[1]

    1. Groupperkalian darifieldbilangan prima : GF(p).2. Groupperkalian darifinite fielddari karakteristik 2 : GF(2n).3. Elliptic Curve Grouppadafinite fieldF : EC(F).

    Jika p adalah modulus dan bilangan prima, maka kompleksitas untuk mencari

    logaritma diskrit pada GF(p) pada dasarnya sama dengan memfaktorisasi sebuah

    integern, dimana n adalah pemangkatan dari dua buah bilangan prima yang hampir

    sama panjang.[1]

    2.4 Bilangan 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 :[8][9]

    1. Berapa banyak bilangan prima yang tersedia ? Cukupkah untuk memberikankeamanan bagi kriptografi ? Ahli matematika telah menemukan bahwa jumlah

    bilangan prima yang tersedia pada bilangan 512 bit adalah sekitar 10151.

    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 1012bilangan prima yang berbeda

    untuk memenuhinya. Bandingkan 1012 bilangan prima yang diperlukan dengan

    10151bilangan 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. Dapatkah seseorang membuat databaseyang dapat menyimpan seluruh bilanganprima dari 2 hingga kurang dari 21024? Dapat, tapi juga mustahil. Bila mempunyai

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    28/81

    harddisk yang berkapasitas 1035 word (untuk mempermudah perhitungan,

    dianggap setiap word sanggup menyimpan satu bilangan prima), maka akan

    diperlukan sekitar 10270harddiskuntuk menyimpan seluruh bilangan prima yang

    kurang dari 21024.

    Selain itu, pemfaktoran bilangan prima juga tidak mudah. Bila mencari faktor

    prima sedemikian sulit, bagaimana dapat membangkitkan bilangan prima dengan

    mudah ? Triknya adalah pertanyaan ya / tidak. Apakah ini bilangan prima ? Menjawab

    pertanyaan ini lebih mudah daripada menjawab pertanyaan yang lebih kompleks

    seperti berapa faktor prima dari n ?[8][9]

    Cara yang salah untuk mendapatkan bilangan prima adalah dengan

    membangkitkan bilangan acak dan kemudian mencoba memfaktorkannya. Cara yang

    benar adalah membangkitkan bilangan acak dan kemudian mencoba apakah

    merupakan bilangan prima. Terdapat beberapa metode tes peluang prima, tes

    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. [8][9]

    2.4.1 Metode Pengujian Bilangan Prima Rabin-Miller

    Metode untuk tes peluang prima yang paling sering digunakan adalah metode Rabin-

    Miller. Algoritma ini dirancang oleh Michael Rabin dengan berdasarkan beberapa ide

    dari Gary Miller. Algoritma pengetesan ini adalah seperti berikut :[8][9]1. Pilih bilangan acak p untuk dites.2. Hitung b, dimana b adalah banyaknya (p 1) dibagi 2 (yaitu, b adalah pangkat

    terbesar dari 2, sedemikian sehingga 2b merupakan faktor dari p 1).

    3. Kemudian hitung m, sedemikian sehingga p = 1 + 2b.m4. Pilih bilangan acak a sedemikian sehingga a lebih kecil daripada p.5. Set j = 0 dan set z = ammod p.6. Jika z = 1 atau jika z = p 1, maka p lolos tes dan mungkin bilangan prima.7. Jika j > 0 dan z = 1, maka p bukan bilangan prima.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    29/81

    8. Set j = j + 1. Bila j < b dan z p 1, set z = z2mod p dan kembali ke tahap 4. Jikaz = p 1, maka p lolos tes dan mungkin prima.

    9. Jika j = b dan z p 1, maka p bukan bilangan prima.

    2.4.2 Implementasi Pembangkit Bilangan Prima

    Dalam dunia nyata, implementasi pembangkitan bilangan prima dapat berlangsung

    dengan sangat cepat. Salah satu implementasinya adalah sebagai berikut:[8][9]

    1. Bangkitkan bilangan acak p sepanjang n bit.2. Set bit Most Significant Bit (MSB) dan Least Significant Bit (LSB) nya ke 1.

    Atau set bit paling kiri dan kanannya ke bit satu. Pengesetan bit MSB menjamin

    panjang bit bilangan prima yang dihasilkan sesuai dengan yang diinginkan.

    Pengesetan bit LSB menjamin agar bilangan acak adalah bilangan ganjil, karena

    bilangan prima pasti harus bilangan ganjil.

    3. Periksa apakah p tidak dapat dibagi bilangan prima kecil : 2,3,5,7,11, danseterusnya hingga bilangan prima tertinggi yang lebih kecil dari 256. Pemeriksaan

    ini akan mengurangi 80 % peluang bahwa bilangan yang dipilih bukan bilangan

    prima. Artinya bila bilangan yang dipilih tidak dapat dibagi bilangan prima kecil

    di atas, peluang bilangan yang dipilih merupakan bilangan prima adalah 80 %.

    Lakukan tesRabin Milleruntuk beberapa nilai a. Bila p lolos tes untuk satu

    nilai a, bangkitkan nilai a lainnya. Pilih nilai a yang kecil agar perhitungan lebih cepat.

    Lakukan tes dengan minimal 5 macam nilai a. Bila p gagal tes, bangkitkan p lainnya

    dan ulangi langkah (2)

    2.5 Algoritma ElGamal

    Algoritma ElGamal diusulkan oleh Taher ElGamal pada tahun 1984. Keamanan dari

    algoritma ini didasarkan pada kesulitan memecahkan masalah logaritma diskrit yang

    terdapat dalam grup. Logaritma ini sendiri disebut logaritma diskrit karena nilainya

    berhingga dan bergantung pada bilangan prima yang digunakan. Karena bilangan

    prima yang digunakan adalah bilangan prima yang besar, maka sangat sulit atau

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    30/81

    bahkan tidak mungkin menurunkan kunci privat dari kunci public walaupun diserang

    dengan menggunakan sumber daya komputer yang besar.[3]

    Berikut ini algoritma ElGamal yang diilustrasikan dua orang pengguna yaitu

    Adi dan Budi:[3]

    1. Diberikan p sebuah bilangan prima untuk Fp dan yang merupakan anggota Fp.2. Setiap pengguna memilih sebuah kunci rahasia a yang merupakan bilangan integer untuk

    0a (p 2).

    3. Setiap pengguna menghitung kunci publik =a(mod p) yang nilainya akan dikirim.4. Misalkan Adi akan mengirim pesan x Fp, maka dia harus memilih sebuah bilangan k

    secara acak, yaitu k

    F*p-1 dan mengirimkan pesan terenkripsi ke Budi dengan

    persamaan:

    ( y1,y2) ( kmod p, x

    kmod p)

    5. Untuk melakukan dekripsi, Budi menghitung:y2( y1

    aJ)

    -1mod p

    aJ merupakan kunci rahasia Budi.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    31/81

    BAB III

    ANALISIS DAN PERANCANGAN

    3.1 Analisis Sistem

    Analisis dan perancangan merupakan salah satu tahap dari pembuatan sebuah sistem.

    Tahapan tahapan tersebut saling berhubungan satu dengan yang lain dan membentuk

    sebuah siklus.

    Dari semua tahap tersebut, tahap analisis merupakan tahapan yang paling

    penting, karena pada tahapan ini lah awal dari semua tahapan yang lain, kesalahan

    pada tahap ini akan menyebabkan kesalahan yang berkelanjutan dan berdampak

    sistemik pada tahapan selanjutnya. Proses analisis dalam pembuatan sebuah sistem

    merupakan sebuah prosedur yang harus dilakukan untuk pemeriksaan masalah dan

    pemecahan masalah yang timbul dalam sistem yang baru.

    Tahapan perancangan merupakan tahapan setelah analisis. Perancangan

    merupakan perumusan kebutuhan kebutuhan fungsional dan persiapan untuk

    mengimpelementasikan dan menggambarkan sistem yang akan dibuat. Perancangan

    sendiri dapat berupa penggambaran, perencanaan dan pembuatan sketsa atau

    pengaturan dari beberapa elemen yang berbeda dan saling terpisah sehingga dapat

    bergabung ke dalam satu kesatuan yang utuh dan berfungsi.

    Tahapan perancangan sistem mempunyai dua buah tujuan, yaitu untuk

    memenuhi kebutuhan seorang pengguna serta memberikan gambaran jelas dan

    lengkap kepada si pembuat program (programmer) dan pengguna.

    Enkripsi dalam kriptografi adalah proses dimana informasi/ data yang hendak

    dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awal

    karena telah diubah terlebih dahulu dengan menggunakan algoritma tertentu. Dekripsi

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    32/81

    sendiri merupakan kebalikan dari proses enkripsi, yaitu proses mengubah kembali

    bentuk yang tersamar tadi kembali menjadi informasi awal.

    Pembangkit bilangan prima bertujuan untuk mendapatkan bilangan secara acak

    sehingga dapat digunakan sebagai kunci dalam proses enkripsi dengan algoritma

    tertentu. Ada banyak metode pembangkit bilangan prima, namun yang akan dibahas

    adalah metode Rabin-Miller.

    3.1.1 Analisis Kriptografi Kurva Eliptik

    Kriptografi kurva eliptik merupakan metode kriptografi yang menggunakan titik

    titik pada kurva eliptik sebagai kunci untuk melakukan proses enkripsi dan dekripsi.

    Kekuatan dari kriptografi ini adalah banyaknya titik yang terdapat pada sebuah kurva

    dan sulitnya mengetahui kurva yang digunakan.

    Kriptografi kurva eliptik menggunakan dua kunci yaitu kunci publik dan kunci

    privat. Kunci publik pada kriptografi kurva eliptik adalah sebuah titik pada kurva yangkita pilih sendiri, sedangkan kunci privatnya adalah angka yang bersifat acak. Kunci

    publik diperoleh dengan melakukan operasi perkalian antara kunci privat dengan titik

    P yang kita pilih dari kurva.

    Adapun proses pembentukan kurva dan pembentukan kunci pada kriptografi

    kuva eliptik adalah sebagai berikut:

    1. Menentukan bilangan prima (p) dengan syarat p > 3 untuk FpBilangan prima yang akan digunakan pada tahap ini adalah bilangan prima

    yang akan dihasilkan dari pembangkit bilangan acak Rabin-Miller. Adapun

    apabila kita ingin menguji apakah suatu bilangan merupakan bilangan prima

    atau tidak, maka dapat diuji dengan cara berikut ini:

    Misalnya diambil bilangan prima 17, kemudian diambil nilai n = 2 kemudian

    dihitung Greatest Common Divisor(GCD) atau pembagi bersama terbesar dari

    17 adalah (13,2) = 1

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    33/81

    1 1() = 2171 = 65536 1 (17)

    maka 17 adalah bilangan prima karena tidak habis dibagi, sehingga didapat p =

    17.

    2. Menentukan bentuk persamaan kurva eliptikPersamaan umum untuk kurva eliptik adalah 2 = 3 + + ()

    dimana nilai a, b dibuat secara acak untuk koefisiennya. Pada sistem ini,

    sebagai salah satu batasan masalah, maka ditetapkan bahwa nilai a = 1 dan b =

    1 sedangkan p kita gunakan 17, sehingga persaman kurva eliptik menjadi:

    2 = 3 + + 1 (17)

    Sehingga: 43 + 272 0 ()

    4. 13 + 27. 12(17)

    = 31 (mod 17)

    = 14 0

    Maka persamaan 2 = 3 + + 1 (17) merupakan persamaan kurva

    eliptik.

    3. Menentukan titik titik pada kurvaSetelah kurva eliptik didapatkan, maka kita perlu menentukan titik titik pada

    kurva. Dari titik titik yang telah ditentukan tersebut, kemudian pilih salah

    satu secara acak . Misalnya pada contoh di atas, bilangan prima p = 17,

    selanjutnya kita cari elemen elemen grup eliptik 17 atas , dengan

    = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}. Namun sebelum

    menentukan elemen elemen 17(1, 1), terlebih dahulu kita perlu mencari

    quadratic residue modulo17 (17).

    Tabel 3.1 Nilai Quadratic Residue Modulo 17 ()

    2(17) 17

    0 02(17) 0

    1 12(17) 1

    2 22(17) 4

    3 32(17) 9

    4 42(17) 16

    5 52(17) 8

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    34/81

    6 62(17) 2

    7 72(17) 15

    8 82(17) 13

    9 92(17) 13

    10 102(17) 1511 112(17) 2

    12 122(17) 8

    13 132(17) 16

    14 142(17) 9

    15 152(17) 4

    16 162(17) 1

    Berdasarkan Tabel 3.1 di atas, maka himpunan quadratic residue modulo 17

    adalah 17 = {0, 1, 2, 4, 8, 9, 13, 15, 16}. Kemudian menentukan elemen grup

    eliptik 17(1, 1)yang merupakan penyelesaian dari persamaan 2 = 3 +

    + 1 (17), untuk 17dan 2 17

    Tabel 3.2 Nilai Elemen (, )

    17 2 = 3 + + 1 (17) 2 17 (, ) 17(1,1)

    0 1 Ya (0, 1) dan (0, 16)

    1 3 Bukan -

    2 11 Bukan -3 14 Bukan -

    4 1 Ya (4, 1) dan (4, 16)

    5 12 Bukan -

    6 2 Ya (6, 6) dan (6, 11)

    7 11 Bukan -

    8 11 Bukan -

    9 8 Ya (9, 5) dan (9, 12)

    10 8 Ya (10, 5) dan (10, 12)

    11 0 Ya (11, 0)

    12 7 Bukan -

    13 1 Ya (13, 1) dan (13, 16)

    14 5 Bukan -

    15 8 Ya (15, 5) dan (15, 12)

    16 16 Ya (16, 4)

    Berdasarkan tabel 3.2, maka misalnya untuk nilai x = 0, diperoleh 2 =

    0.0.0 + 1.0 + 1 (17) = 1. Sehingga bila kita cek nilai 1 yang didapat di

    tabel 3.1 maka ada dua nilai 17yang memenuhi yaitu 1 dan 16 maka titik

    (x, y) nya adalah (0, 1) dan (0, 16). Cara yang sama diulang terus sehingga

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    35/81

    didapatkan elemen elemen grup eliptik modulo 17 atas 17yaitu 17(1,1)=

    { (0, 1), (0, 16), (4, 1), (4, 16), (6, 6), (6, 11), (9, 5), (9, 12), (10, 5), (10, 12),

    (11, 0), (13, 1), (13, 16), (15, 5), (15, 12), (16, 4), 0 }.

    Jumlah titik pada kurva adalah 17 titik selain dari titik infinity(0). Setelah itu

    kita pilih sebuah titik yang akan dijadikan kunci publik, misalnya kita pilih

    titik P = (15, 12).

    4. Membuat kunci privat 1 dan kunci privat 2Kunci privat 1 dan 2 ditentukan dengan nilai acak dimana nilai kunci tersebut

    harus merupakan elemen dari {2, 3, p -1} dalam . Misalnya kita pilih

    kunci privat 1 = 6 dan kunci privat 2 = 9.

    5. Menghitung kunci publik 1 dan kunci publik 2Kunci publik dihitung oleh masing masing pengguna dengan melakukan

    operasi perkalian titik antara titik P dengan kunci rahasia masing masing.

    Misalnya pada pengguna 1, kunci privat 1 = 6 dan titik P = (15, 12) maka:

    1 =1

    = 6 (15, 12)

    = (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    = (13, 16) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    = (9, 5) + (15, 12) + (15, 12) + (15, 12)

    = (9, 12) + (15, 12) + (15, 12)

    = (4, 16) + (15, 12)

    = (10, 5)Jadi kunci publik 1 adalah (10, 5)

    Sedangkan pada pengguna 2, kunci privat 2 = 9 dan titik P = (15, 12) maka:

    2 =2

    = 9 * (15, 12)

    = (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    + (15, 12) + (15, 12)

    = (13, 16) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)+ (15, 12)

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    36/81

    = (10, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    = (9, 5) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    = (9, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)

    = (10, 5) + (15, 12) + (15, 12) + (15, 12)

    = (13, 1) + (15, 12) + (15, 12)

    = (15, 5) + (15, 12)

    = (4, 12)

    Jadi kunci publik 2 adalah (4, 12).

    3.1.2 Analisis Algoritma ElGamal

    Pada umumnya algoritma ElGamal biasanya digunakan untuk tanda tangan digital,

    namun seiring dengan perkembangan jaman, algoritma ElGamal juga dikembangkan

    sehingga bisa digunakan untuk proses enkripsi dan dekripsi file. ElGamal kemudian

    digunakan dalam berbagai perangkat lunak keamanan, kekuatan dari algoritma

    ElGamal ini terletak pada kesulitan untuk menghitung logaritma diskrit.

    Algoritma ElGamal terdiri dari tiga proses, proses pembangkitan kunci, proses

    enkripsi dan proses dekripsi. Proses pembangkitan kunci dilakukan untuk memperoleh

    kunci public yang kemudian akan digunakan pada proses enkripsi, hasil dari proses

    enkripsi kemudian akan di dekripsi.

    Selain dari kekuatannya, algoritma ini mempunyai kelemahan, yaitu cipherteks

    yang dihasilkan bisa mempunyai panjang sampai dua kali lipat dari plainteksnya.Akan tetapi kelebihan lain dari algoritma ini adalah apabila kita mengenkripsi

    plainteks yang sama berulang ulang, ternyata akan didapatkan cipherteks yang

    berbeda beda untuk setiap kali enkripsi.

    Adapun proses enkripsi dan dekripsi kriptografi kurva eliptik dengan algoritma

    ElGamal adalah sebagai berikut:

    1. Proses Enkripsi ElGamal pada Kriptografi Kurva EliptikTahapan tahapan dalam melakukan proses enkripsi ElGamal adalah:

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    37/81

    Gambar 3.1 Tahapan Proses Enkripsi ElGamal Kriptografi Kurva Eliptik

    Keterangan diagram:

    1. Sebagai langkah awal, pengguna memilih sebuah angka acak yang akandijadikan kunci rahasia bangkitan (private1_gen) yang akan disimbolkan

    dengan k. Nilai k dapat dipilih dalam interval k = {2, 3, p -1} dalam 17.

    Kita misalkan kunci rahasia bangkitan yang kita pilih adalah 1.

    2. Pengguna kemudian menghitung kunci rahasia bersama bangkitan (key1_gen)dengan cara:

    Key1_gen = private1_gen * kunci publik 2

    = 1 * (4, 12)

    = (4, 12)

    3.

    Selanjutnya pengguna mengambil nilai absis dari key1_gen di atas. Karenanilai key1_gen adalah (4, 12) maka absisnya adalah 4, jadi xkey1_gen = 4.

    4. Setelah semua langkah di atas selesai, pengguna sudah bisa mengenkripsipesan dengan menggunakan ketentuan:

    C1 = k * P

    C2 = m xkey1_gen (pesan yang akan dienkripsi di XOR kan dengan

    xkey1_gen)

    Pilih private1_gen

    Hitung key1_gen dengan Kunci Publik 2

    Ambil absis key1_gen (xkey1_gen)

    Hitung cipherteks (C1, C2, C3, .)

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    38/81

    Maka hasil yang didapat adalah C1 berupat titik, sedangkan C2, C3 dan

    seterusnya berupa bilangan integer yang akan dikirim kepada pengguna 2.

    Sebagai contoh misalnya pengguna 1 ingin mengirim pesan

    KRIPTOGRAFI kepada pengguna 2, maka pesan tersebut harus

    dikonversi terlebih dahulu dalam kode ASCII.

    Tabel 3.3 Konversi Karakter ke Kode ASCII

    CHAR ASCII (dec)

    K 75

    R 82

    I 73P 80

    T 84

    O 79

    G 71

    R 82

    A 65

    F 70

    I 73

    Maka proses enkripsi dan cipherteks yang akan dihasilkan adalah:

    C1 = k * P = 1 * (15, 12) = (15, 12)

    C2 = m1 2 = 75 4 = 79

    C3 = m2 2 = 82 4 = 86

    C4 = m3 2 = 73 4 = 77

    C5 = m4 2 = 80 4 = 84

    C6 = m5 2 = 84 4 = 80

    C7 = m6 2 = 79 4 = 75

    C8 = m7 2 = 71 4 = 67

    C9 = m8 2 = 82 4 = 86

    C10= m9 2 = 65 4 = 69

    C11= m10 2 = 70 4 = 66

    C12= m11 2 = 73 4 = 77

    Hasil enkripsinya adalah:

    15 12 79 86 77 84 80 75 67 86 69 66 77

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    39/81

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    40/81

    M1 = C2 xkey2_gen = 79 4 = 75 = K

    M2 = C3 xkey2_gen = 86 4 = 82 = R

    M3 = C4 xkey2_gen = 77 4 = 73 = I

    M4 = C5 xkey2_gen = 84 4 = 80 = P

    M5 = C6 xkey2_gen = 80 4 = 84 = T

    M6 = C7 xkey2_gen = 75 4 = 79 = O

    M7 = C8 xkey2_gen = 67 4 = 71 = G

    M8 = C9 xkey2_gen = 86 4 = 82 = R

    M9 = C10 xkey2_gen = 69 4 = 65 = A

    M10= C11 xkey2_gen = 66 4 = 70 = F

    M11= C12 xkey2_gen = 77 4 = 73 = I

    dari hasil dekripsi tersebut, maka didapatlah plaintek yang semula yaitu

    KRIPTOGRAFI

    3.1.3 Analisis Metode Pembangkit Bilangan Prima Rabin-Miller

    Metode pembangkitan bilangan prima Rabin-Miller merupakan salah satu

    metode pembangkitan dan pengujian bilangan prima yang paling sering digunakan.

    Metode ini dirancang oleh Michael Rabin dengan berdasarkan dari beberapa ide oleh

    Gary Miller. Metode pengujiannya adalah sebagai berikut:

    1. Pilih sebuah bilangan acak p untuk diuji2. Hitunglah b, dimana b adalah banyaknya (p 1) dibagi 2 (dimana b adalah

    pangkat terbesar dari 2, sedemikian sehingga 2b merupakan faktor dari p 1)

    3. Kemudian hitunglah m, sedemikian sehingga p = 1 + 2b. m4. Pilihlah sebuah bilangan acak a sedemikian sehingga a lebih kecil daripada p5. Tentukanlah j = 0 dan z = ammod p6. Jika z = 1 atau jika z = p 1, maka p lulus dari pengujian dan mungkin

    merupakan bilangan prima

    7. Jika j > 0 dan z = 1, maka p bukanlah bilangan prima8. Tentukan j = j + 1. Bila j < b dan z p 1, tentukan z = z2mod p dan kembali ke

    poin 4. Jika z = p 1, maka p lulus dari pengujian dan mungkin prima

    9.

    Jika j = b dan z p 1, maka p bukan bilangan prima

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    41/81

    Sebagai contoh misalnya kita pilih sebuah bilangan p = 37, maka p 1 = 37 1 =

    36. Setelah itu kita pilih b = 2, karena 22 = 4 merupakan bilangan 2n terbesar yang

    dapat membagi 36. 37 = 1 + 22.m atau 36 = 4.m sehingga m = 9. Pilih sebuah bilangan

    a, misalkan a = 3. j = 0, z = 39mod 37 = 36. Jika z = 1 atau z = 36 maka p lulus dari

    pengujian dan merupakan bilangan prima.

    3.2 Perancangan Flowchart

    Perancangan sistem dibuat untuk dapat mengetahui gambaran umum dari sistem yang

    akan dibuat secara umum. Flowchart adalah metode untuk menggambarkan tahap

    tahap penyelesaian suatu masalah beserta proses mengalirnya data dengan simbol

    simbol tertentu yang mudah dipahami. Tujuan utama dari flowchart adalah untuk

    menyederhanakan rangkaian proses proses yang terjadi pada sistem agar mudah

    dipahami oleh pengguna. Oleh karena itu juga maka desain dari sebuah flowchart

    harus ringkas, jelas dan padat. Diagram di bawah ini akan menerangkan proses yang

    terjadi pada aplikasi ElGamal Elliptic Curve Crytosystem.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    42/81

    Mulai

    Selesai

    Input

    bilangan prima

    Bilangan

    prima valid

    Tidak

    Ya

    Hitung nilai Quadratic

    Residue

    Cari elemen Ep

    Pilih nilai titik P

    Tentukan kunci rahasia1

    dan kunci rahasia2

    Hitung nilai kunci publik

    Output kunci publik

    dan kunci privat

    Flowchart Proses Pembentukan Kunci Kriptografi Kurva Eliptik

    Gambar 3.3 Flowchart Pembentukan Kunci Kriptografi Kurva Eliptik

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    43/81

    Mulai

    Input

    kunci publik

    Input

    pesan

    Pilih nilai k

    Hitung key1_gen

    Ambil nilai x dari

    key1_gen

    Hitung nilai C1 dan C2

    Output cipher

    C1 dan C2

    Selesai

    Flowchart Proses Enkripsi Kriptografi Kurva Eliptik dengan Algoritma

    ElGamal

    Gambar 3.4 Flowchart Enkripsi Kriptografi Kurva Eliptik ElGamal

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    44/81

    Mulai

    Input

    kunci privat

    Input

    cipher

    Hitung key2_gen

    Ambil nilai x dari

    key2_gen

    Hitung pesan asli

    Output

    pesan asli

    Selesai

    Flowchart Proses Dekripsi Kriptografi Kurva Eliptik dengan Algoritma

    ElGamal

    Gambar 3.5 Flowchart Dekripsi Kriptografi Kurva Eliptik ElGamal

    3.3 Perancangan Data Flow Diagram (DFD)

    Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi notasi

    tertentu untuk menggambarkan arus data dari suatu sistem untuk memahami proses

    yang terjadi secara logis, terstruktur, dan jelas. DFD juga merupakan alat bantu untuk

    menggambarkan atau menjelaskan sistem yang sedang berjalan.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    45/81

    UserPesan

    Nilai Input

    Cipher

    Pesan Asli

    Kunci Privat

    Kunci Publik

    Hasil Perhitungan

    0

    Kriptografi Kurva Eliptik

    dengan Algoritma

    El Gamal

    1.0

    Proses Pembentukan

    Kunci

    2.0

    Proses Enkripsi

    3.0

    Proses Dekripsi

    User Kunci Privat

    Kunci PublikNilai Input

    PesanCipher

    Cipher

    Pesan Asli

    Hasil Perhitungan

    Hasil Perhitungan

    Hasil Perhitungan

    3.3.1 DFD Level 0

    Gambar 3.6 DFD Level 0

    3.3.2 DFD Level 1

    Gambar 3.7 DFD Level 1 Proses Enkripsi dan Dekripsi

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    46/81

    3.4 Perancangan User Interface

    User interface dirancang sebagai bentuk komunikasi antara pengguna dengan

    komputer, dan juga sebagai bentuk interaksi antara pengguna dengan komputer

    menggunakan tampilan yang ada di layar komputer. Hal ini sangat penting karena

    sangat mempengaruhi komunikasi dengan komputer, oleh karena itu desain user

    interface haruslah seefektif dan seminimal mungkin. Efektif artinya tampilan tersebut

    siap digunakan dan hasilnya sesuai dengan kebutuhan sedangkan minimal artinya

    penggunaan tombol tombol, gambar dan tulisan tulisan yang tidak perlu dan bisa

    membingungkan pengguna harus dihindarkan.

    3.4.1 Tampilan Menu Utama

    Berikut ini adalah rancangan tampilan awal dari Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    Gambar 3.8 Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem

    LOGO

    FASILKOMTI

    APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT

    BILANGAN PRIMA RABIN-MILLER

    Pembentukan Kunci Proses Enkripsi Proses Dekripsi

    12

    3 4 5 6

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    47/81

    Keterangan gambar 3.8 adalah sebagai berikut:

    1. Nomor 1 adalah logo dari Fasilkomti USU2. Nomor 2 adalah label dari nama aplikasi3. Nomor 3 adalah labelshortcutuntuk menuju ke form pembuatan kunci4. Nomor 4 adalah labelshortcutuntuk menuju ke form proses enkripsi5. Nomor 5 adalah labelshortcutuntuk menuju ke form proses dekripsi6. Nomor 6 adalah labelshortcutuntuk menuju ke form mengenai aplikasi

    3.4.2 Tampilan Menu Proses Pembentukan Kunci

    Gambar 3.9 Tampilan Menu Proses Pembentukan Kunci Aplikasi ElGamal

    Elliptic Curve Cryptosystem

    Keterangan gambar 3.9 adalah sebagai berikut:

    1. Nomor 1 adalah field dan tombol untuk mengeluarkan bilangan prima secaraacak ataupun memvalidasi bilangan prima yang kita masukkan dengan

    menggunakan metode pembangkitan bilangan prima Rabin-Miller

    LOGO

    FASILKOMTI

    APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT

    BILANGAN PRIMA RABIN-MILLER

    Bilangan prima p acak prima validasi prima

    Hitung nilai elemen

    hitung

    Pilih titik P

    Tentukan Kunci Privat

    Kunci Rahasia 1

    Kunci Rahasia 2

    acak

    Perhitungan Kunci Publikhitung

    simpan semua data input dan tutup form

    1

    2

    3

    4

    5

    6

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    48/81

    2. Nomor 2 adalah fielddan tombol untuk menghitung elemen elemen titik yangterdapat pada kurva eliptik dengan bilangan prima yang telah kita pilih

    sebelumnya

    3. Nomor 3 adalah dropdown field untuk memilih titik mana dari elemen elemenyang telah kita hitung untuk digunakan sebagai titik P pada proses pembentukan

    kunci

    4. Nomor 4 adalahfielddan tombol untuk memasukkan ataupun menghitung secaraacak sebuah angka untuk dijadikan sebagai kunci rahasia antara pengguna 1 dan

    pengguna 2

    5. Nomor 5 adalahfield dan tombol untuk menghitung kunci publik yang didapatkandari kunci rahasia dan titik P, detil perhitungan akan ditunjukkan dalam field di

    bawahnya

    6. Nomor 6 adalah tombol untuk menyimpan parameter yang diperlukan seperti nilaip, kunci rahasia, kunci publik dan titik P pada memori sementara untuk kemudian

    digunakan pada proses enkripsi dan dekripsi

    3.4.3 Tampilan Menu Proses Enkripsi

    Gambar 3.10 Tampilan Menu Proses Enkripsi Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    LOGO

    FASILKOMTI

    APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT

    BILANGAN PRIMA RABIN-MILLER

    Proses Buka File Teks

    1

    2

    3

    45 4

    6

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    49/81

    Keterangan gambar 3.10 adalah sebagai berikut:

    1. Nomor 1 merupakan field yang akan menuliskan langkah langkah yangdiperlukan untuk melakukan proses enkripsi secara jelas agar pengguna dapat

    memahami proses enkripsi pada kriptografi kurva eliptik ElGamal

    2. Nomor 2 merupakan field yang akan menuliskan detil proses perhitungan untukenkripsi plainteks menjadi cipherteks

    3. Nomor 3 merupakan field yang akan menunjukkan plainteks apa yang terdapatpada file teks yang kita masukkan

    4. Nomor 4 merupakan tombol yang akan menjalankan proses enkripsi plainteksmenjadi cipherteks

    5. Nomor 5 merupakan shortcutuntuk membuka window pemilihan file teks untukdimasukkan ke dalam aplikasi

    6. Nomor 6 merupakan tombol navigasi 2 arah untuk melanjutkan langkah langkah proses enkripsi

    3.4.4 Tampilan Menu Proses Dekripsi

    Gambar 3.11 Tampilan Menu Proses Dekripsi Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    LOGO

    FASILKOMTI

    APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT

    BILANGAN PRIMA RABIN MILLER

    Proses

    1

    2

    3

    4

    5

    Daftar Nilai Variabel yang digunakan:KP1 = KP2 =

    P = p =

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    50/81

    Keterangan gambar 3.11 adalah sebagai berikut:

    1. Nomor 1 merupakan field yang akan menuliskan langkah langkah yangdiperlukan untuk melakukan proses dekripsi secara jelas agar pengguna dapat

    memahami proses dekripsi pada kriptografi kurva eliptik ElGamal

    2. Nomor 2 merupakan field yang akan menuliskan detil proses perhitunganuntuk dekripsi cipherteks menjadi plainteks

    3. Nomor 3 merupakanfield yang akan menunjukkan cipherteks yang tersimpansecara otomatis dari proses enkripsi sebelumnya

    4. Nomor 4 merupakan tombol yang akan menjalankan proses dekripsi cipherteksmenjadi plainteks

    5. Nomor 5 merupakan tombol navigasi 2 arah untuk melanjutkan langkah langkah proses dekripsi

    3.4.5 Tampilan Menu About

    Gambar 3.12 Tampilan Form Mengenai Aplikasi

    Mengenai Aplikasi

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    51/81

    BAB IV

    IMPLEMENTASI DAN PENGUJIAN

    4.1 Implementasi Sistem

    Setelah tahap analisis dan perancangan selesai dilakukan, maka tahap selanjutnya dan

    merupakan tahap yang terakhir dimana setelah implementasi maka akan dilakukan

    pengujian terhadap sistem. Apabila analisis dan perancangan sebelumnya telah

    dilakukan dengan baik, maka hasilnya akan sangat membantu kita dalam proses

    implementasi untuk mendapatkan sistem yang sesuai dengan yang kita inginkan. Dari

    proses implementasi ini juga kita bisa mengetahui apakah sistem yang kita buat

    memuaskan atau tidak.

    4.1.1 Spesifikasi Kebutuhan Perangkat Keras

    Untuk membangun aplikasi ElGamal Elliptic Curve Cryptosystem dengan Metode

    Pembangkitan Bilangan Prima Rabin Miller ini digunakan perangkat keras dengan

    spesifikasi sebagai berikut

    Tabel 4.1 Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi

    Spesifikasi Komputer ImplementasiCPU : AMD X2 Dual Core 1.20 GHz

    RAM : 4 Giga Byte

    Hard Disk : 500 Giga Byte

    Monitor : 10

    Sistem Operasi Windows 7 Ultimate

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    52/81

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    53/81

    5. KrIpToGrAfI KuRvA ElIpTiK TeRmAsUk Ke DaLaM SiStEm KrIpToGrAfIKuNcI PuBlIk YaNg MeNdAsArKaN KeAmAnAnNyA PaDa PeRmAsAlAhAn

    MaTeMaTiS KuRvA ElIpTiK DaN KeSuLiTaN UnTuK MeNgHiTuNg

    PeRsOaLan LoGaRiTmA DiSkRiY 1234567890!@#$%^&*()_+

    Tabel 4.2 Hasil Enkripsi

    No. Plainteks Nilai p Titik P KR 1 KR 2 Cipherteks

    1 TES 1.txt 41 34, 15 23 19 3 21 80 73 82 75 79 84 92 73 9093 82

    2 TES 2.txt 97 24, 47 15 45 95 66 93 68 95 70 66 89 81 6887 80 95 54 87 82 87 90 87 9454 69 83 88 95 54 91 83 88 79

    87 88 82 95 93 87 88 54 48 5491 83 88 79 83 91 84 67 88 7995 93 87 88 54 70 83 69 87 88

    3 TES 3.txt 22, 76 23,74 71 14 22 13 93 100 127 102 98 121113 100 119 112 127 54 102115 100 98 119 123 119 54 125119 122 127 54 114 127 102115 100 113 99 120 119 125119 120 54 102 119 114 119 5498 119 126 99 120 54 34 38 3854 69 91 54 114 127 54 79 99120 119 120 127

    4 TES 4. txt 37 19, 21 19 15 19 21 82 112 109 113 103 113

    34 105 112 107 114 118 109101 112 99 100 107 34 102 10799 117 99 110 107 34 102 103108 101 99 108 34 111 103 108101 119 96 99 106 34 102 99118 99 34 102 99 110 99 111 3496 103 108 118 119 105 34 114110 99 107 108 118 103 105113 34 42 118 119 110 107 11399 108 34 99 118 99 119 34 114103 113 99 108 34 99 117 99110 34 123 99 108 101 34 10299 114 99 118 34 102 107 96 99

    97 99 43 34 111 103 108 104 99102 107 34 97 107 114 106 103112 118 103 105 113 34 42 118119 110 107 113 99 108 34 99118 99 119 34 114 103 113 99108 34 99 105 106 107 112 34123 99 108 101 34 113 119 110107 118 34 102 107 111 103108 101 103 112 118 107 43

    5 TES 5.txt 23 13, 7 17 8 13 16 70 127 68 125 89 98 74127 76 107 68 45 70 120 95 12376 45 72 97 68 125 89 100 7045 89 104 95 96 76 126 88 102

    45 70 104 45 73 108 65 108 6445 94 100 94 121 72 96 45 70

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    54/81

    127 68 125 89 98 74 127 76 10768 45 70 120 67 110 68 45 93120 79 97 68 102 45 84 108 67106 45 64 104 67 105 76 126 76127 70 108 67 45 70 104 76 96

    76 99 76 99 67 116 76 45 93108 73 108 45 93 104 95 96 76126 76 97 76 101 76 99 45 64108 89 104 64 108 89 100 94 4570 120 95 123 76 45 72 97 68125 89 100 70 45 73 108 67 4570 104 94 120 65 100 89 108 6745 88 99 89 120 70 45 64 10467 106 69 100 89 120 67 106 4593 104 95 126 66 108 65 108 9945 65 98 74 108 95 100 89 9676 45 73 100 94 102 95 100 8445 60 63 62 57 56 59 58 53 52

    61 44 77 46 41 40 83 43 39 3736 82 38

    Berdasarkan hasil enkripsi yang telah dilakukan seperti pada tabel 4.1, didapatkan

    bahwa aplikasi ElGamal elliptic curve cryptosystem tidak menemui kendala yang

    berarti saat mengenkripsi suatufileteks baik dengan huruf besar maupun huruf kecil,

    aplikasi juga tidak terkendala dengan panjang teks dan tetap dapat dieksekusi dengan

    cepat.

    4.2.2 Hasil Dekripsi

    Pada proses dekripsi, data hasil enkripsi langsung dimasukkan secara otomatis untuk

    menghindari kesalahan saat proses memasukkan data. Berikut adalah hasil dari

    dekripsi cipherteks dari proses enkripsi sebelumnya

    Tabel 4.3 Hasil Dekripsi

    No. Cipherteks Plainteks

    1 3 21 80 73 82 75 79 84 92 73 90 93 82 KRIPTOGRAFI

    2 95 66 93 68 95 70 66 89 81 68 87 80 95 54 8782 87 90 87 94 54 69 83 88 95 54 91 83 88 7987 88 82 95 93 87 88 54 48 54 91 83 88 79 8391 84 67 88 79 95 93 87 88 54 70 83 69 87 88

    KRIPTOGRAFI ADALAH SENIMENYANDIKAN & MENYEMBUNYIKANPESAN

    3 22 13 93 100 127 102 98 121 113 100 119 112127 54 102 115 100 98 119 123 119 54 125119 122 127 54 114 127 102 115 100 113 99

    120 119 125 119 120 54 102 119 114 119 5498 119 126 99 120 54 34 38 38 54 69 91 54

    Kriptografi pertama kali

    dipergunakan pada tahun 400 SM

    di Yunani

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    55/81

    114 127 54 79 99 120 119 120 1274 19 21 82 112 109 113 103 113 34 105 112 107

    114 118 109 101 112 99 100 107 34 102 10799 117 99 110 107 34 102 103 108 101 99 10834 111 103 108 101 119 96 99 106 34 102 99

    118 99 34 102 99 110 99 111 34 96 103 108118 119 105 34 114 110 99 107 108 118 103105 113 34 42 118 119 110 107 113 99 108 3499 118 99 119 34 114 103 113 99 108 34 99117 99 110 34 123 99 108 101 34 102 99 11499 118 34 102 107 96 99 97 99 43 34 111 103108 104 99 102 107 34 97 107 114 106 103112 118 103 105 113 34 42 118 119 110 107113 99 108 34 99 118 99 119 34 114 103 11399 108 34 99 105 106 107 112 34 123 99 108101 34 113 119 110 107 118 34 102 107 111103 108 101 103 112 118 107 43

    Proses kriptografi diawali dengan mengubahdata dalam bentuk plainteks (tulisan atau

    pesan awal yang dapat dibaca) menjadicipherteks (tulisan atau pesan akhir yang sulit

    dimengerti)

    5 13 16 70 127 68 125 89 98 74 127 76 107 6845 70 120 95 123 76 45 72 97 68 125 89 10070 45 89 104 95 96 76 126 88 102 45 70 10445 73 108 65 108 64 45 94 100 94 121 72 9645 70 127 68 125 89 98 74 127 76 107 68 4570 120 67 110 68 45 93 120 79 97 68 102 4584 108 67 106 45 64 104 67 105 76 126 76127 70 108 67 45 70 104 76 96 76 99 76 99 67116 76 45 93 108 73 108 45 93 104 95 96 76126 76 97 76 101 76 99 45 64 108 89 104 64108 89 100 94 45 70 120 95 123 76 45 72 9768 125 89 100 70 45 73 108 67 45 70 104 94120 65 100 89 108 67 45 88 99 89 120 70 4564 104 67 106 69 100 89 120 67 106 45 93

    104 95 126 66 108 65 108 99 45 65 98 74 10895 100 89 96 76 45 73 100 94 102 95 100 8445 60 63 62 57 56 59 58 53 52 61 44 77 46 4140 83 43 39 37 36 82 38

    KrIpToGrAfI KuRvA ElIpTiK TeRmAsUk

    Ke DaLaM SiStEm KrIpToGrAfI KuNcIPuBlIk YaNg MeNdAsArKaNKeAmAnAnNyA PaDa PeRmAsAlAhAnMaTeMaTiS KuRvA ElIpTiK DaNKeSuLiTaN UnTuK MeNgHiTuNgPeRsOaLan LoGaRiTmA DiSkRiY1234567890!@#$%^&*()_+

    Dari hasil dekripsi di atas, didapatkan bahwa proses enkripsi dan dekripsi berjalan

    dengan sempurna untuk semua jenis file teks pengujian, proses perhitungan juga

    berhasil disederhanakan dan waktu proses berhasil dipersingkat.

    4.3 Tampilan Sistem

    Berikut ini adalah tampilan dan penjelasan dari form form yang terdapat pada

    aplikasi ElGamal Elliptic Curve Cryptosystem.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    56/81

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    57/81

    pembentukan kunci rahasia dan juga kunci publik serta detil proses perhitungannya

    seperti terlihat pada gambar 4.2 berikut:

    Gambar 4.2 Tampilan Form Pembentukan Kunci Aplikasi ElGamal Elliptic

    Curve Cryptosystem

    Pada halaman ini, pengguna bisa memasukkan sendiri sebuah bilangan prima

    untuk kemudian divalidasi dengan metode rabin miller ataupun menghasilkan

    bilangan prima acak secara otomatis dengan menekan tombol acak prima. Setelah

    bilangan prima p dihasilkan, pengguna kemudian menghitung elemen elemen titik

    yang terdapat pada kurva dengan menekan tombol hitung, detil proses perhitungan

    akan ditampilkan pada textarea di sebelahnya.

    Di halaman ini juga pengguna bisa memilih titik mana dari elemen elemen

    titik yang telah dihitung untuk dipakai sebagai titik P dengan menekan tombol

    dropdown yang terdapat di samping label Pilih Titik P. Setelah proses itu selesai,

    pengguna kemudian menentukan kunci rahasia 1 dan 2, bisa dimasukkan sendiri

    ataupun menekan tombol acak untuk menghasilkan bilangan acak secara otomatis.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    58/81

    Terakhir, pengguna tinggal menentukan kunci publik yang akan digunakan

    dengan menekan tombol hitung, detil proses perhitungan dan kunci publik yang

    dihasilkan akan langsung tampak secara otomatis pada textarea di sebelahnya,

    pengguna selanjutnya bisa langsung menyimpan semua data input dengan menekan

    tombol Simpan Semua Data Input dan Tutup Form di bawah.

    Gambar 4.3 Tampilan Form Pembentukan Kunci Setelah Semua Data

    Dimasukkan

    4.3.3 Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    Pada tampilan ini, menampilkan proses enkripsi dan detil langkah langkah

    perhitungan untuk proses enkripsi, seperti ditampilkan pada gambar berikut:

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    59/81

    Gambar 4.4 Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    Karena data input sebelumnya sudah tersimpan secara otomatis, maka nilai tersebut

    akan langsung tampak secara otomatis di bawah label Daftar Nilai Kunci yang

    Digunakan. Pengguna selanjutnya tinggal memasukkan file teks yang ingin

    dienkripsi dengan menekan tombol Buka File Teks dimana isi dari teks yang akan

    dienkripsi akan langsung tampak pada textarea di atasnya. Kemudian pengguna

    tinggal menekan tombol Proses dan bisa melihat detil proses perhitungannya pada

    tombol panah navigasi 2 arah di bawahnya.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    60/81

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    61/81

    Gambar 4.6 Langkah 2 pada Proses Enkripsi

    Pada langkah berikutnya, sistem akan memilih sebuah nilai acak k dimana nilai

    tersebut akan digunakan dalam enkripsi dengan algoritma ElGamal. Nilai k ini sendiri

    dihasilkan secara acak tanpa batasan tertentu, namun disini penulis membatasinya

    hanya sampai angka puluhan untuk mempersingkat proses komputasi. Proses

    kemudian dilanjutkan dengan menekan tombol panah kanan.

    Gambar 4.7 Langkah 3 pada Proses Enkripsi

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    62/81

    Pada langkah ini dilakukan perhitungan nilai key1_gen yang dihasilkan melalui

    persamaan Euclidean. Untuk memudahkan pemahaman maka seluruh detil proses

    perhitungan bisa dilihat di teks area sebelah kanan. Hasil akhir dari proses ini adalah

    sebuah koordinat bangkitan tertentu (x, y) yang disebut sebagai key1_gen. Proses

    kemudian dilanjutkan dengan menekan tombol panah.

    Gambar 4.8 Langkah 4 pada Proses Enkripsi

    Pada langkah ini, sistem hanya akan mengambl nilai absis x dari key1_gen yang

    dihasilkan pada langkah sebelumnya. Nilai absis tersebut kemudian disebut

    xkey1_gen. Proses kemudian dilanjutkan dengan menekan tombol panah.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    63/81

    Gambar 4.9 Langkah 5 pada Proses Enkripsi

    Pada langkah ini, sistem menghitung cipher1 atau disebut C1, yaitu bagian awal dari

    cipherteks yang mengandung kunci rahasia yang berguna untuk proses dekripsi. detil

    proses perhitungan C1 ini juga ditampilkan pada teksarea sebelah kiri. Proses

    kemudian dilanjutkan dengan menekan tombol panah.

    Gambar 4.10 Langkah 6 pada Proses Enkripsi

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    64/81

    Langkah keenam ini sekaligus merupakan langkah terakhir, sistem kemudian

    menghitung nilai cipher2 atau C2 yaitu merupakan keseluruhan cipherteks yang sudah

    disandikan. Seluruh detil perhitungan C2 ini juga ditampilkan pada teksarea di sebelah

    kiri. Hasil dari proses ini adalah kumpulan angka angka acak yang berbeda satu

    sama lainnya. Pada langkah ini proses enkripsi sudah selesai dijalankan. Pengguna

    kemudian bisa menekan tombol x di sebelah kanan atas untuk menutup halaman

    proses enkripsi. Seluruh data hasil enkripsi akan langsung tersimpan secara otomatis.

    4.3.4 Tampilan Form Dekripsi pada Aplikasi ElGamal Elliptic Curve

    Cryptosystem

    Pada form dekripsi ini, akan ditampilkan proses mendekripsikan cipherteks yang

    didapat dari proses sebelumnya kembali menjadi plainteks semula seperti terlihat pada

    gambar berikut:

    Gambar 4.11 Tampilan Awal Form Dekripsi pada Aplikasi ElGamal Elliptic

    Curve Cryptosystem

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    65/81

    Seperti yang terlihat pada gambar, cipherteks yang akan didekripsi langsung

    tampak secara otomatis pada textarea di sudut kanan atas, selanjutnya pengguna

    tinggal menekan tombol dekripsi untuk mengembalikan cipherteks tersebut ke

    plainteks semula

    Gambar 4.12 Langkah 1 dari Proses Dekripsi

    Pada langkah pertama dari proses dekripsi ini, sistem akan langsung memisahkan C1

    dan C2 dari keseluruhan cipherteks yang dihasilkan, C1 sendiri adalah dua angka

    pertama pada cipherteks yang dihasilkan. C1 mengandung nilai rahasia yang berguna

    untuk melakukan proses dekripsi. Hasil dari proses ini adalah kumpulan angka

    angka dari cipherteks yang sudah dipisahkan. Proses kemudian dilanjutkan dengan

    menekan tombol panah di sebelah kanan bawah.

  • 8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN

    66/81

    Gambar 4.13 Langkah 2 dari Proses Dekripsi

    Sama seperti pada proses e