Implementasi Modifikasi Sistem Kriptografi RSA dan Elliptic Curve Digital Signature Algorithm (ECDSA)

5

BAB II
TINJAUAN PUSTAKA

Bab II akan membahas teori-teori yang berhubungan dengan kriptografi, algoritma
RSA dan Elliptic Curve Digital Signature Algorithm (ECDSA).

2.1.

Kriptografi

Kata kriptografi berasal dari bahasa Yunani yaitu kryptos yang berarti tersembunyi
dan graphein yang berarti menulis. (Mollin, 2007). Kriptografi adalah ilmu mengenai
teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi
sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi
(Kromodimoeljo, 2010). Sistem kriptografi (cryptosystem) adalah istilah umum yang
mengacu pada kumpulan operasi dasar yang digunakan pada kriptografi untuk
memperoleh keamanan informasi. (Menezes et al, 1996).
2.1.1. Terminologi
Beberapa istilah dasar yang terdapat dalam kriptografi :

1. Pengirim dan Penerima (Sender and Receiver )
Pengirim dalam kriptografi adalah orang yang akan mengamankan pesan yang
akan dikirimnya.Sedangkan penerima adalah pihak yang akan membaca pesan
yang telah diterimanya (Schneier, 1996).

2. Pesan dan Enkripsi (Message and Encryption)
Pesan yang belum diamankan disebut plaintext (P) sedangkan pesan yang sudah
diamankan disebut ciphertext (C). Proses untuk mengamankan pesan adalah
enkripsi (encryption). Sedangkan proses untuk mengembalikan pesan yang telah
dienkripsi disebut dekripsi (decryption) (Schneier, 1996).

Universitas Sumatera Utara

6

3. Kunci (Key)
Kunci (K) dalam kriptografi adalah parameter yang digunakan pada algoritma
untuk menyembunyikan dan membaca sebuah pesan. Terdapat dua jenis kunci
yaitu kunci privat (Kpriv) dan kunci publik (Kpub). Kunci privat adalah kunci yang
digunakan untuk mendekripsi sebuah pesan dan hanya boleh diketahui oleh pihak

tertentu saja sedangkan kunci publik adalah kunci yang digunakan untuk
mengenkripsi sebuah pesan dan boleh diketahui oleh semua pihak (Schneier,
1996). Gambaran umum dari sebuah sistem kriptografi dapat dilihat pada gambar
2.1.
K

K
P

Pengirim

Enkripsi

P

C

Dekripsi

Penerima


Gambar 2.1. Skema sebuah sistem kriptografi (Schneier, 1996)

4. Tanda Tangan Digital (Digital Signature)
Tanda tangan digital adalah data digital yang dapat menyatakan kepemilikan dari
sebuah pesan (Batten, 2013). Skema tanda tangan digital terdiri dari proses
pembangkitan tanda tangan digital dan proses verifikasi tanda tangan digital.
Proses pembangkitan memerlukan plaintext (P) dan kunci publik (Kpub) pengirim
(Alice) dengan menggunakan algoritma pembentuk tanda tangan sehingga
menghasilkan tanda tangan digital dari plaintext (Psig), sedangkan pada proses
verifikasi tanda tangan digital memerlukan plaintext (P), tanda tangan digital dari
plaintext (Psig) serta kunci privat (Kpriv) dari penerima (Bob) untuk menentukan

apakah plaintext berasal dari pengirim (Alice) (Mollin, 2007). Beberapa algoritma
tanda tangan digital adalah Digital Signature Algorithm, ECDSA, ElGamal, FiatShamir, RSA, Schnorr dan lain-lain. Secara umum skema tanda tangan digital
dapat dilihat pada gambar 2.2.
Kpub

P


Algoritma
Pembentukan Tanda
tangan

Kpriv
P
P sig
P

sig

Algoritma
Verifikasi Tanda
tangan

Benar
Salah

Gambar 2.2. Skema Tanda Tangan Digital.


Universitas Sumatera Utara

7

Contoh tanda tangan digital untuk pesan ”abc” dengan menggunakan algoritma
tandatangan digital ECDSA berdasarkan standar FIPS.186-2 untuk kurva elips
berukuran 256 bit (DSS, 2010)

dengan kunci privat dc51d386 6a15bacd

e33d96f9 92fca99d a7e6ef09 34e70975 59c27f16 14c88a7f adalah :
cb28e099 9b9c7715 fd0a80d8 e47a7707 9716cbbf 917dd72e 97566ea1
c066957c 86fa3bb4 e26cad5b f90b7f81 899256ce 7594bb1e a0c89212 748bff3b
3d5b0315.

5.

Fungsi Hash satu arah (One Way Hash Functions)
Fungsi hash satu-arah adalah fungsi hash dimana pesan yang sudah diubah
menjadi hash value, dari hash value yang diperoleh kita tidak dapat

