Anda di halaman 1dari 15

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK

ENKRIPSI DAN DEKRIPSI DATA

IMAM KHOLISSODIN
080312630

Mathemati
Dosen Pembimbing : c
2. Herry Suprajitno, S.Si, M.Si Departmen
Mathematic
and Science t
3. Drs. Eto’ Wuryanto, DEA Faculty
Airlangga University
Latar Belakang
 Definisi
ENKRIPSI DEKRIPSI

Plaintext Public Chipertext Private Plaintext


key key

 Kriptografi Klasik & Modern

 Panjang Kunci

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Langkah-Langkah Penyelesaian
Proses Pertukaran Kunci : Proses Enkripsi : Proses Dekripsi :

Bilangan prima (p) Pilih private1_gen Ambil (C1,C2)

Persamaan kurva elliptik Hitung key1_gen dengan publik2 Hitung key2_gen dengan private2

Pilih titik random Ambil absis key1_gen (xkey1_gen)


(xkey1_gen) Ambil absis dari key2_gen

Buat private1 dan private2 Hitung chipertext (C1,C2) : Hitung plaintext (m) :
(publik1_gen, plaintext ⊕ xkey1_gen)
xkey1_gen m = xkey2_gen ⊕ C2

Hitung publik1 dan publik2

Hitung key1 dan key2

Program

Contoh Kasus

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Program
Program dibuat dengan menggunakan bahasa
pemrograman C++ dan analogi class yang
terdiri dari :

 final_eccvb.cpp

Fungsi Utama : Fungsi Tambahan :


 DH()  prim()
 Enkripsi_ElGamal()  mod()
 Dekripsi_ElGamal()  rand_point()
 inv_pembagi()
 xy_add2p()
 xy_kp()

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Data Plaintext

1. Data berukuran ± 38 bytes


http://downtown.vc/index.php?page=main&id=7448f1156&name=pesan

3. Data berukuran ± 608 bytes


http://downtown.vc/index.php?page=main&id=d9f781304&name=pesan2

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Contoh Kasus Yang Diselesaikan Secara
Manual

user name : imamkomc


password : math

1. Bilangan prima (p)


biangan acak akar
Iterasi 49 7
biangan acak akar
pembagi hasil_bagi sisa Iterasi 23 4
1 2 24.500 1
pembagi hasil_bagi sisa
2 3 16.333 1
3 4 12.250 1 1 2 11.500 1
4 5 9.800 4 2 3 7.667 2
5 6 8.167 1
6 7 7.000 0 3 4 5.750 3

2. Persamaan kurva Elliptik


y 2 = x 3 + a4x + a6
Iterasi
a4 a6 mod (4a43 + 27a62, 23)
1 5 6 0
2 11 7 0
3 1 1 8

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


3. Pilih titik random
Tabel 5. QR23 Tabel 6. Untuk Mencari Elemen E23 (1,1)
y 2 (mod 23) 2 3 2
Z23 QR 23 x Є Z23 ( y = x + x + 1) (mod 23) y Є QR 23 = ? (x,y) Є E 23(1,1)
2
0 0 (mod 23) 0 0 1 ya (0,1) dan (0,22)
2
1 1 (mod 23) 1 1 3 ya (1,7) dan (1,16)
2
2 2 (mod 23) 4 2 11 bukan -
2
3 3 (mod 23) 9 3 8 ya (3,10) dan (3,13)
2
4 4 (mod 23) 16 4 0 ya (4,0)
2
5 5 (mod 23) 2 5 16 ya (5,4) dan (5,19)
2
6 6 (mod 23) 13 6 16 ya (6,4) dan (6,19)
2
7 7 (mod 23) 3 7 6 ya (7,11) dan (7,12)
2
8 8 (mod 23) 18 8 15 bukan -
2
9 9 (mod 23) 12 9 3 ya (9,7) dan (9,16)
2
10 10 (mod 23) 8 10 22 bukan -
2
11 11 (mod 23) 6 11 9 ya (11,3) dan (11,20)
2
12 12 (mod 23) 6 12 16 ya (12,4) dan (12,19)
2
13 13 (mod 23) 8 13 3 ya (13,7) dan (13,16)
2
14 14 (mod 23) 12 14 22 bukan -
2
15 15 (mod 23) 18 15 10 bukan -
2
16 16 (mod 23) 3 16 19 bukan -
2
17 17 (mod 23) 13 17 9 ya (17,3) dan (17,20)
2
18 18 (mod 23) 2 18 9 ya (18,3) dan (18,20)
2
19 19 (mod 23) 16 19 2 ya (19,5) dan (19,18)
2
20 20 (mod 23) 9 20 17 bukan -
2
21 21 (mod 23) 4 21 14 bukan -
2
22 22 (mod 23) 1 22 22 bukan -

