Tabel 2.3 Nilai Invers f Modulo q fq k
A B
Q R
t
1
t
2
T
Init x
7
- 1 x
3
- x
2
+ x
- -
1 -
1 x
7
- 1 x
3
- x
2
+ x
x
4
+ x
3
+ 31x + 31
x + 31
1 31x
4
+ 31x
3
+ x + 1
2 x
3
+ 31x
2
+ x x + 31
x
2
+ 1 1
1 31x
4
+ 31x
3
+ x + 1
x
6
+ x
5
+ x
4
+ 31x
2
+ 31x 3
x + 31 1
x + 31 31x
4
+ 31x
3
+ x + 1
x
6
+ x
5
+ x
4
+ 31x
2
+ 31x
x
7
- 1
4 1
- -
x
6
+ x
5
+ x
4
+ 31x
2
+ 31x
x
7
- 1 -
Berdasarkan tabel 2.2 dan tabel 2.3, maka nilai fp = 2x + 2x
2
+ x
4
+ x
5
+ x
6
dan nilai fq = 31x + 31x
2
+ x
4
+ x
5
+ x
6
5. Kunci publik polinom H H = p × f
q
× g mod q H = 3 × 31x + 31x
2
+ x
4
+ x
5
+ x
6
× -1 + x
2
- x
3
+ x
4
mod 32 = 6x + 3x
2
+ 29x
4
+ 29x
5
+ 29x
6
Maka diperoleh kunci privat f = x - x
2
+ x
3
, dan kunci publik H = 6x + 3x
2
+ 29x
4
+ 29x
5
+ 29x
6
.
2.4.2. Enkripsi Pesan
Setelah melakukan pembangkitan kunci, langkah selanjutnya adalah mengenkripsi pesan. proses enkripsi antara lain:
1. m merupakan plaintext yang diubah dalam bentuk polynomial pada ring ℤ
p
ℤ[X]X
N
-1. Polinom m akan memiliki koefisien pada range -1, 0, 1.
2. Bangkitkan polinom kecil r secara acak pada ring ℤ
p
ℤ[X]X
N
-1. Polinom ini adalah blinding value yang berfungsi untuk menyamarkan pesan.
3. Enkripsi polynomial m dengan rumus berikut: e = r × H + m mod q
Polinom e adalah pesan terenkripsi yang akan dikirimkan.
Contoh: Langkah-
langkah mengenkripsi pesan string “d” dengan menggunakan kunci publik H = 6x + 3x
2
+ 29x
4
+ 29x
5
+ 29x
6
adalah sebagai berikut: 1. Pesan string
“d” diubah ke dalam bentuk polynomial m menjadi: m = - x + x
2
- x
3
- x
5
- x
6
Langkah-langkah mengubah string “d” menjadi polynomial:
Nilai ASCII string “d” adalah 100 100 : 3 = 33 sisa bagi 1
33 : 3 = 11 sisa bagi 0 11 : 3 = 3 sisa bagi 2
3 : 3 = 1 sisa bagi 0 Maka dihasilkan array dengan m = [1 0 2 0 1], karena N = 7 maka nilai m = [1 0
2 0 1 0 0] koefisien polynomial m harus diantara -1,0,1 maka nilai m dikurangi 1, maka nilai m = [0 -1 1 -1 0 -1 -1]
Maka polynomial m = - x + x
2
- x
3
- x
5
- x
6
2. Bangkitkan polinom r sebagai blinding value: r = 1 + x - x
2
3. e merupakan polinom hasil enkripsi: e = r × H + m mod q
e = 1 + x - x
2
× 6x + 3x
2
+ 29x
4
+ 29x
5
+ 29x
6
+ - x + x
2
– x
3
- x
5
- x
6
mod 32 = 8x + 10x
2
+ 28x
3
+ 26x
4
+ 25x
5
+ 28x
6
Maka dihasilkan polynomial baru hasil enkripsi adalah 8x + 10x
2
+ 28x
3
+ 26x
4
+ 25x
5
+ 28x
6
.
2.4.3. Dekripsi Pesan
Langkah-langkah pada proses dekripsi adalah sebagai berikut: 1. Hitung nilai polinom a dengan rumus berikut: a = f × e mod q, dimana
koefisien polinom a berada pada interval –q2 dan q2.
2. Hitung nilai polinom b dengan rumus berikut: b = a mod p, koefisien polinom b berada pada interval -1 dan 1.
3. Hitung nilai polinom c dengan rumus berikut: c = f
p
× b mod p, koefisien polinom b berada pada interval -1 dan 1.
Polinom c merupakan polinom hasil dekripsi pesan.
Contoh: Langkah-langkah mendekripsi pesan e = 8x + 10x
2
+ 28x
3
+ 26x
4
+ 25x
5
+ 28x
6
dengan nilai f = x - x
2
+ x
3
fp = 2x + 2x
2
+ x
4
+ x
5
+ x
6
fq = 31x + 31x
2
+ x
4
+ x
5
+ x
6
Proses dekripsi polinom e adalah sebagai berikut: 1. Polinom a = f × e mod q
a = f × e mod q a = x - x
2
+ x
3
× 8x + 10x
2
+ 28x
3
+ 26x
4
+ 25x
5
+ 28x
6
mod 32 = -3 - 3x + 4x
2
+ 2x
3
- 6x
4
+ 8x
5
- 5x
6
mod 32 2. Polinom b = a mod p
b = a mod p b = -3 - 3x + 4x
2
- 2x
3
- 6x
4
+ 8x
5
- 5x
6
mod 3 = x
2
- x
3
- x
5
+ x
6
mod 3 3. Polinom c = f
p
× b mod p c = f
p
× b mod p c = 2x + 2x
2
+ x
4
+ x
5
+ x
6
× -x
2
- x
3
- x
5
+ x
6
mod 3 c = - x + x
2
– x
3
- x
5
- x
6
Hasil dekripsi yaitu polinom c sama dengan polinom m= - x + x
2
- x
3
- x
5
- x
6
Polinom m= - x + x
2
- x
3
+ x
5
- x
6
, maka array m = [0 -1 1 -1 0 -1 -1], untuk mengubah kembali dalam bilangan ASCII maka m ditambahkan dengan 1, maka nilai
m = [1 0 2 0 1 0 0], m diubah kembali ke nilai ASCII 1 1 x 3 + 0 = 3
0 3 x 3 + 2 = 11 2 11 x 3 + 0 = 33
0 33 x 3 + 1 = 100 1 100
Maka dihasilkan nilai m = 100, 100 merupakan nilai ASCII dari string “d”.
2.5. Citra Digital