Title: ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN ALGORITMA ElGamal ECC (ElGamal ELLIPTIC CURVE CRYPTOGRAPHY)
1ENKRIPSI DAN DEKRIPSI DATA MENGGUNAKAN ALGORITMA
ElGamal ECC(ElGamal ELLIPTIC CURVE CRYPTOGRAPHY)
WAN KHUDRIM0198088
FAKULTAS MIPA JURUSAN MATEMATIKA
2LATAR BELAKANG
Seni dan ilmu pengetahuan untuk menjaga keamanan
informasi
CRYPTOGRAPHY
DEKRIPSI
ENKRIPSI
Teknik untuk membuat informasi yang dapat dibaca
(plaintext) menjadi kode-kode tertentu
(chipertext)
Teknik untuk mengembalikan chipertext menjadi
plaintext
3LATAR 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
4LATAR 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
5ALGORITMA CRYPTOGRAPHY Jenis Kuncinya
ALGORITMA SIMETRI ( KONVENSIONAL )
DEKRIPSI
ENKRIPSI
PENERIMA
PENGIRIM
SECRET KEY
6ALGORITMA CRYPTOGRAPHY Jenis Kuncinya
ALGORITMA ASIMETRI ( PUBLIC KEY ALGORITHM )
DEKRIPSI
ENKRIPSI
PENERIMA
PENGIRIM
PUBLIC KEY
PRIVATE KEY
7LATAR 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 lt g lt 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 ECC, ECDSA
Contohnya ElGamal, DSA
8PEMBAHASAN
- 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 x3AxB (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 PQP(-P)O. Titik Q adalah negatif
dari P atau ditulis P. - 3. Jika Q ? -P maka penjumlahan PQR(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 ).
9PEMBAHASAN
- 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. Fp0,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
10PEMBAHASAN
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
11PEMBAHASAN
Algoritma Penentuan Kunci
Menentukan bilangan bulat V 1 , NG -1
secara random
Menghitung V.GE
V adalah private key dan adalah public key
12PEMBAHASAN
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 AxjB sampai diperoleh
Sj(p-1)/2 1 (mod p)
Menghitung yj , yaitu akar dari Sj
Merepresentasikan plaintext ? bilangan bulat m gt
0 Sedemikian sehingga m.e lt p
Titik PM ( xj , yj ) adalah representasi dari
plaintext
13PEMBAHASAN
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
14PEMBAHASAN
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
15PEMBAHASAN
Algoritma Representasi Titik menjadi Plaintext
Diasumsikan bahwa PM (xj , yj ) adalah
representasi plaintext. Langkah-langkah untuk
mendapatkan plaintext adalah
Menghitung
Mengubah m menjadi plaintext
16PEMBAHASAN
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
17IMPLEMENTASI ElGamal ECCpada Software Matlab
- Ada 44 Function
- 13 Function telah disediakan dalam Matlab
- 31 Function dibuat sendiri
PROGRAM PENENTUAN KUNCI
- 7 Function aritmetika modulo
- 5 Function aritmetika kurva elliptic
- 19 Function ElGamal ECC
PROGRAM ENKRIPSI ElGamal ECC
PROGRAM DEKRIPSI ElGamal ECC
18PROGRAM PENENTUAN KUNCI
T ? Parameter domain ECC V ? Private key ?
Public key
T ? eccparameter
V ? eccprivkey
? eccpubkey
OUTPUT T, V dan
19PROGRAM ENKRIPSI ElGamal ECC
( p,A,B,GE,NG ) ? Input parameter domain ?
Input Public key e ? Banyaknya percobaan
representasi pesan ? Plaintext
For i lt ipesan
Yes
If ipesangtbpesan
lpesan ? Panjang pesan nkunci ? panjang
kunci bpesan ? ceil((nkunci/8)-1) ipesan ?
ceil(lpesan/bpesan)
No
i lt ipesan
m ? eccplain2num
m ? eccplain2num PM ? eccnum2titik PC ?
Enkripsi ElGamal ECC
i gt ipesan
PM ? eccnum2titik
Output PC
PC ? eccenk
20PROGRAM 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
psn?eccnum2plain
Output psn
21PENUTUP
- 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.
22PENUTUP
- Saran
- Implementasi ElGamal ECC pada kurva
elliptic,lapangan dan software yang berbeda. - Melakukan penelitian tentang algoritma yang
paling efisien untuk memecahkan ECDLP seperti
pollards 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.