Misal titik yang dipilih adalah P = (0,22).


PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA
4. Buat private1 dan private2
private2 elemen {2,3,...,p-1}
Misal private1 = 2 dan private2 = 3.

5. Hitung publik1 dan publik2

 y 2 −y1
x −x , untuk P ≠ Q x3 = λ2 − x1 − x 2
 2 1
λ = 2
3x1 +a 4 , untuk P=Q y3 = λ ( x1 − x3 ) − y1

 2y1
publik1 = private1*P = 2 * (0,22) = 2 * (0,22) = (0,22) + (0,22)=(6,4)

3(0 ) + 1
2 x3 = 112 − 0 − 0 =121 (mod 23) = 6
λ= = 1* (44 −1 ) = 1*11 = 11
44 y 3 = 11 * (0 − 6) − 22 = -88 (mod 23) = 4

publik2 = private2*P = 3 * (0,22) = 3 * (0,22) = (0,22) + (0,22) + (0,22) = (6,4) + (0,22)=(3,10)


x3 = 20 2 − 6 − 0 = 394 (mod 23) = 3
22 − 4
λ= = 18 * (6 −1 ) = 18 *19 = 342 (mod 23) = 20
0− 6 y 3 = 20 * (6 − 3) − 4 = 56 (mod 23) = 10

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


 Mencari Invers Pembagi

 Algoritma Konvensional
pembagi 44 Karena pada iterasi ke-11 cek = 1
iterasi cek = mod(pembangi*iterasi,p)
1 21
Maka invers 44 = 11
2 19
3 17
4 15
5 13
6 11
7 9
8 7
9 5
10 3
11 1

 Algoritma Euclidian

prima pembagi
23 44
inisialisasi
a1 a2 a3 = prima b1 b2 b3 = mod(pembagi,p) q = int(a3/b3)
1 0 23 0 1 21 1
update
a1=b1 a2=b2 a3=b3 b1=a1-mod(q*b1,p) b2=a2-mod(q*b2,p) b3=a3-mod(q*b3,p) q = int(a3/b3)
0 1 21 1 -1 2 10
1 -1 2 -10 -12 1 2

Karena nilai b3 = 1, maka invers dari 44 adalah mod(b2,p) = mod(-12,23) = 11


PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA
 Perkalian Skalar dengan Titik
 Penjumlahan berulang.
k*P = P + P + P + …+P
k kali
 Algoritma :
1. k  biner
2. inisialisasi P3 = (x3,y3) = (0,0)
3. jika 0, P3 = (P3+P3) [ Penggandaan ]
jika 1, P3 = (P3+P3) + P  [ Penggandaan Ditambah P ]

 Hitung 22*(0,22) =…..?