mengubahnya kembali menjadi pesan semula. Masukkan pada fungsi hash satuarah adalah pesan dan hash value pada proses sebelumnya (Schneier, 1996).
Hasil dari sebuah fungsi hash disebut sebagai nilai hash (hash value) atau pesanringkas (message digest) dari fungsi H untuk masukan M.
Fungsi hash memiliki banyak istilah antara lain :
1. Fungsi kompresi/kontraksi (compression function).
2. Cetak jari (fingerprint).
3. Cryptography checksum.
4. Message Integrity Check (MIC ).
5. Manipulation Detection Code (MDC).
Penggunaan fungsi hash pada kriptografi adalah memverifikasi pesan yang
dikirim merupakan pesan yang asli atau tidak mengalami proses modifikasi
yang dilakukan oleh pihak yang tidak berhak.
-

...................................................................................................(1)

Hash value dari sebuah pesan akan berbeda dengan hash value dari pesan jika

memiliki string yang berbeda. Yang termasuk dalam algoritma fungsi hash satu
arah adalah MD5, MD6, SHA-1, SHA-224, SHA-256, SHA-384 dan lain-lain.


6. Algoritma Simetris
Algoritma simetris adalah algoritma yang dimana kunci privat dapat dihitung
berdasarkan kunci publik dan sebaliknya. Algoritma ini juga disebut algoritma
kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci. Untuk

Universitas Sumatera Utara

8

melakukan komunikasi pengirim dan penerima harus menyetujui kunci yang
akan digunakan. Yang termasuk algoritma kunci simetris adalah A5, AES
(Rijndael), Blowfish, CAST, DES, FEAL, IDEA, Kasumi, LOKI, Magenta, dan
lain-lain.

7.

Algoritma Asimetris
Algoritma asimetris adalah algoritma yang menggunakan kunci publik untuk
enkripsi berbeda dengan kunci untuk dekripsi. Algoritma disebut juga sebagai
algoritma kunci publik karena kunci enkripsi yang digunakan dapat diketahui

oleh publik. Beberapa contoh algoritma ini antara lain Diffie-Hellman, ElGamal,
Knapsack, LUC, McEliece, Pohlig-Hellman, RSA, Rabin dan lain-lain.

2.1.2. Tujuan Kriptografi
Penggunaan kriptografi ditujukan untuk mengamankan data yang meliputi aspek –
aspek yaitu (Paar et al, 2010) :
a.

Kerahasiaan (Confidentiality)
Informasi hanya bisa diakses oleh orang yang berhak.

b.

Keutuhan Data (Integrity)
Pesan tidak mengalami perubahan pada saat pengiriman hingga pesan diterima
oleh penerima.

c.

Pembuktian (Authentication)

Identitas dari pembuat pesan dapat dipastikan.

d.

Tidak dapat dibantah (Nonrepudiation)
Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal pesan
yang dikirim atau diterima.

2.2. Grup
Sebuah Grup adalah himpunan yang terdiri dari elemen dan sejumlah operasi yang
menoperasikan dua elemen untuk memperoleh elemen ketiga. Beberapa ciri yang
terdapat dalam grup antara lain (Judson & Austin, 2009):
1. Bersifat assosatif.
(a

b) c = a

(b c)

Universitas Sumatera Utara


9

2. Memiliki elemen identitas (e).
e a =a

e=a

3. Memiliki elemen inversi (a -1).
a

a -1 = a -1 a = e

Jika sebuah grup memiliki sifat komutatif a

b=b

a disebut abelian, sebaliknya

disebut non-abelian.


2.3. Teori Bilangan Bulat
Salah satu teori sangat penting dan sering digunakan pada bidang kriptografi dan
merupakan teori yang menjadi dasar bagi kriptografi kunci publik adalah teori
bilangan bulat ( ) (Munir, 2006). Berikut teori bilangan bulat yang digunakan pada
penelitian ini.

2.3.1. Kekongruenan
Sebuah bilangan bulat a disebut kongruen terhadap bilangan b dalam modulus N jika
N dapat habis membagi

. Kekongruenan a dan b dapat ditulis

(Batten, 2013).
Contoh : 5 kongruen dengan 14 dalam modulus 9 karena 9 habis membagi -9.

2.3.2. Faktor Persekutuan Terbesar (Greatest Common Divisior)
Faktor persekutuan terbesar pada bilangan bulat a dan bilangan bulat b adalah
bilangan bulat terbesar yang dapat membagi habis a dan b (Mollin, 2007).
Contoh :
Faktor dari 24 adalah 1, 2, 3, 4, 6, 8, 12, 24 dan Faktor dari 18 adalah 1, 2, 3, 6, 9,
18, sehingga faktor persekutuan terbesar dari 24 dan 18 adalah 6 atau gcd(

)

2.3.3. Relatif Prima
Bilangan bulat a dan b dikatakan relatif prima jika faktor persekutuan terbesar antara
a dan b adalah 1 atau dapat ditulis sebagai berikut

(

)

(Schneier, 1996).

Universitas Sumatera Utara

10

Contoh :
Faktor dari 24 adalah 1,2,3,4,6,8,12,24 dan Faktor dari 25 adalah 1,5 ,25. Faktor
Persekutuan Terbesar dari 24 dan 25 adalah 1 sehingga 24 relatif prima terhadap 25
atau gcd(24, 25) = 1.

