BAB II TINJAUAN PUSTAKA

22 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

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.

(2)

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:

EK(M) = C……….(1) DK(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.

(3)

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 streamalgorithms, 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 Enkripsi Dekripsi Plaintext Kunci

(4)

Algoritma yang memakai kunci publik di antaranya, Diffie-Hellman (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, 1996), yaitu

DK(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 a>1 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 Enkripsi Dekripsi Plaintext Kunci Publik

Ciphertext

(5)

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 FPB(a,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 FPB(36, 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

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 berkali-kali sampai akhirnya akan bertemu dengan kasus dasar untuk menemukan gcd(a,b) (Sadikin, 2012).

Contoh :

Carilah FPB dari 88 dan 36 menggunakan algoritma Euclidean Jawab:

Aplikasi kasus umum

gcd(96,42) = gcd(42,96 mod 42) = gcd(42,12) gcd(42,12) = gcd(12,42 mod 12) = gcd(12,6) gcd(12,6) = gcd(6,12 mod 6) = gcd(6,0) dan aplikasi kasus dasar adalah

(6)

gcd(6,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 gcd(6,0) = 6 karena itu, gcd(96,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:

(7)

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: f(x) = anxn + an-1xn-1+ …+a2x2 + a1x1 +a0

dimana a merupakan bilangan real. Meskipun rumus umum terlihat rumit, untuk lebih sederhana dapat dilihat pada contoh:

f(x) = 6x4 + 7x3 + 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, 2010).

Sebagai contoh, dengan ring untuk koefisien berupa field K = Z/3Z,

x5 + 2x3 + x2 + 2

merupakan polynomial elemen K[x] dengan degree (pangkat terbesar) 5. Suatu

polynomial p dapat ditulis:

(8)

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 + 2x3 + x2 + 2, a0 = 2, a1 = 0, a2 = 1, a3 = 2, a4 = 2 dan a5 = 1.

Aritmatika dalam Polynomial ringR[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/3Z, jika p1 = x5+2x3+x2+2 dan p2 = x4+2x3+x2,

maka p1+p2 = x5+x4+x3+2x2+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/3Z, jika p1 = x2+2x dan p2 = 2x+1 maka

p1.p2 = (x2+2x)( 2x+1)= 2x3+2x2+2. Perkalian koefisien dilakukan dengan

aritmetika R, dalam contoh menggunakan aritmatika modulo 3.

Menggunakan notasi penjumlahan

p1 = ∑=0 � dan p2 = ∑=0

maka aritmetika penjumlahan pada polynomial ring ditulis menjadi: p1 + p2 = ( ∑=0 � ) + (∑=0 � )

= ∑=0ax , + � Sedangkan, untuk aritmetika perkalian ditulis menjadi:

p1.p2 = ( ∑=0 � ) . (∑ =0 � )

= ∑=0 � . (∑ =0 � )) = ( ∑=0=0 � + ) = ( ∑=0+ ∑ =0i ,

(9)

2.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 1998. Algoritma ini telah dimodifikasi sejak pertama kali diperkenalkan, NTRU telah berganti nama menjadi NTRUEncrypt (Rosenberg, 2004).

Polynomial ring (ℤ/pZ)[x]/(xN-1), 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-1. 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=3 pada ℤ/3ℤ[X]/(XN-1).

a × b = (1 + 2x + 2x2) × ( 2x + x2) = 2x + 5x2 + 6x3 + 2x4

Polynomial hasil perkalian terdapat 6x3 dan 2x4 (melebihi nilai N-1=3-1=2), maka diperlukan reduksi terhadap hasil perkalian. Irreducible polynomial adalah xN-1, maka xN-1 = 0, sehingga x3 = 1. 6x3 dan 2x4 akan direduksi menjadi:

6x3 = 6 × x3 = 6 × 1 = 6, dan 2x4 = 2x × x3 = 2x × 1 = 2x, Sehingga hasil a × b, menjadi: a × b = (1 + 2x + 2x2) × ( 2x + x2) = 2x + 5x2 + 6x3 + 2x4

= 2x + 5x2 + 6 + 2x = (6 + 4x + 5x2 ) mod 3 = x + 2x2

(10)

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) = 1.

N : dimensi dari polynomial yang digunakan (polinom akan memiliki derajat N–1), 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 2.

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 2.1 berikut.

Tabel 2.1 Standar Parameter pada Algoritma NTRUEncrypt

Parameter set Security level N q p df

ees401ep1 112 401 211 3 113 ees541ep1 112 541 211 3 49 ees659ep1 112 659 211 3 38 ees449ep1 128 449 211 3 134 ees613ep1 128 613 211 3 55 ees761ep1 128 761 211 3 42 ees677ep1 192 677 211 3 157 ees887ep1 192 887 211 3 81 ees1087ep1 192 1087 211 3 63 ees1087ep2 256 1087 211 3 120 ees1171ep1 256 1171 211 3 106 ees1499ep1 256 1499 211 3 79

(11)

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]/(xN-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 N/3. 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), f*fp = 1

(modulus p) dan f*fq = 1(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

(12)

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]/(xN-1) yang mempunyai nilai

df=4.

f = x - x2 + x3

3. Bangkitkan polynomial acak g pada ring (ℤ/3ℤ)[x]/(xN-1) yang mempunyai nilai

df=2.

g = -1 + x2 - x3 + x4

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 t1 t2 t Init x7 - 1 x3 - x2 + x - - 0 1 - 1 x7 - 1 x3 - x2 + x x4 + x3 + 2x + 2 x + 2 0 1 2x4 + 2x3 + x + 1 2 x3 - x2 + x x + 2 x2 + 1 1 1 2x4 + 2x3 + x + 1 x6 + x5 + x4 + 2x2 + 2x 3 x + 2 1 x + 2 0 2x4 + 2x3 + x + 1 x6 + x5 + x4 + 2x2 + 2x x7 - 1 4 1 0 - - x6 + x5 + x4 + 2x2 + 2x x7 - 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 = t1 - (Q x t2). Nilai fp merupakan

nilai t1 pada proses terakhir. Sedangkan, untuk mencari nilai invers f modulo q (fq),

(13)

Tabel 2.3 Nilai Invers f Modulo q (fq) k A B Q R t1 t2 T Init x7 - 1 x3 - x2 + x - - 0 1 - 1 x7 - 1 x3 - x2 + x x4 + x3 + 31x + 31 x + 31 0 1 31x4 + 31x3 + x + 1 2 x3 + 31x2 + x x + 31 x2 + 1 1 1 31x4 + 31x3 + x + 1 x6 + x5 + x4 + 31x2 + 31x 3 x + 31 1 x + 31 0 31x4 + 31x3 + x + 1 x6 + x5 + x4 + 31x2 + 31x x7 - 1 4 1 0 - - x6 + x5 + x4 + 31x2 + 31x x7 - 1 -

Berdasarkan tabel 2.2 dan tabel 2.3, maka nilai fp = 2x + 2x2 + x4 + x5 + x6 dan nilai fq = 31x + 31x2 + x4 + x5 + x6

5. Kunci publik polinom H H = (p × fq× g) mod q

H = (3 × (31x + 31x2 + x4 + x5 + x6) × (-1 + x2 - x3 + x4)) mod 32 = 6x + 3x2 + 29x4 + 29x5 + 29x6

Maka diperoleh kunci privat f = x - x2 + x3, dan kunci publik H = 6x + 3x2 + 29x4 + 29x5 + 29x6.

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]/(XN-1). Polinom m akan memiliki koefisien pada range (-1, 0, 1).

(14)

2. Bangkitkan polinom kecil r secara acak pada ring (ℤ/pℤ)[X]/(XN-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 + 3x2 + 29x4 + 29x5 + 29x6 adalah sebagai berikut:

1. Pesan string “d” diubah ke dalam bentuk polynomial m menjadi: m = - x + x2 - x3 - x5 - x6

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 + x2 - x3 - x5 - x6 2. Bangkitkan polinom r sebagai blinding value:

r = 1 + x - x2

3. e merupakan polinom hasil enkripsi: e = (r × H + m) mod q

e = ((1 + x - x2) × (6x + 3x2 + 29x4 + 29x5 + 29x6) + (- x + x2– x3 - x5 - x6)) mod 32

= 8x + 10x2 + 28x3 + 26x4 + 25x5 + 28x6

Maka dihasilkan polynomial baru hasil enkripsi adalah 8x + 10x2 + 28x3 + 26x4 + 25x5 + 28x6.

(15)

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 –q/2 dan q/2.

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 = (fp × 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 + 10x2 + 28x3 + 26x4 + 25x5 + 28x6 dengan nilai

f = x - x2 + x3

fp = 2x + 2x2 + x4 + x5 + x6 fq = 31x + 31x2 + x4 + x5 + x6

Proses dekripsi polinom e adalah sebagai berikut: 1. Polinom a = (f × e) mod q a = (f × e) mod q a = ((x - x2 + x3) × ( 8x + 10x2 + 28x3 + 26x4 + 25x5 + 28x6)) mod 32 = (-3 - 3x + 4x2 + 2x3 - 6x4 + 8x5 - 5x6 ) mod 32 2. Polinom b = a mod p b = a mod p b = (-3 - 3x + 4x2 - 2x3 - 6x4 + 8x5 - 5x6) mod 3 = (x2 - x3 - x5 + x6 ) mod 3 3. Polinom c = (fp × b) mod p c = (fp × b) mod p c = ((2x + 2x2 + x4 + x5 + x6) × (-x2 - x3 - x5 + x6)) mod 3 c = - x + x2– x3 - x5 - x6

(16)

Polinom m= - x + x2 - x3 + x5 - x6, 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

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 alat-alat 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, 2013).

(17)

0 N-1

M-1 0

x

y

Posisi sebuah piksel

Gambar 2.3 Sistem Koordinat Citra Berukuran M x N (M Baris dan N Kolom)

Dengan sistem koordinat yang mengikuti gambar 2.3, sebuah piksel mempunyai koordinat berupa

(x, y) Dalam hal ini,

 x menyatakan posisi kolom;  y menyatakan posisi baris;

 piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok kanan-bawah mempunyai koordinat (N-1, M-1).

2.5.1. 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 gambar-gambar dengan perpaduan gradasi warna yang rumit seperti foto

(18)

dan lukisan digital. Bila citra ini diperbesar maka tampilan di monitor akan tampak pecah-pecah (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 hitam-putih (greyscale). Citra biner hanya mempunyai dua nilai keabuan, 0 dan 1. Oleh karena itu, 1 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 hitam-putih, nilai R = G = B untuk menyatakan bahwa citra hitam-putih hanya mempunyai satu kanal warna. Citra hitam-putih umumnya adalah citra 8-bit (Munir, 2007).

Citra yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru. Masing-masing komponen panjangnya 8 bit. Citra 24-bit disebut juga citra 16 juta warna, karena ia mampu menghasilkan 224 = 16.777.216 kombinasi warna.

(19)

Gambar 2.4 Contoh Gambar dengan Format Bitmap (.bmp)

2.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, 2012).

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).

Steganografiberbeda dengan kriptografi, letak perbedaannya adalah pada hasil keluarannya. Hasil dari kriptografi biasanya berupa data yang berbeda dari bentuk aslinya dan biasanya data seolah-olah 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,

(20)

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, 2013).

Gambar 2.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):

1. 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.

2. 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 operasi-operasi pengolahan citra tersebut, maka data yang disembunyikan seharusnya tidak rusak (tetap valid jika diekstraksi kembali)

3. Recovery. Data yang disembunyikan harus dapat diungkapkan kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.

(21)

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 2.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.

Cover Image Secret Message

Embedding

Algorithm Stego Image

Extraction Algorithm Cover Image Secret Message

Gambar 2.6 Proses Penyisipan dan Ekstraksi Data Rahasia

2.6.1. 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, 2013). Misalnya matriks pada sebuah citra dengan skala keabuan 6x6 piksel sebagai berikut:

