BAB 2
LANDASAN TEORI
Pada tinjauan pustaka ini akan dibahas tentang konsep dasar dan teori-teori yang mendukung pembahasan yang berhubungan dengan sistem yang akan dibuat.
2.1 Pengenalan Kriptografi
Kriptografi adalah sebuah teknik pengamanan data untuk menjamin kerahasian data, selain itu pengertian kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan keamanan informasi seperti kerahasian data, keabsahan data, integritas data, autentikasi data (Hankerson, et al. 2004).
Menurut (Rinaldi, 2006) kriptrografi mempunyai tujuan sebagai berikut : A. Kerahasiaan Data (confidentiality)
Ancaman atau serangan terhadap kerahasiaan data ini biasanya dilakukan dengan menerobos hak akses, penyadapan data dan penipuan. Di dalam kriptografi layanan ini di realisasikan dengan menyandikan pesan menjadi cipherteks. Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data asli (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang akan dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai pada si penerima ciphertext tersebut diubah lagi ke bentuk asli (plaintext).
B. Nirpeyangkalan (non-repudiation)
online dan dalam tahap pertama si pembeli mengirimkan sebuah email dalam orderan maka si pembeli tidak dapat menyangkal bahwa dia telah mengirim email.
C. Integritas Data (data integrity)
Layanan yang menjamin bahwa data masih dalam keadaan asli atau belum pernah diubah selama dalam pengiriman. Layanan ini di realisasikan dengan menggunakan tanda tangan digital (digital signature). Data yang dikirim dengan tanda tangan digital menyiratkan bahwa data itu asli. Aspek ini menjamin bahwa data tidak dapat diubah tanpa izin dari yang berhak.
D. Autentikasi Data (authentication)
Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Data yang didapat oleh suatu pihak oleh pihak lain harus di lakukan identifikasi agar memastikan keaslian data tersebut. Identifikasi terhadap data tersebut dapat berupa tanggal pembuatan data, isi informasi, waktu kirim dan hal-hal lainnya yang berhubungan dengan data tersebut.
2.2 Enkripsi dan Dekripsi
Enkripsi (Encryption), adalah proses yang dilakukan untuk mengubah pesan yang tidak disandikan (plaintext) ke dalam bentuk yang tidak dapat dibaca (ciphertext), dekripsi (Decryption) adalah proses yang dilakukan untuk mengubah pesan yang tidak dapat dibaca kedalam bentuk yang dapat dibaca dan dimengerti. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi.(Rinaldi, 2006)
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). Proses enkripsi dan dekripsi dapat dilihat pada gambar 2.1. (Rinaldi, 2006)
Gambar 2.1 Proses Enkripsi dan Dekripsi
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk
mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, parameter yang menetukan transformasi pencipheran tertentu di sebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kuci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Secara umum proses operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi)
Pada pesan M kita mengekripsikan menajadi pesan C dengan menggunakan kunci K, sedangkan pada proses dekripsi kita menggunakan kunci K dan melakukan pada pesan C yang sudah di enkripsi dan menghasilkan pesan awal yaitu M.
2.3 Algoritma Kriptografi
2.3.1 Algoritma Simetrik (symmetric algorithms)
Algoritma simetrik adalah algoritma kriptografi berdasarkan kuncinya dibedakan menjadi dua yaitu algoritma aliran (Stream Cipher) dan algoritma blok (Block Cipher). Pada algoritma Stream Cipher, proses penyandiannya berorientasi pada
terkenal adalah DES (Data Encryption Standard) (Silviana, 2013). Proses algoritma simetrik dapat dilihat pada gambar 2.2.
Gambar 2.2 Proses Algoritma Simetrik
Algoritma ini menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Dalam system kriptografi kunci simetrik, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat diturunkan dari kunci yang lainnya. Kunci – kunci ini harus dirahasiakan. Oleh sebab itu sistem ini sering disebut sebagai secret key cipher system.
2.3.2 Algoritma Asimetrik (Asymmetric Algortihms)
Algortima kriptografi asimetrik adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Algoritma ini sering juga disebut algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat di ketahui oleh setiap orang, tapi kunci dekripsi hanya di ketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key). Contoh algoritma terkenal menggunakan kunci asimetrik adalah ECC dan RSA. Proses algoritma asimetrik dapat dilihat pada gambar 2.3. Syarat-syarat yang harus di penuhi oleh algoritma public-key yaitu :
1. Mudah secara komputasi bagi suatu pihak B untuk mengkrontuksi sepasang kunci asimetrik (kunci publik KU, kunci pribadi KR).
2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan data yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C).
3. Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan menggunakan kunci pribadinya untuk mengembalikan data asli. 4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi
5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext C.
6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik. Kegunaan persyaratan yang keenam adalah untuk penerapan tanda tangan digital (digital signature) yang digunakan memecahkan isu otentikasi dalam masalah keamanan data.
Proses enkripsi publik key sederhana melibatkan empat tahap berikut : 1. Setiap user didalam jaringan membuat sepasang kunci untuk digunakan
sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.
2. User kemudian mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.
3. Jika user A ingin mengirimkan data ke user B, ia akan mengenkripsikan data dengan menggunakan kunci publik user B.
4. Pada saat user B mendekripsikan data dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa mendekripsikan data itu karena hanya B sendiri yang mengetahui kunci pribadi B.
Gambar 2.3 Proses Algoritma Asimetrik
2.3.3 Perbandingan Algoritma Simetrik dengan Asimetrik
Algoritma simetrik dan asimetrik sama-sama mempunyai kelebihan dan kekurangan msaing-masing.
Kelebihan kriptografi kunci simetrik :
2. Ukuran kunci simetrik relatif pendek. Algoritma simetrik dapat digunakan membangkitkan bilangan acak.
3. Algoritma kunci simetrik dapat disusun untuk menghasilkan cipher yang lebih kuat.
4. Otentikasi pengiriman data langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui pengirim dan penerima saja.
Kekurangan kriptografi kunci simetrik :
1. Kunci simetrik harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
2. Kunci harus sering diubah, mungkin setiap komunikasi.
Kelebihan kriptografi kunci asimetrik :
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan untuk mengirim kunci privat sebagaimana kriptografi kunci simetrik.
2. Pasangan kunci public tidak perlu diubah, bahkan dalam periode waktu yang panjang.
3. Dapat digunakan dalam pengiriman kunci simetrik.
4. Beberapa algoritma kunci publik dapat digunakan untuk member tanda tangan digital pada data.
Kekurangan kriptografi kunci asimetrik :
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem kriptografi simetrik, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
2. Ukuran ciphertext lebih besar dari plaintext.
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetrik.
2.4 Serangan Pada Kriptografi
Setiap penyerangan dalam kriptografi seorang kriptanalis berusaha untuk menemukan kunci atau menemukan plaintext dari ciphertext dengan asumsi kriptanalis mengetahui algoritma kriptografi yang digunakan. Menurut prinsip Kerckhoff semua algoritma kriptografi harus publik, hanya kunci yang rahasia (Silviana, 2013).
Jenis-jenis serangan dalam kriptografi berdasarkan keterlibatan penyerang dalam komunikasi :
1. Serangan pasif (passive attack)
Penyerang tidak terlibat komunikasi langsung dengan pengirim dan penerima dan hanya melakukan penyadapan untuk memperoleh data atau informasi sebanyak-banyaknya.
2. Serangan aktif (active attack)
Penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya dan penyerang mengubah aliran pesan seperti :
1. Menghapus sebagian ciphertext 2. Mengubah ciphertext
3. Menyisipkan ciphertext palsu 4. Me-replay pesan lama
Jenis-jenis serangan dalam kriptografi berdasarkan teknik yang digunakan untuk menemukan kunci :
1. Exhaustive attack
Penyerang menggunakan cara untuk menemukan kunci dengan mencoba semua kemungkinan kunci, pasti berhasil menemukan kunci jika ada waktu yang cukup.
2. Analytical attack
dengan cara memecahkan persamaan-persamaan matematika. Metode ini biasanya lebih cepat menemukan kunci dibandingkan dengan exhaustive attack. Sebuah algoritma kriptografi dikatakan aman bila memenuhi tiga kriteria berikut :
1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.
2. Biaya untuk memecahkan ciphertext melampui nilai informasi yang terkandung di dalam ciphertext tersebut.
3. Waktu yang diperlukan untuk memcahkan ciphertext melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.
2.5 Tanda Tangan Digital
Tanda tangan digital atau Digital Signature merupakan suatu tanda tangan (penanda) yang dibubuhkan pada data digital. Tanda tangan digital bukan merupakan hasil scan atau input tanda tangan melalui interface tertentu. Tanda tangan digital adalah suatu nilai kriptografis yang bergantung pada isi data itu sendiri serta kunci yang digunakan untuk membangkitkan nilai kriptografisnya. Sehingga nilai setiap tanda tangan digital dapat selalu berbeda tergantung data yang ditanda tangani. Dengan tandatangan digital maka integritas data dapat dijamin, disamping itu juga digunakan untuk membuktikan asal pesan (keabsahan pengirim), dan nir penyangkalan (Silviana, 2013).
2.5.1 Sifat umum dari tanda tangan digital
Beberapa sifat umum dari tanda tangan digital adalah sebagai berikut :
2. Sah (integrity) untuk dokumen (pesan) itu saja atau salinannya yang sama persis. Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya, meskipun dokumen lain itu hanya berbeda sedikit. Ini juga berarti bahwa jika dokumen itu diubah, tanda tangan digital dari pesan tersebut tidak lagi sah.
3. Nirpenyangkalan (Non Repudiation), non repudiation ini timbul dari keberadaan digital signature yang menggunakan enkripsi asimetris (asymmetric encryption). Enkripsi asimetris ini melibatkan keberadaan dari kunci prifat dan kunci public. Suatu pesan yang telah dienkripsi dengan menggunakan kunci prifat maka ia hanya dapat dibuka/dekripsi dengan menggunakan kunci public dari pengirim. Jadi apabila terdapat suatu pesan yang telah dienkripsi oleh pengirim dengan menggunakan kunci prifatnya maka ia tidak dapat menyangkal keberadaan pesan tersebut karena terbukti bahwa pesan tersebut dapat didekripsi dengan kunci publik pengirim. Keutuhan dari pesan tersebut dapat dilihat dari keberadaan hash function dari pesan tersebut, dengan catatan bahwa data yang telah di-sign akan dimasukkan kedalam digital envelope.
4. Dapat diperiksa dengan mudah, termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penandatangan.
2.5.2 Penandatanganan Pesan
Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara, yaitu : 1. Enkripsi pesan
Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi juga sudah menyatakan bahwa pesan tersebut telah ditandatangani.
2. Tanda tangan digital dengan fungsi hash
kunci-publik dan menggunakan kunci privat pengirim. Hasil enkripsi inilah yang disebut dengan tanda tangan digital. Selanjutnya tandatangan digital dilekatkan dengan ke pesan dengan cara menyambung (append) lalu dikirim melalui saluran komunikasi. Kemudian di tempat penerima, tandatangan digital dibuktikan keotentikannya dengan melakukan verifikasi pesan, yaitu dengan cara sebagai berikut:
1. Tandatangan digital didekripsi dengan menggunakan kunci public pengirim pesan yang menghasilkan message digest (MD) semula.
2. Penerima pesan mengubah pesan menjadi message digest (MD’) menggunakan fungsi hash satu arah yang sama dengan fungsi hash yang digunakan pengirim. 3. Jika MD’ = MD, maka pesan dan tandatangan yang diterima memang benar
berasal dari pengirim pesan.
2.5.3 Skenario Tanda Tangan Digital
Tanda tangan digital didalam kriptografi mempunyai skenario atau proses penandatanganan. Misalnya Alice ingin mengirim document bertandatangan secara digital pada Bob. Alice terlebih dahulu membangkitkan sepasang kunci asimetrik miliknya, yaitu kunci privat ( ) dan kunci public ( ). Kemudian Alice menandatangani dokumen M dengan memanggil algoritma sign sebagai berikut:
Untuk menghasilkan tandatangan, alice kemudian mengirim (M, ) kepada Bob. Bob pada akhirnya memanggil algoritma verify sebagai berikut:
Untuk memverifikasi tandatangan, bob menerima pasangan (M, ) bila nilai terima adalah true (benar).
2.6 Fungsi Hash
(di mana, h = H(m)). Fungsi hash sederhana ini memiliki berbagai jenis kegunaan komputasi, tetapi ketika digunakan untuk masalah kriptografi, fungsi hash selalu ditambahkan dengan sejumlah properti tambahan (Liao & Shen 2006).
Yang dibutuhkan untuk fungsi kriptografi hash, yaitu: 1. Input dengan panjang sembarang
2. Hasilnya mempunyai keluaran dengan panjang yang fixed 3. H(x) umumnya mudah dikalkulasi untuk sembarang nilai x 4. H(x) adalah satu arah
5. H(x) tidak pernah bermasalah dengan yang lain
Fungsi hash H merupakan fungsi satu-arah sebab sulit untuk dibalikkan yang berarti untuk nilai fungsi hash h, kita sulit menemukan nilai input x yang memenuhi persamaan H(x) = h. Nilai dari fungsi hash menyatakan sebuah pesan atau dokumen yang lebih panjang yang berasal dari proses komputasi. Hal ini menarik sebab dengan fungsi hash, kita dapat membuat sebuah digital fingerprint untuk sebuah dokumen. Contoh yang paling terkenal dari fungsi hash adalah MD2, MD5 dan SHA.
Mungkin penggunaan yang umum dari fungsi kriptografi hash adalah pembuatan digital signatures. Karena fungsi hash umumnya lebih cepat daripada algoritma digital signature lainnya, fungsi hash lebih sering digunakan untuk mendapatkan nilai fungsi hash dengan mengkalkulasikan signature yang menghasilkan sebuah nilai hash yang lebih kecil daripada dokumen itu sendiri. Selain itu, publik dapat memberikan sebuah saran atau pendapat tanpa membeberkan isi dari pendapat yang terdapat di dalamnya. Cara ini digunakan dalam memberikan tanggal pada sebuah dokumen dimana dengan menggunakan fungsi hash, setiap orang dapat memberikan tanggal pada dokumen tanpa memperlihatkan isi dari dokumennya pada saat proses pemberian tanggal.
Sifat-sifat fungsi hash kriptografi : 1. Preimage resistant
Bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
2. Second Preimage resistant
Bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1)
yang menyebabkan hash(m1)=hash(m2)
3. Collision-resistant
Sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) =
hash(m2)
Beberapa contoh algoritma fungsi hash kriptografi yaitu MD4, MD5, SHA-0, SHA-1, SHA-256, SHA-512.
2.7 DSA
DSA dikembangkan dari algoritma ElGamal. DSA tidak dapat digunakan untuk enkripsi tetapi di spesifikasikan khusus untuk tanda tangan digital. Pada DSA, algoritma signature dan verifikasi berbeda. DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci privat. Pembentukan tanda tangan menggunakan kunci rahasia privat, sedangkan verifikasi tanda tangan menggunakan kunci publik pengirim.
DSA menggunakan fungi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit. Tingkat keamanan DSA bergantung kepada dua masalah logaritma yang jauh akan tetapi saling berkaitan. Pertama adalah masalah logaritma di Zp dimana metode index kalkulus yang kuat diterapkan. Yang kedua adalah masalah logaritma pada cyclic subgroup pada urutan q, dimana metode berjalan pada waktu yang “square-root”
(Wizanajani, 2013).
2. Ambil t dimana 0 ≤ t ≤ 8
3. Ambil bilangan prima p dimana 2511 + 64t < q < 2512 + 64t , dengan tambahan bahwa q dapat dibagi oleh (p-1)
4. Pilih sebuah generator α dari uniqe cyclic group berdasar urutan q di Zp* 5. Ambil bilangan integer acak dimana 1 ≤ a ≤ q-1
6. Hitung y = αa mod p
Kunci publik mengandung p, q, α, y, dan kunci privat adalah a.
2.8 Elgamal
Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk tanda tangan digital atau digital signature. Namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGaMal digunakan dalam perangkat lunak yang dikembangkan oleh GNU, program PGP, dan pada program keamanan jaringan lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritma diskrit. Masalah algoritma diskrit adalah, jika p adalah bilangan prima dan g dan y adalah sembarang bilangan bulat. Carilah x sedemikian sehingga gx ≡ y (mod p). (Rinaldi, 2006).
Besaran - besaran yang digunakann dalam algoritma ElGamal adalah : 1. Bilangan Prima p (Publik)
2. Bilangan acak, g (g<p) (Publik) 3. Bilangan acak,x (x<p-3) (Privat) 4. y = gx mod p (Publik)
5. m (Plainteks) (Privat)
6. a dan b (Chiperteks) (Publik)
Prosedur Membuat Pasangan Kunci : 1. Pilih sembarang bilangan prima p.
4. Kunci publik adalah y, kunci rahasia adalah x. Nilai g dan p tidak dirahasiakan dan dapat diumumkan kepada anggota kelompok.
Enkripsi :
1. Plainteks disusun menjadi blok-blok m1, m2, …, sedemikian sehingga setiap
blok merepresentasikan nilai di dalam rentang 0 sampai p – 1.
2. Pilih bilangan acak k, yang dalam hal ini 0 k p – 1, sedemikian sehingga k relatif prima dengan p – 1.
3. Setiap blok m dienkripsi dengan rumus : a = gk mod p b = ykm mod p
Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.
Dekripsi :
Untuk mendekripsi a dan b digunakan kunci rahasia, x, dan plainteks m diperoleh kembali dengan persamaan :
m = b/ax mod p karena : ax gkx (mod p)
maka :
b/ax ykm/ax gxkm/gxk m (mod p)
yang berarti bahwa plainteks dapat ditemukan kembali dari pasangan cipherteks a dan b.
2.9 ECC (Elliptical Curve Cryptography)
Pendekatan yang dilakukan untuk menghasilkan algoritma Elliptic Curve Cryptography adalah dengan meggunakan struktur matematika yang sangat unik
sebuah kurva eliptik dan menghasilkan sebuah titik lain yang ada pada kurva tersebut. Struktur yang unik ini memberikan keuntungan dalam kriptografi dikarenakan kesulitan untuk menemukan 2 buah titik yang menentukan sebuah titik tertentu tersebut tidak dapat ditemukan dengan mudah. Tingkat kesulitan untuk menemukan 2 buah titik termasuk dalam golongan yang rumit sama seperti kesulitan untuk memperhitungkan variasi eksponensial yang digunakan dalam algoritma RSA yang telah banyak diimplementasikan. Untuk memecahkan Elliptic Curve Cryptography sendiri dibutuhkan perhitungan matematis yang sangat tinggi. Elliptic Curve Cryptography terdiri dari beberapa operasi basic dan juga aturan yang mendefinisikan penggunaan dari operasi operasi basic seeperti penambahan, pengurangan, perkalian dan perpangkatan yang didefinisikan sesuai dengan kurvakurva yang ada. Berikut adalah operasi matematika yang digunakan pada Elliptical Curve Cryptography didefinisikan dengan persamaan :
y2 = x3 + ax + b
dengan 4a3 + 27b2≠ 0
Setiap perubahan nilai dari a dan b akan menghasilkan elliptic curve yang berbeda (Hankerson, et al. 2004).
2.9.1 Jenis-jenis Elliptic Curve Cryptography
Elliptical Curve Cryptography mempunyai beberapa jenis-jenis algoritma yaitu : 1. ECDSA (Elliptical Curve Digital Siganature Algortihm)
Algoritma penandatanganan pesan menggunakan ECC yang disebutkan sebagai ECDSA adalah salah satu variasi dari Digital Signature Algorithm yang beroperasi dengan kelompok kurva elliptic sebagai basis perhitungan dari proses penandatanganan. Agar dapat menyamakan suatu tandatangan digital dari sebuah pesan yang dikirim oleh dua orang, maka kedua orang tersebut harus memiliki kurva elliptic yang sama.
2. Elliptical Curve Diffie Hellman
masing-masing memiliki kurva eliptik sepasang kunci publik-swasta masing – masing, dan mengirimkan sebuah kunci rahasia bersama melalui saluran yang tidak aman. Berbagi rahasia ini mungkin langsung digunakan sebagai tombol, atau lebih baik lagi, untuk mendapatkan kunci lain yang kemudian dapat digunakan untuk mengenkripsi komunikasi berikutnya menggunakan cipher kunci simetris.
2.9.2 Hal –hal yang perlu diperhatikan pada Elliptic Curve Cryptography
Pada Elliptical Curve Cryptography ini ada hal-hal yang harus diperhatikan untuk menyandikan pesan, yaitu :
1. Domain Parameter Kurva Ellips yang digunakan dalam ECC
Pembuatan parameter domain tidak dilakukan oleh masing-masing pengirim atau penerima karena ini melibatkan menghitung jumlah titik pada kurva yang memakan waktu dan sulit untuk diterapkan. Akibatnya dipilih beberapa standar parameter domain kurva eliptik untuk beberapa ukuran.
2. Panjang kunci
Skema ECC terkuat yang sudah berhasil diretas sampai saat ini memiliki sebuah kunci 112-bit untuk kasus dengan penggunaan umum dan sebuah kunci 109-bit untuk kasus dengan operasi biner. Untuk kasus pengenkripsian secara biasa rusak pada bulan Juli 2009 dengan menggunakan sekelompok lebih dari 200 PlayStation 3 game konsole dan bisa selesai dalam 3,5 bulan menggunakan cluster saat menjalankan terus menerus .Untuk kasus dengan pengoperasian biner, itu rusak pada bulan April 2004 dengan menggunakan 2.600 komputer selama 17 bulan operasi komputer.
3. Lisensi dan ijin
eliptik telah dipatenkan oleh berbagai orang dan perusahaan di seluruh dunia. Terutama perusahaan Kanada, Inc Certicom memegang lebih dari 130 paten yang berkaitan dengan kurva eliptik dan kriptografi kunci publik pada umumnya.
2.10 ECDSA (Elliptical Curve Digital Signature Algorithm)
ECDSA (Elliptical Curve Digital Signature Algorithm) adalah kurva elliptik analog dari Digital Siganature Algorithm (DSA). ECDSA merupakan salah satu jenis dari metode tanda tangan digital yang beroperasi dengan kelompok kurva elliptik sebagai basis perhitungan.
Skematik ECDSA adalah part penghitung digital untuk menulis penandaan. Skematik penandaan digital dapat diklasifikasikan berdasarkan pada permasalahan matematika yang menyediakan dasar untuk keamanan :
1. Integer Faktorisasi (IF)
Dasar keamanan pada intrektabiliti dari permasalahan faktorisasi integer. 2. Diskrit Logaritma (DL)
Dasar keamanan dititik beratkan pada permasalahan logaritma dalam sebuah daerah terbatas.
3. Skema kurva elliptic
Dasar keamanan dititik beratkan pada permasalahan curva elliptic logaritma diskrit (Hankerson, et al. 2004).
2.10.1 Parameter-parameter domain ECDSA
Parameter-parameter domain ECDSA terdiri dari sebuah pilihan yang sesuai dengan kurva elliptik E yang didefinisikan melebihi bidang tak hingga Fq dari karateristik p, dan sebuah titik dasar G € E(Fq). Untuk menyimpulkan, parameter-parameter domain terdiri dari :
b. Sebuah inidkasi FR (field representation) dari representasi yang digunakan untuk elemen dari Fq
c. Sebuah string bit seedE dari ukuran minimal 160 bit
d. Dua elemem bidang xg dan yg dalam Fq yang mendefinisikan sebuah titik tak
hingga G = (xg,yg) dari orde prima dalam E(Fq)
e. Orde n dari titik G, dengan n>2160 dan n > f. Kofaktor h = ≠E(Fq)/n
2.10.2 Proses ECDSA
Dalam protokol ECDSA, pihak yang akan melakukan tanda tangan digital mempunyai parameter domain kurva eliptik berupa D = { p, FR, a, b, G, n } dan pasangan kunci-kunci rahasia dA dan kunci publik QA. Kemudian pihak yang akan melakukan verifikasi terhadap tanda tangan , memiliki salinana dokumen D yang otentik dan kunci publik QA. Proses-proses yang terjadi adalah sebagai berikut :
Key generation :
1. Memilih sebuah bilangan bulat random dA yang nilainya diantara ( 1,n-1) 2. Menghitung QA = dA * G = ( X1, Y1)
3. Kunci rahasia = dA, dan kunci publik = QA
Signing ( Pemberian Tanda Tangan ) :
1. Memilih sebuah bilangan bulat random k, yang nilainya diantara ( 1, n-1 ) 2. Menghitung QA = k * G = ( X1, Y1 ) dan r = X1 mod n, jika r = 0, maka
kembali ke langkah 1 3. Menghitung k-1 mod n 4. Menghitung e = Hash (m)
5. Menghitung s = k-1 { e+dA * r } mod n Tanda tangan untuk pesan m adalah ( r,s ).
Verifying ( Verifikasi tanda tangan digital ) :
2. Menghitung e = Hash (m) 3. Menghitung w = s-1 mod n
4. Menghitung u1 = ew mod n dan u2 = rw mod n
5. Menghitung u1 * G + u2 * QA = ( X1, Y1)
6. Menghitung v = X1 mod n
7. Menerima tanda tangan jika dan hanya jika v = r
2.11 Penelitian Terdahulu
Pualam Sendi A P dan temannya menghasilkan kesimpulan bahwa Algoritma ECDSA yang diimplementasikan pada email client dalam proyek akhir ini dapat memberikan informasi tentang keaslian pesan yang diterima dengan syarat penerima sudah memiliki kunci publik milik pengirim. Kemudian, penggunaan fungsi trim pada saat pengambilan data dari luar program sangat penting karena sering terjadi perubahan saat proses pengambilan data dilakukan. Serta penggunaan tanda tangan digital akan mempengaruhi ukuran email (Sendi, et al. 2010).
Wizanajani menyimpulkan bahwa algoritma ECC memiliki banyak keunggulan dibandingkan dengan algritma RSA dan DSA. Kecepatan algoritma berbasis ECC dalam proses pemberian dan verifikasi tanda tangan digital jauh lebih cepat dibandingkan dengan algoritma DSA dan RSA. Ukuran dari Algoritma berbasis ECC juga lebih kecil dari RSA dan DSA akan tetapi tidak dalam nilai yang besar. Yang paling utama adalah penyelesaian masalah algoritma berbasis ECC dilakukan secara eksponensial penuh dan lebih sulit dipecahkan daripada masalah DSA dan RSA, hal ini membuktikan bahwa ECC lebih kuat daripada DSA dan RSA. Pada implementasinya ECC cocok digunakan untuk aplikasi pada mobile phone, PDA, karena aplikasi tersebut membutuhkan ukuran kunci dan kecepatan pemberian tanda tangan serta verifikasi yang cepat (Wizanajani, 2013).
meminimalisir adanya penyadapan data, hal ini dikarenakan tanda tangan digital dapat memenuhi syarat keamanan data antara pengirim dan penerima pesan melalui tanda tangan yang diembed (dibawa) beserta data yang dikirim (Adam, 2009).
Triwinarko pada tahun 2010 melakukan penelitian pada ECDSA dan menyimpulkan bahwa ECDSA dengan panjang kunci 160 bit mempunyai tingkat keamanan yang relatif sama dengan RSA dengan panjang kunci 1024 bit. Jadi algoritma kriptografi kurva eliptik mempunyai keuntungan berupa ukuran panjang kunci yang lebih kecil jika dibandingkan dengan algoritma kunci publik lainnya (RSA) tetapi sudah memiliki tingkat keamanan yang relatif sama, sehingga algoritma kriptografi kurva eliptik cocok untuk diimplementasikan pada peralatan perangkat keras yang memiliki daya dan memori yang terbatas. Dari kriteria ukuran panjang tanda tangan digital, algoritma kriptografi kurva eliptik memiliki performansi yang lebih baik karena menghasilkan tanda tangan digital yang mempunyai ukuran lebih kecil. Sedangkan dari kriteria kecepatan proses signing dan verifying, performansi kriptografi kurva eliptik akan lebih baik jika proses signing lebih sering dilakukan. Sebaliknya performansi kriptografi RSA akan lebih baik jika proses verifying lebih sering dilakukan (Triwinarko, 2010).