Berdasarkan jenis kuncinya, algoritma kriptografi dapat dibagi menjadi dua kelompok yaitu algoritma simetri (konvensional / private key algorithm) dan algoritma asimetri (public key algorithm). Menurut Kurniawan [9], algoritma simetri adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Pada algoritma ini, pengirim dan penerima harus menyetujui suatu kunci tertentu yang dinamakan kunci rahasia (secret key). Contohnya adalah DES (Data Encryption Standard), Rijndael, Blowfish dan lain-lain. Sedangkan algoritma asimetri didesain sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi. Kunci yang digunakan untuk enkripsi disebut kunci publik (public key) dan dapat diketahui oleh orang lain. Sedangkan kunci untuk dekripsi dinamakan kunci rahasia atau sering disebut sebagai private key dan hanya diketahui oleh pemiliknya. Contohnya adalah ElGamal, RSA (Rivest-Shamir-Adleman), ECC (Elliptic Curve Cryptography) dan lain-lain.
Istilah “kunci rahasia” pada algoritma simetri digunakan untuk menyatakan kunci enkripsi sekaligus kunci dekripsi dan disebut secret key. Sedangkan pada algoritma asimetri, kunci rahasia hanya digunakan untuk menyatakan kunci dekripsi dan sering disebut sebagai private key. Hal ini dapat mengakibatkan kesalahan penafsiran pada istilah “kunci rahasia”. Karena itu, untuk pernyataan-pernyataan berikutnya digunakan istilah aslinya.
Menurut Purbo dan Wahyudi [11], saat ini terdapat tiga macam public key algorithm yang aman dan efisien berdasarkan permasalahan matematis, yaitu Integer Factorization Problem (IFP), Discrete Logarithm Problem (DLP) dan Elliptic Curve Discrete Logarithm Problem(ECDLP).
Jika diberikan bilangan bulat n yang merupakan hasil kali dua buah bilangan prima p dan q sehingga n=p.q, maka permasalahan matematis dalam IFP adalah mencari faktor dari n , yaitu p dan q. Contohnya adalah RSA.
DLP merupakan masalah yang didefinisikan pada aritmetika modular. Misalkan dipilih bilangan prima p dan diberikan bilangan bulat g (0<g<p-1) serta y merupakan pemangkatan dari g, sehingga . Permasalahan matematis dalam DLP adalah mencari x, jika diberikan pasangan bilangan g dan y. Contohnya adalah ElGamal, Diffie-Hellman, DSA (Disgital Signature Algorithm).
Jika Fp himpunan lapangan berhingga ( finite field ) , p bilangan prima,
P(xP,yP) titik pada kurva elliptik, dipilih V secara random sehingga Q=V.P. Permasalahan matematis dalam ECDLP adalah mencari V, jika diketahui titik P dan Q. Contohnya adalah ElGamal ECC (ElGamal Elliptic Curve Cryptography), ECDSA (Elliptic Curve Digital Signature Algorithm).
Algoritma ECC menggunakan ECDLP dan dikenalkan pertama kali oleh Koblitz dan Miller pada tahun 1985. ECC dapat digunakan untuk beberapa keperluan seperti skema enkripsi (contohnya ElGamal ECC), tanda tangan digital (contohnya ECDSA) dan protokol pertukaran kunci (contohnya Diffie Hellman ECC). Salah satu hal yang menarik mengenai ECC terletak pada tingkat keamanannya. ECC dapat menggunakan ukuran kunci yang lebih kecil dibandingkan dengan kriptografi lainnya dan memiliki tingkat keamanan yang sama. Kemampuan ini membuat ECC mempunyai keamanan yang terkuat dengan panjang kunci terpendek. Sebagai perbandingan, 160 bit ECC mempunyai tingkat keamanan yang sama dengan 1024 bit RSA atau DSA dan 224 bit ECC memiliki tingkat keamanan yang sama dengan 2048 bit RSA atau DSA [6,9,11].
Kemampuan dan keamanan ECC ini yang membuat penulis tertarik untuk mengkaji lebih dalam tentang salah satu skema enkripsinya, yaitu ElGamal ECC (ElGamal Elliptic Curve Cryptography) dan membuat program aplikasinya.
Source:
wan.khudri.com