98 167 10 101 56 200 105 29 199 8 100 150 88 102 25 55 127 55 30 188 99 37 230 12 78 94 91 234 45 108 34 67 90 111 121 11

(22)

Citra tersebut akan disisipkan sebuah pesan, yaitu “YANSEN”. Kode ASCII dari pesan tersebut adalah:

89 65 78 83 69 78

Pesan tersebut akan disisipkan dengan menggunakan metode EOF, sehingga citra menjadi: 98 167 10 101 56 200 89 105 29 199 8 100 150 65 88 102 25 55 127 55 78 30 188 99 37 230 12 83 78 94 91 234 45 108 69 34 67 90 111 121 11 78

Langkah-langkah menyisipkan pesan dengan metode EOF antara lain: 1. Menginputkan ciphertext yang akan disisipkan.

2. Menginputkan citra yang akan menjadi media penyisipan ciphertext. 3. Membaca nilai setiap pixel citra.

4. Menyisipkan ciphertext ke dalam citra, yaitu pada akhir pixel citra .

Sedangkan langkah-langkah mengekstraksi pesan yang sudah disisipkan dengan metode EOF antara lain:

1. Menginputkan citra yang telah disisipkan ciphertext (stego image). 2. Membaca nilai pixel stego image yang terdapat pada citra.

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :