BAB II TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

Penerapan Metode End Of File Pada Steganografi Citra Gambar dengan Memanfaatkan Algoritma Affine Cipher sebagai Keamanan Pesan

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN TEORETIS

BAB 1 PENDAHULUAN Latar belakang

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL

BAB II LANDASAN TEORI

Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi(arjana, et al. 2012):

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN Latar Belakang

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB 2 TINJAUAN TEORETIS

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

STEGANOGRAFI DENGAN METODE PENGGANTIAN LEAST SIGNIFICANT BIT (LSB)

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB III ANALISIS DAN DESAIN SISTEM

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

ANALISIS METODE MASKING-FILTERING DALAM PENYISIPAN DATA TEKS

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

dan c C sehingga c=e K dan d K D sedemikian sehingga d K

BAB I PENDAHULUAN 1.1 Latar Belakang

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

BAB 2 LANDASAN TEORI

PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

1.1 Latar Belakang Sejak zaman dahulu, pentingnya kerahasiaan suatu informasi telah menjadi suatu perhatian tersendiri. Manusia berusaha mencari cara

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB II TINJAUAN PUSTAKA

ENKRIPSI CITRA BITMAP MELALUI SUBSTITUSI WARNA MENGGUNAKAN VIGENERE CIPHER

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI- DEKRIPSI CITRA DIGITAL BERWARNA

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

APLIKASI PENGAMANAN DATA TEKS PADA CITRA BITMAP DENGAN MENERAPKAN METODE LEAST SIGNIFICANT BIT (LSB)

LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB II LANDASAN TEORI

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI Interaksi Manusia dan Komputer. interaktif untuk digunakan oleh manusia. Golden Rules of Interaction Design, yaitu:

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

PENERAPAN STEGANOGRAFI PADA SEBUAH CITRA

BAB 1 PENDAHULUAN Latar Belakang Masalah

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI-DEKRIPSI CITRA DIGITAL BERWARNA

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB Kriptografi

BAB 2 TINJAUAN PUSTAKA

Transformasi Linier dalam Metode Enkripsi Hill- Cipher

Pertemuan 2 Representasi Citra

BAB III ANALISIS DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang

PENYEMBUNYIAN DATA SECARA AMAN DI DALAM CITRA BERWARNA DENGAN METODE LSB JAMAK BERBASIS CHAOS

BAB 2 LANDASAN TEORI

ANALISIS STEGANOGRAFI METODE TWO SIDED SIDE MATCH

KOMBINASI ALGORITMA PIXEL VALUE DIFFERENCING DENGAN ALGORITMA CAESAR CIPHER PADA PROSES STEGANOGRAFI

Grafik yang menampilkan informasi mengenai penyebaran nilai intensitas pixel-pixel pada sebuah citra digital.

2017 Ilmu Komputer Unila Publishing Network all right reserve

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI KOMBINASI ALGORITMA NTRUENCRYPT DAN STEGANOGRAFI END OF FILE PADA PENGAMANAN DATA TEKS SKRIPSI YANSEN BOSTON SIMATUPANG

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

IMPLEMENTASI STEGANOGRAFI MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB) DALAM PENGAMANAN DATA PADA FILE AUDIO MP3

Pengamanan Data Teks dengan Kriptografi dan Steganografi Wawan Laksito YS 5)

ENKRIPSI AFFINE CIPHER UNTUK STEGANOGRAFI PADA ANIMASI CITRA GIF

BAB 2 LANDASAN TEORI

IMPLEMENTASI KRIPTOGRAFI DIFFIE-HELLMAN, KRIPTOGRAFI VIGENERE CIPHER DAN STEGANOGRAFI END OF FILE UNTUK KEAMANAN DATA

Transkripsi:

BAB II TINJAUAN PUSTAKA. 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, 202), yaitu:. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Secret Key: yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.. Ciphertext: merupakan keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak.

7 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... 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: EK(M) = C.() DK(C) = M (2) Berdasarkan rumus (), 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.

