Site icon IT Tutorial

Visual Kriptografi Ulutaş ın Metodu -5

İşte bu noktada bu patternlerin içinden bir de ileride ayrıntısına değineceğim gibi B share i ile arasındaki kısıtlamalar uygulanır. Bu kısıtlamadan sonrada hala daha birden çok pattern tek bir genişletilmiş blok için aday teşkil ediyorsa işte bu noktada rastgele bir pattern seçilip devam edilecektir.

Bir sonraki adımda bu patternden dolayı herhangi bir tıkanıklık yaşanırsa yani B nin herhangi bir genişletilmiş bloğu için pattern adayı bulunamazsa bu defa geriye dönülüp A veye A’ için diğer bir aday pattern kullanılacaktır. Burada bilgisayar bilimlerinde Recursive fonksiyonların özel bir hali olan geri dönüşümlü özyineleme yani Backtracking kullanıldı.

 

 

Shareler için pattern belirleme süreci aşağıda ayrıntılı bir şekilde belirtilecektir. Bunun için basit olması açısından 2×2 lik 2 tane secret görüntü ve 2 tane cover görüntünün matrisel gösterimi verilecektir.Buradan sharelerin patternleri yukarıda anlatılan kurallar eşliğinde belirlenecektir.Verilecek örnekte P1 ve P2 sırasıyla Secretları temsil etmektedir.C1 ve C2 ise shareleri oluşturmak için faydalandığımız Cover görüntüleri sırasıyla temsil edecektir. Shareler ise A,A’ ve B şeklinde ifade edilecektir. Aşağıdaki şekilde secret,cover ve share görüntüleri bulunmaktadır.

 

Yukarıdaki şekilde A share inin 0,0 daki genişletilmiş bloğunun seçilmesi esnasında A’ share inin 1,0 daki genişletilmiş bloğu da belirleniyor.A’ nün belirlenen genişletilmiş bloğuna bağlı olarak A da aynı koordinatlara izdüşen yerde belirlenebilir. Yukarıdaki şekilde C1 cover ının 0,0 lık ilk pixeli beyaz renktedir. Buna bağlı olarak A share inin ilk genişletilmiş bloğu beyaz patternler arasından seçilecektir. Beyaz rengi temsil eden 6 farklı pattern aşağıdaki gibidir.

Bu patternler içerisinden ilk share için rastgele birisi seçilir. Rastgele olarak bu 6 pattern arasından ilki şekilde görüldüğü gibi A nın ilk genişletilmiş bloğuna atandı. A share inin ilk genişletilmiş bloğuna atanan pattern ve buna bağlı olarak 90o döndüğünde bu patternin düşeceği koordinat A’ için 1,0 koordinatıdır. A’ share inde 1,0 lık koordinatına denk düşen pattern A share inin ilk genişletilmiş bloğunun da 90 derece dönmüş şeklidir. Aşağıda hem A nın ilk share ine düşen pattern ve bunun 90 derece saat yönünün tersine dönmüş şekli verilmiştir.

 

A share inin 0,0 daki ilk genişletilmiş bloğu belirlendiği için bunun 90 derece saat yönünün tersine dönmüş şeklide A’ de 1,0 koordinatına denk düşmektedir.Bu koordinatın pattern ide A daki pattern in 90 derece dönmüş şeklidir ve buda yukarıda gösterilmiştir. A’ share inin 1,0 daki koordinatı belirlendiği için Hamming ağırlıklandırma kuralından dolayı A share ininde 1,0 daki koordinatı belirlenebilir.

Hamming ağırlıklandırma kısıtlamasına geçmeden önce A share inin 1,0 daki genişletilmiş bloğuna gelmesi muhtemel pattern kümesi belirlenmelidir. Bunun içinde bu koordinatla ilişkili C1 in 1,0 daki pixel değerine bakılır. C1 in 1,0 daki pixel rengi siyah olduğu için A share inin 1,0 daki genişletilmiş bloğuna gelecek pattern Pb patterninden seçilecektir. Aşağıda siyah renge denk düşen 4 farklı siyah patternler gösterilmiştir.

 