2.3.4. Fungsi Phi Euler
Fungsi Phi Euler adalah banyak bilangan bulat yang lebih besar dari satu dan lebih
kecil dari n yang relatif prima terhadap n dengan

. Simbol dari fungsi Phi Euler

dari sebuah bilangan n adalah ( ). Untuk mencari nilai fungsi Phi Euler terdapat
beberapa cara aturan (Menezes et al, 1996) :
1. Jika p adalah bilangan prima.
( )
(

2. Jika
(

)

– .............................................................................................................. (2)
)

( )

3. Jika n =

( ) ................................................................................................... (3)
adalah faktorisasi prima dari n, maka

( )

................................................................... (4)

Contoh :
Faktorisasi prima dari 10 adalah 2, 5 sehingga
( )
2.3.5. Algoritma Extended Euclidean
Extended Euclidean adalah algoritma untuk mencari faktor persekutuan terbesar dari

dua bilangan bulat positif serta nilai pengali setiap bilangan. Langkah-langkah untuk
algoritma adalah sebagai berikut (Kromodimoeljo, 2010):
1.
2.
3.

.
.
.

4.

.

5.
6. Jika
7.

.
kembali ke langkah 2.
, berhenti.

Universitas Sumatera Utara

11

(

), u dan v dengan

.

Contoh :
(

), a = 10 , b = 4

Inisialisasi A = 10, B = 4, u = 1, v = 0, s = 0, t = 1
Perhitungan gcd(10, 4) secara ringkas dapat dilihat pada tabel 2.1
Tabel 2.1. Algoritma Extended Euclidean .
Iterasi

q

R

A

B

U

V

u

v

s

T

1

2

2

4

2

1

0

0

1

1

-2

2

2

0

2

0

0

1

1

-2

-2

5

(

Berdasarkan perhitungan pada tabel 2.1

) adalah 2

2.3.6. Inversi Modulo
Suatu bilangan bulat a mempunyai inversi modulo n jika dan hanya jika
Inversi modulo dari a mod n adalah

.

(Menezes et al, 1996). Untuk menentukan

inversi modulo dapat menggunakan algoritma Extended Euclidean (Kromodimoeljo,
2010). Bentuk inversi modulo dapat ditulis dalam persamaan linear yaitu
, dengan u sebagai nilai inversi modulo.
Contoh :
Inversi modulo dari

(

) dengan menggunakan algoritma Extended

Euclidean adalah :

Inisialisasi : a = 20, b = 17, A = 20, B = 17, u = 1, v = 0, s = 0, t = 1
Untuk menentukan inversi modulo dari 20 (mod 17) secara ringkas dapat dilihat
pada tabel 2.2.
Tabel 2.2. Inversi modulo dengan menggunakan
algoritma Extended Euclidean .
Iterasi

q

R

A

B

U

V

u

v

s

t

1

1

3

17

3

1

0

0

1

1

-1

2

5

2

3

2

0

1

1

-1

-5

6

3

1

1

2

1

1

-1

-5

6

6

-7

4

2

0

1

0

-5

6

6

-7

7

20

Universitas Sumatera Utara

12

Berdasarkan perhitungan pada tabel 2.2, 20 memiliki inversi modulo terhadap
17 karena

dan inversi modulo dari 20 mod 17 adalah 6.

2.3.7. Eksponensial Modulo
Operasi eksponensial pada modulo merupakan salah operasi yang paling sering
digunakan pada kriptografi. Bentuk umum dari eksponensial modulo adalah
dengan a merupakan basis, x merupakan ekponen dan n adalah modulus.
Penggunaan operasi eksponensial akan memerlukan waktu yang lama jika nilai
eksponen yang digunakan sangat besar, sehingga ada beberapa cara untuk
mempercepat proses perhitungan ekponensial dan salah satu metode yang dapat
digunakan adalah metode Binary Square and Multiply (Schneier, 1996).
Metode Binary Square and Multiply antara lain :
1. Mengubah eksponen menjadi bit.
2. Insialisasi s = 1, t = basis.
3. Ambil satu bit dari kanan, jika bernilai 1 maka dihitung s = s t mod n.
4. Dihitung t = t t mod n.
5. Lakukan langkah ke 2 pada semua bit.
6. Hasil dari metode ini adalah s.
Contoh :
Eksponen = 5, basis = 14 dan modulus = 31
5=

, Inisialisasi s = 1, t = 14, Secara ringkas perhitungan dapat dilihat

pada tabel 2.3.
Tabel 2.3. Perhitungan modulus eksponensial dengan menggunakan
metode Binary Square and Multiply.
i

Digit

s

t

1

1

14

10

2

0

14

7

3

1

5

18

Berdasarkan perhitungan pada tabel 2.3.

.

Universitas Sumatera Utara

13

2.3.8. Pengujian Bilangan Prima Miller-Rabin
Algoritma Miller-Rabin adalah algoritma pengujian bilangan prima probabilistik
untuk menentukan sebuah bilangan prima atau komposit (Smart, 2004). Bilangan yang
akan diuji adalah n. Maka ubah

