LSB Yöntemini Kullanan Algoritmalar ve Programlar

Slides:



Advertisements
Benzer bir sunumlar
Steganografi.
Advertisements

BENZETİM Prof.Dr.Berna Dengiz 10. Ders.
SES STEGANOGRAFİ Ders 6.
Yığınlama Sıralaması (Heap Sort)
Unsupervised Learning (Kümeleme)
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
KONU :GÖRÜNTÜNÜN GEOMETRİK MODELLERİNİN KURULMASI
AES (Advanced Encryption Standart)
Oyun Programlama (Grafiklere Giriş)
Sayısal İşaret İşleme Laboratuarı
RESİM FOTOĞRAF İŞLEME YAZILIMLARI.
Bilgisayar Dosya Uzantıları
(Data Encryption Standard) Şifreleme Algoritması
SİMETRİK ŞİFRELEME SİSTEMLERİ VE ÖZELLİKLERİ
Problemi Çözme Adımları
“Gizli İletişim” Zekeriya Erkin Ağ Güvenliği Prof. Dr. Bülent Örencik
ALGORİTMA ÖRNEKLERİ Programlamaya Giriş
Bölüm 4 – Kontrol İfadeleri:1.kısım
Huffman Encoding by Snowblind.
Kriptografi & Steganografi
MATLAB’İN SAYI YUVARLAMA FONKSİYONLARI
CLUSTERING USING REPRESENTATIVES Hazırlayan: Arzu ÇOLAK
Dizi (array) değişkenleri
SEDA ARSLAN TUNCER Android işletim sisteminde RGB histogram değerlerinin gerçek zamanlı olarak elde edilmesi SEDA ARSLAN TUNCER
Görüntü Kayıt Formatları:
MATEMATİKSEL PROGRAMLAMA
FONKSİYONLAR ve GRAFİKLER
Karar Ağaçları.
NESNELER ARASINDAKİ UZAYSAL İLİŞKİLER ÜZERİNE BİR UYGULAMA
Özyineli Sıralama Algoritmaları
Steganografi.
OPENCV İLE STEREO GÖRÜNTÜLERDEN DERİNLİK KESTİRİMİ
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
CSS Birimleri.
* 16/07/96 Steganaliz Metin BİLGİN *.
Hazırlayan Gülnihal BAYINDIR ALKAN İMKB MESLEKİ VE TEKNİK EĞİTİM ANADOLU LİSESİ GRAFİK VE FOTOĞRAF ALANI BÖLÜM ŞEFİ.
8. VİSUAL BASİC İLE TEMEL DOSYALAMA İŞLEMLERİ
Grafik ve Animasyon Sistemleri
3- IP ADRESLEME Yrd. Doç. Dr. Ersoy ÖZ.
Steganografi’deki Temel Yöntemlerin Değerlendirilmesi
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
RENKLİ GÖRÜNTÜ İŞLEME Güneş Baltacı.
FONKSİYONLAR f : A B.
Grafik ve Animasyon Ders-01 Temel Terimler.
STEGANALİZ Ders 5.
Resim Sıkıştırma Yonca BAYRAKDAR
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
Örnekleme Yöntemleri Şener BÜYÜKÖZTÜRK, Ebru KILIÇ ÇAKMAK,
AES S Kutusuna Benzer S Kutuları Üreten Simülatör
ANALOG-SAYISAL BÜYÜKLÜK VE SAYI SİSTEMLERİ
Grafik ve Animasyon.
KIRPMA (Clipping) Bir grafik veri tabanından bir parçayı çıkarma işlemi olan kırpma bilgisayar grafiğinin temel işlerinden birisidir. Kırpma algoritmaları.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
Analitik olmayan ortalamalar Bu gruptaki ortalamalar serinin bütün değerlerini dikkate almayıp, sadece belli birkaç değerini, özellikle ortadaki değerleri.
Dinamik programlama ve Açgözlü algoritma
YER FOTOGRAMETRİSİ (2014) Doç. Dr. Eminnur Ayhan
STRING FONKSİYONLARI Dim ders As String
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
FOTOGRAMETRİ - I Sunu 3- 3 Eminnur Ayhan
ÇOK BOYUTLU İŞARET İŞLEMENİN TEMELÖZELLİKLERİ
* 16/07/96 Steganografi Metin BİLGİN *.
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Yıldıray YALMAN Doç. Dr. İsmail ERTÜRK
AES S Kutusuna Benzer S Kutuları Üreten Simulatör
Bilgisayar Mühendisliği Bölümü
Gerçek Zamanlı Video Kayıtlarına Veri Gizleme Uygulaması
YER DEĞİŞTİRME VE DEĞER DÖNÜŞTÜRME ÖZELLİĞİNE SAHİP GÖRÜNTÜ ŞİFRELEME ALGORİTMALARININ ANALİZİ Erdal GÜVENOĞLU Nurşen SUÇSUZ 
İleri Algoritma Analizi
Sunum transkripti:

LSB Yöntemini Kullanan Algoritmalar ve Programlar BMP GIF JPEG

Algoritma ve Programlar Bir gizli anahtara dayanan LSB yöntemi Ez-Stego J-Steg Outguess F5

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Burada N, uygun cover bitlerinin sayısı; ve ‘de 0’dan N-1’e kadar olan sayıların permütasyonu olsun. Gizli mesajımızı şu bitlere gömebiliriz:

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Permütasyon fonksiyonu mutlaka sahte- rastgele (pseudorandom) olmalıdır. Çünkü seçilen bitlerin rastgele olarak seçilmesi gerekmektedir. Bunun neticesinde de gizli verimizin bitleri örtü verisi içerisinde yayılabilecektir.

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Permütasyon fonksiyonu aynı zamanda bir K gizli anahtarına bağlı olmalıdır. Bu yüzden bizim bir pseudorandom permütasyon üretecimiz olmalıdır. Bu fonksiyonda K anahtarı girdi olarak alınmakta ve {0,....,N-1} arasında farklı çıktılar üretilmektedir. Bu üreteç mutlaka güvenli olmalıdır, Hiç kimse K anahtarını bilmeden gizlenen bitlerin nerelerde olduğunu tahmin edememelidir.

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Psuodorandom permütasyon üreteci yapmak için bir pseudorandom fonksiyon üreteci kullanılabilir. Bu; K gizli anahtarı ile bir i(i=0,...,n-1) argümanı sıralanarak herhangi bir secure hash fonksiyonu olan H ile kolayca yapılabilir. Buradaki (K◦i), K anahtarı ve i argümanının sıralanmasıdır. Böylelikle K parametresine bağlı olan bir pseudorandom fonksiyonu elde etmiş oluruz.

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Pseudorandom permütasyon üreteci için bir de a ve b’nin bit bit XOR’landığı ve sonucun a’nın boyutuna eşit olan bir işlemin tanımlanması gerekir. Sahip olduğumuz 2l uzunluğundaki i binary argümanı, X(son l) ve Y(ilk l) olmak üzere l uzunluğuna sahip iki parçaya bölünür. K anahtarımız da K1, K2, K3, K4 olmak üzere 4 parçaya bölünür.

LSB YÖNTEMİ Bu algoritmanın 22l-1 defa çalışmasıyla {0,...,22l-1}’in pseudoramdom permütasyonu elde edilmektedir.

BİR GİZLİ ANAHTARA DAYANAN LSB YÖNTEMİ Bu şemadan yola çıkılarak aşağıdaki algoritma geliştirilmiştir. x ve y çözünürlüğüne sahip bir I görüntüsü verilmektedir. Yapılan işlemler sonucunda elde edilen değerler gizlenecek bilginin kaçıncı bitinin nereye saklanacağını belirlemektedir.

Geri dönen X ve Y değerleri gizli bilginin i Geri dönen X ve Y değerleri gizli bilginin i. Bitinin yerleştirileceği koordinatları vermektedir.

