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.