– dalam bentuk

dengan t bilangan bulat lebih

besar daripada 1 dan u bilangan bulat ganjil. Selanjutnya dilakukan pengujian
berdasarkan pseudocode (Cormen et al, 2009).
Miller-Rabin (n, s)
for j = 1 to s
a = Random(1, n-1)

if Witness (a , n)
return composite
return prime
Witness (a , n )

= Modular-Exponentiation(a , u, n)
for i = 1 to t

if

and

and

return true
if
return true
return false

Contoh :
n = 81

,t=4u=5
Pengujian menggunakan a = 2. Secara ringkas dapat dilihat pada tabel 2.4.
Tabel 2.4. Perhitungan Algoritma Miller-Rabin untuk membuktikan
keprimaan 81 dengan angka penguji 2.
i

1

52

32

tidak

tidak

tidak

2

31

52

tidak

tidak

tidak

3

70

31

tidak

tidak

tidak

Universitas Sumatera Utara

14

Berdasarkan perhitungan tabel 2.4 serta perhitungan pada i = t = 4 yaitu xt = 702
mod 81 = 40 dan xt ≠ maka 81 merupakan bilangan komposit
Pengujian menggunakan a = 3. Secara ringkas dapat dilihat pada tabel 2.5.

Tabel 2.5. Perhitungan Algoritma Miller-Rabin untuk membuktikan
keprimaan 81 dengan angka penguji 3.
i

1

0

0

tidak

tidak

tidak

2

0

0

tidak

tidak

tidak

3

0

0

tidak

tidak

tidak

Berdasarkan perhitungan pada tabel 2.5 serta perhitungan pada i = t = 4 yaitu xt =
02 mod 81 = 0 dan xt ≠ maka 81 merupakan bilangan komposit.
n = 89

, t = 3, u = 11
Pengujian menggunakan a = 2. Secara ringkas dapat dilihat pada tabel 2.6.
Tabel 2.6. Perhitungan Algoritma Miller-Rabin untuk membuktikan
keprimaan 89 dengan angka penguji 2.
i

1

1

1

ya

tidak

tidak

2

1

1

ya

tidak

tidak

Berdasarkan perhitungan pada tabel 2.6 serta perhitungan pada i = t = 3 yaitu xt =
12 mod 81 = 1 dan xt = 1 maka 89 merupakan bilangan prima.
Pengujian menggunakan a = 3. Secara ringkas dapat dilihat pada tabel 2.7.
Tabel 2.7. Perhitungan Algoritma Miller-Rabin untuk membuktikan
keprimaan 89 dengan angka penguji 3.
i

1

34

37

tidak

tidak

tidak

2

88

34

tidak

tidak

tidak

Berdasarkan perhitungan pada tabel 2.7 serta perhitungan pada i = t = 3 yaitu xt
= 882 mod 89 = 1 dan xt = 1 maka 89 merupakan bilangan prima

Universitas Sumatera Utara

15

Fungsi Random() merupakan fungsi pembangkit bilangan acak dengan
menggunakan algoritma SHA1 (Secure Hash Algorithm 1).

2.4. Algoritma SHA-1
Algoritma SHA-1 merupakan salah satu jenis algoritma dengan fungsi hash satu –
arah. SHA-1 dikembangkan oleh NSA pada tahun 1995 dan distandarisasi oleh NIST.
SHA-1 merupakan algoritma hash searah dengan panjang hash-value 160-bit.
Maksimal pesan yang dapat diproses adalah

bit. Proses pada algoritma ini antara

lain (Mollin, 2007):
1. Pesan diubah menjadi bitstream.
2. Hitung g = Panjang bitstream mod 512 jika.
g < 448 bit tambahkan sebuah bit 1 dan

bit 0 pada data.

g >= 448 bit tambahkan sebuah bit 1 dan
3.

bit 0 pada data.

Ubah panjang pesan dalam bentuk 64bit kemudian tambahkan pada akhir data
yang akan di hash.

4.

Data yang akan dihash dipecah-pecah menjadi bagian – bagian dengan panjang
sebesar 512 bit.

5.

Inisialiasasi variabel, nilai variabel

.

6.

Setiap blok berukuran 512 bit dipecah menjadi 16 bagian masing-masing
berukuran 32-bit (bitword). Dari 16 bitword tersebut akan dihasilkan bitword ke
17 sampai bitword ke 80 dengan menggunakan algoritma sesuai dengan gambar
2.4 :
for i 16 to 79

data
7. Initialisasi varaibel
.
8. Untuk setiap bitword dilakukan perubahan variabel A, B, C , D, E sesuai dengan
gambar 2.3

 Jika bitword ke-0 sampai bitword ke-19 :
(

)

(

( )

)

.

Hapus bit paling kiri sampai t berukuran 32 bit.
E = D, D = C, C =

(B), B = A, A = t.

Universitas Sumatera Utara

16
 Jika bitword ke-20 sampai bitword ke-39 :
(

)

.

Hapus bit paling kiri sampai t berukuran 32 bit.
E = D, D = C, C =

(B), B = A, A = t.

 Jika bitword ke-40 sampai bitword ke-59 :
(A)

(

)

(

)

(

)

.

Hapus bit paling kiri sampai t berukuran 32 bit.
E = D, D = C, C =

(B), B = A, A = t.

 Jika bitword ke-60 sampai bitword ke-79 :
(

)

.

Hapus bit paling kiri sampai t berukuran 32 bit.
E = D, D = C, C =

(B), B = A, A = t.

9. Ubah variabel

dengan rumus

. Hapus bit paling kiri sampai

berukuran 32 bit.

. Hapus bit paling kiri sampai

berukuran 32 bit.

. Hapus bit paling kiri sampai

berukuran 32 bit.

. Hapus bit paling kiri sampai

berukuran 32 bit.

. Hapus bit paling kiri sampai

berukuran 32 bit.

10. Lakukan pada blok 512-bit lainnya.
11. Hasil dari proses diatas yaitu

kemudian di gabung.
.

Gambar 2.3. Proses SHA-1 untuk setiap bitword

Universitas Sumatera Utara

17

Gambar 2.4. Proses SHA-1 untuk setiap 512 bit blok
2.5. Algoritma SHA-2
Algoritma SHA-2 merupakan salah satu jenis algoritma dengan fungsi hash satu –
arah. Algoritma yang termasuk dalam kelas SHA-2 adalah SHA-224 (224 bit), SHA256 (256 bit), SHA-384 (384 bit), SHA-512 (512 bit) dan lain-lain. Pada tugas akhir
ini panjang hash value yang digunakan. Fungsi logika yang digunakan pada SHA-256
antara lain :
( A D )
( A D )

(

( ) A D ) ...................................................... (5)
( A D )

( A D ) ................................... (6)

( )

( )

( )

( )....................................................... (7)

( )

( )

( )

( )....................................................... (8)

( )

( )

( )

( )
Dengan

( )
dan

( )

S
S

( )......................................................... (9)
( ) ................................................... (10)

merupakan operasi bitwise untuk rotate right dan shift right

sebanyak x.

Universitas Sumatera Utara

18

Setiap operasi penjumlahan pada SHA-256 dilakukan dalam modulus
Maksimal panjang pesan yang dapat diproses adalah

.

bit. Proses pada algoritma ini

antara lain (SHS, 2015):
1. Pesan diubah menjadi bitstream.
2. Hitung tambahkan sebuah bit 1 dan beberapa bit 0 pada data hingga ukuran pesan
448 (mod 512).
3. Ubah panjang pesan dalam bentuk 64 bit kemudian disisipkan pada akhir data
yang akan di hash.
4. Data yang akan dihash dipecah – pecah menjadi berberapa bagian kecil dengan
panjang sebesar 512 bit.
5. Inisialiasasi variabel, nilai variabel

.

6. Setiap blok berukuran 512 bit dipecah menjadi 16 bagian masing-masing
berukuran 32-bit (bitword). Dari 16 bitword tersebut akan dihasilkan bitword ke
16 sampai bitword ke 63 dengan menggunakan algoritma sbb :
for t 16 to 63

(

)

(

7. Initialisasi variabel

)
.
.

8. Untuk setiap bitword dilakukan pengubahan variabel A, B, C , D, E, F , G, H.
for i 0 to 63

data( ). Variabel
memiliki nilai sesuai dengan tabel 2.8.

H = G, G = F , F = E,

, D = C , C = B, B = A,

9. Ubah variabel

dengan rumus :

10. Lakukan pada blok 512-bit lainnya.
11. Hasil dari proses diatas yaitu

kemudian di gabung

sehingga menghasilkan hash value (h).
S

( )

S ( )

S

( )

S ( )

S

( )

S

( )

S

( )

.

Universitas Sumatera Utara

19

Tabel 2.8. Nilai konstanta dari variabel

428a2f98

71374491

b5c0fbcf

e9b5dba5

3956c25b

59f111f1

923f82a4

ab1c5ed5

d807aa98

12835b01

243185be

550c7dc3

72be5d74

80deb1fe

9bdc06a7

c19bf174

e49b69c1

efbe4786

0fc19dc6

240ca1cc

2de92c6f

4a7484aa

5cb0a9dc

76f988da

983e5152

a831c66d

b00327c8

bf597fc7

c6e00bf3

d5a79147

06ca6351

14292967

27b70a85

2e1b2138

4d2c6dfc

53380d13

650a7354

766a0abb

81c2c92e

92722c85

a2bfe8a1

a81a664b

c24b8b70

c76c51a3

d192e819

d6990624

f40e3585

106aa070

19a4c116

1e376c08

2748774c

34b0bcb5

391c0cb3

4ed8aa4a

5b9cca4f

682e6ff3

748f82ee

78a5636f

84c87814

8cc70208

90befffa

a4506ceb

bef9a3f7

c67178f2

Gambar 2.5. Proses SHA-2 pada setiap iterasi, dengan
untuk penjumlahan dengan modulus

merupakan simbol
.

