Kriteria steganografi yang bagus sebagai berikut: 1.
Fidelity, mutu citra yang menampung data tidak jauh berubah. 2.
Robustness, pesan yang disembunyikan harus tahan robust terhadap berbagai operasi manipulasi yang dilakukan pada stego-object, seperti pengubahan kontras,
penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan cropping, enkripsi dan sebagainya.
3. Recovery, data yang disembunyikan harus dapat diungkapkan kembali recovery.
[14]
2.10 Least Significant Bit
Metode least significant bit, digunakan citra digital sebagai media penyamar atau cover-object
. Pada setiap byte dari piksel citra, terdapat bit yang paling kecil bobotnya Least Significant Bit atau LSB.[2]
Metode ini bekerja dengan cara mengganti bit terakhir dari masing-masing pixel
dengan pesan yang akan disisipkan. LSB mempunyai kelebihan yakni ukuran gambar tidak akan jauh berubah. Sedangkan kekurangannya adalah pesandata yang
akan disisipkan terbatas, sesuai dengan ukuran citra.[1]
Sebagai contoh akan disisipkan A kedalam sebuah sebuah citra. Nilai A dalam ASCII adalah 65. Kemudian nilai ASCII A diubah menjadi biner yaitu 01000001.
Piksel citra yang akan disisipkan teks yaitu 00000001, 00000110, 00000101, 00000011, 00000111, 00000100, 00000111, 00000100. Tabel 1 menunjukkan hasil
dari penyisipan.
Tabel 2.2.
Tabel proses penyisipan Least Significant Bit LSB Biner Piksel Citra
Biner Huruf A Piksel Citra Yang berubah
00000001 0000000
00000110 1
0000011
1
00000101 0000010
00000011 0000001
00000111 0000011
Universitas Sumatera Utara
00000100 0000010
00000111 0000011
00000100 1
0000010
1
2.11 Fungsi Linier
Suatu korespondensi �, � antara dua himpunan bilangan yang memasangkan
sebarang bilangan x dari himpunan pertama sengan tepat satu bilangan y dari himpunan kedua disebut suatu fungsi.[8]
Untuk rumus umum persamaan linier ditulis sebagai berikut [9]: �� = �� + � .............................................................................................5
kemiringan garis adalah m , b merupakan perpotongan sumbu y.[9]
Sebagai contoh, misalkan nilai m= 1 dan b=2, sehingga: �� = �� + �
�� = 1� + 2 �� = � + 2
Universitas Sumatera Utara
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem merupakan tahapan awal yang digunakan untuk mengetahui kebutuhan sistem. Pada tahapan analisis sistem memilih kebutuhan yang paling sesuai
untuk sistem yang sangat penting dalam pengembanga sistem tersebut.
3.1.1. Analisis Masalah
Analisis masalah yang akan dilakukan adalah bagaimana cara mengenkripsi pesan rahasia dengan format txt dengan menggunakan algoritma ElGamal, kemudian pesan
rahasia disisipkan ke dalam gambar dengan format bmp dengan menggunakan teknik penyisipan least significant bit LSB berdasarkan fungsi linier. Masalah pada
penelitian ini secara umum ditunjukkan dengan menggunakan diagram Ishikawa pada Gambar 3.1.
Gambar 3.1
Diagram Ishikawa
3.1.2. Analisis Kebutuhan
Analisis kebutuhan pada suatu sistem terdiri dari 2 dua macam yaitu analisis kebutuhan fumgsional dan analisis kebutuhan non fungsional.
Universitas Sumatera Utara
a. Analisis Kebutuhan Fungsional
Pada analisis kebutuhan berisikan proses-proses apa saja yang terdapat pada sistem. Dalam aplikasi pengamanan pesan rahasia dengan menggunakan
algoritma kriptografi Elgamal dan teknik steganografi least significant bit berdasarkan fungsi linier ini memiliki analisis kebutuhan fungsional sebagai
berikut: 1.
Melakukan proses enkripsi dan dekripsi. Pada proses ini dibutuhkan pesan rahasia berformat txt dan input langsung dari sistem serta kunci publik
dan kunci private untuk melakukan enkripsi dan dekripsi pada pesan rahasia.
2. Melakukan proses embedding penyisipan dan extraction pengembalian
pesan. Pada proses ini dibutuhkan gambar berformat bmp yang digunakan sebagai cover image untuk penyisipan pesan ke dalam gambar.
3. Algoritma yang digunakan dalam melakukan proses enkripsi dan dekripsi
adalah algoritma kriptografi ElGamal, sedangkan teknik yang digunakan dalam penyisipan pesan ke dalam gambar adalah teknik steganografi least
significant bit LSB berdasarkan fungsi linier.
4. Menyimpan file baru yaitu hasil dari prosese embedding dan dekrtpsi.
Setelah melakukan enkripsi maka hasil pesan yang dienkripsi disisipkan ke dalam sebuah citra kemudian disimpan dalam format bmp atau setelah
melakukan extraction pengembalian pesan maka pesan tersebut didekripsi untuk mendapatkan pesan asli yang kemudian disimpan dengan
format txt.
b. Analisis Kebutuhan Non Fungsional
Pada analisis kebutuhan non fungsional tidak secara langsung terkait dengan fitur yang terdapat pada sistem. analisis kebutuhan non fungsional memberikan
batasan-batasan pada sistem. Analisis kebutuhan non fungsional terdapat pada sistem ini meliputi:
1. Perfomance, aplikasi yang dibangun dapat melakukan proses enkripsi dan
dekripsi dengan algoritma ElGamal serta dapat melakukan proses embedding
dan extraction dengan teknik steganografi least significant bit LSB berdasarkan fungsi linier.
Universitas Sumatera Utara
2. Documentacy, apllikasi dapat menyimpan hasil penyisipan dengan format
bmp dan menyimpan hasil dekripsi dengan format txt. 3.
User friendly, aplikasi yang dibangun harus mudah digunakan oleh pengguna user dan responsif.
4. Cost, aplikasi yang dibangun tidak memerlukan biaya tambahan karena
tidak memerlukan perangkat tambahan pendukung seperti perangkat keras pendukung atau layanan internet dan lain sebagainya.
3.1.3. Analisis Proses
Dalam sistem ini terdapat empat proses utama yaitu enkripsi penyandian pesan, dekripsi pemulihan pesan , embedding penyisipan pesan, dan extraction
pengembalian pesan. Pada teknik steganografi least significant bit dimodifikasi dengan menggunakan fungsi linier dalam pemilihan letak pixel yang akan disisipkan
pesan rahasia. Begitupula dalam melakukan pengembalian pesan, fungsi linier digunakan untuk menentukan letak pixel dari gambar yang akan diekstrak.
a. Analisis Proses Enkripsi dengan Algoritma ElGamal
Untuk melakukan proses enkripsi dengan algoritma ElGamal dibutuhkan kunci-kunci yang digunakan untuk penyadian pesan rahasia. Berikut ini adalah
proses pembangkitan kunci pada algoritma ElGamal: 1.
Pilih sembarang bilangan prima � 255. Misalkan nilai bilangan prima yang dipilih adalah 257.
2. Pilih dua bilangan acak g dan x, dengan syarat � � dan � �.
Contoh: � = 3 dan � = 4.
3. Hitunglah nilai � = �
�
��� � dengan nilai x adalah kunci private. Contoh:
� = �
�
��� � � = 3
4
��� 257 � = 81 ��� 257
� = 81
Universitas Sumatera Utara
Setelah melakukan pembangkitan kunci dapat dilakukan proses enkripsi. Proses Enkripsi ElGamal menggunakan kunci publik
�, � dan �. Berikut proses enkripsi algoritma ElGamal:
1. Susunlah plainteks menjadi blok-blok �
1,
�
2,
�
3,…
. Kemudian setiap blok huruf diubah menjadi bilangan ASCII.
Contoh: Plaintext :
DINY →�
1
= � → ubah menjadi bilangan ASCII yaitu 68
�
2
= � → ubah menjadi bilangan ASCII yaitu 73
�
3
= � → ubah menjadi bilangan ASCII yaitu 78
�
4
= � → ubah menjadi bilangan ASCII yaitu 89
2. Pilih Bilangan acak k dengan syarat 0 ≤ � ≤ � − 2, maka 0 ≤ � ≤ 257 −
2 → 0 ≤ � ≤ 255.
Contoh: � = 7.
3. Setiap blok m dienkripsikan dengan rumus:
�
1
= �
�
��� � �
2
= �
�
� ��� �
Contoh: �
1
= �
�
��� � �
1
= 3
7
��� 257 �
1
= 2187 ��� 257
�
1
= 131 �
2
= �
�
� ��� � �
21
= �
�
�
1
��� � = 81
7
× 68 ��� 257
= 22876792454961 × 68 ��� 257
= 1555621886937348 ��� 257
= 22 �
22
= �
�
�
2
��� � = 81
7
× 73 ��� 257
= 22876792454961 × 73 ��� 257
= 1670005849212153 ��� 257
Universitas Sumatera Utara
= 137 �
23
= �
�
�
3
��� � = 81
7
× 78 ��� 257
= 22876792454961 × 78 ��� 257
= 1784389811486958 ��� 257
= 252 �
24
= �
�
�
4
��� � = 81
7
× 89 ��� 257
= 22876792454961 × 89 ��� 257
= 2036034528491529 ��� 257
= 248 b.
Analisis Proses Dekripsi dengan Algoritma Elgamal Proses dekripsi ElGamal menggunakan kunci publik
� dan kunci private �. Berikut proses dekripsi algoritma ElGamal:
1. Hitunglah �
1 �
−1
dengan rumus: �
1 �
−1
= �
1 �−1−�
��� � Contoh:
�
1 �
−1
= �
1 �−1−�
��� � = 131
257−1−4
��� 256 = 131
252
��� 257 = 190
2. Gunakan kunci private � dan kunci publik � untuk mendekripsi ciphertext
� dan � menjadi plaintext � dengan rumus: � = [�
2
× �
� −1
��� �] Contoh:
�
1
= ��
21
× �
� −1
��� �� = [22 × 190
��� 257] = 4180
��� 257 = 68 �
2
= ��
22
× �
� −1
��� �� = [137 × 190
��� 257] = 26030
��� 257 = 73 �
3
= ��
23
× �
� −1
��� �� = [252 × 190
��� 257]
Universitas Sumatera Utara
= 47880 ��� 257 = 78
�
4
= ��
24
× �
� −1
��� �� = [248 × 190
��� 257] = 47120
��� 257 = 89 3.
Ubahlah plaintext � menjadi huruf alfabet dengan menggunakan tabel ASCII.
�
1
= 68 → dalam ASCII yaitu D
�
2
= 73 → dalam ASCII yaitu I
�
3
= 78 → dalam ASCII yaitu N
�
4
= 89 → dalam ASCII yaitu Y
c. Analisis Proses Embedding dengan Fungsi Linier
Dalam melakukan proses embedding diperlukan sebuah citra yang berformat bmp sebagai coverimage untuk penyisipan pesan. Dikarenakan penyisipan
pesan yang dilakukan sesuai dengan titik pixel yang didapat dari perhitungan fungsi linier maka citra yang digunakan memerlukan batasan untuk ukuran
pixelnya. Ukuran pixel minimum dapat dihitung dengan cara:
�����ℎ ���ℎ������ = �����ℎ ���� ���ℎ������ + 1 ��� ������� × 8 ����� ����� ������� = �����ℎ ���ℎ������ ��� 3
����� ���� ������� = ������ℎ ���ℎ������ − ����� ����� ������� ÷ 3� ����� ������� = �����ℎ ����� ������� + 2 ����� �����
Misalkan blok ciphertext “ 131 22 131 137 131 252 131 248 ” akan membutuhkan resolusi cover image sebesar:
�����ℎ ���ℎ������ = 8 + 1 × 8 = 72 ����� ����� ������� = 72 ��� 3 = 0
�����ℎ ����� ���� ���� ������� = 72 − 0 ÷ 3 = 24
Didapat jumlah pixel yang akan disisip yaitu 24, maka pixel minimum adalah 24 + 2 = 26.
Universitas Sumatera Utara
Berikut ini contoh proses embedding berdasarkan fungsi linier: 1.
Ubah nilai ciphertext ke biner yang ditunjukkan pada Tabel 3.1.
Tabel 3.1
Biner Ciphertext �
1
�
2
Biner �
1
Biner �
2
131 22
10000011 00010110
131 137
10000011 10001001
131 252
10000011 11111100
131 248
10000011 11111000
Ciphertext yang disisipkan ditambahkan tanda “” pada akhir
ciphertext sebagai pembatas pada proses penyisipan sehingga pada saat
proses ektraksi dapat diketahui batas proses ekstrasi. Nilai desimal dari “” adalah 42 dengan nilai biner 00101010.
2. Pilih sembarang nilai m dan b. Misalkan nilai � = 1 dan � = 1, maka
hitung �� = �� + �. Karena jumlah pixel yang akan disisipkan
sebanyak 34 maka nilai x yang digunakan rentang dari 0 sampai 33. � = 0 → �� = �� + � = 1. � + 1 = 2 → 0,1
� = 1 → �� = �� + � = 1. � + 1 = 2 → 1,2 � = 2 → �� = �� + � = 1. � + 1 = 2 → 2,3
� = 3 → �� = �� + � = 1. � + 1 = 2 → 3,4 � = 4 → �� = �� + � = 1. � + 1 = 2 → 4,5
� = 5 → �� = �� + � = 1. � + 1 = 2 → 5,6 � = 6 → �� = �� + � = 1. � + 1 = 2 → 6,7
� = 7 → �� = �� + � = 1. � + 1 = 2 → 7,8 � = 8 → �� = �� + � = 1. � + 1 = 2 → 8,9
� = 9 → �� = �� + � = 1. � + 1 = 2 → 9,10 � = 10 → �� = �� + � = 1. � + 1 = 2 → 10,11
� = 11 → �� = �� + � = 1. � + 1 = 2 → 11,12 � = 12 → �� = �� + � = 1. � + 1 = 2 → 12,13
� = 13 → �� = �� + � = 1. � + 1 = 2 → 13,14 � = 14 → �� = �� + � = 1. � + 1 = 2 → 14,15
Universitas Sumatera Utara
� = 15 → �� = �� + � = 1. � + 1 = 2 → 15,16 � = 16 → �� = �� + � = 1. � + 1 = 2 → 16,17
� = 17 → �� = �� + � = 1. � + 1 = 2 → 17,18 � = 18 → �� = �� + � = 1. � + 1 = 2 → 18,19
� = 19 → �� = �� + � = 1. � + 1 = 2 → 19,20 � = 20 → �� = �� + � = 1. � + 1 = 2 → 20,21
� = 21 → �� = �� + � = 1. � + 1 = 2 → 21,22 � = 22 → �� = �� + � = 1. � + 1 = 2 → 22.23
� = 23 → �� = �� + � = 1. � + 1 = 2 → 23,24
3. Misalkan terdapat citra berukuran 30 x 30 pixel, diambil nilai pixel sesuai
dengan fx yang telah dihitung. Nilai pixel tersebut ditunjukan pada Tabel 3.2.
Tabel 3.2
Biner Pixel Titik
pixel Nilai
RGB Biner RGB
Titik pixel
Nilai RGB
Biner RGB
0,1 R:124
G:57 B:92
R: 01111100 G: 00111001
B: 01011100 12,13
R:106 G:109
B:119 R: 01101010
G: 01101101 B: 01110111
1,2 R:45
G:54 B:50
R: 00101101 G: 00110110
B: 00110010 13,14
R:109 G:90
B:93 R: 01101101
G: 01011010 B: 01011101
2,3 R:47
G:61 B:49
R: 00101111 G: 00111101
B: 00110001 14,15
R:148 G:118
B:118 R: 10010100
G:0 1110110 B: 01110110
3,4 R:66
G:74 B:64
R: 01000010 G: 01001010
B: 01000000 15,16
R:225 G:180
B:168 R: 11100001
G: 10110100 B: 10101000
4,5 R:72
G:81 B:70
R: 01001000 G: 01010001
B: 01000110 16,17
R:223 G:179
B:160 R: 11011111
G: 10110011 B: 10100000
5,6 R:84
R: 01010100 17,18 R:233
R: 11101001
Universitas Sumatera Utara
G:93 B:82
G: 01011101 B: 01010010
G:186 B:160
G: 10111010 B: 10100000
6,7 R:95
G:102 B:88
R: 01011111 G: 01100110
B: 01011000 18,19
R:141 G:142
B:122 R: 10001101
G: 10001110 B: 01111010
7,8 R:110
G:113 B:101
R: 01101110 G: 01110001
B: 01100101 19,20
R:149 G:149
B:132 R: 10010101
G: 10010101 B: 10000100
8,9 R:108
G:110 B:95
R: 01101100 G: 01101110
B: 01011111 20,21
R:155 G:155
B:139 R: 10011011
G: 10011011 B: 10001011
9,10 R:46
G:48 B:38
R: 00101110 G: 00110000
B: 00100110 21,22
R:107 G:108
B:94 R: 01101011
G: 01101100 B: 01011110
10,11 R:28
G:29 B:20
R: 00011100 G: 00011101
B: 00010100 22,23
R:30 G:34
B:24 R: 00011110
G: 00100010 B: 00011000
11.12 R:108
G:115 B:130
R: 01101100 G: 01110011
B: 10000010 23,24
R:31 G:36
B:26 R: 00011111
G: 00100100 B: 00011010
4. Kemudian sisipkan biner ciphertext pada biner pixel. Setelah biner
ciphertext disisipkan ke biner pixel dari gambar, kemudian biner hasil
penyisipan tersebut di ubah kembali ke desimal yang tunjukan pada Tabel 3.3.
Tabel 3.3
Penyisipan Pesan Titik
pixel Biner RGB
Nilai RGB
Titik pixel
Biner RGB Nilai
RGB 0,1
R: 0111110
1
G: 0011100 B: 0101110
R:125 G:56
B:92 12,13 R: 0110101
G: 0110110 B: 0111011
1
R:106 G:108
B:119
Universitas Sumatera Utara
1,2 R: 0010110
G: 0011011 B: 0011001
R:44 G:54
B:50 13,14 R: 0110110
1
G: 0101101
1
B: 0101110
1
R:109 G:91
B:93 2,3
R: 0010111
1
G: 0011110
1
B: 0011000 R:47
G:61 B:48
14,15 R: 1001010
1
G: 0111011
1
B: 0111011
1
R:149 G:119
B:119 3,4
R: 0100001 G: 0100101
B: 0100000
1
R:66 G:74
B:65 15,16 R: 1110000
1
G: 1011010 B: 1010100
R:225 G:180
B:168 4,5
R: 0100100 G: 0101000
1
B: 0100011
1
R:72 G:81
B:71 16,17 R: 1101111
1
G: 1011001 B: 1010000
R:223 G:178
B:160 5,6
R: 0101010 G: 0101110
1
B: 0101001 R:84
G:93 B:82
17,18 R: 1110100 G: 1011101
B: 1010000 R:232
G:186 B:160
6,7 R: 0101111
G: 0110011 B: 0101100
R:94 G:102
B:88 18,19 R: 1000110
1
G: 1000111
1
B: 0111101
1
R:141 G:143
B:123 7,8
R: 0110111 G: 0111000
1
B: 0110010
1
R:110 G:113
B:101 19,20 R: 1001010
1
G: 1001010
1
B: 1000010
1
R:149 G:149
B:133 8,9
R: 0110110
1
G: 0110111 B: 0101111
R:109 G:110
B:94 20,21 R: 1001101
G: 1001101 B: 1000101
1
R:154 G:154
B:139 9,10 R: 0010111
G: 0011000
1
B: 0010011 R:46
G:49 B:38
21,22 R: 0110101
1
G: 0110110 B: 0101111
R:107 G:108
B:94 10,11 R: 0001110
G: 0001110
1
B: 0001010
1
R:28 G:29
B:21 22,23 R: 0001111
1
G: 0010001 B: 0001100
1
R:31 G:34
B:25 11.12 R: 0110110
G: 0111001 R:108
G:114 23,24 R: 0001111
G: 0010010
1
R:30 G:37
Universitas Sumatera Utara
B: 1000001 B:130
B: 0001101 B:26
d. Analisis Proses Extraction dengan Fungsi Linier
Berikut ini proses extraction dengan fungsi linier: 1.
Pilih bilangan untuk nilai m dan b. Misalkan � = 1 dan � = 1. Kemudian dilakukan perhitungan
�� = �� + �. Untuk mendapatkan titik pixel yang telah disisip. Titik pixel dihitung
sebanyak jumlah pixel dari gambar. 2.
Kemudian pixel yang telah disisip diubah ke dalam bilangan biner seperti yang ditunjukan pada Tabel 3.4.
Tabel 3.4
Pengubahan Biner Pixel Titik
pixel Nilai
RGB Biner RGB
Titik pixel
Nilai RGB
Biner RGB
0,1 R:125
G:56 B:92
R: 01111101 G: 00111000
B: 01011100 12,13
R:106 G:108
B:119 R: 01101010
G: 01101100 B: 01110111
1,2 R:44
G:54 B:50
R: 00101100 G: 00110110
B: 00110010 13,14
R:109 G:91
B:93 R: 01101101
G: 01011011 B: 01011101
2,3 R:47
G:61 B:48
R: 00101111 G: 00111101
B: 00110000 14,15
R:149 G:119
B:119 R: 10010101
G: 01110111 B: 01110111
3,4 R:66
G:74 B:65
R: 01000010 G: 01001010
B: 01000001 15,16
R:225 G:180
B:168 R: 11100001
G: 10110100 B: 10101000
4,5 R:72
G:81 B:71
R: 01001000 G: 01010001
B: 01000111 16,17
R:223 G:178
B:160 R: 11011111
G: 10110010 B: 10100000
5,6 R:84
G:93 B:82
R: 01010100 G: 01011101
B: 01010010 17,18
R:232 G:186
B:160 R: 11101000
G: 10111010 B: 10100000
Universitas Sumatera Utara
6,7 R:94
G:102 B:88
R: 01011110 G: 01100110
B: 01011000 18,19
R:141 G:143
B:123 R: 10001101
G: 10001111 B: 01111011
7,8 R:110
G:113 B:101
R: 01101110 G: 01110001
B: 01100101 19,20
R:149 G:149
B:133 R: 10010101
G: 10010101 B: 10000101
8,9 R:109
G:110 B:94
R: 01101101 G: 01101110
B: 01011110 20,21
R:155 G:154
B:138 R: 10011011
G: 10011010 B: 10001010
9,10 R:46
G:49 B:38
R: 00101110 G: 00110001
B: 00100110 21,22
R:106 G:108
B:94 R: 01101010
G: 01101100 B: 01011110
10,11 R:28
G:29 B:21
R: 00011100 G: 00011101
B: 00010101 22,23
R:31 G:34
B:25 R: 00011111
G: 00100010 B: 00011001
11.12 R:108 G:114
B:130 R: 01101100
G: 01110010 B: 10000010
23,24 R:30
G:37 B:26
R: 00011110 G: 00100101
B: 00011010
3. Kemudian diambil angka terakhir dari biner pixel untuk mengetahui
pesan yang telah disisip yaitu 10000011, 00010110, 10000011, 10001001, 10000011, 11111100, 10000011, 11111000, 00101010.
4. Setelah nilai biner yang disisip diperoleh, maka nilai biner tersebut
diubah kedalam bentuk desimal seperti yang ditunjukan pada Tabel 3.5.
Tabel 3.5
Desimal Ciphertext Biner
�
1
Biner �
2
�
1
�
2
10000011 00010110
131 22
10000011 10001001
131 137
10000011 11111100
131 252
10000011 11111000
131 248
Universitas Sumatera Utara
Pada biner 00101010 didapat nilai desimal yaitu 42, maka proses ekstraksi selesai.
3.2. Pemodelan Sistem