ALGORITMA ElGamal ECC

advertisement
ENKRIPSI DAN DEKRIPSI DATA
MENGGUNAKAN ALGORITMA ElGamal ECC
(ElGamal ELLIPTIC CURVE CRYPTOGRAPHY)
WAN KHUDRI
M0198088
FAKULTAS MIPA JURUSAN MATEMATIKA
LATAR BELAKANG
Seni dan ilmu pengetahuan untuk menjaga keamanan informasi
CRYPTOGRAPHY
ENKRIPSI
DEKRIPSI
Teknik untuk membuat
informasi yang dapat
dibaca (plaintext)
menjadi kode-kode
tertentu (chipertext)
Teknik untuk
mengembalikan
chipertext menjadi
plaintext
LATAR BELAKANG
ALGORITMA CRYPTOGRAPHY
Jenis Kuncinya
ALGORITMA SIMETRI
( KONVENSIONAL )
Kunci
Enkripsi
=
Kunci
Dekripsi
Secret Key
ALGORITMA ASIMETRI
( PUBLIC KEY ALGORITHM )
Kunci
Enkripsi
Public Key

Kunci
Dekripsi
Private Key
LATAR BELAKANG
ALGORITMA CRYPTOGRAPHY
Jenis Kuncinya
ALGORITMA SIMETRI
( KONVENSIONAL )
Kunci
Enkripsi
=
Kunci
Dekripsi
Secret Key
ALGORITMA ASIMETRI
( PUBLIC KEY ALGORITHM )
Kunci
Enkripsi
Public Key

Kunci
Dekripsi
Private Key
ALGORITMA CRYPTOGRAPHY
Jenis Kuncinya
ALGORITMA SIMETRI
( KONVENSIONAL )
DEKRIPSI
ENKRIPSI
PENERIMA
PENGIRIM
SECRET KEY
ALGORITMA CRYPTOGRAPHY
Jenis Kuncinya
ALGORITMA ASIMETRI
( PUBLIC KEY ALGORITHM )
ENKRIPSI
DEKRIPSI
PENERIMA
PENGIRIM
PUBLIC KEY
PRIVATE KEY
LATAR BELAKANG
PUBLIC KEY ALGORITHM
Permasalahan Matematis
IFP
Diketahui
n: Bilangan Bulat
Contohnya
n = p.q
p dan q: Bilangan prima
RSA
Find p dan q
DLP
ECDLP
Aritmetika Modular
Aritmetika Kurva Elliptic
Diketahui
Contohnya
Diketahui
p:Contohnya
Bilangan Prima
g : 0 < g < p-1
ElGamal,
DSA
y = gx ( mod p )
p: Bilangan Prima
P(xElGamal
elliptic
ECC,
p,yp) titik kurva
Q(xq,yq) titik kurva elliptic
Q = V.P
ECDSA
Find x
Find V
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.
 y q - y pkriptografi kurva elliptic yang menggunakan
ElGamal ECC merupakan algoritma
1. P + O = O + P = P. 
, untuk P  Q
xq Menurut
- xp
operasi
aritmetika
elliptic.

2. Jika
xq = xp kurva
dan yΔ
=
y
sehingga
PStalling,
= (xp,yp)definisi
dan Q =aritmetika
(xq,yq)=(xpkurva
,-yp),
q =
p
 2
elliptic atas
adalah
p +QAadalah negatif dari P atau ditulis –P.
makaFpP+Q=P+(-P)=O.
Titik
 3x
, untuk P = Q
 2y
3. Jika Q ≠ -P maka penjumlahan
P+Q=R=(xR , yR) diperoleh dengan cara
p

xR = 2 – xp – xq (mod p) dan yR =  .(xp – xR ) – yp (mod p)
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 ).
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
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
3
‘e’
percobaanxadalah
2-e .
Menghitung
j = m.e + j, untuk j [0,e-1] dan menghitung Sj = xj +Axj+B
Berdasarkan
asumsi-asumsi
sampai diperoleh
Sj(p-1)/2 = 1 tersebut,
(mod p) maka langkah-langkah yang perlu
dilakukan adalah
Menghitungplaintext
yj , yaitu 
akar
dari Sj bulat m > 0
Merepresentasikan
bilangan
Sedemikian sehingga m.e < p
Titik PM = ( xj , yj ) adalah representasi dari plaintext
PEMBAHASAN
Algoritma Enkripsi ElGamal ECC
Mendapatkan public key Penerima (  )
Misalnya titik
PM adalah
representasi
Memilih
bilangan
bulat k  [ 1 , dari
NG-1 plaintext.
]
Maka langkah-langkah yang perlu dilakukan dalam
Menghitung P1 = k.GE dan P2 = PM + k.
proses enkripsi adalah
PC = ( P1 , P2 ) adalah chipertext pair of points
PEMBAHASAN
Algoritma Dekripsi ElGamal ECC
Mengalikan P1 dengan private key Penerima  M1 = V.P1
Misalnya PC = ( P1,P2 ) adalah chipertext pair of points
Menghitung PM yang
= P2 –perlu
M1 = P
2 – V.P1
Maka langkah-langkah
dilakukan
dalam
proses dekripsi adalah
Titik PM adalah representasi dari plaintext
PEMBAHASAN
Algoritma Representasi Titik menjadi Plaintext
Diasumsikan bahwa PM = (xj , yj ) adalah representasi plaintext.
Langkah-langkah untuk mendapatkan plaintext adalah
Menghitung
 xj 
m

 e 
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
PROGRAM ENKRIPSI
ElGamal ECC


Function
telah
 13
7 Function
aritmetika
disediakan
modulo
dalam
Matlab
5 Function aritmetika
kurva elliptic
 31 Function
 19 Function ElGamal
dibuat sendiri
ECC

PROGRAM DEKRIPSI
ElGamal ECC
Ada 44 Function
PROGRAM PENENTUAN KUNCI
nkunci  Input panjang kunci
T  Parameter domain ECC
T  eccparameter
V  Private key
V  eccprivkey

 Public key
OUTPUT: T, V dan 
  eccpubkey
PROGRAM ENKRIPSI ElGamal ECC
( p,A,B,GE,NG )  Input parameter domain
  Input Public key
e  Banyaknya percobaan representasi
pesan  Plaintext
Yes
lpesan  Panjang pesan
nkunci  panjang kunci
bpesan  ceil((nkunci/8)-1)
ipesan  ceil(lpesan/bpesan)
For
i <= ipesan
If ipesan>bpesan
No
i <= ipesan
m  eccplain2num
PM  eccnum2titik
PC  eccenk
m  eccplain2num
PM  eccnum2titik
PC  Enkripsi ElGamal ECC
i > ipesan
Output PC
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
PM  eccdek
m  Titik ke numerik
m  ecctitik2num
psn  Numerik ke plaintext
psneccnum2plain
Output psn
PENUTUP
Kesimpulan

Jika panjang kunci ’nkunci’ bit maka plaintext dipotong untuk
 nkunci


setiap  8  1 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).
P1  k.GE .

  PC  ( P1 , P2 )  (k.GE , PM  k. )
P2  PM  k. 


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.
Download