2.6. Kurva Elips
Kurva elips adalah kurva yang memiliki persamaan Weierstrass yaitu :
.................................................................. (11)
Himpunan titik pada kurva elips bisa merupakan anggota dari sebuah daerah
berhingga, bilangan real, bilangan rasional, dan bilangan kompleks serta titik identitas
serta titik indentitas yaitu O yang disebut sebagai titik tak berhingga.

Universitas Sumatera Utara

20

2.6.1. Kriptografi Kurva Elips
Kriptografi kurva elips adalah kriptografi logaritma diskrit dengan menggunakan grup
titik kurva elips yang berada pada daerah berhingga. Dibandingkan dengan kriptografi
non kurva elips, kriptografi kurva elips memiliki tingkat keamanan yang sama dengan
ukuran kunci yang lebih kecil (Hankerson et al, 2004).
Penggunaan kurva ellips dalam kriptografi dapat dikombinasikan dengan algoritma
kriptografi non kurva elips. Beberapa algoritma tersebut antara lain :
1.

Skema enkripsi (ElGamal ECC).

2.

Tanda tangan digital (ECDSA – Elliptic Curves Digital Signature).

3.

Protokol pertukaran kunci (Diffie Hellman ECC).

Operasi yang digunakan dalam kriptografi kurva elips adalah operasi grup untuk
kurva elips

penjumlahan, dan disebut operasi perkalian pada grup

dengan ( ) (Hankerson et al, 2004).

tabel 2.9 memberikan hubungan antara

Tabel 2.9. Hubungan antara Grup
Grup

Elemen

Discrete
Logarithm
Problem

dengan kurva
Grup Kurva

Integer

p -1}

Aturan operasi Perkalian modulo p

Notasi

Titik (x,y) pada kurva E + O
Penjumlahan 2 titik

Elemen : g,h

Elemen : P,Q

Perkalian :

Perkalian : P + Q

Invers :

. Pada

-

Invers : -P

Pembagian :

Pembagian : P – Q

Pemangkatan :

Perkalian : aP

Diberikan

Diberikan
( ) dan
, cari a

dan
, cari a

Persamaan kurva elips yang paling sering digunakan dalam kriptografi kurva elips
adalah
......................................................................................... (12)
, p > 3 dan

(

).

Untuk menentukan titik yang terdapat dalam kurva elips dapat menggunakan
algoritma Euler Criterion (Galbraith, 2012).

Universitas Sumatera Utara

21

.....................................................................................................................................................

(13)

Jika hasilnya 1 maka titik terdapat dalam kurva elips sedangkan -1 maka titik
tidak terdapat dalam kurva elips.
Contoh :
Himpunan

pada kurva elips
. Nilai

dengan

, dengan

, sehingga

merupakan

persamaan kurva elips. Untuk menentukan titik yang merupakan anggota
dapat dilihat pada tabel 2.10.
Tabel 2.10. Perhitungan Euler Criterion pada setiap kemungkinan titik
x
0
1
2
3
4
5
6
7

Euler Criterion
0
1
-1
1
0
1
1
1

x
8
9
10
11
12
13
14
15

Euler Criterion
-1
1
-1
1
1
1
-1
-1

x
16
17
18
19
20
21
22

Euler Criterion
-1
1
1
1
-1
-1
-1

Pasangan koordinat titik x dan y dapat dilihat pada tabel 2.11 dan secara
geometris dapat dilihat pada gambar 2.6.

Tabel 2.11. Pasangan koordinat pada kurva elips
x
0
0
1
1
3
3
4
5
5

Y
1
22
7
16
10
13
0
4
19

x
6
6
7
7
9
9
11
11
12

y
4
19
11
12
7
16
3
20
4

x
12
13
13
17
17
18
18
19
19

y
19
7
16
3
20
3
20
5
18

Universitas Sumatera Utara

22

24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Gambar 2.6. Sebaran titik-titik pada kurva elips

18

19

20

untuk

2.6.2. Aturan Penjumlahan Dua Titik pada Kurva Elips
Aturan pada penjumlahan dua titik pada kurva elips

akan menghasilkan titik ke

tiga yang juga berada dalam kurva elips. Secara geometris aturan penjumlahan pada
kurva elips (Hankerson et al, 2004):
1.

untuk setiap

2.

Jika

3.

Jika

(

)

.
dan
( ).

maka
Maka

.
(

)

diperoleh dengan menarik garis L yang melewati titik P dan Q atau garis
singgung antara titik P dan Q. Kemiringan garis L adalah
(

) .................................................................................. (14)
(

)............................................................................. (15)

maka

Jika
(
Jika

di mana :



) ............................................................................................... (16)

maka
(

) ............................................................................................... (17)

Secara geometris, penjumlahan pada kurva elips dapat dilihat pada gambar 2.7
dan gambar 2.8.

Universitas Sumatera Utara

23

Gambar 2.7. Gambaran secara

Gambar 2.8. Gambaran secara

geometri penjumlahan dua titik

geometri penjumlahan dua titik

berbeda

sama

Contoh :
(

1. Dari persamaan
(

dan

) penjumlahan antara titik

(

)

) adalah:

)