1. 22 = (10110)2  u[1] = 1, u[2] = 0, u[3] = 1, u[4] = 1, u[5] = 0.
2. P3 = (x3,y3) = (0,0) = 0*P = O
3. > u[1] = 1, P3 = (P3+P3) + P = P = ((0,0)+(0,0)) + (0,22) = (0,22)
> u[2] = 0, P3 = (P3+P3) = 2*P = (0,22) + (0,22) = (6,4)
> u[3] = 1, P3 = (P3+P3) + P = 5*P = ((6,4)+(6,4)) + (0,22) = (18,20)
> u[4] = 1, P3 = (P3+P3) + P = 11*P = ((18,20)+(18,20)) + (0,22) = (1,7)
> u[5] = 0, P3 = (P3+P3) = 22*P = (1,7) + (1,7) = (7,11)

Jadi 22*(0,22) = (7,11)

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


6. Hitung key1 dan key2
key1 = private1*publik2 = 2 * (3,10) = (7,12)

key2 = private2*publik1 = 3 * (6,4) = (7,12)


7. Pilih private1_gen
private1_gen elemen {2,3,...,p-1}
Misal private1_gen(k) = 4.
8. Hitung key1_gen dengan publik2
key1_gen = private1_gen*publik2 = 4 * (3,10) = (17,3)

9. Hitung chipertext (C1,C2)

Char ASCII(dec) (C1,C2 ) = (k*P, Asc(m) Xor xkey1_gen)


u 117
s 115
. .

. .
dan seterusnya.

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


10. Hitung key2_gen dengan private2
key2_gen = private2*publik1_gen = 3 * (13,7) = (17,3)

11. Hitung plaintext (m)

m = (x_key2_gen Xor C2)

Sehingga hasilnya :

user name : imamkomc


password : math

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Implementasi Program
Label Data 38 bytes Data 608 bytes Keterangan
kunci.txt 23 1 1 0 22 2 3 6 4 3 10 7 12 7 12 856818337 527743981 584657872 95859945 14719 444138450 583396766 238161441 prima, a4, a6, titik
644555402 524567951 410172902 62651137 551147701 62651137 551147701 random, private1,
private2, publik1,
publik2, key1,
key2

pesan1.txt user name : imamkomc // fungsi untuk mengenerate bilangan prima Plaintext
& password : math long int ecc::prim(long int bit){
pesan2.txt randomize();
long int i;
long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;
min=pow(10,bit-1);
max=pow(10,bit); …(lanjutan)

ENKRIPSI
sandi_pesan1.txt 13 7 100 98 116 99 49 127 112 124 45782949 296156657 855829519 855829519 855829504 855829574 855829589 855829582 Chipertext
& 116 49 43 49 120 124 112 124 122 855829575 855829587 855829577 855829504 855829589 855829582 855829588
sandi_pesan2.txt 126 124 114 27 97 112 98 98 102 855829589 855829579 855829504 855829581 855829573 855829582 855829575
126 99 117 49 49 43 49 124 112 101 855829573 855829582 855829573 855829586 855829569 855829588 855829573
121 855829504 855829570 855829577 855829580 855829569 855829582 855829575
855829569 855829582 855829504 855829584 855829586 855829577 855829581
855829569 855829546 855829580 855829583 855829582 855829575 855829504
855829577 855829582……(lanjutan)
DEKRIPSI
pesan_sandi_pesan1.txt user name : imamkomc // fungsi untuk mengenerate bilangan prima Plaintext
& password : math long int ecc::prim(long int bit){
pesan_sandi_pesan2.txt randomize();
long int i;
long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;
min=pow(10,bit-1);
max=pow(10,bit); …(lanjutan)

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Kesimpulan

 Algoritma enkripsi dan dekripsi pada kriptosistem kurva elliptik


dapat digunakan untuk mengamankan data
 Pengamanan data dilakukan dengan membuat program pertukaran
kunci, enkripsi dan dekripsi data pada kriptosistem kurva elliptik

Saran
 Panjang kunci yang digunakan lebih dari 9 (delapan) digit.
 Tipe data yang dienkripsi lebih luas dan bervariatif, bukan hanya
data teks saja.

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA


Thank you
very much

Anda mungkin juga menyukai