LSB YÖNTEMİ Örnek: 800x600 çözünürlüğünde bir resmimiz olsun. Gizli mesajımız 1 Kbyte ve anahtarımız K=123,456,789 olsun. Gizli mesajın 500. bitinin yerleşeceği koordinatları bulalım. Örtü verimizin sahip olduğu bit sayısı; N=480.000 Gizli mesajımız; 1024x8=8192 bit x=800, y=600 Bunun anlamı örtü verimizdeki bitlerin %2’sinden daha azının değişeceğidir. 500. bitin nereye yerleşeceğini bulmak için;

Sonuç= Y*x+X=101x800+571, 500. bit örtü verisi içerisinde y koordinatı 101, x koordinatı 571 olan yere yerleşir.

Bir saldırgan için K anahtar bilgisine sahip olmaksızın doğru diziyi bulmak imkansızdır. Daha güvenli olması için birtakım ek aşamalar da eklenebilmektedir. Herhangi bir atakta mesajın bir parçasını bu sistem içerisinde bozmak için rastgele LSB bitlerini değiştirebilirler. Böyle bir atağa karşı önlem için hata – düzeltme mekanizması kullanılmalıdır.

EzStego EzStego Romana Machado tarafından yazılmış olan ve GIF dosyalarına görüntü saklamak için kullanılan bir algoritma ve programdır. Öncelikle GIF dosyasının bir renk paleti matrisi oluşturulur. EzStego herhangi bir boyut bilgisi almadan mesajı piksellerin içine yerleştirir.

EzStego Algoritma renk paleti matrisinin sıralı bir kopyasını yaratır. Bu sıralama işlemini öyle bir şekilde yapar ki komşu renklerin birbiriyle farklarını zorlukla söyleyebiliriz. Üç boyutlu alanda bir nokta olarak her rengi RGB(Red, Green, Blue) renk kübü ile yorumlanabilir.

EzStego (a) Palette renklerin sıralanışı (b) EzStego kullanılarak sıralanmış palet

EzStego Bu renk paletini sıralamak için şöyle bir yol izlenmektedir: Listeden iki renk {c0,c1} seçilerek başlanır. Buna C kümesi denir. Aşağıdaki adımlar tüm renkler yerleşene kadar devam eder C kümesinden en uzaktaki renk bulunur ve d olarak isimlendirilir. Bu rengin yerleşeceği en iyi yer bulunur. Bu yer değerini minimize edecek yerdir. d yerleştirilir ve yeni C kümesi olarak adlandırılır.

EzStego Gömme fonksiyonu resmin sol üst köşesinden başlayarak sağ alt köşeye kadar sırayı hiç bozmadan sıralı bir şekilde son bitleri değiştirir. Gömme işlemi sonucunda her pikselde bir steganografik değer bulunur. Her pikselin steganografik değeri, sıralanmış palette olması gereken son bitin indeksidir.

EzStego

EzStego GIF görüntülerinde kullanılan renkler, 0 ile 255 arası değer alabilen üçlü kümelerle ifade edilmektedir. İlk sayısal değer kırmızı, ikincisi yeşil ve sonuncusu da mavi tonlarına karşı gelmektedir. Sayısal değer büyüdükçe renk daha koyulaşmaktadır. Üç temel renkten faydalanılarak arzulanan renk oluşturulmaktadır. RGB (Kırmızı-Yeşil-Mavi) renk modelinde 256 x 256 x 256 = 16,777,216 değişik renk ifade edilebilmektedir.

EzStego Steganografi programı GIF görüntüsünün renk paletininin bir kopyasını oluşturur. Yeni palette renkler, renk modelindeki sıralarına göre yeniden düzenlenir. Piksellerde yer alan sayıların (ikilik sistemde) en az değerli basamakları saklanacak mesajdan bir basamaklık bilgi ile değiştirilir.

