Ders 6 - Ses Steganografi

Download Report

Transcript Ders 6 - Ses Steganografi

SES STEGANOGRAFİ
Ders 6
AUDIO STEGANOGRAPHY
• Bilgisayar Merkezli Ses Steganografi
Sistemlerde, gizli mesajlar dijital sesin içinde
gömülüdür.
• Gizli mesaj ses dosyalarının binary dizilerinin
çok az değiştirilmesiyle yerleştirilir.
• Oluşturulan Ses Steganografi yazılımları WAW,
AU, MP3 ses dosyalarına gizli mesaj
yerleştirebilmektedir.
AUDIO STEGANOGRAPHY
• Dijital Seslere gizli mesajlar yerleştirmek, dijital
resim gibi medya unsurlarının içine gizli mesaj
yerleştirmekten daha zordur.
• Gizli mesajları saklamak amacıyla, değişik bilgi
gizleme metotları bulunmaktadır.
• Bu metotlar bilgiyi gürültü içine yerleştiren basit
algoritmalardan başlayıp, karmaşık sinyal
işlemlerini kullanarak bilgi saklayan çok güçlü
algoritmalara doğru çeşitlilik kazanmaktadır.
SES STEGANOGRAFİ METODLARI
1.
2.
3.
4.
5.
LSB Kodlaması (LSB CODING)
Eşlik Kodlaması (PARITY CODING)
Aşama Kodlaması (PHASE CODING)
Tayf Yayılımı (SPREAD SPECTRUM)
Yankı Veri Gizlemesi (ECHO HIDING)
LSB Kodlama
• (Least Significant Bit) En az ağırlıklı bit (LSB)
kodlama dijital ses dosyalarına bilgi gömmenin
en kolay yoludur.
• En az ağırlıklı bitlerin her örnek noktasına bir
binary mesajın yerleştirilmesiyle olur.
• LSB kodlama çok miktarda data kodlanmasına
imkan vermektedir.
• Aşağıdaki diyagram “HEY” mesajının nasıl
kodlandığını göstermektedir.
LSB Kodlama
• LSB kodlamada ideal data iletim oranı 1Khz da
1Kbps dır.
• Bazı uygulamalarda LSB kodlama iki en az
ağırlıklı bit üzerinde iki mesaj bitinin
değiştirilmesiyle de yapılmaktadır.
• Bu kodlama veri miktarını artırmakla birlikte,
ses dosyasında oluşan gürültü miktarını da
artırmaktadır.
LSB Kodlama
• Bu da LSB kodlama yapılmadan önce sinyal
içeriğinin göz önünde bulundurulması
gerektiğini göstermektedir.
• Örneğin; bir metro istasyonunda kaydedilen bir
ses düşük bit kodlayıcı ses ile maskelenmelidir.
• Diğer yandan aynı gürültü piyano solosu içeren
bir ses dosyasında daha yüksek olmalıdır.
LSB Kodlama
• LSB kodlanmış bir ses dosyasından gizli bir
mesajı çıkarmak için, alıcı kişi mesajın
yerleştirilmesinde kullanılan örnekleme
dizisinin indeksine erişmelidir.
• Normal olarak, kodlanan gizli mesajın uzunluğu,
ses dosyasındaki toplam örnekleme sayısından
küçüktür.
• Gizli mesajın içerisinde yer alacağı ve alıcıyla
iletişimde bulunacak olan örnekleme alt
kümesinin nasıl seçileceğine karar vermelidir.
LSB Kodlama – Örnekleme Seçimi
• Örnekleme Seçimi için bir teknik şu şekildedir;
▫ Ses dosyasının başlangıcından başlayıp mesaj
tamamen kodlanana kadar LSB kodlama yapmak
ve ardında kalan diğer örneklemeleri
değiştirmeden bırakmak.
• Ancak bu bir güvenlik problemi yaratmaktadır.
• Ses dosyasının birinci kısmı, değişikliğe
uğramamış ikinci kısmından farklı istatistik
özelliklere sahip olacaktır.
LSB Kodlama – Örnekleme Seçimi
• Bu güvenlik sorununa bir çözüm gizli mesajı
rastgele bitlere doldurmaktır.
• Böylece mesaj uzunluğu, toplam örnekleme
sayısına eşit olur.
• Ama bu durumda da yerleştirme işlemi gizlilik
için gerekli olan iletimden daha fazla örnekleme
değişikliğine yol açar.
• Bu da iletişimde şüpheyi artıracak ve hedef olma
olasılığına neden olacaktır.
LSB Kodlama – Örnekleme Seçimi
• Örnekleme seçimi için daha ileri bir yaklaşım
ise;
▫ mesajı rastgele bir biçimde ses dosyasına yaymak
için pseudorandom(yalancı rastgele sayı üreticisi)
kullanmaktır.
• Diğer bir yaklaşım da;
▫ Hash fonksiyonu kullanılarak pseudorandom
permütasyon yoluyla örneklemenin alt kümesini
hesaplamaktır.
▫ Bu teknik aynı indeksin bir benzerinin bir daha
oluşturulmamasına dayanmaktadır.
LSB Kodlama – Örnekleme Seçimi
• Bir diğer seçenek ise;
▫ Rastgele aralık metodu kullanmaktır.
▫ Gönderici tarafından oluşturulan ve rastgele bir dizi örnek
indeksi oluşturmak için pseudorandom da kaynak olarak
kullanılan gizli bir anahtar kullanılır.
▫ Alıcı kişi tarafında da bulunan bu anahtar sayesinde
pseudorandom bilgisiyle rastgele örnek indeks dizisi
tekrardan oluşturulur.
▫ Pseudorandomun aynı örnek indeksi tekrar yapmasının
önüne geçmek için yapılan karşılaştırmalar(denetimler) bir
yere konulmalıdır.
▫ Eğer iki kez olursa çakışma meydana gelir, bu da
değiştirilmiş bir mesaj alanını tekrar değişikliğe uğratır.
Eşlik Kodlama
• Bir sinyali bireysel örneklere değiştirmek yerine,
parity kodlama metodu bir sinyali örnekleme
alanlarına ayırır ve gizli mesajın her bir bitini benzer
alanın parity bitine kodlar.
• Eğer seçilen alan parity biti kodlanacak gizli mesajın
biti ile eşleşmiyorsa, alanın içinde LBS kodlama
işlemi yapılır.
• Böylece gönderen kişi gizli biti kodlamada daha fazla
seçeneğe sahip olur.
• Ayrıca sinyal daha az dikkat çeken bir moda da
dönüşmektedir.
• Parity kodlama kullanılarak “HEY” mesajının ilk
üç bitinin kodlanması aşağıda gösterilmektedir.
Eşlik Kodlama
• Gizli mesajın ortaya çıkarılması işlemi,
kodlamada kullanılan alanın parity bitlerinin
hesaplanması ve belli sıraya dizilmesi ile
yapılmaktadır.
• Bir kez daha aynı örnekleme alanını oluşturmak
için, gönderici ve alıcı pseudorandomu kaynak
olarak kullanılan bir anahtar kullanılır.
Eşlik Kodlama
• LSB ya da Parity kodlama metodu kullanmanın iki
temel dezavantajı vardır.
▫ İnsan kulağı çok hassas olup, bir ses dosyasındaki en
hafif gürültüyü bile saptayabilir. Yine de parity
kodlama daha az gürültü oluşturmaktadır.
▫ İkinci dezavantaj ise iki yöntemin de güçlü ve sağlam
bir seçenek olmamasıdır.
 Eğer LSB ya da Parity kodlama ile gizli bir mesaj