A share inin 1,0 daki genişletilmiş bloğuna düşen yukarıdaki şekildeki bu 4 pattern ile A’ share inin 1,0 daki genişletilmiş bloğu arasında hamming ağırlıklandırma yapılacaktır. Yrd.Dr. Mustafa Ulutaş tarafından belirlenen hamming ağırlıklandırma kurallarıyla bu 4 pattern arasından elemeler yapılacaktır.

 

Buna göre P1 ve P2 ile C2 nin 1,0 koordinatındaki pixellere bakılır.Ve hamming ağırlıklandırma kriterlerindeki 7 kuraldan hangisine uyuyorsa o maddedeki hamming ağırlıklandırma derecesine göre elemeler yapılır. Yukarıdaki şekilde P1 ve P2 ile C2 nin 1,0 koordinatındaki pixellere baktığımız zaman Secretların pixel renk değerleri siyah iken C2 nin o koordinattaki pixel renk değeri beyazdır. Bu 3 renk değeri hamming ağırlıklandırma kriterleri içerisinde 2.maddeye denk düşmektedir.

 

Hamming ağırlıklandırma kriterinin 2.maddesine göre Secretların ilgili koordinatındaki değerler siyah ve C2 nin ilgili pixeli beyaz ise bu durumda A ve A’ nün OR yöntemiyle hamming ağırlıklandırma yapıldığında ortaya çıkan değerler içerisinde 2 ye eşit veya 2 den küçük derecelere sahip patternler A nın ilgili genişletilmiş bloğu için aday patternlerdir. Şimdi A nın alabileceği 4 pattern ile A’ nün mevcut pattern inin OR yöntemiyle hamming ağırlıklandırma yapılması aşağıdaki şekilde gösterilmiştir.

Yukarıda şekle baktığımız zaman Secret ve ilgili cover görüntünün pixel değerlerine göre A ile A’ nün hamming ağırlığı 2 ye eşit ve 2 den küçük olan patternler A nın 1,0 koordinatındaki genişletilmiş bloğu için adaydırlar. Şekilde de görüldüğü gibi sadece 1 ve 4 numaralı patternler bu kurala uyduğu için bu 2 pattern A nın 1,0 daki genişletilmiş bloğu için aday olurlar böylece kalan diğer patternler elenmiş olur.Son durumu kontrol ettiğimiz zaman A share inin 0,0 ve 1,0 daki genişletilmiş blokları belirlendi.Ancak A’ nün bu aşamaya kadar sadece 1,0 daki genişletilmiş bloğu belirlenebildi.

Yukarıda pattern seçme süreci için her adımda taranacak ve işlenecek pixellerin koordinatları hem şeklen hem de kod olarak gösterilmiş. Buna göre A nın 1,0 daki genişletilmiş bloğu belirlendi ise A’ nün 1,0 daki A share ine göre 90 derece saat yönünün tersine düşen koordinatındaki ilgili genişletilmiş bloğuna patternin de 90 derece dönmüş şekli yerleştirilir.

 

Yukarıda da 1,0 daki A share inin ilgili genişletilmiş bloğu için 1 ve 4 numaralı patternler aday oldu. Bunlar içinden rastgele olarak 1 pattern i seçilirse bu durumda bu 1 patterninin 90 derece dönmüş şekli olan 2 numaralı pattern de A’ share inin 1,1 deki ilgili genişletilmiş bloğuna denk düşer. Aşağıda ki şekilde 1,0 daki A share inin ve 1,1 deki A’ share nin genişletilmiş bloklarına yerleştirilen patternler gösterilmiştir.

Görüldüğü gibi share lerin oluşumu hep birbirlerine bağımlı olarak devam etmektedir. Her bir share in genişletilmiş bloğu belirlenirken bu koordinatla ilişkili olan diğer share lerde ki genişletilmiş bloklarda belirlenir. A’ share inin yukarıda da görüldüğü gibi 1,1 deki genişletilmiş bloğu için pattern yerleştirildiğinden dolayı 1,1 koordinatının A share indeki genişletilmiş bloğunun da belirlenmesi lazımdır.

 

Bunun için 1,1 koordinatındaki Secretların pixel değerine ve ikinci Cover görüntünün yine bu koordinattaki pixel değeri belirlenir. Bu pixel değerlerine göre bir hamming ağırlıklandırma belirlenecektir. Ardından patternler içerisinden bu ölçütleri sağlamayanlar elenecektir. Secret görüntülerin ilgili şekildeki 1,1 koordinatlarındaki pixeller sırasıyla beyaz ve siyahtır. İkinci cover görüntünün de bu koordinattaki pixeli siyah olduğu için bu ölçütler hamming ağırlıklandırma kriterindeki maddelerden beşincisine denk düşecektir.

 