EzStego Palette oluşturulan yeni sayının gösterdiği renk bulunur. Piksele rengin orijinal paletteki numarası yazılır. Artık piksel, mesajdan alınan bilgiye göre eski rengini veya palette yer alan yakın bir rengi göstermektedir.

EzStego Örnek: Renk Paleti Sıra Numarası Renk Kodu 28 67,365,897 29 69,321,456 30 67,500,788 31 66,552,639 ….. ….. Programın Oluşturduğu sıralanmış renk paleti Sıra Numarası Renk Kodu 14 (0000 1110) 66,552,639 15 (0000 1111) 67,365,897 16 (0001 0000) 67,500,788 17 (0001 0001) 69,321,456 ….. …..

EzStego 1589 numaralı piksel 28 renk koduna sahip olsun. Gizlenecek bit ise 0 olsun. 67,365,897 numaralı rengin yeni palette karşılığı 15 (0000 1111)’dir. Son basamak değiştirildiğinde (0000 1110) yeni palette gösterilen renk 66,552,639. Bu rengin orijinal paletteki sıra numarası 31’dir. Bu nedenle işlemden sonra 1589 numaralı piksel 31 renk koduna sahip oalcaktır.

JPEG Formatı Internet üzerinde kullanımı en yaygın olan resim formatıdır. DCT, niceleme ve Huffman kodlaması kullanılan bu format ile, işlenmemiş (BMP gibi) resimlerde sıkıştırma yapılır.

JPEG Formatı (devam) JPEG sıkıştırması, resimdeki ardışık 8x8’lik piksel bloklarınının herbirini 64 adet DCT katsayısına çevirmede Ayrık Kosinüs Dönüşümü’nü (DCT) kullanır. Niceleme işlemi ile, bulunan reel değerli katsayılar tamsayı değerlerine dönüştürülür. Huffman kodlaması ile JPEG sıkıştırma işlemi tamamlanır.

DCT (Ayrık Kosinüs Dönüşümü) 8x8 piksellik blok üzerinden aşağıdaki formülle 64 elemanlı katsayı bloğu oluşturulur. Oluşturulan bu blok içinde ilk katsayı DC, diğerleri AC olarak adlandırılır.

Örnek 8x8’lik orijinal görüntü bloğumuz ve piksel değerleri şu şekilde olsun.

Örnek Daha sonra Matrisin her elemanından 128 değerini çıkartarak M matrisini oluştururuz.

Örnek Sonra en sık kullanılan T matrisi ve bunun transpozesi ile bu M matrisini çarparak DCT matrisini buluruz.

Örnek D=T.M.T' D matrisini şu şekilde buluruz.

Örnek Daha sonra bir quantization işlemi yapılır. Bunun için bir quantization matrisi gereklidir.

Örnek Quantization işlemi aşağıdaki formül kullanılarak yapılır.

Örnek DCT Katsayı matrisi Quantization Tablosu Nicelendirilmiş DCT Katsayı Matrisi

DCT ile Veri Gizleme DCT ile hesaplanan nicelenmiş katsayıların en önemsiz bitleri kullanılarak ortam içine veri gizlenebilir. JSteg ve OutGuess algoritmaları bu şekilde veri gizleyen algoritmalardır. JPEG formatında, veri gizlerken yapılan değişiklikler uzamsal alanda değil de frekans alanında olduğundan görsel saldırılara karşı dayanıklıdır.

JSteg Derek Upham tarafından geliştirilen bu algoritma, resim içindeki DCT katsayılarının en önemsiz biti ile mesajın bitlerinin sıralı biçimde değiştirilmesi yöntemiyle çalışır. Herhangi bir şifre kullanılmadığı için gizleme yönteminin JSteg olduğunu bilen bir kimse tarafından gizli mesaj kolaylıkla belirlenebilmektedir. Histogram analizi ve X2 testiyle tespit edilebilmektedir.

