Bab ini memuat kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
BAB II
LANDASAN TEORI
2.1 Teori Bilangan 2.1.1 Keterbagian
Jika a dan b ∈ Z (Z = himpunan bilangan bulat) dimana b ≠ 0, maka dapat dikatakan b habis dibagi dengan a atau b mod a = 0 dan dinotasikan dengan a|b jika terdapat suatu bilangan x ∈ Z sehingga membentuk a = bx. Jika b tidak habis dibagi dengan a atau b mod a ≠ 0, maka dapat dinotasikan sebagai a | b [9].
Contoh:
3 | 9 9 ÷ 3 = 3 atau 9 mod 3 = 0 3 | 5 5 ÷ 3 = 1,67 atau 5 mod 3 = 2
2.1.2 Greatest Common Divisor (GCD)
Misalkan a,b ∈Z dan a,b ≠ 0, maka ddisebut Greatest Common Divisor (GCD) atau Faktor Persekutuan Terbesar (FPB) dari a dan b jika:
(i) d > 0 (ii) d|a dan d|b
dan dinotasikan sebagai d = gcd(a,b) [9]. Contoh:
Faktor Pembagi 15 = {1,3,5,15} Faktor Pembagi 25 = {1,5,25} Maka gcd(15,25) adalah 5
2.1.3 Algoritma Euclidean
Algoritma Euclidean merupakan algoritma yang digunakan untuk mencari gcd dari dua bilangan bulat. Algoritma ini ditemukan oleh seorang matematikawan Yunani bernama Euclid, yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, Element [11].
Misalkan m dan n adalah bilangan bulat tak negatif dengan m ≥ n. Misalkan r0 = m dan r1 = n. Lakukan pembagian secara berturut – turut untuk memperoleh
r0 = r1q1 + r2 0 ≤ r2 ≤ r1, r1 = r2q2 + r3 0 ≤ r3 ≤ r2, ⋮ rn-2 = rn-1 qn-1 + rn 0 ≤ rn ≤ rn-1, rn-1 = rn qn + 0 gcd (m,n) = gcd(r0,r1) = gcd(r1,r2) = ... = gcd(rn-2,rn-1) = gcd(rn-1,rn) = gcd(rn,0) = rn
Jadi, gcd dari m dan n adalah sisa terakhir yang tidak nol dari runtunan pembagian tersebut [11]. Contoh: Tentukan gcd(150, 22) 150 mod 22 = 18 22 mod 18 = 4 18 mod 4 = 2 4 mod 2 = 0 (berhenti) Maka gcd(150,22) adalah 2 2.1.4 Relatif Prima
Jika a,b ∈Z dan gcd(a,b) = 1 maka a dan b dikatakan relatif prima [9]. Contoh:
11 dan 7 relatif prima karena gcd(11,7) = 1
15 dan 5 tidak relatif prima karena gcd(15,5) = 0 ≠ 1
2.1.5 Least Common Multiple (LCM)
Misalkan a,b dan d ∈Z,d disebut Least Common Multiple atau Kelipatan Persekutuan Terbesar (KPK) dari a dan b jika:
(i) d > 0 (ii) a|d dan b|d
dan dinotasikan sebagai d = lcm(a,b) [9]. Contoh: Tentukan lcm(12,20). Kelipatan 12 = {12,24,36,48,60,72,84,...} Kelipatan 20 = {20,40,60,80,100,...} Maka lcm(12,20) adalah 60 2.1.6 Ar itmatika Modulo
Misalkan a,m ∈Z dan m > 0, operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Dengan kata lain a mod m = r sedemikian sehingga a = mq +r, dengan 0 ≤ r < m [11].
Contoh:
(i) 33 mod 5 = 3 (karena 33 dibagi 5 memberikan hasil (q) = 6 dan sisa (r) = 3, atau ditulis sebagai33 = 5 ⋅ 6 + 3)
(ii) 30 mod 3 = 0 (30 = 3 ⋅ 10 + 0)
Misalkan a,b ∈ Z dan m > 0, a dan b dikatakan kongruen dalam hal modulo m
jika memiliki sisa yang sama jika dibagi dengan bilangan positif m. Hal ini dilambangkan dengan a ≡ b (mod m) .
Contoh:
38 mod 5 = 3 13 mod 5 = 3
Maka 38 ≡ 13 (mod 5)
2.1.7 Invers Modulo
Misalkan suatu bilangan a relatif prima terhadap n atau gcd(a,n) = 1, maka invers dari a mod n adalah a-1 sedemikian hingga a-1. a = 1(mod n) [11].
Contoh:
Invers Modulo dari 4 mod 11
a-1 a-1. 4 (mod 11)
1 4
2 8
3 1
Maka, invers modulo dari 4 mod 11 = 3 karena 3.4 = 1 (mod 11).
2.2 Kriptografi
Secara etimologi, Kriptografi berasal dari bahasa Yunani, yaitu krypto dan graphia.
Kripto berarti rahasia dan graphia yang berarti tulisan. Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ketempat yang lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital (fingerprint) [3].
Pada dasarnya, kriptografi terdiri dari beberapa komponen seperti [4]: 1. Enkripsi
Enkripsi merupakan hal yang sangat penting dalam kriptografi sebagai pengamanan atas data yang dikirmkan agar rahasianya terjaga. Enkripsi mengubah pesan asli (plaintext) menjadi kode-kode yang tidak dimengerti (ciphertext).
2. Dekripsi
Dekripsi merupakan kebalikan dari proses enkripsi, yaitu mengubah kembali pesan yang telah dienkripsi ke bentuk asalnya.
3. Kunci
Kunci yang dimaksud disini adalah kunci yang dipakai untuk melakukan proses enkripsi dan dekripsi. Kunci terdiri atas dua, yaitu kunci pribadi (private key) dan kunci publik (public key)
Ciphertext merupakan suatu pesan yang sudah melalui proses enkripsi. Pesan yang ada pada ciphertext tidak bisa dibaca karena berisi karakter-karakter yang tidak memiliki makna.
5. Plaintext
Plaintext merupakan suatu pesan bermakna yang akan diproses menggunakan algoritma kriptografi agar menjadi ciphertext.
6. Pesan
Pesan bisa berupa data atau informasi yang dikirim melalui kurir, saluran komunikasi data dan sebagainya.
7. Cryptanalysis
Cryptanalysis bisa diartikan sebagai analisis sandi untuk mendapatkan plaintext
tanpa harus mengetahui kunci secara wajar.
Adapun fungsi dari kriptografi adalah [13]:
- Confidentiality (Kerahaasiaan). Menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
- Authentication (Otentikasi). Memungkinkan penerima pesan untuk memastikan asal usulnya ; artinya seorang penyelundup tidak dapat menyamarkan dirinya sebagai orang lain
- Integrity (Integritas Data). Memungkinkan penerima pesan untuk membuktikan bahwa pesan tidak di modifikasi/manipulasi selama dalam pengiriman; artinya seorang penyelundup tidak bisa menukar pesan yang asli dengan pesan yang salah.
- Nonrepudiation (Non-Penyangkalan). Pengirim tidak bisa menyangkal bahwa ia telah mengirimkan pesan.
2.2.1 Algoritma Simetris
Algoritma simetris merupakan algoritma yang menggunakan kunci yang sama pada proses enkripsi dan dekripsinya. Algoritma simetris juga biasa disebut algoritma konvensional. Sistem kriptografi dengan algoritma simetris ini mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan algoritma simetris ini terletak pada kerahasiaan kuncinya [10]
Gambar 2.1 Skema Kriptografi Algortma Simetris. [10].
Algoritma simetris dibagi menjadi dua kategori, yaitu stream cipher (cipher aliran) dan block cipher. Stream cipher beroperasi dengan melakukan enkripsi dan dekripsi terhadap satu bit atau satu byte data. Sedangkan block cipher beroperasi dengan melakukan enkripsi dan dekripsi terhadap satu blok data [13].
Beberapa sistem kriptografi yang menggunakan algoritma simetris adalah [3]: - One Time Pad
- RC 4
- Data Encryption Standard (DES) - Advanced Encryption Standard (AES)
2.2.2 Algoritma Asimetris (Public Key Algorithm)
Algoritma asimetris merupakan algoritma yang memiliki kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini biasa juga disebut dengan algoritma kunci publik karena kunci untuk proses enkripsi bersifat publik, artinya siapapun bisa menggunakan kunci tersebut untuk melakukan enkripsi. Sementara itu, kunci untuk mendekripsikan pesan bersifat privat sehingga hanya si penerima pesan yang dapat mendekripsikan pesan karena hanya ia yang mengetahui kunci privatnya sendiri [13].
Contoh sistem kriptografi yang menggunakan algoritma kunci publik adalah RSA (Rivest Shamir Adleman), ElGamal dan LUC.
2.2.3 Algoritma Asimetris Non Public Key
Algoritma kriptografi non Public Key merupakan algoritma kriptografi dimana kunci yang digunakan untuk proses enkripsi dan dekripsinya berbeda, maka tidak termasuk algoritma simetris. Namun algoritma ini tidak termasuk dalam kriptografi kunci publik karena kedua kunci dapat dengan mudah diturunkan satu sama lain, jadi kedua kuncinya harus tetap dirahasiakan. Contoh algoritma yang menggunakan kriptografi non-public key adalah Pohlig-Hellman [13].
Gambar 2.3. Skema Kriptografi Algoritma NonPublic Key.
2.3 Algoritma Kriptografi LUC
Algoritma kriptografi LUC merupakan salah satu sistem kriptografi yang menerapkan algoritma kunci publik. Algoritma ini dikemukakan oleh Peter J. Smith dan Michael J.J. Lennon pada tahun 1993 di New Zealand. LUC memiliki tiga tahap utama, yaitu pembangkitan kunci, enkripsi dan dekripsi [2].
LUC dibangun berdasarkan fungsi Lucas (Lucas Function). Penggunaan fungsi Lucas didalam mengolah data dari plaintext menjadi ciphertext atau sebaliknya hampir menyerupai fungsi pemangkatan yang digunakan oleh RSA.
Kunci Privat, K2 Kunci Privat, K1 Enkripsi EK1(P) = C Dekripsi DK2(C) = P Ciphertext, C Plaintext, P Plaintext, P
Fungsi Lucas merupakan fungsi deret dan yang dibangun dari dua bilangan integer P dan Q. Kemudian dibangun sebuah persamaan kuadrat − +
= 0. Jika akar dari persamaan tersebut adalah a dan b, maka didapatkan P = a+b
dan Q = ab. Kemudian fungsi Lucas didefinisikan sebagai berikut [2]:
= ( − ) / ( − ) (1)
= + (2)
Dua fungsi pada barisan Lucas dapat diturunkan dari persamaan (1) dan (2) yang didefinisikan sebagai berikut:
= − (3)
dimana n ≥ 2, = 0 dan = 1
= − (4)
dimana n ≥ 2, = 2 dan =
Sistem kriptografi LUC hanya akan menggunakan deretan dengan nilai Q=1
sehingga persamaan (4) dapat didefinisikan sebagai
= − (5)
dimana n ≥ 2, = 2 dan =
Sebagai contoh dimisalkan P = 3, Q = 1, maka 10 barisan Lucas pertama: Tabel 2.1 Perhitungan barisan Lucas sampai n=10. [12]
2.3.1 Pembangkitan Kunci LUC
Dibutuhkan dua buah kunci, yaitu kunci publik e dan kunci privat d untuk melakukan proses enkripsi dan dekripsi pada LUC. Proses pembangkitan kunci dilakukan dengan cara sebagai berikut [15]:
1. Pilih dua buah bilangan prima acak besar p dan q, dimana p ≠ q dan gcd(p,q) = 1
2. Hitung N = p . q
3. Ambil kunci publik acak e dengan syarat e relatif prima terhadap
ϕ(N) =(p-1)(p+1)(q-1)(q+1) atau gcd(e, ϕ(N)) = 1
R(N)=lcm((p-1),(q-1),(p+1),(q-1)) dan de =1 mod R(N)
2.3.2 Lehmann Prime Generator
Dalam algoritma kriptografi kunci publik diperlukan bilangan prima untuk proses pembangkitan kunci. Salah satu algoritma pengujian bilangan prima adalah algoritma Lehmann. Cara kerja algoritma Lehmann adalah sebagai berikut:
1. Pilih bilangan acak a yang lebih kecil dari p
2. Hitung = ( ) /
3. Jika ( ) / ≠ 1 atau− 1 ( ), maka p pasti bukan prima
4. Jika ( ) / ≡ 1 atau − 1 ( ), maka kemungkinan p bikan prima tidak lebih dari 50%
Pengujian diulangi sebanyak t kali. Jika pehitungan menghasilkan nilai 1 atau -1, tetapi tidak selalu 1, maka kemungkinan p adalah prima dengan tingkat kesalahan tidak lebih dari 1/ 2 [13]. Pengujian sebaiknya dilakukan sehingga kemungkinan primanya ≥ 99%.
Contoh 1:
Misalkan penulis ingin melakukan pengujian apakah 9 adalah bilagan prima
a = 2
= 2( ) / 9
≡ 2 9
≡ 16 mod 9 ≡ 7 ( 9)
Maka, dapat disimpulkan jika 9 bukan bilangan prima.
Contoh 2:
Misalkan penulis ingin melakukan pengujian apakah 11 adalah bilangan prima
a = 2
= 2( ) / 11 ≡ 2 11
≡ 32 mod 11 ≡ −1( 11) --- Kemungkinan tidak prima < 50 %
= 3( ) / 11 ≡ 3 11
≡ 243 mod 11 ≡ 1( 11) --- Kemungkinan prima 50 % + 25 % = 75 %
Setelah melakukan pengujian sebanyak dua kali dan menghasilkan nilai 1 dan -1, maka dapat disimpulkan bahwa 11 adalah bilangan prima dengan kemungkinan prima 75 %.
2.3.3 Algoritma Enkr ipsi LUC
Dengan menggunakan kunci publik e yang telah dibangkitkan sebelumnya, maka proses enkripsi pesan plaintext menjadi ciphertext dengan algoritma kriptografi LUC adalah sebagai berikut:
C = =(P − ) mod N (6)
Fungsi enkripsi akan menghitung suku ke-n dari fungsi deret Lucas dengan indeks n adalah kunci publik e dan P adalah plaintext. Proses enkripsi akan menghasilkan ciphertextC.
2.3.4 Algoritma Dekr ipsi LUC
Untuk mengembalikan ciphertext C menjadi pesan asli/plaintext P, maka dilakukan proses dekripsi dengan menggunakan kunci privat d. Fungsi dekripsi dengan algoritma kriptografi LUC didefinisikan sebagai berikut:
P = =(C. − ) mod N (7)
Seperti pada proses enkripsi, fungsi dekripsi akan menghitung suku ke-n dari fungsi deret Lucas dengan indeks n adalah kunci privat d dan C adalah ciphertext. Proses dekripsi akan menghasilkan pesan asli/plaintextP.
2.4 Steganografi
Istilah steganografi berasal dari bahasa Yunani, yaitu steganos yang berarti penyamaran atau penyembunyian dan graphein yang berarti tulisan. Jadi, steganografi bisa diartikan sebagai ilmu dan seni menyamarkan/menyembunyikan pesan tertulis ke dalam pesan lainnya. Steganografi menyembunyikan pesan dalam data lain tanpa mengubah data yang
ditumpanginya sehingga data yang ditumpanginya sebelum dan setelah proses penyembunyian hampir terlihat sama.
Steganografi yang bersifat “computer-based” bisa diterapkan dengan menggunakan berbagai media sebagai cover (media penyisipan). Media penyisipan merupakan suatu media untuk menyimpan pesan rahasia. Beberapa contoh media pemyimpan pesan rahasia yang digunakan dalam teknik steganografi antara lain adalah teks, audio, citra dan video.
Perbedaan mendasar antara steganografi dengan kriptografi terletak pada proses penyembunyian data dan hasil akhir proses tersebut. Kriptografi melakukan proses pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar acak dan berbeda dari aslinya. Sementara itu steganografi menyembunyikan data dalam data lain dengan cara menumpanginya tanpa mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat sama [4]. Perbedaan steganografi dan kriptografi terlihat pada Gambar 2.4.
Gambar 2.4 Perbedaan Steaganografi dan Kriptografi [1].
2.4.1 Steganografi End of File
Salah satu teknik dari steganografi adalah End of File. Teknik ini digunakan dengan cara menambahkan data diakhir file citra. Pada teknik ini, data atau file yang akan ditambahkan dapat lebih besar dari ukuran file citra[1].
Pesan yang disisipkan dengan metode ini jumlahnya tidak terbatas. Akan tetapi efek sampingnya adalah ukuran berkas menjadi lebih besar dari ukuran sebelumnya.
Perhitungan kasar ukuran file yang telah disisipkan pesan sama dengan ukuran file
sebelum disisipkan pesan ditambah dengan ukuran 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 [14][16].
Misalkan sebuah citra ukuran 10x6 memiliki nilai pixel seperti Gambar 2.5.
Gambar 2.5 Citra *bmp true color
200 42 97 182 101 40 24 88 63 112 67 200 100 50 75 50 121 42 91 109 25 150 65 200 75 28 56 90 83 100 156 46 77 19 25 189 84 210 78 33 101 34 213 40 101 60 80 111 143 77 44 66 99 125 190 200 31 80 92 111
Citra RGB tersebut akan disisipkan ciphertext “79 75 69”. Kemudian ciphertext
yang akan ditambahkan diberi karakter “&&&” dengan kode ASCII 38 sebagai penanda awal dan ÿÿÿ dengan kode ASCII 255 sebagai penanda akhir pesan. Selanjutnya sisipkan pesan di akhir citra, sehingga citra menjadi:
200 42 97 182 101 40 24 88 63 112 67 200 100 50 75 50 121 42 91 109 25 150 65 200 75 28 56 90 83 100 156 46 77 19 25 189 84 210 78 33 101 34 213 40 101 60 80 111 143 77 44 66 99 125 190 200 31 80 92 111 38 38 38 79 75 69 255 255 255 0
Gambar 2.6 Citra setelah disisip pesan
Dan matriks tersebut akan dipetakan kembali dalam bentuk citra baru seperti Gambar 2.6 yang disebut stego image [7]. Jika besar plaintext tidak memenuhi lebar pixel citra, maka akan ditambahkan nilai pixel 0 yang merepresentasi warna hitam.
2.5 Penelitian yang Relevan
Berikut adalah beberapa penelitian tentang algoritma kriptografi LUC dan steganografi End of File:
1. Pada penelitian yang dilakukan Irawan [7]. Penelitian yang bertujuan untuk merancang sebuah aplikasi yang mampu melakukan pengamanan pesan SMS pada telepon seluler berbasis android dengan menggunakan algoritma kriptografi LUC. Penelitian ini berhasil melakukan enkripsi dan dekripsi pesan teks yang terdiri dari huruf kapital.
2. Pada penelitian yang dilakukan Jauyah [8]. Penelitian ini bertujuan untuk membangun sebuah prototipe untuk aplikasi pengenalan telnet di lingkungan sistem operasi Linux dengan menggunakan sistem kriptografi LUC. Selain itu, peneliti juga melakukan perbandingan antara sistem kriptografi LUC dan RSA dari aspek pelaksanaan dan keselamatan, dan menyatakan bahwa sistem kripto LUC memiliki perbedaan yang tidak begitu signifikan dibandingkan dengan
sistem kripto RSA dan dapat dijadikan sebagai alternatif dengan kemampuan yang cukup baik [8].
3. Penelitian yang dilakukan oleh Wandani [16]. Penelitian ini berhasil mengkombinasikan algoritma kriptografi Rabin untuk mengenkripsi pesan berupa angka, lalu menyisipkan pesan kedalam sebuah citra berformat *bmp dengan teknik steganografi End of File.
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Algoritma Kriptografi LUC dan Steganogr afi End of File
3.1.1 Analisis Algor itma Kriptografi LUC
Algoritma kriptografi LUC merupakan algoritma kriptografi yang menggunakan kunci asimetris dan dibangun berdasarkan fungsi deret Lucas. Terdapat tiga proses utama dalam algoritma kriptografi LUC, yaitu pembangkitan kunci, enkripsi dan dekripsi.
3.1.1.1 Pembangkitan Kunci LUC
Langkah – langkah yang digunakan dalam proses pembangkitan kunci LUC adalah sebagai berikut:
5. Pilih dua buah bilangan prima acak besar p dan q, dimana p ≠ q dan gcd(p,q) = 1
Contoh:
Misalkan diketahui bilangan prima p = 13 dan q = 17
gcd(13,17) = 1 6. Hitung N = p . q Contoh: N = p.q = 13. 17 N = 221
7. Ambil kunci publik acak e dengan syarat e relatif prima terhadap
ϕ(N) =(p-1)(p+1)(q-1)(q+1) atau gcd(e, ϕ(N)) = 1
Contoh:
= (13 – 1) · (17 – 1) · (13 +1) · (17 +1) = 12 · 16 · 14 · 18
Φ (N) = 48384
• Pilih e secara acak dengan syarat gcd(e, Φ(N)) = 1
Misalkan e = 61, nilai memenuhi syarat karena gcd(61,48384) = 1
8. Hitung kunci dekripsi d dengan ketentuan
R(N)=lcm((p-1),(q-1),(p+1),(q-1)) dan de =1 mod R(N)
Contoh:
• Hitung nilai R(N) = lcm((12),(16),(14),(18))
R(N) = 1008
• Cari nilai dengan d·61 = 1 mod 1008 . proses pencarian nilai d dapat dilihat pada Tabel 3.1 dibawah ini
Tabel 3.1 Proses perhitungan kunci dekripsi d
d d. 61 (mod 1008) 1 61 2 122 3 283 ⋮ ⋮ 661 1
Jadi kunci privat d = 661. 3.1.1.2 Proses Enkr ipsi LUC
Dengan menggunakan kunci publik e yang telah dibangkitkan sebelumnya, maka proses enkripsi pesan plaintext menjadi ciphertext dengan algoritma kriptografi LUC adalah sebagai berikut:
1. Tentukan plaintext P dan ubah nilai P kedalam nilai ASCII Contoh:
2. Hitung ciphertext C dengan menggunakan rumus:
C = =(P − ) mod N
dimana indeks n adalah kunci publik e dan P adalah plaintext.
Sesuai dengan ketetapan pada fungsi deret Lucas, maka nilai = 2 dan = .
Contoh: Diketahui n = e = 61 N = 221 • Untuk P = 65 V0 = 2 V1 =P = 65 V2 = (P.V1 – V0)mod N = (65.65- 2) mod 221 = 24 ⋮ V97 = 143 • Untuk P = 75 V0 = 2 V1 =P = 75 V2 = (P.V1 – V0)mod N = (75.75 - 2) mod 221 = 98 ⋮ V97 = 98
• Untuk P = 85 V0 = 2 V1 =P = 85 V2 = (P.V1 – V0)mod N = (85.85 - 2) mod 221 = 151 ⋮ V97 = 34
Maka, ciphertext yang diperoleh adalah “143 98 34”
3.1.1.3 Proses Dekr ipsi LUC
Untuk mengembalikan ciphertext C menjadi pesan asli/plaintext P, maka dilakukan proses dekripsi dengan menggunakan kunci privat d. Langkah – langkah proses dekripsi dengan algoritma kriptografi LUC didefinisikan sebagai berikut:
1. Tentukan ciphertext C
Contoh:
Misalkan ciphertext C = 143 98 34
2. Hitung plaintext P dengan menggunakan rumus:
P = =(C − ) mod N
dimana indeks n adalah kunci publik d dan C adalah ciphertext.
Contoh: Diketahui n = d = 661 N = 221 • Untuk C = 143 V0 = 2 V1 =C = 143
V2 = (C.V1 – V0)mod N = (143. 143 - 2) mod 221 = ⋮ V181 = 65 = A • Untuk C = 98 V0 = 2 V1 =C = 98 V2 = (C.V1 – V0)mod N = (98. 98 - 2) mod 221 = 99 ⋮ V181 = 75 = K • Untuk C = 34 V0 = 2 V1 =C = 34 V2 = (C.V1 – V0)mod N = (34.34 - 2) mod 221 = 49 ⋮ V181 = 85 = U
Maka, plaintext yang diperoleh adalah “AKU”
3.1.2 Analisis Metode Steganogr afi End of File
Steganografi End of File merupakan metode steganografi dimana penyisipan pesan dilakukan pada akhir file, sehingga tidak akan mengganggu kualitas citra yang disisipi. Pada steganografi End of File terdapat dua proses utama, proses penyisipan pesan kedalam suatu file atau Embedding, dan proses pengambilan pesan dari suatu file atau Extraction. File yang digunakan sebagai media penyisipan disebut cover. Beberapa contoh media penyimpan pesan rahasia yang digunakan dalam teknik steganografi antara lain adalah teks, audio, citra dan video.
Pada penelitian ini, media yang digunakan sebagai cover adalah citra true color
berformat *bmp. Sedangkan pesan yang akan disisipkan merupakan pesan teks pada file berformat *txt atau *rtf yang sudah dienkripsi terlebih dahulu dengan algoritma kriptografi LUC.
3.1.2.1 Proses Embedding Steganografi End of File
Langkah - langkah pada proses penyisipan pesan atau Embedding dengan menggunakan metode steganografi End of File adalah sebagai berikut:
1. Input ciphertext yang akan disisipkan Contoh:
Ciphertext yang akan disisipkan adalah “143 98 34”
2. Pilih citra *bmp yang akan digunakan sebagai citra cover dan baca nilai tiap pixel
dari citra cover
Contoh:
Misalkan citra dengan ukuran 10 x 6 dengan nilai pixel
196 10 97 182 101 40 24 88 63 112 67 200 100 50 90 50 121 42 92 109 25 150 45 200 75 28 56 90 88 100 176 56 77 100 25 200 84 211 78 33 101 34 250 40 100 60 90 111 143 77 44 66 99 125 190 200 31 80 92 111
3. Tambahkan ciphertext pada akhir pixel citra, beri penanda sebagai awal dan akhir
ciphertext. Contoh:
Misalkan karakter penanda awal adalah “&&&” dengan nilai ASCII = 38 dan karakter penanda akhir adalah “ÿÿÿ” dengan nilai ASCII = 255
196 10 97 182 101 40 24 88 63 112 67 200 100 50 90 50 121 42 92 109 25 150 45 200 75 28 56 90 88 100 176 56 77 100 25 200 84 211 78 33 101 34 250 40 100 60 90 111 143 77 44 66 99 125 190 200 31 80 92 111 38 38 38 143 98 34 255 255 255 0
Jika besar plaintext tidak memenuhi lebar pixel citra, maka akan ditambahkan nilai pixel 0 yang merepresentasi warna hitam.
4. Petakan kembali menjadi sebuah citra baru. Citra baru yang telah disisipi
ciphertext ini disebut stego image atau citra stego.
196 10 97 182 101 40 24 88 63 112 67 200 100 50 90 50 121 42 92 109 25 150 45 200 75 28 56 90 88 100 176 56 77 100 25 200 84 211 78 33 101 34 250 40 100 60 90 111 143 77 44 66 99 125 190 200 31 80 92 111 38 38 38 143 98 34 255 255 255 0
3.1.2.2 Proses Extraction Steganografi End of File
Langkah - langkah pada proses pengambilan pesan atau Extraction dengan menggunakan metode steganografi End of File adalah sebagai berikut:
1. Inputkan citra stego dan baca nilai tiap pixel dari citra stego
Contoh:
196 10 97 182 101 40 24 88 63 112
25 150 45 200 75 28 56 90 88 100
176 56 77 100 25 200 84 211 78 33
101 34 250 40 100 60 90 111 143 77
44 66 99 125 190 200 31 80 92 111
38 38 38 143 98 34 255 255 255 0
2. Ambil nilai pixel awal karakter penanda sampai karakter penanda terakhir pada baris akhir pixel citra stego
Contoh:
38 38 38 143 98 34 255 255 255 0
3. Petakan menjadi ciphertext
Contoh :
Ciphertext berada diantara nilai karakter penanda awal “&&&” dan karakter penanda akhir “ÿÿÿ”, maka diperoleh ciphertext 143 98 34.
3.2 Analisis Sistem
3.2.1 Analisis Persyaratan (Requirement Analysis)
Analisis persyaratan tebagi menjadi dua, yaitu analisis persyaratan fungsional dan analisis persyaratan non fungsional.
3.2.1.1 Analisis Persyaratan Fungsional (Functional Requirement)
Analisis fungsional pada sistem adalah segala proses – proses yang dapat dilakukan oleh sistem. Pada penelitian ini persyaratan fungsional yang harus dipenuhi oleh sistem yaitu: 1. Melakukan proses enkripsi dan dekripsi suatu file berformat *txt dan *rtf dengan
algoritma kriptografi LUC
2. Melakukan proses penyisipan dan ekstraksi pesan teks kedalam dan dari citra true color berformat *bmp dengan metode steganografi End of File
3. Menyimpan citra stego dalam format *bmp
4. Membangkitkan kunci dengan menggunakan pembangkit bilangan prima Lehmann
3.2.1.2 Analisis Persyaratan Non Fungsional (Non Functional Requirement)
Analisis non fungsional yaitu menyangkut masalah kinerja, mudah untuk dipelajari dan digunakan, biaya, dokumentasi dan kontrol pada sistem.
1. Kinerja
Sistem yang dibangun dapat melakukan proses enkripsi pesan rahasia menggunakan algoritma kriptografi LUC untuk selanjutnya disisipkan kedalam sebuah file citra dengan metode steganografi End of File. Kemudian sistem dapat mengekstraksi kembali pesan rahasia dan melakukan proses dekripsi pesan rahasia menjadi pesan asli.
2. Mudah dipelajari dan digunakan
Sistem yang dibangun harus bersifat user friendly, yaitu memiliki tampilan yang sederhana agar dapat dengan mudah dipahami dan digunakan oleh pengguna (user).
3. Hemat biaya
Sistem yang yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya yang besar.
4. Dokumentasi
Sistem dapat menunjukkan waktu dari setiap proses yang dikerjakan (enkripsi, dekripsi, penyisipan dan ekstraksi) serta menyimpan hasil penyisipan ciphertext ke dalam sebuah citra, yaitu stego image dalam format *bmp.
5. Kontrol
Sistem yang dibangun memiliki kontrol pada beberapa fungsinya, sehingga untuk melakukan suatu fungsi, user terlebih dahulu harus menginputkan data-data yang diperlukan untuk menjalankan fungsi tersebut. Misalkan user ingin melakukan proses
embed tanpa memilih citra cover terlebih dahulu maka fungsi embed akan tetap
disable. Setelah user memilih citra cover fungsi embed akan menjadi enable.
3.2.2 Analisis Masalah
Analisis masalah akan digambarkan dengan diagram Ishikawa (fishbone diagram) atau biasa juga disebut dengan cause and effect diagram, dimana masalah utama yang diangkat pada penelitian ini adalah masalah keamanan pesan.
Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Seperti yang terlihat pada Gambar 3.1, bagian segiempat yang paling kanan merupakan bagian kepala yang menunjukkan masalah utama penelitian. Sementara itu empat buah segiempat yang lainnya menunjukkan kategori masalah.
3.3 Perancangan Sistem 3.3.1 Flowchart Sistem
Flowchart atau diagram alir merupakan bagan yang terdiri dari simbol – simbol tertentu untuk menunjukkan alur kerja atau langkah – langkah dalam penyelesaian suatu masalah di dalam sistem. Pada sistem yang dibangun ini terdapat beberapa proses yang akan direpresentasikan dengan flowchart, seperti proses pembangkitan kunci, enkripsi dan penyisipan pesan, serta ekstraksi dan dekripsi.
3.3.1.1 Flowchart Proses Pembangkitan Kunci
Sebelum melakukan proses enkripsi dan dekripsi, telebih dahulu dilakukan proses pembangkitan kunci. Pada proses ini nantinya akan dihasilkan nilai N, kunci publik e dan kunci privat d. Proses pembangkitan kunci dapat dilihat pada flowchart seperti Gambar 3.2.
3.3.1.2 Flowchart Proses Enkripsi/Penyisipan
Pada proses enkripsi dan penyisipan, user terlebih dahulu akan mengenkripsi pesan dengan kriptografi LUC dan menghasilkan ciphertext yang kemudian akan disisipkan kedalam sebuah citra dengan metode steganografi end of file sehingga menghasilkan
stego image. Langkah – langkah pada proses ini direpresentasikan kedalam sebuah
flowchart seperti yang telihat pada Gambar 3.3
3.3.1.3 Flowchart Proses Ekstr aksi/Dekripsi
Pada proses ekstraksi dan dekripsi, ciphertext akan diambil kembali dari stego image.
Selanjutnya ciphertext akan didekripsi sehingga menghasilkan plaintext atau pesan asli. Langkah – langkah pada proses dapat dilihat pada flowchart seperti pada Gambar 3.4.
3.3.1.4 Flowchart Lehmann Prime Generator
Pada proses pembangkitan kunci sebelumnya, kita akan memerlukan bilangan prima.