8 Kunci Plaintext Enkripsi Ciphertext Dekripsi Plaintext Gambar Skema Kriptografi Simetri Algoritma simetrik dibagi menjadi 2 kategori, yaitu block algorithms dan stream algorithms. Block algorithms, data dienkripsi dalam blokblok data. Block cipher akan mengenkripsi blok data satupersatu sampai blok plaintext terakhir. Sedangkan stream algorithms, data dienkripsi dalam bitbit data (Scheiner, 996).. 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:. Kunci umum (public key): kunci yang boleh semua orang tahu (dipublikasikan). Kunci rahasia (private key): kunci yang dirahasiakan. Kuncikunci 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:. Bob memberitahukan kunci publiknya ke Alice. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob. Bob mendekripsi pesan dari Alice dengan kunci rahasianya. 4. Begitu juga sebaliknya jika Bob ingin mengirim pesan ke Alice

9 Algoritma yang memakai kunci publik di antaranya, DiffieHellman (DH), RSA dan NTRUEncrypt. Enkripsi menggunakan algoritma asimetri dapat dituliskan menjadi: EK(M) = C Meskipun kunci publik dan kunci rahasia berbeda, dekripsi dengan menggunakan kunci rahasia (Scheiner, 996), yaitu DK(C) = M Gambar 2 merupakan gambaran mengenai proses enkripsi dan dekripsi menggunakan algoritma asimetri. Kunci Publik Plaintext Enkripsi Kunci Privat Ciphertext Dekripsi Plaintext Gambar 2 Skema Kriptografi Asimetri 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.. Bilangan Prima Sebuah bilangan integer a> disebut bilangan prima jika dan hanya jika bilangan tersebut habis dibagi satu dan bilangan itu sendiri. Jumlah bilangan prima telah dibuktikan Euclid (00SM) adalah tak terhingga, namun semakin besar bilangan integer semakin jarang bilangan prima. Sebagai contoh, 7 adalah bilangan prima karena hanya habis dibagi oleh dan 7 (Sadikin, 202).

0 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 divisorgcd) 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 FPB(a,b)=c. Misalkan 6 mempunyai pembagi {, 2,, 4, 6, 9, 2, 8} dan 24 mempunyai pembagi {, 2,, 4, 6, 8, 2}. Faktor pembagi 6 dan 24 {, 2,, 4, 6, 2} yang terbesar adalah 2, sehingga FPB(6, 24) = 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 gcd(a,0) = a dan kasus umum ketika b 0 gcd(a,b) = gcd(b,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 gcd(b, a mod b). jadi kasus umum dapat dikenakan berkalikali sampai akhirnya akan bertemu dengan kasus dasar untuk menemukan gcd(a,b) (Sadikin, 202). Contoh : Carilah FPB dari 88 dan 6 menggunakan algoritma Euclidean Jawab: Aplikasi kasus umum gcd(96,42) = gcd(42,96 mod 42) = gcd(42,2) gcd(42,2) = gcd(2,42 mod 2) = gcd(2,6) gcd(2,6) = gcd(6,2 mod 6) = gcd(6,0) dan aplikasi kasus dasar adalah

gcd(6,0) = 6 Penjelasan gcd (6,0) = 6 6 mempunyai pembagi {0,,2,,6}, sedangkan 0 mempunyai pembagi untuk semua bilangan integer, faktor pembagi 6 dan 0 terbesar adalah 6. Sehingga dapat dibuktikan bahwa gcd(6,0) = 6 karena itu, gcd(96,42) = 6. 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,,2,,m}(Sadikin, 202). Contoh : Beberapa hasil operasi dengan operator modulo: i. 4 mod 0 =, karena 4 = 0. + ii. 2 mod 8 = 5, karena 2 = 8.2 + 5 iii. 6 mod 8 = 6, karena 6 = 8.0 + 6 iv. 0 mod 4 = 0, karena 0 = 0.4 + 0 v.. 4 mod 6 = karena 4 = 6. 7 + Polynomial Ring Bilangan riil adalah bilanganbilangan 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:

2. 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 R : a + a = a + a = 0 (invers) Operator perkalian (x) a,b R : a b = b a (komutatif) a,b,c R : a (b c) = (a b) c (asosiatif) x R = R x = R ( identitas perkalian). 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 nonzero mempunyai invers perkalian disebut field (Sadikin, 202). Polynomial berderajat n mempunyai bentuk umum: f(x) = anxn + anxn + +a2x2 + ax + a0 dimana a merupakan bilangan real. Meskipun rumus umum terlihat rumit, untuk lebih sederhana dapat dilihat pada contoh: f(x) = 6x4 + 7x + x2 + 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, 200). Sebagai contoh, dengan ring untuk koefisien berupa field K = Z/Z, x5 + 2x + x2 + 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 ai adalah koefisien untuk suku dengan pangkat i jadi setiap ai adalah elemen dari ring R, dan an 0. Sebetulnya ai berlaku untuk setiap i Z tetapi ai = 0 untuk i > n dan i < 0. Untuk contoh x5 + 2x + x2 + 2, a0 = 2, a = 0, a2 =, a = 2, a4 = 2 dan a5 =. Aritmatika dalam Polynomial ring R[x] adalah sebagai berikut:. Penjumlahan dilakukan dengan menjumlahkan semua suku dari kedua polynomial (suku dengan pangkat yang sama dijadikan satu dengan menjumlahkan koefisien). Sebagai contoh, dengan R = Z/Z, jika p = x5+2x+x2+2 dan p2 = x4+2x+x2, maka p+p2 = x5+x4+x+2x2+ Penjumlahan koefisien dilakukan dengan aritmetika R, dalam contoh menggunakan aritmatika modulo. 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/Z, jika p = x2+2x dan p2 = 2x+ maka p.p2 = (x2+2x)( 2x+)= 2x+2x2+ Perkalian koefisien dilakukan dengan aritmetika R, dalam contoh menggunakan aritmatika modulo. Menggunakan notasi penjumlahan p = =0 dan p2 = =0 maka aritmetika penjumlahan pada polynomial ring ditulis menjadi: p + p2 = ( =0 ax = =0, ) + ( =0 + Sedangkan, untuk aritmetika perkalian ditulis menjadi: p.p2 = ( =0 ). ( =0 = ( =0 =0 = =0 + = ( =0. ( i, =0 =0 + ) ) ) ))

4 4. Algoritma NTRUEncrypt NTRUEncrypt ditemukan oleh Jeffrey Hoffstein, Jill Pipher dan Joseph Silverman. Algoritma ini pertama kali diperkenalkan oleh Hoffstein pada CRYPTO 96 dan dipublikasikan pada tahun 998. Algoritma ini telah dimodifikasi sejak pertama kali diperkenalkan, NTRU telah berganti nama menjadi NTRUEncrypt (Rosenberg, 2004). Polynomial ring (ℤ/pZ)[x]/(xN), merupakan bagian penting dalam algoritma NTRUEncrypt, di mana modulo p akan mereduksi koefisien pada polinomial. Aritmetika pada polynomial ring yaitu penjumlahan, perkalian dan invers merupakan bagian penting dalam algoritma NTRUEncrypt. Ring ini memiliki irreducible polynomial XN. Karakter irreducible polynomial mirip dengan bilangan prima, yaitu tidak bisa difaktorkan ke dalam bentuk polinomial lain, tidak bisa habis dibagi kecuali dengan dirinya dan satu. Contoh Irreducible polynomial pada perkalian polynomial dengan N= pada ℤ/ℤ[X]/(XN). a b = ( + 2x + 2x2) ( 2x + x2) = 2x + 5x2 + 6x + 2x4 Polynomial hasil perkalian terdapat 6x dan 2x4 (melebihi nilai N==2), maka diperlukan reduksi terhadap hasil perkalian. Irreducible polynomial adalah xn, maka xn = 0, sehingga x =. 6x dan 2x4 akan direduksi menjadi: 6x = 6 x = 6 = 6, dan 2x4 = 2x x = 2x = 2x, Sehingga hasil a b, menjadi: a b = ( + 2x + 2x2) ( 2x + x2) = 2x + 5x2 + 6x + 2x4 = 2x + 5x2 + 6 + 2x = (6 + 4x + 5x2 ) mod = x + 2x2

5 Ada empat parameter yang digunakan untuk membangkitkan kunci yaitu bilangan integer N, p, q dan df, dimana N dan p merupakan bilangan prima, gcd(p,q) = gcd(n,q) =. N : dimensi dari polynomial yang digunakan (polinom akan memiliki derajat N ), N merupakan bilangan prima. p : small modulus, koefisien dari polynomial akan direduksi dengan modulo p, p adalah bilangan prima. q : large modulus, koefisien dari polynomial akan direduksi dengan modulo q, q merupakan bilangan kelipatan df: nilai yang akan digunakan untuk membangkitkan polynomial f pada proses pembangkitan kunci privat. Menyangkut masalah keamanan, NTRU Cryptosystems, Inc merekomendasikan penggunaan parameter standar EES (Escrowed Encryption Standard) pada implementasi algoritma NTRUEncrypt sesuai dengan data pada tabel berikut. Tabel Standar Parameter pada Algoritma NTRUEncrypt Parameter set ees40ep ees54ep ees659ep ees449ep ees6ep ees76ep ees677ep ees887ep ees087ep ees087ep2 ees7ep ees499ep Security level 2 2 2 28 28 28 92 92 92 256 256 256 N 40 54 659 449 6 76 677 887 087 087 7 499 q p df 49 8 4 55 42 57 8 6 20 06 79 2 2 2 2 2 2 2 2 2 2 2 2

6 Parameter set merupakan nama parameternya. Escrowed Encryption Standard merupakan singkatan dari EES. Angka setelah ees pada ees40ep, ees54ep dan yang lainnya menunjukkan derajat polynomialnya 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. 4.. 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:. Tentukan parameter N, p, q dan df. Tabel dapat digunakan untuk menentukan parameter yang digunakan berdasarkan level keamanan yang bersesuaian. Bangkitkan dua polinom kecil secara acak, yaitu f dan g dari ring (ℤ/pℤ)[x]/(xN). Isi dari polinom f dan g bersifat rahasia karena jika salah satunya diketahui oleh pihak lain, maka orang dapat mendekripsikan pesan. digunakan untuk membangkitkan polynomial acak Metode yang dapat f adalah dengan mendistribusikan secara acak nilai sebanyak df, nilai sebanyak df, selebihnya nilai 0 ke dalam koefisien polynomial. Polinomial g dapat dibangkitkan dengan cara yang sama menggunakan parameter dg yang dihasilkan dari nilai N/. Polynomial g akan memiliki koefisien bernilai dan sebanyak dg, dan sisanya adalah 0.. Hitung invers dari f modulus p (fp) dan invers diri f modulus q (fq), f*fp = (modulus p) dan f*fq = (modulus 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 fq g) mod q dan kunci privatnya adalah f.

7 Contoh: Langkahlangkah menentukan kunci privat dan kunci publik pada NTRUEncrypt. Menentukan nilai N, p, q, df yaitu N=7, p=, q=2, df = Bangkitkan polinomial acak f pada ring (ℤ/ℤ)[x]/(xN) yang mempunyai nilai df=4. f = x x2 + x. Bangkitkan polynomial acak g pada ring (ℤ/ℤ)[x]/(xN) yang mempunyai nilai df= g = + x2 x + x4 4. Invers polynomial f modulo p (fp) dan f modulo q (fq) adalah: Tabel 2 Nilai Invers f Modulo p (fp) k Init A x B x x2 + x x x2 + x x+2 Q R t 0 t2 t x7 x4 + x + 2x + 2 x2 + x+2 0 2x4 + 2x +x+ x+2 x+2 0 2x4 + 2x +x+ 0 x6 + x5 + x4 + 2x2 + 2x x6 + x5 + x4 + 2x2 + 2x 7 x 2x4 + 2x +x+ x6 + x5 + x4 + 2x2 + 2x 7 x 2 x x2 + x 4 7 Tabel 2 merupakan tabel untuk mencari nilai invers f modulo p (fp), dimana Q = (A : B) dan R = A mod B, sedangkan nilai t = t (Q x t2). Nilai fp merupakan nilai t pada proses terakhir. Sedangkan, untuk mencari nilai invers f modulo q (fq), prosesnya sama dengan proses mencari fp. Nilai invers fp terdapat pada tabel

8 Tabel Nilai Invers f Modulo q (fq) k Init A x Q R t 0 t2 T x7 x+ 0 x + x4 + x + x + 2 x + x + x + 0 0 x4 + x + x + 6 x + x5 + x4 + x2 + x x4 + x + x + 6 x + x5 + x4 + x2 + x x7 x4 + x + x + 6 x + x5 + x4 + x2 + x x7 2 x + x2 +x 4 7 B x x2 + x x x2 + x Berdasarkan tabel 2 dan tabel, maka nilai fp = 2x + 2x2 + x4 + x5 + x6 dan nilai fq = x + x2 + x4 + x5 + x6 5. Kunci publik polinom H H = (p fq g) mod q H = ( (x + x2 + x4 + x5 + x6) ( + x2 x + x4)) mod 2 = 6x + x2 + 29x4 + 29x5 + 29x6 Maka diperoleh kunci privat f = x x2 + x, dan kunci publik H = 6x + x2 + 29x4 + 29x5 + 29x6. 4. Enkripsi Pesan Setelah melakukan pembangkitan kunci, langkah selanjutnya adalah mengenkripsi pesan. proses enkripsi antara lain:. m merupakan plaintext yang diubah dalam bentuk polynomial pada ring (ℤ/pℤ)[X]/(XN). Polinom m akan memiliki koefisien pada range (, 0, ).