JSteg Andreas Westfeld ve Andreas Pfitzmann bu şekilde çalışan sistemlerin steganaliz yoluyla tespit edilebilir bozulmalara yol açtığını ortaya koymuştur. Ardışık DCT katsayıları arasındaki farkın azalmasından dolayı, ortamda veri gizlendiğinin belirlenebileceğini göstermişlerdir. Özellikle yüksek entropiye sahip veriler gizlendiğinde histogram değerlerinde önemli değişiklikler olmaktadır.

JSteg (devam) Input: message, cover image Output: stego image while data left to embed do get next DCT coefficient from cover image if DCT ≠ 0 and DCT ≠1 then get next LSB from message replace DCT LSB with message LSB end if insert DCT into stego image end while Resmin içine bilgi gizlenmeden önce ve sonraki histogram değerleri.

Sıralı ve Rasgele Gizleme JSteg algoritmasında olduğu gibi sıralı biçimde veri gizlemesi yapılırsa, resmin belirli bölgelerindeki yoğunluklar değişir. Histogramdaki bozulmanın önlenmesi için veri rasgele gizlenmelidir.

OutGuess Niels Provos tarafından geliştirilen bu algoritmada, DCT katsayıları seçilirken, girilen şifre ile sözde-rasgele seçim yöntemi uygulanmaktadır. Bir kişi gizleme yöntemini bilse dahi şifreyi bilmeden gizlenen veriye ulaşamamaktadır. X2 testi ile tespit edilememektedir. Ancak geliştirilmiş X2 testi ile resimde oluşan yerel bozulmalar belirlenebilmektedir.

OutGuess (devam) Input: message, shared secret, cover image Output: stego image initialize PRNG with shared secret while data left to embed do get pseudo-random DCT coefficient from cover image If DCT ≠ 0 and DCT ≠1 then get next LSB from message replace DCT LSB with message LSB end if insert DCT into stego image end while

F5 Algoritması Bahsedilen her iki yöntem de DCT katsayılarının en önemsiz bitinin değiştirilmesi mantığıyla çalışmaktadır. Andreas Westfeld, bu şekilde çalışan steganografik algoritmalar üzerinde bir değişiklik yaparak F5 algoritmasını ortaya koymuştur. F5 algoritmasında, DCT’de en önemsiz bit değiştirilmek yerine matrix kodlaması (matrix encoding) denilen bir sistemle, en önemsiz bitin mutlak değeri alınarak bu değiştirilmektedir. F5 algoritması ile veri gizleme, histogram analizi veya herhangi bir X2 testi ile belirlenememektedir. Bu algoritma da, OutGuess algoritması gibi bir şifreye göre veri gizlemektedir.

F5 Algoritması (devam) Input: message, shared secret, cover image Output: stego image initialize PRNG with shared secret permutate DCT coefficients with PRNG determine k from image capacity calculate code word length n←2k – 1 while data left to embed do get next k-bit message block repeat G←{n non-zero AC coefficients} s←k-bit hash f of LSB in G s←s ⊕ k-bit message block if s ≠0 then decrement absolute value of DCT coefficient Gs insert Gs into stego image end if until s = 0 or Gs ≠ 0 insert DCT coefficients from G into stego image end while

Matrix Kodlaması Ron Crandal tarafından veri gizleme etkinliğini arttırmak amacıyla ortaya konmuştur. Gizlenecek mesaj uzunluğu ve ortamın büyüklüğüne göre uygun bir k değeri hesaplanması mantığına dayanır.

F5 Algoritması (devam) F5 DCT katsayılarını azalttığı için, ardışık katsayılar toplamı artık değişmez değildir. Bu sebeple, X2 testi ile tespit edilemez. F5 ile JPEG resimlere veri gizlerken, JPEG dosyalar zaten sıkıştırılmış olduklarından ve F5 ile tekrar sıkıştırılma yapıldığından histogram analizi ile de tespit edilmesi oldukça zordur. Çünkü, F5 ile histogramın simetrik ve tekdüze yapısında bozulma olmaz.

Karşılaştırma