Shareler oluşturulurken Cover görüntülerin ilgili pixellerinin renk değerlerine göre oluştuğu belirtilmişti. Buna göre 1,1 koordinatındaki ilk cover görüntünün pixel değeri siyahtır. Dolayısıyla 1,1 koordinatına gelecek patternler Pb patterninden seçilecektir. Hamming ağırlıklandırma kriterinin beşinci maddesine göre A ve A’ nün XOR yöntemiyle hamming ağırlıklandırması sonucu 1 den büyük olan değerler bu koordinattaki genişletilmiş blok için aday teşkil ederler. Siyah patternler ile A’ nün ilgili yerdeki pattern inin XOR lanması ve sonucu aşağıdaki şekilde verilmiştir.

Hamming ağırlıklandırma kriterinin 5.maddesine göre ilk Secret ın ilgili pixeli beyaz ve ikinci Secret ın ilgili pixeli siyah ise bu durumda H(XOR(a,a’)) işleminin sonucu 1 den büyük olan patternler A share inin 1,1 koordinatındaki genişletilmiş blok için aday olurlar. Buna göre yukarıda ki patternler içerisinden 1,3 ve 4 numaralı patternler A share inin 1,1 koordinatındaki genişletilmiş bloğu için aday olurlar.

Bu 3 pattern arasından rastgele olarak 3 nolu pattern seçilir. A share inin 1,1 koordinatı A’ inde 0,1 koordinatına denk düşer. Buraya seçilen 3 nolu pattern in 90 derece saat yönünün tersine gelen patterni yerleştirilir. Aşağıdaki şekilde A share inin 1,1 koordinatına ve A’ nün buna denk düşen 0,1 koordinatına yerleştirilen patternleri gösterilmiştir.

Pattern seçme sürecinde her iterasyonda dönme açısına bağlı olarak pixeller değerlendirilir. Dönme açısı 90 derece ise bu durumda her iterasyonda 4 tane pixel belirlenir. Bu aşamaya kadar share lerin 3 tane genişletilmiş blokları belirlendi. Bu sayı 4 olduğunda ilk iterasyon tamamlanmış olur. Yukarıda A’ share inin 0,1 koordinatındaki genişletilmiş bloğu belirlendiğine göre bu koordinatla özdeş olan A share ininde 0,1 koordinatı belirlenir. Bunun için 0,1 koordinatındaki Secretların pixel değerine ve ikinci Cover görüntünün yine bu koordinattaki pixel değerine bakılır.

Bu pixel değerlerine göre bir hamming ağırlıklandırma yapılır. Ardından patternler içerisinden bu ölçütleri sağlamayan patternler elenir. Secret görüntülerin ilgili şekildeki 0,1 koordinatlarındaki pixeller sırasıyla siyah ve beyazdır. İkinci cover görüntünün de bu koordinattaki pixeli siyah olduğu için bu ölçütler hamming ağırlıklandırma kriterindeki maddelerden altıncısına denk düşecektir.

Shareler oluşturulurken Cover görüntülerin ilgili pixellerinin renk değerlerine göre oluştuğu belirtilmişti. Buna göre 0,1 koordinatındaki ilk cover görüntünün pixel değeri beyazdır. Dolayısıyla 0,1 koordinatına gelecek patternler Pw patterninden seçilecektir. Hamming ağırlıklandırma kriterinin altıncı maddesine göre A ve A’ nün XOR yöntemiyle hamming ağırlıklandırması sonucu 1 den büyük olan değerler bu koordinattaki genişletilmiş blok için aday teşkil ederler. Siyah patternler ile A’ nün ilgili yerdeki pattern inin XOR lanması ve sonucu aşağıdaki şekilde verilmiştir.

 

 

Hamming ağırlıklandırma kriterinin 6.maddesine göre ilk Secret ın ilgili pixeli siyah ve ikinci Secret ın ilgili pixeli beyaz ise bu durumda H(XOR(a,a’)) işleminin sonucu 1 den büyük olan patternler A share inin 0,1 koordinatındaki genişletilmiş blok için aday olurlar. Buna göre yukarıda ki patternler içerisinden 1,3 ve 6 numaralı patternler A share inin 0,1 koordinatındaki genişletilmiş bloğu için aday olurlar.

 