9 Bangkitkan polinom kecil r secara acak pada ring (ℤ/pℤ)[X]/(XN). Polinom ini adalah blinding value yang berfungsi untuk menyamarkan pesan.. Enkripsi polynomial m dengan rumus berikut: e = (r H + m) mod q Polinom e adalah pesan terenkripsi yang akan dikirimkan. Contoh: Langkahlangkah mengenkripsi pesan string d dengan menggunakan kunci publik H = 6x + x2 + 29x4 + 29x5 + 29x6 adalah sebagai berikut:. Pesan string d diubah ke dalam bentuk polynomial m menjadi: m = x + x2 x x5 x6 Langkahlangkah mengubah string d menjadi polynomial: Nilai ASCII string d adalah 00 00 : = sisa bagi : = sisa bagi 0 : = sisa bagi 2 : = sisa bagi 0 Maka dihasilkan array dengan m = [ 0 2 0 ], karena N = 7 maka nilai m = [ 0 2 0 0 0] koefisien polynomial m harus diantara,0, maka nilai m dikurangi, maka nilai m = [0 0 ] Maka polynomial m = x + x2 x x5 x6 Bangkitkan polinom r sebagai blinding value: r = + x x2. e merupakan polinom hasil enkripsi: e = (r H + m) mod q e = (( + x x2) (6x + x2 + 29x4 + 29x5 + 29x6) + ( x + x2 x x5 x6)) mod 2 = 8x + 0x2 + 28x + 26x4 + 25x5 + 28x6 Maka dihasilkan polynomial baru hasil enkripsi adalah 8x + 0x2 + 28x + 26x4 + 25x5 + 28x6.

20 4.. Dekripsi Pesan Langkahlangkah pada proses dekripsi adalah sebagai berikut:. Hitung nilai polinom a dengan rumus berikut: a = (f e) mod q, dimana koefisien polinom a berada pada interval q/2 dan q/ Hitung nilai polinom b dengan rumus berikut: b = a mod p, koefisien polinom b berada pada interval dan.. Hitung nilai polinom c dengan rumus berikut: c = (fp b) mod p, koefisien polinom b berada pada interval dan. Polinom c merupakan polinom hasil dekripsi pesan. Contoh: Langkahlangkah mendekripsi pesan e = 8x + 0x2 + 28x + 26x4 + 25x5 + 28x6 dengan nilai f = x x2 + x fp = 2x + 2x2 + x4 + x5 + x6 fq = x + x2 + x4 + x5 + x6 Proses dekripsi polinom e adalah sebagai berikut:. Polinom a = (f e) mod q a = (f e) mod q a = ((x x2 + x) ( 8x + 0x2 + 28x + 26x4 + 25x5 + 28x6)) mod 2 = ( x + 4x2 + 2x 6x4 + 8x5 5x6 ) mod 2 Polinom b = a mod p b = a mod p b = ( x + 4x2 2x 6x4 + 8x5 5x6) mod = (x2 x x5 + x6 ) mod. Polinom c = (fp b) mod p c = (fp b) mod p c = ((2x + 2x2 + x4 + x5 + x6) (x2 x x5 + x6)) mod c = x + x2 x x5 x6 Hasil dekripsi yaitu polinom c sama dengan polinom m= x + x2 x x5 x6

