FAKULTAS MIPA JURUSAN MATEMATIKA ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN ALGORITMA ElGamal ECC (ElGamal ELLIPTIC CURVE CRYPTOGRAPHY) WAN KHUDRI M0198088 FAKULTAS MIPA JURUSAN MATEMATIKA
Seni dan ilmu pengetahuan untuk menjaga keamanan informasi LATAR BELAKANG Seni dan ilmu pengetahuan untuk menjaga keamanan informasi CRYPTOGRAPHY CRYPTOGRAPHY ENKRIPSI DEKRIPSI Teknik untuk membuat informasi yang dapat dibaca (plaintext) menjadi kode-kode tertentu (chipertext) Teknik untuk mengembalikan chipertext menjadi plaintext
ALGORITMA CRYPTOGRAPHY LATAR BELAKANG ALGORITMA CRYPTOGRAPHY Jenis Kuncinya ALGORITMA SIMETRI ( KONVENSIONAL ) ALGORITMA ASIMETRI ( PUBLIC KEY ALGORITHM ) = Kunci Enkripsi Kunci Dekripsi Kunci Enkripsi Kunci Dekripsi Secret Key Public Key Private Key
ALGORITMA CRYPTOGRAPHY LATAR BELAKANG ALGORITMA CRYPTOGRAPHY Jenis Kuncinya ALGORITMA SIMETRI ( KONVENSIONAL ) ALGORITMA ASIMETRI ( PUBLIC KEY ALGORITHM ) = Kunci Enkripsi Kunci Dekripsi Kunci Enkripsi Kunci Dekripsi Secret Key Public Key Private Key
ALGORITMA CRYPTOGRAPHY Jenis Kuncinya ALGORITMA SIMETRI ( KONVENSIONAL ) DEKRIPSI ENKRIPSI PENGIRIM PENERIMA SECRET KEY
ALGORITMA CRYPTOGRAPHY Jenis Kuncinya ALGORITMA ASIMETRI ( PUBLIC KEY ALGORITHM ) DEKRIPSI ENKRIPSI PENGIRIM PENERIMA PUBLIC KEY PRIVATE KEY
Permasalahan Matematis LATAR BELAKANG PUBLIC KEY ALGORITHM Permasalahan Matematis I F P D L P E C D L P Diketahui n: Bilangan Bulat n = p.q p dan q: Bilangan prima Find p dan q Aritmetika Modular Diketahui p: Bilangan Prima g : 0 < g < p-1 y = gx ( mod p ) Find x Aritmetika Kurva Elliptic Diketahui p: Bilangan Prima P(xp,yp) titik kurva elliptic Q(xq,yq) titik kurva elliptic Q = V.P Find V Contohnya RSA Contohnya ElGamal, DSA Contohnya ElGamal ECC, ECDSA
DEFINISI ARITMETIKA KURVA ELLIPTIC PEMBAHASAN DEFINISI ARITMETIKA KURVA ELLIPTIC Misalkan P(xp,yp) dan Q(xq,yq) adalah titik kurva elliptic dalam grup elliptic Ep(A,B). O adalah point at infinity dan persamaan kurva elliptic-nya adalah y2 = x3+Ax+B (mod p), dengan p prima. 1. P + O = O + P = P. 2. Jika xq = xp dan yq = - yp sehingga P = (xp,yp) dan Q = (xq,yq)=(xp,-yp), maka P+Q=P+(-P)=O. Titik Q adalah negatif dari P atau ditulis –P. 3. Jika Q ≠ -P maka penjumlahan P+Q=R=(xR , yR) diperoleh dengan cara xR = 2 – xp – xq (mod p) dan yR = .(xp – xR ) – yp (mod p) ElGamal ECC merupakan algoritma kriptografi kurva elliptic yang menggunakan operasi aritmetika kurva elliptic. Menurut Stalling, definisi aritmetika kurva elliptic atas Fp adalah 4. Operasi perkalian didefinisikan sebagai operasi penjumlahan secara berulang. Misalkan k bilangan bulat, P titik kurva elliptic, maka perkalian skalar k.P = P + P + … + P ( penjumlahan P sebanyak k kali ).
Parameter Domain Kriptografi Kurva Elliptic PEMBAHASAN Parameter Domain Kriptografi Kurva Elliptic Menurut Certicom, parameter-parameter domain kriptografi kurva elliptic didefinisikan sebagai six-tuple T, yaitu T = ( p,Fp,A,B,GE,NG,h ). p : bilangan prima Fp : Lapangan berhingga prima yang memiliki p elemen. Fp={0,1,…,p-1} A,B : koefisien persamaan kurva elliptic y2 = x3 + Ax + B (mod p) GE : basic point, yaitu elemen pembangun grup elliptic Ep(A,B) atas Fp NG : order basic point, yaitu bilangan bulat positip terkecil NG.GE = O h: kofaktor, h= #E / NG, dengan #E adalah banyaknya titik dalam grup elliptic
PEMBAHASAN ALGORITMA ElGamal ECC Ada 5 algoritma dalam ElGamal ECC, yaitu 1. Algoritma penentuan kunci 2. Algoritma representasi plaintext menjadi titik 3. Algoritma enkripsi 4. Algoritma dekripsi 5. Algoritma representasi titik menjadi plaintext
PEMBAHASAN Algoritma Penentuan Kunci Menentukan bilangan bulat V [ 1 , NG -1 ] secara random Menghitung = V.GE V adalah private key dan adalah public key
Algoritma Representasi Plaintext ke Titik PEMBAHASAN Algoritma Representasi Plaintext ke Titik Diasumsikan Sj sebagai suatu bilangan bulat dalam Fp dan peluang sebuah bilangan random menjadi bilangan kuadrat adalah ½. Sehingga kemungkinan tidak menemukan sebuah bilangan kuadrat untuk ‘e’ percobaan adalah 2-e . Berdasarkan asumsi-asumsi tersebut, maka langkah-langkah yang perlu dilakukan adalah Menghitung xj = m.e + j, untuk j [0,e-1] dan menghitung Sj = xj3 +Axj+B sampai diperoleh Sj(p-1)/2 = 1 (mod p) Menghitung yj , yaitu akar dari Sj Merepresentasikan plaintext bilangan bulat m > 0 Sedemikian sehingga m.e < p Titik PM = ( xj , yj ) adalah representasi dari plaintext
Algoritma Enkripsi ElGamal ECC PEMBAHASAN Algoritma Enkripsi ElGamal ECC Misalnya titik PM adalah representasi dari plaintext. Maka langkah-langkah yang perlu dilakukan dalam proses enkripsi adalah Mendapatkan public key Penerima ( ) Memilih bilangan bulat k [ 1 , NG-1 ] Menghitung P1 = k.GE dan P2 = PM + k. PC = ( P1 , P2 ) adalah chipertext pair of points
Algoritma Dekripsi ElGamal ECC PEMBAHASAN Algoritma Dekripsi ElGamal ECC Misalnya PC = ( P1,P2 ) adalah chipertext pair of points Maka langkah-langkah yang perlu dilakukan dalam proses dekripsi adalah Mengalikan P1 dengan private key Penerima M1 = V.P1 Menghitung PM = P2 – M1 = P2 – V.P1 Titik PM adalah representasi dari plaintext
Algoritma Representasi Titik menjadi Plaintext PEMBAHASAN Algoritma Representasi Titik menjadi Plaintext Diasumsikan bahwa PM = (xj , yj ) adalah representasi plaintext. Langkah-langkah untuk mendapatkan plaintext adalah Menghitung Mengubah m menjadi plaintext
PEMBAHASAN IMPLEMENTASI ElGamal ECC Algoritma Perkalian Skalar Kurva Elliptic Binary Algorithm Addition-Subtraction Algorithm Repeated-Doubling Algorithm Algoritma perkalian skalar yang paling efisien Menurut Doraiswamy et.al serta Dahab dan Lopez
IMPLEMENTASI ElGamal ECC pada Software Matlab PROGRAM PENENTUAN KUNCI Ada 44 Function 13 Function telah disediakan dalam Matlab 31 Function dibuat sendiri 7 Function aritmetika modulo 5 Function aritmetika kurva elliptic 19 Function ElGamal ECC PROGRAM ENKRIPSI ElGamal ECC PROGRAM DEKRIPSI ElGamal ECC
PROGRAM PENENTUAN KUNCI nkunci Input panjang kunci T Parameter domain ECC V Private key Public key T eccparameter V eccprivkey eccpubkey OUTPUT: T, V dan
PROGRAM ENKRIPSI ElGamal ECC ( p,A,B,GE,NG ) Input parameter domain Input Public key e Banyaknya percobaan representasi pesan Plaintext For i <= ipesan Yes If ipesan>bpesan lpesan Panjang pesan nkunci panjang kunci bpesan ceil((nkunci/8)-1) ipesan ceil(lpesan/bpesan) No i <= ipesan m eccplain2num m eccplain2num PM eccnum2titik PC Enkripsi ElGamal ECC i > ipesan PM eccnum2titik Output PC PC eccenk
PROGRAM DEKRIPSI ElGamal ECC (p,A) Input parameter domain V Input Private key e Banyaknya percobaan representasi PC Chipertext pair of points PM Dekripsi ElGamal ECC m Titik ke numerik psn Numerik ke plaintext PM eccdek m ecctitik2num psneccnum2plain Output psn
PENUTUP Kesimpulan Jika panjang kunci ’nkunci’ bit maka plaintext dipotong untuk setiap karakter. Setiap potongan plaintext direpresentasikan menjadi titik kurva elliptic (PM) dan dienkripsi menggunakan public key penerima ( ) dengan memilih bilangan bulat k, sehingga menghasilkan chipertext pair of points (PC). Untuk mendapatkan plaintext, penerima perlu mendekripsi chipertext pair of points (PC) menggunakan private key miliknya (V) dan dihasilkan titik kurva elliptic PM. PM = P2 – V.P1. Kemudian mengembalikan representasi titik kurva elliptic menjadi plaintext.
PENUTUP Saran Implementasi ElGamal ECC pada kurva elliptic,lapangan dan software yang berbeda. Melakukan penelitian tentang algoritma yang paling efisien untuk memecahkan ECDLP seperti pollard’s rho atau yang lainnya. Melakukan penelitian tentang tanda tangan digital dan protokol pertukaran kunci, seperti ECDSA, Diffie-Hellman EC. Implementasi gabungan skema enkripsi, tanda tangan digital dan protokol pertukaran kunci dalam skala sistem yang lebih luas, seperti internet banking, transaksi online, lembaga intelijen, militer dan sebagainya.