Share ler için pattern belirleme sürecinin önemli bir noktasına gelinmiştir.Bu aşamada 0,1 koordinatı belirlenen A share inin bu koordinatın 90 derece saat yönünün tersine düşmüş hali ile A share inin daha ilk iterasyonda belirlenen patterni arasında bir hamming ağırlıklandırma yapılmalıdır.

Öncellikle yukarıda 0,1 koordinatına denk düşen patternlerin 90 derece döndürülmüş halleriyle A share inin 0,0 koordinatındaki önceden belirlenen patterni arasında hamming ağırlıklandırma yapılacaktır. Buradan çıkan adaylar 1 den fazla ise rastgele bir seçim yapılır ve hem 0,1 lik A share inin genişletilmiş bloğu belirlenir hem de A’ share inin buna iz düşen 0,0 daki genişletilmiş bloğu belirlenir.

Hamming ağırlıklandırma kriterlerine göre ilk ve ikinci Secret ın 0,0 daki pixel değeri beyaz ve ikinci cover görüntünün de 0,0 daki pixel değeri beyazdır. Bu özellikler için hamming ağırlıklandırma kriterlerine baktığımız zaman 4.maddeye denk düşmektedir. Hamming ağırlıklandırma kriterinin 4.maddesine göre Secretların ilgili koordinatları beyaz ve ikinci Cover görüntününde ilgili pixeli beyaz ise bu durumda herhangi bir XOR,OR veya AND leme yöntemi yapılmaksızın ilgili genişletilmiş bloğa uygun pattern yerleştirilir.

Buna göre A share inin 0,1 koordinatı için belirlenen adaylar arasından rastgele biçimde 6 patterni seçilir buna karşılık düşen A’ share inin 0,0 daki genişletilmiş bloğuna da 6 patterninin 90 derece dönmüş şekli yerleştirilir. Aşağıda ki şekilde A share inin 0,1 koordinatında ki ve A’ share inin 0,0 koordinatında ki genişletilmiş blokları gösterilmiştir.

 

Böylece A ve A’ share lerinin ilk iterasyon için 4 tane genişletilmiş blokları Secret ve Cover görüntülerin pixel değerleri esas alınarak hamming ağırlıklandırma kriterlerine göre belirlenmiştir. Burada önemli bir husus vardır oda şudur: her bir iterasyonda belirlenen patternler birbirleriyle aralarında ilişkili oldukları için eğer herhangi bir aşamada tıkanıklık meydana gelirse yani o noktadaki genişletilmiş blok için herhangi bir pattern bulunamazsa bu defa önceki noktalara dönülür. Önceki noktalarda aday olan diğer patternler o noktaya yerleştirilerek devam edilir.

Böylece tıkanıklıklar önlenmiş olur. Burada bilgisayar bilimlerinde recursive diye bilinen fonksiyonların özel bir hali olan back tracking mantığı kullanılmıştır. İterasyonlar içerisinde ilerleme kaydedilemeyip tıkanıklık yaşandığı durumda bir önceki durumlar değiştirilir ve böylece tıkanıklık giderilir. Aşağıda verilen şekilde A ve A’ share lerinin ilk iterasyon sonrasında ki görünümleri verilmektedir.

 

 

Yrd.Dr. Mustafa Ulutaş tarafından önerilen bu yöntemin güvenlik özelliği tabloların denetlenmesiyle ispat edilmiştir. Çünkü tablolara bakıldığında her durum için mutlaka bir geçerli pattern bulunmaktadır. Genelde Visual Secret Sharing şemalarında, kişiler share lerde ki patternleri denetleyerek Secret hakkında bilgi çıkaramazlar.

Visual Secret Sharing şemalarında,Aynı şekilde beyaz Secret pixellerini kodlamak için kullanılan patternler siyah pixelleri de kodlamak için de kullanılırlar ve eşit olasılığa sahip olurlar. Böylece kullanılan bu yöntem sayesinde Share lerde ki mevcut pattern ler share lere şifrelenmiş Secret görüntüler hakkında herhangi bir bilgi vermez.

 

 

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

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

 

Exit mobile version