Perhitungan Algoritma Kriptografi Elliptic Curve (ECC) - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)

2 komentar
Berikut proses perhitungan algoritma elliptic curve atau disebut juga dengan algoritma kurva eliptik.
Persamaan yang dipakai y^2 = x^3+x+1
Bilangan Prima (acak random) p=193
Anggota Himpunan Penyelesaian di atas dengan batas atas bilangan prima 193
(0,1), (0,192), (1,14), (1,179), (3,80), (3,113), (4,29), (4,164),
(5,18), (10,25), (10,168), (11,68), (11,125), (12,2), (12,191), (15,66),
(15,127), (19,33), (19,160), (20,84), (20,109), (22,40), (22,153),
(23,15), (23,178), (25,37), (25,156), (27,5), (27,188), (28,65), (28,128),
(29,78), (29,115), (31,78), (31,115), (32,50), (32,143), (35,79), (35,114),
(39,84), (39,109), (41,86), (41,107), (45,70), (45,123), (49,82), (49,111),
(51,43), (51,150), (52,93), (52,100), (53,30), (53,163), (54,80), (54,113),
(55,79), (55,114), (56,64), (56,129), (58,56), (58,137), (61,70), (61,123),
(62,6), (62,187), (66,46), (66,147), (67,41), (67,152), (69,38), (69,155),
(70,66), (70,127), (71,57), (71,136), (72,32), (72,161), (73,14), (73,179),
(74,81), (74,112), (79,2), (79,191), (81,1), (81,192), (82,67), (82,126),
(83,28), (83,165), (84,47), (84,146), (85,49), (85,144), (87,70), (87,123),
(90,55), (90,138), (91,34), (91,159), (93,42), (93,151), (94,59), (94,134),
(95,92), (95,101), (96,182), (100,19), (100,174), (101,13), (102,2),
(102,191), (103,79), (103,114), (104,92), (104,101), (108,66), (108,127),
(109,63), (109,130), (111,96), (111,97), (112,1), (112,192), (113,23),
(113,170), (114,34), (114,159), (115,94), (115,99), (117,105), (119,14),
(119,179), (120,81), (120,112), (123,49), (123,144), (127,3), (127,190),
(128,23), (128,170), (133,78), (133,115), (134,84), (134,109), (135,95),
(135,98), (136,80), (136,113), (138,55), (138,138), (140,35), (140,158),
(142,58), (142,135), (145,23), (145,170), (147,85), (147,108), (155,17),
(158,55), (158,138), (163,50), (163,143), (165,71), (165,122), (166,39),
(166,154), (168,62), (168,131), (169,7), (169,186), (171,77), (171,116),
(175,83), (175,110), (178,49), (178,144), (179,36), (179,157), (180,53),
(180,140), (181,34), (181,159), (187,92), (187,101), (188,8), (188,185),
(189,60), (189,133), (191,50), (191,143), (192,81), (192,112)

Privat key k (untuk penerima) = 4
Private key ini adalah salah satu angka yang ada pada Himpunan Penyelesaian persamaan di atas.

Titik awal kurva  P = (133,78)
Dipilih secara random.

Public Key k.P, dihitung dengan cara mengalikan private key k ke titik awal kurva P
k*P = 4*(133,78)
[133,78] +[133,78] =[112,192]
[112,192]+[112,192]=[163,143]
Jadi, Public Key k.P = (163,143)
Catatan : Perkalian dan perhitungan titik kurva menggunakan aturan perkalian, penjumlahan, penggandaan, dan invers, Jadi perkaliannya tidak sama denga perkalian matriks.


Dari pre-proses di atas kita dapatkan beberapa informasi:
Persamaan yang dipakai adalah : y^2 = x^3+x+1
Bilangan prima p : 193
Private key : 4
Titik kurva Awal : (133,78)
Public Key k.P : (163,143)


Pesan yang akan di enkripsi : haripinter