kodlanmış bir ses dosyası tekrar örneklenirse, gömülü
bilgi kaybolacaktır.
 Çeşitli teknikler kullanılarak daha güçlü bir yapı
oluşturulabilir ama bununla birlikte veri iletim oranı da
önemli oranda azalacaktır.
Aşama Kodlaması
• Aşama Kodlaması yöntemi de resim
dosyalarında uygulanan JPEG algoritması
benzeri bir yapı taşımaktadır.
• Gömme işleminde ses dosyası küçük
segmentlere bölünür ve her segmente ait faz
gizlenecek veriye ait faz referansı ile değiştirilir.
• Aşama Kodlaması insanların duyamayacağı
sesler üzerinde işlem yapmaya dayanmaktadır.
Aşama kodlaması prosedürü aşağıdaki gibidir
Aşama Kodlaması Prosedürü
• Ses verisi N adet kısa segmente bölünür.
• Her segmente Discrete Fourier Transform (DFT)
uygulanarak faz ve magnitude matrisleri yaratılır.
• Komşu segmentler arasındaki faz farklılıkları hesaplanır.
• Her segment için yeni bir faz değeri bilgi gizlenerek
oluşturulur.
• Yeni faz matrisleri ile genlik (magnitude) matrisleri
birleştirilerek yeni segmentler elde edilir.
• Yeni segmentler birleştirilerek kodlanmış çıkış elde
edilir.
• Görsel olarak aşağıda yapılan işlemler gösterilmektedir.
Aşama Kodlamasında Verinin Elde
Edilmesi
• Ses dosyasından gizli mesajı çıkarmak için alıcı
segment uzunluğunu bilmelidir.
• Alıcı bilgiyi çıkartmak için DFT kullanarak fazı
elde eder.
• Aşama kodlamanın tek dezavantajı, düşük data
iletim oranına sahip olmasıdır.
• Bu segmentin uzunluğu artırılarak giderilebilir.
• Ancak bu şekilde mesajın tespiti de kolaylaşır.
• Sonuç olarak aşama kodlama maskeleme gibi
küçük data iletimi gizlemesinde kullanılır.
Tayf Yayılması Yöntemi
• Ses Steganography de, temel spektrum metodu, gizli
bilgiyi, ses sinyalinin frekans spektrumuna mümkün
olduğunca yaymaktır.
• Bu, mesaj bitlerini bütün ses dosyasına rastgele
yayan ve bunu LSB kodlamayı kullanarak yapan
sistemin analog biçimidir.
• Ancak LSB kodlamadan farkı, Spread Spektrum
metodu gizli mesajı ses dosyasının frekans
spektrumuna yayar ve gerçek sinyalden bağımsız bir
kod kullanır.
• Sonuçta oluşan sinyal, gerekli olandan daha fazla
bant genişliğine yol açar.
Tayf Yayılması Yöntemi
• Ses Steganography de iki çeşit Tayf yayılması
yöntemi kullanılmaktadır.
• Bunlar
▫ “direct-sequence” ve
▫ “frequency-hopping schemes” dir.
Tayf Yayılması Yöntemi
• Direct-Sequence metodunda;
▫ Gizli mesaj çip oranı olarak çağrılan sabit bir
yayılma yapar ve sonra pseudorandom sinyal
tarafından ayarlanması yapılır.
▫ Bu daha sonra cover-signal denilen sinyal ile
bütünleştirilir
• Frequency-hopping metodunda ise;
▫ Ses dosyasındaki frekans spektrumu değiştirilir ve
böylece mesaj frekans arasında sekerek gizlenir.
• SS metodunun arkasındaki matematik teorisi oldukça karmaşıktır. Aşağıdaki
diyagram SS hakkında uygulama örneğini göstermektedir.
Tayf Yayılması Yöntemi
• Tayf yayılması metodu LSB kodlama,parity
kodlama ve phase kodlama tekniklerinden daha
iyi sonuçlar verme potansiyeline sahiptir.
• Ayrıca data iletim oranı ayarlamada ve silme
tekniklerine karşı sağlamlık açısından daha iyi
performans gösterir.
• Ancak SS metodu LSB ve parity kodlama ile aynı
sorunu (ses dosyasında oluşturduğu gürültü)
paylaşmaktadır.
Spread Spektrum Kodlama Şeması
SS de Direct-Sequence Metotla Bilginin Gizlenmesinin Gösterimi
Yankı Veri Gizlemesi
• Echo hiding (EH) de, bilgiler ayrı bir sinyal
içerisinde yankı ile ses dosyasına gömülürler.
• Spread Spektrum metot gibi, EH de yüksek data
iletim oranına imkan sağlar.
• Gürültüye sebep olan metotlara nazaran üstün
sağlamlık sağlar.
Yankı Veri Gizlemesi
• Datayı başarıyla saklamak için yankının üç
parametresi değiştirilir.
▫ Genlik, düşüş oranı, orijinal sinyalden
sapması(gecikme süresi).
• Bu üç parametre insan kulağının eşik değerinin
altında ayarlanır.
• Bu yüzden EH zor deşifre edilen bir metottur.
• Ek olarak gecikme süresi, binary mesajın
kodlanması için değiştirilir.
• Bir gecikme süresi değeri binary 1’i temsil eder.
İkinci bir gecikme süresi binary 0’ı temsil eder.
Yankı Veri Gizlemesi
• Eğer orijinal sinyalden sadece bir yankı üretilmiş
ise, sadece bir bitlik bilgi kodlanabilir.
• Orijinal sinyal kodlama işlemi yapılmadan önce
bloklara bölünür.
• Kodlama işlemi tamamlandığı zaman bloklar
son sinyali oluşturmak için birbirine geri
bağlanır.
Yankı Veri Gizlemesi – Bilgi Gizleme
• “HEY” mesajının EH ile kodlanacağı basit bir form
aşağıdaki gibidir.
▫ Sinyalin tamamı bloklara bölünür.
▫ İlk sinyal bloklara ayrılır ve gizli mesaja dayanarak 1 ve 0 olarak
saptamalar yapılır. Bu durumda mesaj, binary olarak “HEY”
mesajı ile eşittir.
Yankı Veri Gizlemesi – Bilgi Gizleme
• Sonra her bloğu kodlamak için aşağıdaki algoritma kullanılır
init(Block blocks[]) {
for (int i=0; i < blocks.length; i++) {
if (blocks[i].echoValue() == 0)
blocks[i] = offset0(blocks[i]);
else
blocks[i] = offset1(blocks[i]);
}
}
Block offset0(Block block) {
return (block + (block - OFFSET_0));
}
Block offset1(Block block) {
return (block + (block - OFFSET_1));
}
• Bloklar son sinyali oluşturmak için tekrar birleştirilir.
Yankı Veri Gizlemesi
• Bu EH uygulaması işlemi sonucunda genellikle
fark edilebilir bir sinyal ortaya çıkar ve buda
deşifre olma riskini artırır.
• Bir ikinci EH uygulaması işlemi bu problemi
giderir.
• İlk echo sinyali binary 0 değeri kullanılarak
orijinal sinyalden oluşturulur.
• Sonra bir ikinci echo sinyali binary 1 değeri
kullanılarak orijinal sinyalden oluşturulur.
Yankı Veri Gizlemesi
• Böylece “1” echo sinyali sadece birleri, “0” echo
sinyali sadece sıfırları içerir.
• İki echo sinyali birleştirilmek suretiyle, son
kodlanmış sinyali elde etmek için kullanılır.
• Karıştırıcı sinyaller blokta kodlanmış bite bağlı
olarak sıfır ve bir değerlerinden herhangi
birisine sahip olur.
• “HEY” mesajını kullanan örneğimizde iki
karıştırıcı sinyal elde edilmiştir.
Yankı Veri Gizlemesi
• “1” echo sinyali “1” karıştırıcı sinyal ve “0” echo
sinyali “0” karıştırıcı sinyal olarak türetilir.
• Sonra elde edilen bu iki sinyal birbirleriyle
toplanarak son sinyal elde edilir.
• Son sinyal ilk EH uygulamasından oluşturulandan
daha belirsiz ve göze çarpmayan bir hal alır.
• Çünkü iki karıştırıcı sinyal birbirini tamamlayıcı
nitelik taşır.
• Bu iki karakteristik karıştırıcı sinyal yankılar
arasında daha yumuşak geçişi sağlar.
• Aşağıdaki diyagram ikinci EH uygulamasının
özetini sunmaktadır.
Yankı Veri Gizlemesi
• Gizlenmiş mesajı tekrar elde etmek için, alıcı kişi
sinyali kodlama boyunca kullanılan aynı blok
dizilerine dönüştürmelidir.
• Daha sonra sinyalin değişiminin otokorelasyon
fonksiyonu kullanılarak mesaj çözülür.
• Çünkü bu fonksiyon ani dalgalanmaların
saptanmasını sağlayıp, mesajın yeniden
oluşturulmasını sağlar.