Sistematika Penelitian Polynomial Ring

1.7. Sistematika Penelitian

Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, sebagai berikut: BAB 1: PENDAHULUAN Bab ini menguraikan Latar Belakang, Rumusan Masalah, Tujuan, Batasan Masalah dan Sistematika Penulisan Skripsi. BAB 2: TINJAUAN PUSTAKA Bab ini berisi rangkuman informasi yang dihimpun dari pustaka yang relevan dengan topik yang menjadi objek kajian, untuk memperluas basis informasi dalam melakukan kajian danatau akan digunakan sebagai basis argumentasi di dalam mengemukakan pandangan. BAB 3: ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi tentang analisis dan perancangan sistem dengan menggunakan flowchart atau diagram alir serta perancangan interface atau antarmuka sistem untuk menghasilkan suatu rancang bangun yang pada tahap selanjutnya diimplementasikan dengan bahasa pemrograman. BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM Menguraikan analisis dan hasil yang diperoleh di akhir pelaksanaan Skripsi dan pokok-pokok kesimpulan yang dapat dikemukakan sehubungan dengan pencapaian hasil kajian algoritma NTRUEncrypt dan steganografi End of File. BAB 5: KESIMPULAN DAN SARAN Bab ini akan memuat kesimpulan secara umum dari uraian pada bab-bab sebelumnya, serta saran untuk pengembangan lebih lanjut dari penelitian ini. BAB II TINJAUAN PUSTAKA

2.1. Kriptografi

Kriptografi adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen kita aman, tidak bisa dibaca oleh pihak yang tidak berhak. Kriptografi mempunyai sejarah yang sangat panjang. Sejak jaman Romawi, Yulius Caesar telah menggunakan teknik kriptografi yang sekarang dianggap kuno dan sangat mudah dibobol untuk keperluan militernya. Pada perang dunia kedua, Jerman dan Jepang menggunakan kriptografi untuk keperluan komunikasi militernya Kurniawan, 2004. Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti rahasia dan graphia berarti tulisan. Kriptografi adalah ilmu untuk menjaga keamaan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain Ariyus, 2006. Sistem kriptografi terdiri dari lima bagian Sadikin, 2012, yaitu: 1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. 2. Secret Key: yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. 3. Ciphertext: merupakan keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak. 4. Algoritma enkripsi: memiliki dua masukan, yaitu teks asli dan kunci rahasia. Algoritma enkripsi melakukan trasformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma dekripsi: memiliki dua masukan, yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli. Berdasarkan kunci yang dipakai pada proses enkripsi dan dekripsi, kriptografi dibagi ke dalam dua bagian, yaitu kriptografi simetri, kriptografi asimetri.

2.1.1. Kriptografi Simetri

Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci yang sama untuk kegiatan enkripsi dan dekripsi. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang lalu. Bila mengirim pesan dengan menggunakan algoritma ini, sipenerima pesan harus diberitahu kunci pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan dekripsi. Algoritma yang memakai kunci simetri di antaranya, Data Encryption Standard DES, International Data Encryption Algorithm IDEA, Advanced Encryption Standard AES dan One Time Pad OTP Ariyus, 2008. Enkripsi dan dekripsi dengan algoritma simetri dapat dituliskan menjadi: E K M = C…………….1 D K C = M……………2 Berdasarkan rumus 1, M adalah plaintext, C adalah Ciphertext, Ek adalah algoritma enkripsi dan pada rumus 2 Dk adalah algoritma dekripsi. Proses algoritma simetri dapat dilihat pada gambar 2.1. Gambar 2.1 Skema Kriptografi Simetri Algoritma simetrik dibagi menjadi 2 kategori, yaitu block algorithms dan stream algorithms. Block algorithms, data dienkripsi dalam blok-blok data. Block cipher akan mengenkripsi blok data satu-persatu sampai blok plaintext terakhir. Sedangkan stream algorithms, data dienkripsi dalam bit-bit data Scheiner, 1996.

2.1.2. Kriptografi Asimetri

Algoritma asimetri sering juga dengan algoritma kunci publik, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian, yaitu: 1. Kunci umum public key: kunci yang boleh semua orang tahu dipublikasikan. 2. Kunci rahasia private key: kunci yang dirahasiakan. Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci publik orang dapat mengenkripsi pesan tetapi tidak bisa mendekripsinya. Hanya orang yang memiliki kunci rahasia yang dapat mendekripsi pesan tersebut. Algoritma asimetri bisa mengirimkan pesan dengan lebih aman daripada algoritma simetri. Contoh, Bob mengirim pesan ke Alice menggunakan algoritma asimetri. Hal yang harus dilakukan adalah: 1. Bob memberitahukan kunci publiknya ke Alice. 2. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob 3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya. 4. Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice Plaintext Plaintext Enkripsi Dekripsi Kunci Ciphertext Algoritma yang memakai kunci publik di antaranya, Diffie-Hellman DH, RSA dan NTRUEncrypt. Enkripsi menggunakan algoritma asimetri dapat dituliskan menjadi: E K M = C Meskipun kunci publik dan kunci rahasia berbeda, dekripsi dengan menggunakan kunci rahasia Scheiner, 1996, yaitu D K C = M Gambar 2.2 merupakan gambaran mengenai proses enkripsi dan dekripsi menggunakan algoritma asimetri. Gambar 2.2 Skema Kriptografi Asimetri