(

(inversi modulo 17 terhadap 23 adalah 19)
(

)
(mod

(

Sehingga

)

)

Secara geometris dapat dilihat pada gambar 2.9.
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

(17,20)

(3,10)

(9,7)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Gambar 2.9. Gambaran geometris untuk (3,10) + (9,7) = (17,20)

Universitas Sumatera Utara

24

2. Dari persamaan sebelumnya penjumlahan P =(3,10) terhadap dirinya sendiri
yaitu

adalah :

(

( ))

(inversi modulo 20 terhadap 23 adalah 15)

(

)
(

)

Jadi 2 P = (7,12)
Hasil ini diperlihatkan secara geometris dalam gambar 2.10.
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

(7,12)

(3,10)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Gambar 2.10. Gambaran geometris untuk (3,10) + (3,10) = (7,12)

Aturan perkalian pada titik kurva elips dapat dijabarkan dengan menggunakan
aturan penjumlahan kurva elips.
Contoh :
, dengan

.

2.7. Sistem Kriptografi RSA (RSA Cryptosystem)
Sistem kriptografi RSA merupakan dibangun dengan menggunakan fungsi
eksponensial.

Seperti

kriptosistem

pada

umumnya,

RSA

memiliki

proses

pembangkitan kunci, enkripsi, dan dekripsi.

Universitas Sumatera Utara

25

2.7.1. Pembangkitan Kunci RSA
Langkah – langkah untuk membangkitkan kunci pada RSA adalah (Mollin, 2007):
1.

Pengguna memilih p dan q yang merupakan bilangan prima acak dan

.

2.

Hitung

3.

Hitung

4.

Pilih bilangan acak ganjil e dalam rentang

5.

Hitung

6.

Kunci publik pengguna adalah e dan n dan kunci privat pengguna adalah d.

. n disebut juga sebagai modulus RSA.
( – ) ( – ).
( ) dan

(

( ))

.

( ).

Algoritma pembangkit kunci pada RSA yang sudah dimodfikasi dirubah menjadi
(Malhotra, 2014):
1.

Pengguna memilih p, q, dan r yang merupakan bilangan prima yang besar dan
.

2.

Menghitung

3.

Menghitung

4.

Memilih

5.

Hitung

. n disebut juga sebagai modulus RSA.
( – )



(

).

bilangan acak ganjil dalam rentang

( )

(

( ))

.

.

Kunci publik adalah e dan n dan kunci privat adalah d.

2.7.2.

Enkripsi RSA

Proses enkripsi pada RSA yang dimodifikasi memiliki metode enkripsi yang sama
dengan metode enkripsi RSA biasa. Enkripsi dilakukan dengan menggunakan kunci
publik yang telah dibangkitkan sebelumnya. Tahap-tahap dalam algoritma enkripsi
RSA antara lain:
1.

Pengirim pesan mengubah pesan (P) menjadi bitstream.

2.

Pengirim pesan mendapatkan kunci publik dari penerima pesan (e dan n ).

3.

Menghitung ciphertext (C) dari pesan dengan persamaan berikut :
........................................................................................................... (18)

4.

Ciphertext dikirim.

Universitas Sumatera Utara

26

2.7.3.

Dekripsi RSA

Untuk menghasilkan kembali plain text dari ciphertext yang sudah dienkripsi,
digunakan fungsi eksponensial modular n dengan menggunakan kunci privat.
Algoritma dekripsi RSA yang telah dimodofikasi sama dengan algoritma dekripsi
RSA biasa yaitu :
1.

Penerima pesan mengubah pesan yang diterima (C) menjadi bitstream.

2.

Menghitung pesan asli (P) dengan menggunakan persamaan berikut :
.......................................................................................................... (19)

2.8. Algoritma Tanda Tangan Digital Kurva Elips Elliptic Curve Digital
Signature Algorithm (ECDSA)
Elliptic Curve Digital Signature Algorithm (ECDSA) merupakan tanda tangan digital

dengan menggunakan kriptografi kunci publik dan fungsi hash searah. Beberapa
proses yang terdapat pada algoritma ECDSA adalah pembangkitan kunci,
pembentukan tanda tangan dan proses verifikasi tanda tangan.

2.8.1. Pembangkitan Kunci ECDSA
Langkah – langkah dalam pembangkitan kunci pada ECDSA antara lain :
1.

Menentukan domain kurva elips yang digunakan yaitu D = (q, FR, S, a , b, P , n,
h), dengan q adalah ukuran bidang berhingga, jika bidang berhingga FR (field

representation) adalah indikator basis yang digunakan, S adalah konstanta yang
digunakan untuk memverifikasi bahwa a dan b dihasilkan melalui proses yang
acak, a dan b adalah dua parameter yang digunakan kurva elips, P adalah titik
pada kurva yang dijadikan sebagai titik acuan dalam operasi kurva elips yang
merupakan bilangan prima ganjil. n adalah orde dari kurva elips dan h adalah
kofaktor yang merupakan hasil pembagian jumlah titik yang terdapat dalam kurva
elips (
2.

) dengan n.

Pengguna memilih secara acak sebuah bilangan bulat d yang berada diantara 1
sampai dengan n

1, kemudian dilakukan perkalian skalar dengan titik P sesuai

dengan aturan penjumlahan kurva elips sehingga menghasilkan kunci publik yaitu
Q dan kunci privat yaitu bilangan acak yang digunakan yaitu d.

Universitas Sumatera Utara

27

2.8.2.

Pembentukan Tanda Tangan Digital ECDSA

Proses pembentukan tanda tangan digital antara lain (Hankerson et al, 2004):
1.

Dipilihlah sebuah bilangan bulat acak k yang berada diantara 1 sampai dengan
.

2.

Menghitung

.

3.

Mengambil koordinat x kemudian hitung

mod . Jika r = 0 kembali

kelangkah pertama.
4.

Menghitung e = H(m), H merupakan fungsi hash.

5.

Menghitung s =

6.

Tanda tangan digital untuk pesan adalah r dan s.

-

. Jika s = 0 kembali kelangkah 1.

2.8.3. Proses Verifikasi Tanda Tangan ECDSA
Untuk memverifikasi tanda tangan dari pesan (m) yang dikirim yaitu (r , s) (Hankerson
et al, 2004).

1.

Dicek apakah r dan s berada dalam interval 1 sampai n 1.

2.

Menghitung e = H(m).

3.

Menghitung

4.

Menghitung

-

-

dan

.
mod , dengan P adalah titik awal

kurva dan Q merupakan kunci publik pengirim pesan.
5.

Pesan valid jika hanya jika

.

Pada tugas akhir ini, standar ECDSA yang digunakan adalah FIPS.186-2 untuk
kurva elips berukuran 256 bit (DSS, 2010). Berikut parameter yang digunakan :
p= 1579208921035624876269744694940757353008614341529031419553363130887

097853951
n= 157920892103562487626974469494075735299969552241357603424222590

6108512044369
S = c49d360886e704936a6678e1139d26b7819f7e90
c = 7efba1662985be9403cb055c75d4f7e0ce8d84a9c5114abcaf3177680104fa0d
b = 5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b

= 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296
= 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5

Universitas Sumatera Utara

28

2.9.

Pretty Good Privacy (PGP)

PGP adalah program freeware yang berfungsi untuk mengamankan e-mail. PGP
dibuat oleh Philip Zimmerman (1991). PGP menggunakan konsep hybrid
cryptosystem yang mengabungkan kriptografi kunci publik (RSA, ElGamal) dan

kriptografi konvensional (IDEA, DES, Blowfish). PGP menggunakan kriptografi
konvensional untuk mengenkripsi data, kriptografi kunci publik untuk manajemen
kunci dan tangan tangan digital dan fungsi hash satu arah (MD5). Kunci publik acak
PGP menggunakan algoritma probabilistik untuk pengecekan bilangan prima dengan
menggunakan bilangan acak yang diperoleh dari penggunaan keyboard dan mouse
(Schneier, 1996).
Skema pengamanan (enkripsi) data dalam PGP adalah :
1.

PGP membangkitkan kunci acak (session key).

2.

Data

dienkripsi

dengan

menggunakan

algoritma

kunci

konvensional

menghasilkan ciphertext.
3.

Kemudian session key dienkripsi dengan menggunakan kunci publik penerima
pesan dengan menggunakan algoritma kunci publik.

4.

Session key yang sudah dienkripsi serta ciphertext dikirim.

Skema pembacaan (dekripsi) data dalam PGP adalah :
1.

Penerima mendekripsi session key yang terenkripsi dari pengirim dengan
menggunakan kunci privat penerima pada algoritma kunci publik.

2.

Kemudian penerima mendekripsi ciphertext dengan menggunakan session key
sehingga data dapat dibaca menjadi pesan.

2.10.

Penelitian yang Relevan

Beberapa penelitian yang berkaitan dengan penelitian akan dilakukan oleh penulis
antara lain :
1.

Penelitian yang dilakukan oleh Malhotra (2014) dengan judul A New Encryption
Scheme Based on Enhanced RSA and ElGamal menyimpulkan algoritma RSA

yang dimodifikasi memiliki waktu enkripsi dan throughput yang lebih baik
dibandingkan dengan algoritma RSA biasa.
2.

Penelitian yang dilakukan oleh Tripathi dan Agrawal (2014) dengan judul Critical
Analysis of RSA Public Key Cryptosystem menyebutkan penggunaan beberapa

Universitas Sumatera Utara

29

bilangan prima dalam RSA dapat meningkatkan kesulitan dalam memfaktoran
nilai n sehingga keamanan RSA menjadi lebih baik.
3.

Penelitian yang dilakukan oleh Putra (2013) yang berjudul ”Implementasi
Kriptografi Kurva Eliptik Dengan Algoritma Elgamal Dan Metode Pembangkitan
Bilangan Prima Rabin-Miller Untuk Pengamanan File

eks” men impulkan

bahwa penggunaan parameter yang kecil pada kurva elips dapat mempercepat
proses pembangkitan kunci, proses enkripsi dan proses dekripsi.

Universitas Sumatera Utara