2 Polinom m= x + x2 x + x5 x6, maka array m = [0 0 ], untuk mengubah kembali dalam bilangan ASCII maka m ditambahkan dengan, maka nilai m = [ 0 2 0 0 0], m diubah kembali ke nilai ASCII ( x ) + 0 = 0 ( x ) + 2 = 2 ( x ) + 0 = 0 ( x ) + = 00 00 Maka dihasilkan nilai m = 00, 00 merupakan nilai ASCII dari string d. 5. Citra Digital Citra adalah gambar pada bidang dwimatra (dua dimensi). Citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alatalat optik, misalnya mata pada manusia, kamera, pemindai dan sebagainya, sehingga bayangan objek yang disebut citra terekam. Citra ada dua macam, yaitu citra kontinu dan citra diskrit. Citra kontinu dihasilkan dari sistem optik yang menerima sinyal analog, misalnya mata manusia dan kamera analog. Citra diskrit dihasilkan melalui proses digitalisasi terhadap citra kontinu. Beberapa sistem optik dilengkapi dengan fungsi digitalisasi sehingga mampu menghasilkan citra diskrit, misalnya kamera digital dan scanner (Munir, 2007). Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau picture element). Setiap piksel digambarkan sebagai satu kotak kecil. Setiap piksel mempunyai koordinat posisi. Sistem koordinat yang dipakai untuk menyatakan citra digital ditunjukkan pada Gambar 5 (Kadir & Susanto, 20).

22 0 N x 0 Posisi sebuah piksel y M Gambar Sistem Koordinat Citra Berukuran M x N (M Baris dan N Kolom) Dengan sistem koordinat yang mengikuti gambar, sebuah piksel mempunyai koordinat berupa (x, y) Dalam hal ini, x menyatakan posisi kolom; y menyatakan posisi baris; piksel pojok kiriatas mempunyai koordinat (0, 0) dan piksel pada pojok kananbawah mempunyai koordinat (N, M). 5.. Format File Citra Bitmap Citra bitmap sering disebut juga dengan citra raster. Citra bitmap menyimpan data kode citra secara digital dan lengkap. Citra bitmap dipresentasikan dalam bentuk matriks atau dipetakan dengan bilangan biner atau sistem bilangan lain. Citra ini memiliki kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk gambargambar dengan perpaduan gradasi warna yang rumit seperti foto

2 dan lukisan digital. Bila citra ini diperbesar maka tampilan di monitor akan tampak pecahpecah (Sutoyo, dkk. 2009). Citra dalam format BMP lebih bagus daripada citra dalam format yang lainnya, karena citra dalam format BMP umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang. Terjemahan bebas bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel panjangnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255 (Munir, 2007). Citra dalam format BMP ada tiga macam: citra biner, citra berwarna, dan citra hitamputih (greyscale). Citra biner hanya mempunyai dua nilai keabuan, 0 dan. Oleh karena itu, bit sudah cukup untuk merepresentasikan nilai pixel. Citra berwarna adalah citra yang lebih umum. Warna yang terlihat pada citra bitmap merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap pixel disusun oleh tiga komponen warna: R (red), G (green), dan B (blue). Kombinasi dari ketiga warna RGB tersebut menghasilkan warna yang khas untuk pixel yang bersangkutan. Setiap komponen panjangnya 8 bit, jadi ada 256 nilai keabuan untuk warna merah, 256 nilai keabuan untuk warna hijau, dan 256 nilai keabuan untuk warna biru. Nilai setiap pixel tidak menyatakan derajat keabuannya secara langsung, tetapi nilai pixel menyatakan indeks tabel RGB yang memuat nilai keabuan merah (R), nilai keabuan hijau (G), dan nilai keabuan biru (B) untuk pixel yang bersangkutan. Pada citra hitamputih, nilai R = G = B untuk menyatakan bahwa citra hitamputih hanya mempunyai satu kanal warna. Citra hitamputih umumnya adalah citra 8bit (Munir, 2007). Citra yang lebih kaya warna adalah citra 24bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru. Masingmasing komponen panjangnya 8 bit. Citra 24bit disebut juga citra 6 juta warna, karena ia mampu menghasilkan 2 24 6.777.26 kombinasi warna. =

24 Gambar 4 Contoh Gambar dengan Format Bitmap (.bmp) 6. Steganografi Steganografi adalah ilmu menyembunyikan teks pada media lain yang telah ada sedemikian sehingga teks yang tersembunyi menyatu dengan media itu. Media tempat penyembunyian pesan dapat berupa media teks, gambar, audio atau video. Steganografi yang kuat memiliki sifat yang tertanam teks tersembunyi sulit dibedakan dengan media asli namun teks tersembunyi tetap dapat diekstraksi (Sadikin, 202). Penggunaan steganografi antara lain bertujuan untuk menyamarkan eksistensi (keberadaan) data rahasia sehingga sulit dideteksi, dan melindungi hak cipta suatu produk. Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi, data yang telah disandikan (ciphertext) tetap tersedia, maka dengan steganografi cipherteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya. Data rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti keadaan aslinya (Munir, 2007). Steganografi berbeda dengan kriptografi, letak perbedaannya adalah pada hasil keluarannya. Hasil dari kriptografi biasanya berupa data yang berbeda dari bentuk aslinya dan biasanya data seolaholah berantakan sehingga tidak dapat diketahui informasi apa yang terkandung didalamnya (namun sesungguhnya dapat dikembalikan ke bentuk semula lewat proses dekripsi), sedangkan hasil keluaran dari Steganografi memiliki bentuk persepsi yang sama dengan bentuk aslinya. Menurut Suhono,