2.2. Landasan Matematika Kriptografi

Matematika merupakan bagian penting dalam konsep kriptografi, sehingga memerlukan pemahaman beberapa ilmu matematika yang sering digunakan dalam kriptografi. Kriptografi dengan kunci publik berbasis pada persoalan dari teori bilangan yang merupakan bagian dari matematika.

2.2.1. Bilangan Prima

Sebuah bilangan integer a1 disebut bilangan prima jika dan hanya jika bilangan tersebut habis dibagi satu dan bilangan itu sendiri. Jumlah bilangan prima telah dibuktikan Euclid 300SM adalah tak terhingga, namun semakin besar bilangan integer semakin jarang bilangan prima. Sebagai contoh, 7 adalah bilangan prima karena hanya habis dibagi oleh 1 dan 7 Sadikin, 2012. Plaintext Plaintext Enkripsi Dekripsi Kunci Publik Ciphertext Kunci Privat

2.2.2 Faktor Persekutuan Terbesar FPB

Dua buah bilangan bulat dapat memiliki faktor pembagi yang sama. Faktor pembagi bersama yang terpenting adalah faktor persekutuan terbesar greatest common divisor- gcd atau FPB Munir, 2007. Dua buah bilangan a dan b merupakan bilangan bulat tidak nol. FPB dari a dan b adalah bilangan bulat terbesar adalah c sehingga c|a dan c|b, maka FPB a dan b dapat dinyatakan FPBa,b=c. Misalkan 36 mempunyai pembagi {1, 2, 3, 4, 6, 9, 12, 18} dan 24 mempunyai pembagi {1, 2, 3, 4, 6, 8, 12}. Faktor pembagi 36 dan 24 {1, 2, 3, 4, 6, 12} yang terbesar adalah 12, sehingga FPB36, 24 = 12. Untuk menemukan FPB dari dua buah bilangan maka digunakan satu algoritma, yaitu algoritma Euclidean. Algoritma Euclidean ditemukan oleh Euclid, seorang matematikawan Yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, Element. Euclid membuat algoritma yang dapat menemukan gcd dua buah bilangan integer a dan b dengan secara rekursif. Terdapat dua kasus, pertama kasus dasar, yaitu ketika b = 0 gcda,0 = a dan kasus umum ketika b ≠ 0 gcda,b = gcdb,a mod b Kasus dasar menyatakan bila b = 0 maka didefenisikan nilai gcd adalah a. sedangkan kasus umum menyatakan untuk mencari a,b dapat direduksi menjadi gcdb, a mod b. jadi kasus umum dapat dikenakan berkali-kali sampai akhirnya akan bertemu dengan kasus dasar untuk menemukan gcda,b Sadikin, 2012. Contoh : Carilah FPB dari 88 dan 36 menggunakan algoritma Euclidean Jawab: Aplikasi kasus umum gcd96,42 = gcd42,96 mod 42 = gcd42,12 gcd42,12 = gcd12,42 mod 12 = gcd12,6 gcd12,6 = gcd6,12 mod 6 = gcd6,0 dan aplikasi kasus dasar adalah gcd6,0 = 6 Penjelasan gcd 6,0 = 6 6 mempunyai pembagi {0,1,2,3,6}, sedangkan 0 mempunyai pembagi untuk semua bilangan integer, faktor pembagi 6 dan 0 terbesar adalah 6. Sehingga dapat dibuktikan bahwa gcd6,0 = 6 karena itu, gcd96,42 = 6.

2.2.3 Aritmetika Modulo

Aritmetika modulo merupakan aspek penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator mod memberikan sisa pembagian. Misalkan a adalah bilangan bulat dan m adalah adalah bilangan bulat lebih besar dari nol. Operasi a mod m dibaca “a modulo m ” memberikan sisa jika a dibagi dengan m. Notasi: a mod m = r sedemikian sehingga a = mq + r , dengan 0 ≤ r m. Bilangan m disebut modulos atau modulo, dan hasil aritmetika modulo m terletak dalam himpunan {0,1,2,…,m-1}Sadikin, 2012. Contoh : Beberapa hasil operasi dengan operator modulo: i. 43 mod 10 = 3, karena 43 = 10.3 + 3 ii. 21 mod 8 = 5, karena 21 = 8.2 + 5 iii. 6 mod 8 = 6, karena 6 = 8.0 + 6 iv. 0 mod 14 = 0, karena 0 = 0.14 + 0 v. – 43 mod 6 = 1 karena – 41 = 6. – 7 +1

