Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
i Universitas Kristen Maranatha
PENGKODEAN CITRA MENJADI DUA BUAH CITRA BAYANG
DAN PENDEKODEAN MENJADI CITRA ASAL
Disusun Oleh:
Albert Tanama
0622016
Email : alfonsusalberttanama@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164, Indonesia
ABSTRAK
Kriptografi visual merupakan salah satu perluasan dari secret sharing yang diimplementasikan untuk suatu citra. Seperti halnya teknik kriptografi yang lain, visual kriptografi memiliki persyaratan kerahasiaan, integritas data, otentikasi dan nirpenyangkalan.
Kriptografi visual yaitu teknik kriptografi data berupa gambar atau citra dengan membagi gambar tersebut menjadi beberapa bagian. Setiap bagian gambar tersebut adalah subset dari gambar awalnya. Jika dihasilkan n bagian dalam proses enkripsi, maka jika hanya terdapat n-1 bagian, gambar tidak dapat didekripsi. Tujuan awal penggunaan metode ini yaitu untuk membuat sebuah model kriptografi data berupa gambar atau citra yang dapat didekripsi tanpa bantuan komputer.
Pada Tugas Akhir ini skema yang digunakan (2,2), sebuah citra rahasia akan dilakukan pengkodean menjadi dua buah citra bayang lalu pada proses pendekodean dilakukan dengan menumpuk dua buah citra bayang tersebut untuk mendapatkan pesan berupa citra rahasia tersebut
Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
ii Universitas Kristen Maranatha
IMAGE CODING INTO TWO IMAGE SHARES AND DECODING
TO ORIGINAL IMAGE
Disusun Oleh:
Albert Tanama
0622016
Email : alfonsusalberttanama@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164, Indonesia
ABSTRACT
Visual Cryptography is one extension of secret sharing implemented for an image. Like the other cryptographic techniques, visual cryptography has confidentiality
requirements, data integrity, authentication and non-repudiation.
Visual cryptography is a cryptographic technique data such as pictures or images by dividing the image into several parts. Each section image is a subset of the first image. If the resulting N part in the encryption process, so if there are only N-1 parts, images cannot be decryption. The purpose of the use of this method is to create a model of cryptographic data such as pictures or images that can be decryption without any helps from computer.
In this final scheme used (2.2), a secret image will be encoding into two share images and the decoding process is done by stacking two share images in order to get the message in the form of the secret image.
Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
v Universitas Kristen Maranatha
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah ………..1I.2 Identifikasi Masalah ……….2
I.3 Perumusan Masalah ……….2
I.4 Tujuan ……….3
I.5 Pembatasan Masalah ………3
I.6 Metodologi ………..3
I.7 Sistematika Penulisan ………..4
BAB II LANDASAN TEORI
II.1 Definisi Kriptografi ……….6II.2 Terminologi ……….7
II.3 Tujuan Kriptografi………..14
II.4 Pengenalan Kriptografi Visual ………...16
II.5 Cara Kerja Kriptografi Visual ………18
Penkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
vi Universitas Kristen Maranatha
II.7 Pengembangan Kriptografi Visual ……….21
BAB III PERANCANGAN PERANGKAT LUNAK
III.1 Diagram Blok Perangkat Lunak ………26III.2 Perancangan Perangkat Lunak ………..27
III.3 Prosedur Proses Enkripsi………29
III.4 Prosedur Proses Dekripsi………34
BAB IV HASIL PERCOBAAN DAN ANALISIS DATA
IV.1 Hasil Pengujian dan Analisis Data ……….35BAB V
KESIMPULAN DAN SARAN
V.1 Kesimpulan……….53V.2 Saran ………..54
DAFTAR PUSTAKA
………55Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
vii Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar II.1 Pesan Plainteks Menjadi Cipherteks ... 7
Gambar II.2 Contoh enkripsi data tertentu di dalam arsip basisdata ... 9
Gambar II.3 (a)Skema enkripsi dan dekripsi, (b) contoh ilustrasi enkripsi dan dekripsi ... 11
Gambar II.4 Codebreaker ... 13
Gambar II.5 .. Kriptografi dan kriptanalisis adalah cabang bidang Ilmu kritologi ... 15
Gambar II.6 .. Contoh Kriptografi Visual... 17
Gambar II.7 .. Cara Kerja Kriptografi Visual ...19
Gambar II.8 .. Contoh Penggunaan Skema k dari n (k = 2, n = 3) ... 20
Gambar II.9 .. Model Kriptografi Visual 2 subpixel...21
Gambar II.10 Pembentukan Subpixel dengan m = 4……… 22
Gambar IV.1 Tabel Hasil Pengujian Kriptografi Visual 2 subpixel skema (2,2)……… 38
Gambar IV.2 Tabel Hasil Pengujian Kriptografi Visual 2 subpixel skema (2,2)……… 42
Gambar IV.2 Tabel Hasil Pengujian Kriptografi Visual 4 subpixel skema (2,2)……… 47
1 -A
LAMPIRAN A
Program Visual Kriptografi 2 subpixel
Main.m
% Program pembentukan skema kriptografi visual (2,2) 2 subpixel
% Input citra untuk program ini harus berupa citra biner
inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);
%Visual Cryptography
[share1, share2, share12] = VisCrypt(inImg);
%Outputs
figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);
figure;imshow(share12);title(‘Overlapping Share 1 & 2’);
imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);
GenerateShare.m
% Program untuk mengacak permutasi generasi share
% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel
2 -A
out = zeros(size(in));
randNumber = floor(1.9*rand(1));
if (randNumber == 1) out = in;
3 -A
% share12 – Hasil overlapped share 1 dan share 2
function [share1, share2, share12] = VisCrypt(inImg)
s = size(inImg);
share1 = zeros(s(1), (2 * s(2))); share2 = zeros(s(1), (2 * s(2)));
%White Pixel Processing
%White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0];
pixShare=generateShare(s0a,s0b);
share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end
%Black Pixel Processing
%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 0];
4 -A [x y] = find(inImg == 0);
len = length(x);
for i=1:len a=x(i);b=y(i);
pixShare=generateShare(s1a,s1b);
share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end
share12=bitxor(share1, share2); share12 = ~share12;
5 -A Main.m
% Program pembentukan skema kriptografi visual (2,2) 2 subpixel
% Input citra untuk program ini harus berupa citra biner
inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);
%Visual Cryptography
[share1, share2, share12] = VisCrypt(inImg);
%Outputs
figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);
figure;imshow(share12);title(‘Overlapping Share 1 & 2’);
imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);
GenerateShare.m
% Program untuk mengacak permutasi generasi share
% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel
function out = generateShare(a,b)
6 -A
out = zeros(size(in));
randNumber = floor(1.9*rand(1));
if (randNumber == 1) out = in;
elseif (randNumber == 0) a(1) = a2;
7 -A s = size(inImg);
share1 = zeros(s(1), (2 * s(2))); share2 = zeros(s(1), (2 * s(2)));
%White Pixel Processing
%White Pixel share combinations disp('White Pixel Processing...'); s1a=[0 1];
pixShare=generateShare(s0a,s0b);
share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end
%Black Pixel Processing
%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[0 1];
s0b=[1 0];
8 -A for i=1:len
a=x(i);b=y(i);
pixShare=generateShare(s1a,s1b);
share1((a),(2*b-1):(2*b))=pixShare(1,1:2); share2((a),(2*b-1):(2*b))=pixShare(2,1:2); end
share12=bitxor(share1, share2); share12 = ~share12;
1 - B
LAMPIRAN B
Program Visual Kriptografi 4 subpixel
Main.m
% Program pembentukan skema kriptografi visual (2,2) 4 subpixel
% Input citra untuk program ini harus berupa citra biner
inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);
%Visual Cryptography
[share1, share2, share12] = VisCrypt(inImg);
%Outputs
figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);
figure;imshow(share12);title(‘Overlapping Share 1 & 2’);
imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);
GenerateShare.m
% Program untuk mengacak permutasi generasi share
% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel
2 - B a1 = a(1);
a2 = a(2); a3 = a(3); a4 = a(4);
b1 = b(1); b2 = b(2); b3 = b(3); b4 = b(4);
in = [a ; b ];
out = zeros(size(in));
randNumber = floor(1.9*rand(1));
if (randNumber == 0) out = in;
elseif (randNumber == 1) a(1) = a2;
a(2) = a1; a(3) = a4; a(4) = a3;
3 - B b(4) = b3;
out = [a ; b ]; end
Viscrypt.m
%Kegunaan:
%Input: inImg – Sebuah citra biner
%Output: share 1 - Generated share 1
% share 2 - Generated share 2
% share12 – Hasil overlapped share 1 dan share 2
function [share1, share2, share12] = VisCrypt(inImg)
s = size(inImg);
share1 = zeros(2*s(1), (2 * s(2))); share2 = zeros(2*s(1), (2 * s(2)));
%%White Pixel Processing %White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0;0 1];
s1b=[1 0;0 1];
4 - B for i=1:len
a=x(i)*2;b=y(i)*2;
pixShare=generateShare(s1a,s1b);
share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);
end
%Black Pixel Processing
%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 0;0 1];
pixShare=generateShare(s0a,s0b);
share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);
end
5 - B disp('Share Generation Completed.'); Main.m
% Program pembentukan skema kriptografi visual (2,2) 4 subpixel
% Input citra untuk program ini harus berupa citra biner
inImg = imread(‘gambar\face\face1.bmp’); figure;imshow(inImg);title(‘Secret Image’);
%Visual Cryptography
[share1, share2, share12] = VisCrypt(inImg);
%Outputs
figure;imshow(share1);title(‘Share 1’); figure;imshow(share2);title(‘Share 2’);
figure;imshow(share12);title(‘Overlapping Share 1 & 2’);
imwrite(share1,’Share1.bmp’); imwrite(share2,’Share2.bmp’); imwrite(share12,’Overlapped.bmp’);
GenerateShare.m
% Program untuk mengacak permutasi generasi share
% Program ini menghasilkan share 1 dan share 2 secara acak untuk setiap pixel
function out = generateShare(a,b)
6 - B
out = zeros(size(in));
randNumber = floor(1.9*rand(1));
if (randNumber == 0) out = in;
7 - B out = [a ; b ];
end
Viscrypt.m
%Kegunaan:
%Input: inImg – Sebuah citra biner
%Output: share 1 - Generated share 1
% share 2 - Generated share 2
% share12 – Hasil overlapped share 1 dan share 2
function [share1, share2, share12] = VisCrypt(inImg)
s = size(inImg);
share1 = zeros(2*s(1), (2 * s(2))); share2 = zeros(2*s(1), (2 * s(2)));
%%White Pixel Processing %White Pixel share combinations disp('White Pixel Processing...'); s1a=[1 0;1 0];
s1b=[1 0;1 0];
[x y] = find(inImg == 1); len = length(x);
for i=1:len
8 - B pixShare=generateShare(s1a,s1b);
share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);
end
%Black Pixel Processing
%Black Pixel share combinations disp('Black Pixel Processing...'); s0a=[1 1;0 0];
s0b=[0 0;1 1];
[x y] = find(inImg == 0); len = length(x);
for i=1:len
a=x(i)*2;b=y(i)*2;
pixShare=generateShare(s0a,s0b);
share1((a:a+1),(b:b+1))=pixShare(1:2,1:2); share2((a:a+1),(b:b+1))=pixShare(3:4,1:2);
end
share12=bitxor(share1, share2); share12 = ~share12;
1 - C
LAMPIRAN C
inImg = imread('face1.bmp'); %citra asli%
[m,n] = size(inImg); %matriks ukuran m*n sebesar inImg% outImg = imread('face.bmp'); %citra hasil dari hasil 2 subpixel%
[k,l]= size(outImg); %matriks ukuran k*l = m*2n hasil dari 2 subpixel%
aa= size(inImg); %matriks untuk menyimpan hasil outImg seukuran array inImg%
for k = 1:k %looping k kali%
for l = 1:2:l %looping sebanyak l kali count number 2
aa(k,ceil(l/2)) = outImg(k,l); %simpan nilai outImg kedalam array ukuran mn% end
end
1-D
LAMPIRAN D
inImg = imread('view13.bmp'); %citra asli%
[m,n] = size(inImg); %matriks ukuran m*n sebesar inImg%
outImg = imread('view13a.bmp'); %citra hasil dari hasil 4 subpixel% [k,l]= size(outImg); %matriks ukuran k*l = 2m*2n hasil dari 4 subpixel%
aa= size(inImg); %matriks untuk menyimpan hasil outImg seukuran array inImg%
for k = 2:2:k %looping k kali%
for l = 2:2:l %looping sebanyak l kali count number 2
aa( ceil(k/2),ceil(l/2)) = outImg(k,l); %simpan nilai outImg kedalam array ukuran mn% end
end
mse = sum(sum(aa - inImg).^2)/(m*n) %rumus MSE = mean square error%
%secara logis jika kedua nilai dari citra adalah sama/tidak berubah maka hasil MSE adalah 0%
psnr = 10*(log(1^2/mse))
BAB I PENDAHULUAN
I.1 Latar Belakang Masalah
Berkat perkembangan teknologi yang begitu pesat memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi / data secara jarak jauh. Antar kota antar wilayah antar Negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut, semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau Negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.
Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi / data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali dengan istilah sebagai informasi awalnya menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi / data awal.
BAB I PENDAHULUAN
Teknik Elektro
2
Universitas Kristen Maranatha transparansi. Skema rahasia ini disebut Kriptografi Visual. Lapisan pertama berisi piksel acak dan lapisan berikutnya berisi informasi rahasia. Kriptografi Visual dapat dikatakan merupakan bentuk visual dari operasi XOR.
Keamanan skema ini dianggap sangat tinggi dan sampai sekarang tidak dapat dipecahkan. Cara untuk mendekripsi pesan tersebut juga sangat mudah dan dapat dilakukan tanpa bantuan komputer, berbeda dengan teknik kriptografi lain yang membutuhkan bantuan komputer untuk dekripsinya. Untuk dekripsi Kriptografi Visual penerima cukup mencetak gambar hasil enkripsi pada kertas-kertas putih tipis. Kemudian kertas tersebut cukup ditumpuk di atas satu sama lain dan diarahkan ke cahaya terang, gambar-gambar pesan tersebut akan saling bertumpukan dan penerima dapat melihat pesan yang terkandung di dalamnya. Keuntungan teknik ini juga adalah penerima memerlukan bantuan visual secara manual (mata) untuk membaca pesan tersebut.
I.2 Identifikasi Masalah
Berdasarkan latar belakang di atas, masalah yang akan dibahas pada Tugas Akhir ini adalah mengenai pembuatan perangkat lunak kriptografi visual dan cara kerja dari perangkat lunak tersebut.
I.3 Perumusan Masalah
BAB I PENDAHULUAN
Teknik Elektro
3
Universitas Kristen Maranatha
Bagaimana merealisasikan perangkat lunak yang mampu untuk melakukan pengkodean dan pendekodean pada sebuah citra.
I.4 Tujuan
Tujuan yang ingin dicapai dari Tugas Akhir ini adalah :
Merealisasikan perangkat lunak yang mampu melakukan proses pengkodean citra menjadi dua buah citra bayang dan pendekodean menjadi citra asal.
I.5 Pembatasan Masalah
Pembuatan program menggunakan Matlab
Citra yang ingin digunakan hanya 2 warna yaitu hitam dan putih
I.6 Metodologi
Metodologi dalam tugas akhir ini adalah dengan eksperimental sehingga hasilnya dapat diuji. Langkah-langkahnya adalah :
1. Mempelajari teori kriptografi visual
2. Perancangan perangkat lunak kriptografi visual
BAB I PENDAHULUAN
Teknik Elektro
4
Universitas Kristen Maranatha I.7 Sistematika Penulisan
Sistematika pembahasan laporan Tugas Akhir ini disusun menjadi lima bab, yaitu sebagai berikut :
Bab I PENDAHULUAN
Pada bab pendahuluan ini dibahas tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, metodologi, dan sistematika penulisan.
Bab II LANDASAN TEORI
Untuk memudahkan pembahasan tentang Tugas Akhir ini, disertakan teori pendahuluan yang membahas definisi kriptografi, termonologi, tujuan kriptografi, pengenalan kriptografi visual, cara kerja kriptografi visual, serta model kriptografi.
BAB I PENDAHULUAN
Teknik Elektro
5
Universitas Kristen Maranatha
Bab IV PENGUJIAN PERANGKAT LUNAK
Untuk melihat hasil rancangan perangkat lunak, maka dibuat pengujian perangkat lunak
Bab V KESIMPULAN DAN SARAN
Kesimpulan dan saran disusun untuk memberikan gambaran tentang Tugas Akhir yang dilakukan.
BAB V KESIMPULAN DAN SARAN
Teknik Elektro
53 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
Pada bab ini akan dijelaskan mengenai kesimpulan-kesimpulan yang diambil berdasarkan hasil pengamatan dan saran-saran untuk pengembangan lebih lanjut.
V.1 KESIMPULAN
1. Perangkat lunak yang digunakan untuk pengkodean citra menjadi 2 buah citra bayang dan pendekodean citra menjadi citra asal berjalan dengan baik.
2. Kriptografi visual yang diterapkan pada gambar / citra menggunakan komputasi kriptografi yang sederhana.
BAB V KESIMPULAN DAN SARAN
Teknik Elektro
54 Universitas Kristen Maranatha V.2 SARAN
1. Perangkat lunak yang dibuat dapat dikembangkan untuk skema-skema yang belum diimplementasikan, terutama pada citra berwarna.
2. Perangkat lunak yang dibuat dapat dikembangkan untuk skema > (2,2)
Pengkodean Citra Menjadi Dua Buah Citra Bayang dan Pendekodean Menjadi Citra Asal
Teknik Elektro
55
Universitas Kristen Maranatha
DAFTAR PUSTAKA
1. C.C. Wu, L.H. Chen, “A study On Visual Cryptography”, Master Thesis, Institute of Computer and Information Science, National Chiao Tung University, Taiwan, R.O.C., 1998
2. Munir, Rinaldi, Kriptografi, Penerbit Informatika, 2006
3. N.Naor and A.Shamir, Visual Cryptography Advances in Cryptography :
Eurocrypt’94, Springer Verleg, Berlin, ppi-129(1995). 4. http://informatika.stei.itb.ac.id