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

2.3 Kriptografi Kurva Eliptik

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] Persoalan lain menyangkut perhitungan aljabar a b = 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]: y 2 = x 3 + ax + b Universitas Sumatera Utara 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 y 2 = 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 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 Universitas Sumatera Utara menggunakan parameter yang lebih kecil dibandingkan sistem algoritma konvensional. Elliptic Curve Cryptosystem sendiri sudah dipelajari selama bertahun – tahun. Kurva eliptik menghasilkan bilangan prima Z p atau menghasilkan batasan GF 2 n , 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 menggunakan dua tipe daerah terbatas : daerah karakteristik ganjil F p , dimana p 3 adalah bilangan prima yang besar dan daerah karakteristik dua F2 m . Karena perbedaan itu menjadi tidak begitu penting, kedua daerah terbatas tersebut dapat ditunjukkan sebagai F q , dimana q = p atau q = 2 m . Elemen dari F p adalah integer 0 ≤ � � di mana elemen tersebut dapat dikombinasikan menggunakan modul aritmetik. Untuk F2 m sedikit lebih kompleks : salah satu mengandung representasi yang berbeda dari elemen daerah sebagai bit string untuk pilihan polinomial fx 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 dengan F q atau GFq. Banyak cara untuk merepresentasikan elemen dari F q , jika q = p m , 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 prima ganjil, yang dilambangkan dengan F p odd prime, dan q = 2 m , dimana m adalah integer lebih besar dari satu, yang dilambangkan dengan F2 m characteristic two or even.[2] Bidang terbatas F p merupakan sebuah bidang yang beranggotakan bilangan integer 0, 1, …, p-1 dan p merupakan bilangan prima. Setiap perhitungan dikalkulasikan dengan modulo p agar hasilnya tetap berada dalam daerah F p . Operasi yang berlaku dalam bidang terbatas F p adalah :[2] Universitas Sumatera Utara 1. Penjumlahan addition, jika a, b ∈ F p , dimana a + b = r, dimana r adalah sisa pembagian a + b dengan bilangan prima p, 0 ≤ � ≤ � − 1. Penjumlahan seperti ini disebut penjumlahan modulo p mod p. 2. Perkalian multiplication, jika a,b ∈ F p , maka a b = s, dimana s adalah sisa pembagian a b dengan bilangan prima p, 0 ≤ � ≤ � − 1. Perkalian seperti ini disebut perkalian modulo p mod p. Bidang terbatas F2 m 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 F2 m sedemikian rupa sehingga setiap a ∈ F2 m dapat ditulis secara unik ke dalam bentuk :[2] a = a � + a 1 � 1 + …+ a m-1 � �−1 + a m � � , untuk a i ∈ {0,1} Salah satu cara untuk merepresentasikan elemen – elemen pada F2 m adalah dengan representasi basis polinomial. Pada representasi basis polynomial elemen pada F2 m merupakan polinomial dengan derajat lebih kecil dari m, dengan koefisien bilangan 0 atau 1.[2] {a m-1 x m-1 + …+ a 2 x 2 + a 1 x 1 + a x | a i : 0,1} � 3 = � 1 2 + � � 1 2 � 3 = � 1 2 + �� 1 + � 1 � 1 � � 3 + � 3 Persamaan kurva eliptik menggunakan rumus � 2 = � 3 + �� + � yang digambarkan diatas � � dimana a, b ∈ � � . � � disebut bilangan prima jika dan hanya 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 dibawah kondisi 4a 3 +27b 2 ≠ 0 mod p, jika x 1 ,y 1 dan Qx 2 ,y 2 ada pada kurva 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 Universitas Sumatera Utara 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 Z 17 menjadi � 2 = � 3 + � + 5 mod 17. Karenanya penyamaan yang diberikan kurva eliptik:[1] 1. P = 3,1 dan Q8,10 dua titik pada kurva eliptik. Kemudian P + Q = Rx 3 ,y 3 merupakan hasil perhitungan di bawah ini : � + � = 3,1 + 8,10 � 3 = � � 2 − � 1 � 2 − � 1 � 2 − � 1 − � 2 = � 9 5 � 2 − 3 − 8 Karena 9 x 5 −1 mod 17 = 9 x 7 mod 17 = 12. Ini menghasilkan x 3 = 12 2 -3-8mod 17 =14 � 3 = −1 + � 9 5 � ∗ 3 − 14 = −1 + 12 ∗ −11 = −133 ��� 17 = 3 Maka P + Q = R14,3 2. P = 3,1 kemudian 2P = P + P = x 3 ,y 3 . Perhitungannya seperti di bawah ini : 2 � = 3,1 + 3,1 � 3 = � 3 � 1 2 + � 2 � 1 � 2 − 2� 1 = � 27 + 1 2 � 2 − 6 = 14 2 − 6 = 190��� 17 = 3 dan � 3 = −� 1 + � 3 � 1 2 + � 2 � 1 � � 1 − � 3 = −1 + 143 − 3 = −1��� 17 = 16 Maka 2P = 3,16 Universitas Sumatera Utara

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] Bilangan kompleks dapat didefinisikan sebagai b.i + a dengan aturan reduksi t 2 + 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 dengan p m 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 dengan cara ini. Fakta ini sebenarnya direferensikan kepada Galois field dengan p m elemen, dengan menggunakan notasi GFp m . Bilangan prima p merupakan karakteristik dari field.[1] Universitas Sumatera Utara Representasi field menentukan bit-pattern mana yang akan digunakan untuk 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 : GFp. 2. Group perkalian dari finite field dari karakteristik 2 : GF2 n . 3. Elliptic Curve Group pada finite field F : ECF. Jika p adalah modulus dan bilangan prima, maka kompleksitas untuk mencari logaritma diskrit pada GFp 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