2.3. Polynomial Ring

Bilangan riil adalah bilangan-bilangan yang merupakan gabungan bilangan rasional dan irasional. Bilangan riil disimbolkan dengan R. Sebuah ring A adalah suatu himpunan R yang mempunyai dua operasi yaitu penjumlahan dan perkalian, yang memenuhi kondisi berikut: 1. R dengan operator penjumlahan + - 0 + R = R + 0 = R identitas penjumlahan - ∀a,b ∈ R : a + b = b + a komutatif - ∀a,b,c ∈ R : a + b + c = a + b + c asosiatif - ∀a ∈ R : a -1 ∈ R : a + a -1 = a -1 + a = 0 invers 2. Operator perkalian x - ∀a,b ∈ R : a × b = b × a komutatif - ∀a,b,c ∈ R : a × b × c = a × b × c asosiatif - 1 x R = R x 1 = R identitas perkalian 3. Gabungan perkalian dan penjumlahan - ∀a,b,c ∈ R : a x b + c = a x b + a x c distributif Struktur aljabar field merupakan pengkhususan terhadap struktur aljabar ring. Kondisi operator untuk field adalah kondisi operator untuk ring dengan tambahan operator perkalian x memiliki invers untuk semua simbol yang bukan identitas penjumlahan. Setiap ring di mana setiap elemen non-zero mempunyai invers perkalian disebut field Sadikin, 2012. Polynomial berderajat n mempunyai bentuk umum: fx = a n x n + a n-1 x n-1 + …+a 2 x 2 + a 1 x 1 + a dimana a merupakan bilangan real. Meskipun rumus umum terlihat rumit, untuk lebih sederhana dapat dilihat pada contoh: fx = 6x 4 + 7x 3 + x 2 + 5 Jika R adalah suatu ring, maka R[x] adalah polynomial ring dengan variable x. Setiap elemen dari R[x] adalah polynomial dengan variabel x dan koefisien dari ring R . Sebaliknya, setiap polynomial dengan variabel x dan koefisien dari ring R merupakan elemen dari R[x] Kromodimoejo, 2010. Sebagai contoh, dengan ring untuk koefisien berupa field K = Z 3 Z, x 5 + 2x 3 + x 2 + 2 merupakan polynomial elemen K[x] dengan degree pangkat terbesar 5. Suatu polynomial p dapat ditulis: p = ∑ =0 � dimana n adalah degree dari p dan a i adalah koefisien untuk suku dengan pangkat i jadi setiap a i adalah elemen dari ring R, dan a n ≠ 0. Sebetulnya a i berlaku untuk setiap i ∊ Z tetapi a i = 0 untuk i n dan i 0. Untuk contoh x 5 + 2x 3 + x 2 + 2, a = 2, a 1 = 0, a2 = 1, a 3 = 2, a 4 = 2 dan a 5 = 1. Aritmatika dalam Polynomial ring R[x] adalah sebagai berikut: 1. Penjumlahan dilakukan dengan menjumlahkan semua suku dari kedua polynomial suku dengan pangkat yang sama dijadikan satu dengan menjumlahkan koefisien. Sebagai contoh, dengan R = Z 3 Z , jika p 1 = x 5 +2x 3 +x 2 +2 dan p 2 = x 4 +2x 3 +x 2 , maka p 1 +p 2 = x 5 +x 4 +x 3 +2x 2 +2. Penjumlahan koefisien dilakukan dengan aritmetika R, dalam contoh menggunakan aritmatika modulo 3. 2. Perkalian dilakukan dengan mengalikan setiap suku dari polynomial pertama dengan setiap suku dari polynomial kedua dan menjumlahkan semua hasil perkalian. Sebagai contoh, dengan R = Z 3 Z , jika p 1 = x 2 +2x dan p 2 = 2x+1 maka p 1 .p 2 = x 2 +2x 2x+1= 2x 3 +2x 2 +2 . Perkalian koefisien dilakukan dengan aritmetika R, dalam contoh menggunakan aritmatika modulo 3. Menggunakan notasi penjumlahan p 1 = ∑ =0 � dan p 2 = ∑ =0 � maka aritmetika penjumlahan pada polynomial ring ditulis menjadi: p 1 + p 2 = ∑ =0 � + ∑ =0 � = ∑ ax , =0 + � Sedangkan, untuk aritmetika perkalian ditulis menjadi: p 1 .p 2 = ∑ =0 � . ∑ =0 � = ∑ =0 � . ∑ =0 � = ∑ =0 ∑ =0 � + = ∑ + =0 ∑ i , =0 − �

2.4. Algoritma NTRUEncrypt