Proses Enkripsi :
-----------------------
- Menentukan titik kkP sebagai titik pengenkripsi.
k*kP = 4*(163,143)
[163,143]+[163,143]=[1,179]
[1,179]  +[1,179]  =[128,170]
Titik kkP : (128,170)
- Menentukan titik Awal proses dekripsi. (Sebenarnya ini adalah titik k.P yang sudah dihitung sebelum :) )
k*P = 4* (133,78)
[133,78] +[133,78] =[112,192]
[112,192]+[112,192]=[163,143]
Titik kP : (163,143)

Titik x dan y kP dikonversi ke karakter, selanjutkan karakter tersebut akan dikirim sebagai header pada pesan terenkripsi.
Karakter x, y, dan pesan akan dipisahkan oleh karakter #. Sehingga format pesan yang nantinya akan dikirim adalah X#Y#pesan_terenkripsi

Selanjutnya ambil titik absis kkP untuk di-xor-kan ke pesan.
128 -> 10000000

Konversi pesan ke integer sesuai format ASCII, kemudian jadikan biner. Selanjutnya di xor dengan absis titik kdP.
Setelah di xor, rangkai lagi menjadi pesan baru yang terenkripsi:
h -> 104 -> 1101000 xor 10000000 => 232 (è)
a -> 97  -> 1100001 xor 10000000 => 225 (á)
r -> 114 -> 1110010 xor 10000000 => 242 (ò)
i -> 105 -> 1101001 xor 10000000 => 233 (é)
p -> 112 -> 1110000 xor 10000000 => 240 (ð)
i -> 105 -> 1101001 xor 10000000 => 233 (é)
n -> 110 -> 1101110 xor 10000000 => 238 (î)
t -> 116 -> 1110100 xor 10000000 => 244 (ô)
e -> 101 -> 1100101 xor 10000000 => 229 (å)
r -> 114 -> 1110010 xor 10000000 => 242 (ò)
Angka desimal pesan diatas kemudian dikembalikan menjadi karakter
Pesan Baru terenkripsi : èáòéðéîôåò

Gabungkan karakter titik kP pada pesan.
Titik kP + Pesan terenkripsi : £##èáòéðéîôåò

Pada pesan tersebut titik X menjadi £ dan Y menjadi karakter yang tidak dikenal oleh format ASCII.


Proses Dekripsi :
-----------------------
Pesan terenkripsi : £##èáòéðéîôåò
Pisahkan header dan pesan asli. Kemudian ambil ke titik kP:
Titik kP : (163,143)

Hitung titik kP dengan k untuk mendapatkan titik-titik pesan
4*(163,143)
[163,143]+[163,143]=[1,179]
[1,179]  +[1,179]  =[128,170]
Titik kkP : (128,170)

Ambil titik absis kkP untuk di-xor-kan ke pesan terenkripsi.
128 -> 10000000

Ambil pesan perkarakter, jadikan biner, kemudian xor-kan ke kkP
è -> 232 -> 11101000 xor 10000000 => 104 (h)
á -> 225 -> 11100001 xor 10000000 => 97 (a)
ò -> 242 -> 11110010 xor 10000000 => 114 (r)
é -> 233 -> 11101001 xor 10000000 => 105 (i)
ð -> 240 -> 11110000 xor 10000000 => 112 (p)
é -> 233 -> 11101001 xor 10000000 => 105 (i)
î -> 238 -> 11101110 xor 10000000 => 110 (n)
ô -> 244 -> 11110100 xor 10000000 => 116 (t)
å -> 229 -> 11100101 xor 10000000 => 101 (e)
ò -> 242 -> 11110010 xor 10000000 => 114 (r)

Rangkai kembali menjadi pesan asli.
haripinter

Written by ElangSakti
Perhitungan Algoritma Kriptografi Elliptic Curve (ECC)
Bahasan: Berikut proses perhitungan algoritma elliptic curve atau disebut juga dengan algoritma kurva eliptik. Persamaan yang dipakai y^2 = x^3+x...
Published at Kamis, 11 Juli 2013, Updated at Kamis, 11 Juli 2013
Reviewed by dr. on
Rating: 4.7

2 komentar :