Pembangkitan Kunci Algoritma NTRUEncrypt

Parameter set merupakan nama parameternya. Escrowed Encryption Standard merupakan singkatan dari EES. Angka setelah ees pada ees401ep1, ees541ep1 dan yang lainnya menunjukkan derajat polynomial-nya atau nilai N. Ep2 digunakan jika terdapat dua parameter dengan N yang sama tetapi dengan tingkat keamanan yang lebih tinggi. Kolom security level merupakan tingkat keamanan kunci dalam satuan bit .

2.4.1. Pembangkitan Kunci

Algoritma NTRUEncrypt merupakan algorima kriptografi kunci publik atu algoritma asimetri, maka dibutuhkan dua kunci, yaitu kunci publik dan kunci privat. Pembangkitan kunci NTRUEncrypt antara lain: 1. Tentukan parameter N, p, q dan df. Tabel 1 dapat digunakan untuk menentukan parameter yang digunakan berdasarkan level keamanan yang bersesuaian. 2. Bangkitkan dua polinom kecil secara acak, yaitu f dan g dari ring ℤ p ℤ[x]x N -1. Isi dari polinom f dan g bersifat rahasia karena jika salah satunya diketahui oleh pihak lain, maka orang dapat mendekripsikan pesan. Metode yang dapat digunakan untuk membangkitkan polynomial acak f adalah dengan mendistribusikan secara acak nilai 1 sebanyak df, nilai -1 sebanyak df-1, selebihnya nilai 0 ke dalam koefisien polynomial. Polinomial g dapat dibangkitkan dengan cara yang sama menggunakan parameter dg yang dihasilkan dari nilai N3. Polynomial g akan memiliki koefisien bernilai -1 dan 1 sebanyak dg, dan sisanya adalah 0. 3. Hitung invers dari f modulus p fp dan invers diri f modulus q fq, ff p = 1 modulus p dan ff q = 1modulus q. Tidak semua polynomial mempunyai invers. Jika ternyata nilai invers tidak ditemukan, maka harus dicari lagi nilai f yang lain. 4. hitung kunci publik polinom H dengan rumus H = p × f q × g mod q dan kunci privatnya adalah f. Contoh: Langkah-langkah menentukan kunci privat dan kunci publik pada NTRUEncrypt 1. Menentukan nilai N, p, q, df yaitu N=7, p=3, q=32, df =2. 2. Bangkitkan polinomial acak f pada ring ℤ 3 ℤ[x]x N -1 yang mempunyai nilai df=4. f = x - x 2 + x 3 3. Bangkitkan polynomial acak g pada ring ℤ 3 ℤ[x]x N -1 yang mempunyai nilai df=2. g = -1 + x 2 - x 3 + x 4 4. Invers polynomial f modulo p fp dan f modulo q fq adalah: Tabel 2.2 Nilai Invers f Modulo p fp 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 + 2x + 2 x + 2 1 2x 4 + 2x 3 + x + 1 2 x 3 - x 2 + x x + 2 x 2 + 1 1 1 2x 4 + 2x 3 + x + 1 x 6 + x 5 + x 4 + 2x 2 + 2x 3 x + 2 1 x + 2 2x 4 + 2x 3 + x + 1 x 6 + x 5 + x 4 + 2x 2 + 2x x 7 - 1 4 1 - - x 6 + x 5 + x 4 + 2x 2 + 2x x 7 - 1 - Tabel 2.2 merupakan tabel untuk mencari nilai invers f modulo p fp, dimana Q = A : B dan R = A mod B, sedangkan nilai t = t 1 - Q x t 2 . Nilai fp merupakan nilai t 1 pada proses terakhir. Sedangkan, untuk mencari nilai invers f modulo q fq, prosesnya sama dengan proses mencari fp. Nilai invers fp terdapat pada tabel 2.3 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