Site icon IT Tutorial

Visual Kriptografi Ulutaş ın Metodu -3

İlk Share Görüntüsünün Üretilmesi

Ulutaş tarafından önerilen metot da ilk Share görüntüsü birinci cover görüntünün pixel renk değerleri esas alınarak oluşturulmaktadır. Her aşamada elde edilen pixelin 90o saat yönünün tersine dönmüş halindeki konuma da dönmüş pattern yerleştirilecektir. Buda şu anlama gelir ki ilk share üretilirken aslında 90o dönmüş share de elde edilmektedir.

Shareler elde edilirken kullanılan görüntüler NxN lik kare boyutunda olmalı ve her bir görüntü halftone biçimine dönüştürülmelidir. Share üretim süreci boyunca kullanılacak olan Pb ve Pw diye bahsedilecek olan pattern grupları ilkin tanımlanır. Pattern grupları Share lerin temel bileşenleri olacaktır. Her bir Pb patterninde 1 beyaz ve 3 siyah pixel bulunmakta ve Her bir Pw patternin de ise 2 beyaz ve 2 siyah pixel bulunmaktadır. Pw için 6 farklı Pb için 4 farklı kombinasyon mevcuttur bu kombinasyonlar yukarıda (Şekiller) gösterilmiştir.

 

Cover ve Secret görüntülerin her bir pixelleri Shareler de 4 alt pixelle temsil edildiği yukarıda belirtilmişti.İşte bu 4 alt pixele çalışma anlatılırken genişletilmiş blok denecektir. Sharelere ait genişletilmiş bloklar Cover görüntülerdeki ilişkili pixeller dikkate alınarak Pb ve Pw patternlerinden seçilecektir. Örneğin,Cover görüntünün herhangi bir pixeli siyah ise o pixelin kordinatıyla ilişkili olan Share görüntünün genişletilmiş bloğu Pb pattern kümesinden seçilir. Aynı şekilde eğer Cover görüntünün bir pixeli beyaz ise ilişkili koordinatta ki share in genişletilmiş bloğu Pw pattern kümesi içerisinden seçilecektir.

 

İlk Share oluşturulurken 90o saat yönünün tersine dönmüş share inde oluşturulması gerektiği unutulmamalıdır. İlerde ikinci share in oluşumu esnasında görüleceği gibi ilk share ve dönmüş share aynı zamanda ikinci share in oluşumunu da etkilemektedir. Çünkü yukarıda da belirtildiği gibi Secret görüntüler bu share lerin üst üste getirilmesiyle elde edilmektedir. Bundan dolayı ilk share ve dönmüş share in oluşumu ikinci share görüntünün oluşumunu da etkilemektedir.

Aşağıda verilen şekilde ilk share in oluşumu sırasında her bir iterasyonda elde edilecek genişletilmiş bloklar iterasyon sayısına ve kendi aralarındaki sıraya göre belirlenmiştir. Blokların içindeki 2 haneli rakamın ilki iterasyon sayısını verir. İkinci rakam ise her bir iterasyonda değerlendirilecek pixelin sıra numarasını vermektedir. Örneğin 2.3 demek 2.iterasyon da değerlendirilen 3 nolu pixeli ifade etmektedir.

 

1.1 3.4 2.4 1.4
2.1 4.1 4.4 3.3
3.1 4.2 4.3 2.3
1.2 2.2 3.2 1.3
1.4 3.3 2.3 1.3
2.4 4.4 4.3 3.2
3.4 4.1 4.2 2.2
1.1 2.1 3.1 1.2

 

 

 

Share -1 90o derece Sola dönmüş Share

 

Yukarıdaki şekillere dayanarak aşağıda verilen şekilde bir tane 16×16 lık bir birinci share ve onun 90o saat yönünün tersine dönmüş şekli bulunmaktadır. Bu şekil aynı zamanda ilk share in genişletilmiş bloklarının dönmüş share üzerinde izdüşümünü de vermektedir.

Pattern seçme sürecinde Secret görüntünün büyüklüğü kadar bir kontrol matrisi tanımlanıyor. Bu matris tüm pixellerinin işlenmediği anlamına gelen false ile setleniyor. Seçme sürecinde her bir pixel işlendiği zaman true olarak setleniyor. Böylece diğer iterasyonlar da işlenecek pixelin ilgili kontrol matrisindeki değeri false ise işlenir true ise işlenmez. Kontrol matrisi sayesinde secret ve cover görüntülerde ki pixeller tekrar tekrar değerlendirilmeye tabi tutulmaz.

 

Secret ve Cover görüntülerdeki tüm pixelleri işlemek için bir süreç tanımlanır. Bu süreç ilk olarak en soldaki sütundan satır boyunca tarayarak işlem yapar. Koşan sürecin her iterasyonu sonucu n tane pixel işlenir. Bu n dönme açısına bağlı olarak değişir. Örneğin ilk share eğer 90 derece döndürülürse her adımda 4 pixel işlenir.

İlk share 180 derece döndürülürse 2 pixel ve 270 derece döndürülürse de 4 pixel her adımda işlenir. Aşağıda verilen şekilde 4*4 lük bir resim için gezinen sürecin tüm pixelleri sırasıyla işlenişi resmedilmiştir.

 

Seçme sürecinde her adımda elde edilen koordinatlar Secret ve Cover görüntülerin ilgili pozisyondaki koordinatlarını vermektedir. Böylece pattern seçme süreci için gerekli pattern koordinatları elde edildi. Çalışmada her adımda değerlendirilmesi gereken pixellerin koordinatlarını elde etmek için aşağıdaki kod kullanıldı.

 

 

for (int i = 0; i < (Boyut) / 2; i++)

{

for (int j = 0; j < (Boyut - 1 - count); j++)

{




if (T_Kontrol_Matrisi[i + j, i] == false)

{

//Gerekli Diğer İşlemler




T_Kontrol_Matrisi[i + j, i] = true;

}

if (T_Kontrol_Matrisi[Boyut-1-i, i+j] == false)

{

//Gerekli Diğer İşlemler

T_Kontrol_Matrisi[Boyut - 1 - i, i + j] = true;

}

if (T_Kontrol_Matrisi[Boyut - 1 - j - i, Boyut - 1 - i] == false)

{

//Gerekli Diğer İşlemler




T_Kontrol_Matrisi[Boyut - 1 - j - i, Boyut - 1 - i] = true;




}

if (T_Kontrol_Matrisi[i, Boyut - 1 - i - j] == false)

{

//Gerekli Diğer İşlemler

T_Kontrol_Matrisi[i, Boyut - 1 - i - j] = true;

}

// İkinci Share in üretimi için gerekli işlemler

count+=2;

}

}

C# ile yazılmış Bu projeme aşağıdaki linkten erişebilirsiniz.

https://drive.google.com/open?id=1QIP7vN2h9EpGTdQ0X7zBR2hycz1–tum

 

Exit mobile version