25 kesamaan persepsi tersebut adalah oleh indera manusia (khususnya visual), namun bila digunakan komputer atau perangkat pengolah digital lainnya dapat dengan jelas dibedakan antara sebelum proses dan setelah proses (Alfian, 20). Gambar 5 Perbedaan Steganografi dan Kriptografi Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah (Munir, 2007):. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. Robustness. Data yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada citra penampung, seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan (cropping), enkripsi, dan sebagainya. Bila pada citra penampung dilakukan operasioperasi pengolahan citra tersebut, maka data yang disembunyikan seharusnya tidak rusak (tetap valid jika diekstraksi kembali). Recovery. Data yang disembunyikan harus dapat diungkapkan kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktuwaktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.

26 Steganografi membutuhkan dua properti, yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media sebagai wadah penampang, misalnya citra, audio, teks dan video (Sutoyo,dkk. 2009). Gambar 6 adalah ilustrasi untuk menggambarkan proses penyimpanan (penyisipan) pesan ke dalam media digital dengan teknik steganografi. Secret message adalah pesan yang akan disisipkan ke dalam cover image. Cover image adalah media digital atau gambar. Embedding Algorithm merupakan algoritma yang digunakan untuk menyisipkan pesan. Sedangkan stego image adalah gambar yang telah disisipi oleh secret message. Sedangkan Extraction Algorithm digunakan untuk mengekstraksi pesan rahasia. Secret Message Secret Message Embedding Algorithm Extraction Algorithm Stego Image Cover Image Cover Image Gambar 6 Proses Penyisipan dan Ekstraksi Data Rahasia 6.. End of File Metode EOF merupakan salah satu teknik yang digunakan dalam Steganografi. Metode ini menggunakan cara dengan menyisipkan data pada akhir file. Sehingga, tidak akan mengganggu kualitas data awal yang akan disisipkan pesan. Namun, ukuran file setelah disisipkan pesan rahasia akan bertambah. Sebab, ukuran file yang telah disisipkan pesan rahasia sama dengan ukuran file sebelum disisipkan pesan rahasia yang disisipkan. Untuk mengenal data yang disisipkan pada akhir file, diperlukan suatu tanda pengenal atau simbol pada awal dan akhir data yang akan disisipkan (Alfian, 20). Misalnya matriks pada sebuah citra dengan skala keabuan 6x6 piksel sebagai berikut: 98 67 0 0 56 200 05 29 99 8 00 50 88 02 25 55 27 55 0 88 99 7 20 2 78 94 9 24 45 08 4 67 90 2

27 Citra tersebut akan disisipkan sebuah pesan, yaitu YANSEN. Kode ASCII dari pesan tersebut adalah: 89 65 78 8 69 78 Pesan tersebut akan disisipkan dengan menggunakan metode EOF, sehingga citra menjadi: 98 67 0 0 56 200 89 05 29 99 8 00 50 65 88 02 25 55 27 55 78 0 88 99 7 20 2 8 78 94 9 24 45 08 69 4 67 90 2 78 Langkahlangkah menyisipkan pesan dengan metode EOF antara lain:. Menginputkan ciphertext yang akan disisipkan. Menginputkan citra yang akan menjadi media penyisipan ciphertext.. Membaca nilai setiap pixel citra. 4. Menyisipkan ciphertext ke dalam citra, yaitu pada akhir pixel citra. Sedangkan langkahlangkah mengekstraksi pesan yang sudah disisipkan dengan metode EOF antara lain:. Menginputkan citra yang telah disisipkan ciphertext (stego image). Membaca nilai pixel stego image yang terdapat pada citra.. Mengambil ciphertext yang terdapat pada akhir pixel citra.