BAB II TINJAUAN PUSTAKA - Implementasi Kriptografi Kurva Eliptik Dengan Algoritma Elgamal Dan Metode Pembangkitan Bilangan Prima Rabin-Miller Untuk Pengamanan File Teks

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 (confidentiality atau privacy). [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 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 buku mereka ”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, 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

  2. Pengirim dan penerima Komunikasi 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 komputer server di 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 dekripsi Proses 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-rest mengacu pada enkripsi dokumen yang disimpan di dalam storage. Contoh encryption of data in motion adalah pengiriman nomor PIN dari mesin ATM ke

  komputer server di kantor bank pusat. Contoh encryption of data at-rest adalah enkripsi file basis data di dalam hard disk. Gambar 2.3 memperlihatkan enkripsi

  file basis data, di mana enkripsi hanya dilakukan terhadap field-field tertentu saja

  (Nama, Tinggi dan Berat). [9]

  

(sumber: Munir, Rinaldi. 2006)

Gambar 2.3 Enkripsi Data tertentu di dalam Arsip Basisdata

4. Cipher dan kunci

  Algoritma 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, 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 ditulis sebagai

  E K (P) = C dan D K (C) = P dan kedua fungsi ini memenuhi D K (E K (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]

  

(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. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan kunci. Di dalam sistem kriptografi,

  cipher hanyalah 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 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 adalah Advanced 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 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 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

2.3.1 Pengenalan

  

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

dan Victor Miller dari 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] b Persoalan lain menyangkut perhitungan aljabar a = 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]:

  2

  3

  y = x + ax + b Contoh kurva eliptik dapat dilihat pada gambar 2.8 dan gambar 2.9.

  2

  3 Gambar 2.8 Contoh Kurva Eliptik Untuk Persamaan y = x – x

  2

  3 Gambar 2.9 Contoh Kurva Eliptik Untuk Persamaan y = x + 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

kesulitan Elliptic Curve Cryptosystem yang 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

  

menggunakan parameter yang lebih kecil dibandingkan sistem algoritma konvensional.

  

Elliptic Curve Cryptosystem sendiri sudah dipelajari selama bertahun – tahun. Kurva eliptik

menghasilkan bilangan prima Z atau menghasilkan batasan GF (2 ), merupakan sesuatu yang

p n

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 menggunakan

dua tipe daerah terbatas : daerah karakteristik ganjil (F , dimana p > 3 adalah bilangan prima

m

p

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

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

m q 2 . Elemen dari F p adalah integer (

  ≤ < ) di mana elemen tersebut dapat dikombinasikan m

menggunakan modul aritmetik. Untuk F2 sedikit lebih kompleks : salah satu mengandung

representasi yang berbeda dari elemen daerah sebagai bit string untuk pilihan polinomial f(x)

biner yang irreducible yang derajat m.

  Bidang terbatas (finite field) atau yang biasa disebut dengan Galois Field (GF) adalah

bidang yang hanya memiliki elemen bilangan yang terbatas. Derajat (order) dari bidang

terbatas adalah banyaknya elemen yang ada dalam bidang. Jika q adalah pangkat prima (prime

order), maka hanya ada satu bidang terbatas dengan derajat q. Bidang tersebut dilambangkan

m

dengan F atau GF(q). Banyak cara untuk merepresentasikan elemen dari F , jika q = p ,

q q

dimana p adalah bilangan prima dan m adalah bilangan integer positif, maka p disebut sebagai

karakteristik dari F q dan m disebut sebagai derajat perluasan (extension degree) dari F q .

Bidang terbatas yang digunakan dalam kriptografi adalah q = p, dimana p adalah bilangan

m

prima ganjil, yang dilambangkan dengan F (odd prime), dan q = 2 , dimana m adalah integer

p m lebih besar dari satu, yang dilambangkan dengan F2 (characteristic two or even).[2]

  Bidang terbatas F merupakan sebuah bidang yang beranggotakan bilangan integer (0, p

1, …, p-1) dan p merupakan bilangan prima. Setiap perhitungan dikalkulasikan dengan

modulo p agar hasilnya tetap berada dalam daerah F . Operasi yang berlaku dalam bidang p terbatas F adalah :[2] p p , dimana a + b = r, dimana r adalah sisa pembagian a

  1. Penjumlahan (addition), jika a, b ∈ F

  • b dengan bilangan prima p, ≤ ≤ − 1. Penjumlahan seperti ini disebut penjumlahan modulo p (mod p). p

  , maka a * b = s, dimana s adalah sisa pembagian a

  2. Perkalian (multiplication), jika a,b ∈ F

  • b dengan bilangan prima p, ≤ ≤ − 1. Perkalian seperti ini disebut perkalian modulo p (mod p).

  m

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

  

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

m

  himpunan yang beranggotakan m elemen { 0, 1, … , − 1} di dalam F2

  m

  sedemikian rupa sehingga setiap a dapat ditulis secara unik ke dalam bentuk ∈ F2

  :[2] a = a + a + …+ a + a , untuk a

  

1 m-1 m i

  ∈ {0,1}

  1 −1 m

  Salah satu cara untuk merepresentasikan elemen – elemen pada F2 adalah dengan representasi basis polinomial. Pada representasi basis polynomial elemen pada

  m

  F2 merupakan polinomial dengan derajat lebih kecil dari m, dengan koefisien bilangan 0 atau 1.[2]

  m-1

  2

  1

  {a m-1 x + …+ a

  2 x + a 1 x + a x | a i : 0,1}

  

2

  • =

  3

  

1

  2

  1

  1

  2

  = + + + � �

  3

  1

  1

  3

  3

  1

  2

  3

  =

  • Persamaan kurva eliptik menggunakan rumus digambarkan diatas dimana a, b . disebut bilangan prima jika dan hanya
  • yang

  ∈ jika p > 3 yang merupakan kelompok ganjil. Kurva eliptik (EC) dapat diubah menjadi kelompok abelian dengan semua titik dari EC, yang meliputi ketidak-terbatasan O

  3

  2

  dibawah kondisi 4a +27b

  1 ,y 1 ) dan Q(x 2 ,y 2 ) ada pada kurva

  ≠ 0 (mod p), jika (x eliptik. Titik yang ketiga R adalah P + Q = (x

  3 ,y 3 ). 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

  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

  2

  3 17 menjadi =

  • persamaan sebelumnya dengan Z + 5 (mod 17). Karenanya penyamaan yang diberikan kurva eliptik:[1]
  • 3 ,y ) merupakan 3

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

    • = (3,1) + (8,10)

      2

      2

      2

      1 = = � � − − � � − 3 − 8

      9 −

      3

      

    1

      2

      2

      1 −1 Karena 9 x 2 5 (mod 17) = 9 x 7 (mod 17) = 12. Ini menghasilkan x = (12 -3-8)(mod 17) =14 3

      5 −

      9 = −1 + � � ∗ (3 − 14) = −1 + 12 ∗ (−11) = −133 ( 17) = 3

      3

      5 Maka P + Q = R(14,3) 3 ,y 3 ). Perhitungannya seperti di bawah ini :

    2. P = (3,1) kemudian 2P = P + P = (x

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

      2

      

    2

      2

    • 3 27 + 1

      1

      2 = = � � − 2 � � − 6 = 14 − 6 = 190( 17) = 3

      3

      1

      2

      2

      1 dan

      2 3 +

      1 = ) =

    • 3

      − � � ( − −1 + 14(3 − 3) = −1( 17) = 16

      1

      1

      3

      2

    1 Maka 2P = (3,16)

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

      Beberapa contoh dari field adalah 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]

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

    • 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 modulo p sebagai field-nya, kita mendapatkan sebuah finite field

      m

      dengan p elemen, 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 aturan reduksi 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 field dapat dikonstruksikan

      m

      dengan cara ini. Fakta ini sebenarnya direferensikan kepada Galois field dengan p

      m

      elemen, dengan menggunakan notasi GF(p ). Bilangan prima p merupakan karakteristik dari field.[1] merepresentasikan bermacam-macam elemen field. Representasi dipilih untuk membuat operasi aritmatika field menjadi efisien.[1]

    2.3.4 Group

      

    Group merupakan kumpulan dari field. Terdapat tiga buah group utama yang sangat

      disukai oleh para ahli kriptografi yaitu :[1] 1. Group perkalian dari field bilangan prima : GF(p).

      n ).

    2. Group perkalian dari finite field dari karakteristik 2 : GF(2 3. Elliptic Curve Group pada finite field F : EC(F).

      Jika p adalah modulus dan bilangan prima, maka kompleksitas untuk mencari logaritma diskrit pada GF(p) pada dasarnya sama dengan memfaktorisasi sebuah

      

    integer n, 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 memberikan keamanan bagi kriptografi ? Ahli matematika telah menemukan bahwa jumlah

      151 bilangan prima yang tersedia pada bilangan 512 bit adalah sekitar 10 .

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

      9 Bila terdapat satu milyar (10 ) orang yang masing-masing berusaha mendapatkan

      12

      1000 bilangan prima, maka diperlukan hanya 10 bilangan prima yang berbeda

      12

      untuk memenuhinya. Bandingkan 10 bilangan prima yang diperlukan dengan

      151

      10 bilangan prima yang tersedia. Bayangkan pula bila disediakan bilangan 1024

      305

      bit, maka akan tersedia bilangan prima sekitar 10 . Angka ini diperoleh dari jumlah bilangan prima yang kurang dari n adalah sekitar n / (ln n).

    3. Dapatkah seseorang membuat database yang dapat menyimpan seluruh bilangan

      1024

      prima dari 2 hingga kurang dari 2 ? Dapat, tapi juga mustahil. Bila mempunyai

      35

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

      270

      diperlukan sekitar 10 harddisk untuk menyimpan seluruh bilangan prima yang

      1024 kurang dari 2 .

      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).

      b

      .m

      3. Kemudian hitung m, sedemikian sehingga p = 1 + 2 4. Pilih bilangan acak a sedemikian sehingga a lebih kecil daripada p.

      m mod p.

      5. Set j = 0 dan set z = a 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.

      2

      8. Set j = j + 1. Bila j < b dan z ≠ p – 1, set z = z z = 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, dan seterusnya 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 tes Rabin – Miller untuk 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 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

    ≤a≤ (p – 2). a (mod p) yang nilainya akan dikirim.

      3. Setiap pengguna menghitung kunci publik β=α

      

    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: k k ( y ,y mod p) 1

    2 ) ( α mod p, xβ

      5. Untuk melakukan dekripsi, Budi menghitung: aJ -1 y ( y ) mod p 2

    1

    aJ merupakan kunci rahasia Budi.

Dokumen yang terkait

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

23 143 153

Kriptografi Kunci Publik Algoritma Elgamal Dengan Metode The Sieve Of Eratosthenes Untuk Pembangkitan Bilangan Prima

4 115 107

Implementasi Algoritma Tanda Tangan Digital pada Data Citra Berbasis Kriptografi Kurva Eliptik

9 90 138

Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

4 68 130

Implementasi Kriptografi Kurva Eliptik Dengan Algoritma Elgamal Dan Metode Pembangkitan Bilangan Prima Rabin-Miller Untuk Pengamanan File Teks

11 102 91

BAB II TINJAUAN PUSTAKA 2.1. Kriptografi - Implementasi Kombinasi Algoritma Ntruencrypt Dan Steganografi End Of File Pada Pengamanan Data Teks

0 0 22

Kriptografi Kunci Publik Algoritma Elgamal Dengan Metode The Sieve Of Eratosthenes Untuk Pembangkitan Bilangan Prima

0 0 41

BAB II LANDASAN TEORI 2.1 Kriptografi 2.1.1 Definisi Kriptografi - Implementasi Pengamanan File Text Dengan Algoritma Kriptografi Kanpsak dan Algoritma Steganografi FOF First of File)

0 0 20

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Implementasi Kombinasi Algoritma Kriptografi Modifikasi Playfair Cipher Dan Teknik Steganografi Begin Of File Pada Pengamanan Pesan Teks

0 1 12

Implementasi Kombinasi Algoritma Kriptografi Modifikasi Playfair Cipher Dan Teknik Steganografi Begin Of File Pada Pengamanan Pesan Teks

0 0 13