securecore - MCU Turkey
Transkript
securecore - MCU Turkey
Türkiye İşlemcisini Tasarlıyor SECURE 2008 – Trakya Üniversitesi Proje Danışmanı: Yrd. Doç. Dr. Nurşen Suçsuz Proje Yetkilisi: Yrd. Doç. Dr. Deniz TAŞKIN Proje Ekibi: Öğr. Gör. Cem Taşkın ÖNSÖZ Güvenliğin birincil öncelik olduğu günümüzde şifreleme algoritmalarının güçlenmesine paralel olarak saldırı ve saldırgan sayısında da hızlı bir artış gözlenmektedir. “Şifre olasılıklarının tümünün denenmesinin uzun süreler gerektirmesi” mantığına dayalı bir sistem güvenliği, nereye saldırması gerektiğini bilen akıllı ataklara karşı çaresiz kalmaktadır. Video-şifreleme’nin geleneksel şifreleme yöntemlerinin video verisine bir uygulaması şeklinde tanımlanması; elma-şekeri gibi bir isim tamlaması yapmaktan öteye gidememektir. Veri tipine özel şifreleme ile akıllı ataklara karşı daha dirençli sistemler tasarlanabilir. Kısmi şifreleme, veri tipine özel şifreleme yapma şansı tanımaktadır. Secure projesi kapsamında akıllı saldırılara karşı güvenliği arttırmak için kısmi şifreleme temelli algoritma kullanan bir çekirdek tasarlanmıştır. 1 TEŞEKKÜR Geliştirdiğimiz algoritmaların değişik donanım birimleri üzerinde test edilebilmesine ve böyle güzel bir amacı olan bir yarışmaya katılımcı olmamıza imkan sağlayan Türk Bilişim Derneğine, Proje Direktörü M. Niyazi Saral’a ve proje sponsorlarına teşekkür ederiz. 2 İÇİNDEKİLER Önsöz .............................................................................................................................. 1 Teşekkür ......................................................................................................................... 2 Şekiller listesi ................................................................................................................. 5 Çizelgeler listesi ............................................................................................................. 7 Özet................................................................................................................................. 8 1. Giriş ............................................................................................................................ 9 2. MPEG video sıkıştırma metodu ................................................................................. 11 2.1. I çerçevesi .......................................................................................................... 12 2.1.1. Renk uzayı dönüşümü ve örnekleme ...................................................... 13 2.1.2. İç-çerçeve sıkıştırma ............................................................................... 15 2.1.2.1. Ayrık Kosinüs dönüşümü............................................................ 15 2.1.2.2. Nicelendirme ............................................................................... 17 2.1.2.3. Zig-Zag tarama ............................................................................ 19 2.1.2.4. Değişken uzunlukta kodlama ...................................................... 19 2.2. P Çerçevesi ........................................................................................................ 21 2.2.1. Ara-çerçeve sıkıştırması ve hareket kodlama ......................................... 21 2.3. B Çerçevesi ........................................................................................................ 23 3. MPEG Akımının Çözülmesi....................................................................................... 25 3.1. Başlangıç Kodları ............................................................................................. 26 3.1.1. Akım başlangıç kodu .............................................................................. 27 3.1.2. Resim grubu başlangıç kodu ................................................................... 28 3.1.3. Resim başlangıç kodu ............................................................................. 29 3.1.4. Dilim başlangıç kodu. ............................................................................. 31 3.1.5. Makro blok ve blok başlangıcı ................................................................ 32 3 4. Video akımının şifrelenmesi....................................................................................... 33 4.1. Kısmi şifreleme ................................................................................................ 33 4.2. Geçici referans numaralarını şifreleme ............................................................ 34 5. Secure ......................................................................................................................... 36 5.1. Arayüz sinyalleri .............................................................................................. 39 5.2. Blok şema ve mimari ....................................................................................... 39 5.3. Anahtar yazılması ............................................................................................ 40 5.4. Veri girişi ......................................................................................................... 40 5.5. Veri çıkışı ......................................................................................................... 41 5.6. Benzetim sonuçları ........................................................................................... 41 6. Sonuç .......................................................................................................................... 45 KAYNAKLAR ............................................................................................................... 46 4 ŞEKİLLER LİSTESİ Şekil 1.1. Görsel Şifreleme ............................................................................................. 9 Şekil 2.1. MPEG çerçeve tipleri ..................................................................................... 12 Şekil 2.2. I çerçevesinin kodlanması .............................................................................. 13 Şekil 2.3. Değişik Y değerlerine karşılık CbCr tonları .................................................. 14 Şekil 2.4. Renk uzayı dönüşümleri ve örnekleme .......................................................... 14 Şekil 2.5. Ayrık kosinüs dönüşümü ................................................................................ 16 Şekil 2.6. Örnek sıkıştırma ............................................................................................. 17 Şekil 2.7. İç-nicelik matrisi ve iç-olmayan-nicelik matrisi ............................................ 17 Şekil 2.8. Nicelendirme .................................................................................................. 18 Şekil 2.9. Zig-zag tarama................................................................................................ 19 Şekil 2.10. Örnek çerçeve ve hareket vektörleri ............................................................. 22 Şekil 2.11. P çerçevesinin kodlanması ........................................................................... 23 Şekil 2.12. B çerçevesinin kodlanması ........................................................................... 24 Şekil 3.1 MPEG video katman yapısı............................................................................. 26 Şekil 3.2. Akım başlangıç kodu ve akımın devamı ........................................................ 27 Şekil 3.3. Resim grubu başlangıç kodu .......................................................................... 28 Şekil 3.4. Resim başlangıç kodu ve akımın devamı ....................................................... 30 Şekil 3.5. Video gösterim ve akım sıraları ..................................................................... 31 Şekil 3.6. Dilim başlangıç kodları .................................................................................. 31 Şekil 3.7. Makro blok ..................................................................................................... 32 Şekil 4.1. Kısmi şifreleme .............................................................................................. 33 Şekil 4.2. Gösterim ve depolama sıraları........................................................................ 34 Şekil 4.3. Orjinal ve şifreleme sonrası izlenebilen görüntü ............................................ 35 Şekil 5.1. Durum diyagramı ........................................................................................... 37 5 Şekil 5.2. Secure blok şeması ......................................................................................... 39 Şekil 5.3. Anahtar yazılması işlemi ................................................................................ 40 Şekil 5.4. Secure veri girişi............................................................................................. 41 Şekil 5.5. Giriş, çıkış ve iç sinyaller ............................................................................... 41 Şekil 5.6. Çekirdeğin ilk çalışması anı ve saat vuruşları ................................................ 42 Şekil 5.7. Benzetim sonuçları: ANAHTAR_HAZIR durumu ........................................ 42 Şekil 5.8. Benzetim sonuçları: D1,D2, D3, R1 durumları .............................................. 43 Şekil 5.9. Benzetim sonuçları: B4, B3, B2 ve B1 durumları.......................................... 43 6 ÇİZELGELER LİSTESİ Çizelge 3.1. Başlangıç kodları ........................................................................................ 26 Çizelge 3.2. Akım başlangıç kodu ve örnek akım ile ilgili bilgiler ................................ 27 Çizelge 3.3. Resim grubu başlangıcı ve örnek akım ile ilgili bilgiler ............................ 29 Çizelge 3.4. Resim grubu başlangıcı ve örnek akım ile ilgili bilgiler ............................ 30 Çizelge 3.5. Dilim başlangıcı ve örnek akım ile ilgili bilgiler ....................................... 32 Çizelge 5.1. Durum çizelgesi.......................................................................................... 36 Çizelge 5.2. Ara yüz sinyalleri ve özellikleri ................................................................. 39 7 ÖZET Görsel veriye artan ilgi sebebiyle video dosyaları günlük yaşantıda kullanımı artmakla birlikte video dosyalarının güvenliği de ön plana çıkmaktadır. Video dosyaları dışında, gerçek zamanlı ve güvenlik gereksinimi yüksek video konferans oturumlarının güvenliği de sağlanması da günümüzün önemli konularındandır. Uzunca bir süredir metin dosyalarının güvenliğini başarılı şekilde koruyan geleneksel şifreleme yöntemleri, video verisinin güvenliğini sağlamak için yetersiz kalmaktadır. Bu yöntemler video verisine uygulandığında, şifreyi kırmak isteyen kişilere açık noktalar bırakmaktadır. Video verisi büyük alan kapladığı için şifreleme süresi de uzamaktadır. Bu süre çoğunlukla gösterim süresini aşmaktadır ve gerçek zamanlılıktan uzaktır. Video şifreleme alanında daha önce tasarladığımız ve kişisel bilgisayar üzerinde gerçekleştirmiş olduğumuz "kısmi şifreleme (selective encryption)" temelli çalışmalarda yüksek verim elde edilmiştir. Ayrıca geliştirilen algoritmalar video dosyalarına özel tasarlandığından açık noktaları minimuma indirgenmiştir. Bu çalışmada, kısmi şifreleme temelli hızlı ve bağımsız bir çekirdek tasarlanarak performansı en yüksek seviyeye çıkarma hedeflenmektedir. Projenin gerçek yaşamda video konferans, uydu sistemleri, depolama güvenliği ve bütünlüğü gibi birçok uygulama alanı vardır. 8 1. GİRİŞ Video verisi miktar olarak çok fazla yer kaplamaktadır ve gerçek zamanlılık gibi gereksinimleri bulunmaktadır. Video verisinin şifrelenmesi için geliştirilen ilk yöntemler görsel bozulmalara dayanan basit şifreleme metotlarıdır. Görsel bozulmaya dayalı şifreleme sistemleri video verisini şifreledikten sonra, görüntü bozulmakta ve izlenememektedir. Şekil1.1. Görsel şifreleme Görsel olarak bozulmuş video verisi izleyiciye ulaştığında görüntüyü çözmeye yarayan özel kod çözücü cihazlar yardımıyla görüntü tekrar izlenebilir hale gelmektedir. Görsel bozulmaya dayalı şifreleme sistemleri analog video verisine uygulanmaktadır. Video verisinin kapladığı alan ve bant genişliği gereksinimlerinden dolayı sıkıştırılması gerekmektedir. MPEG video sıkıştırma yöntemi günümüz video depolama ve iletiminin temelini teşkil etmektedir. Benzersiz ve yüksek sıkıştırma oranları MPEG video sıkıştırmasını vazgeçilmez kılmıştır. MPEG, büyük miktarda görsel veri içeren ve eşsiz bir yapıya sahip olan videonun özelliklerini kullanarak yüksek sıkıştırma oranlarını yakalamaktadır. Video dosyası sıkıştırıldıktan sonra açıldığında görüntüde fark edilemeyecek düzeyde bir kayıp söz konusudur. MPEG sıkıştırma yöntemi izleyici tarafından fark edilemeyecek alanlarda kaliteyi düşürerek sıkıştırılmış sinyalin kalitesini yüksek tutmaktadır. MPEG basitçe özetlenecek olunursa birbirini izleyen video çerçevelerinde büyük oranda tekrar eden benzerlikleri ve insan gözünün algılayamayacağı düzeydeki detayları yok sayarak yüksek oranda sıkıştırma sağlamaktadır (Mitchell, J.L.,1996). Görsel bozulmalara dayalı şifreleme sistemleri (Nagravision gibi) video verisinin görsel özelliklerini bozmaktadır. Görsel bozulmaya dayalı klasik şifreleme yöntemleri, 9 videonun görsel özelliklerini bozduğundan MPEG sıkıştırma yöntemi ile verimli sıkıştırılamazlar. MPEG sıkıştırma yöntemi kayıplı bir sıkıştırma yöntemi olduğundan şifrelenmiş bir görüntünün sıkıştırıldıktan sonra şifresinin çözülmesi imkansızdır. Video akımının bant genişlikleri yüzünden sıkıştırılarak iletilmesi ve sıkıştırma işleminden önce şifreleme yapma imkanının olması, sıkıştırılmış ortamda şifreleme yapmayı zorunlu kılmaktadır. Bu çalışma, video verisinin güvenlik gereksinimlerini karşılama için gerçek zamanlı ve sıkıştırma oranlarını düşürmeden çalışabilecek düzeyde geliştirilmiş olan yöntemlerin donanımsal uygulaması şeklindedir. MPEG video sıkıştırma metodu ile ilgili bilgiler Bölüm 2’de anlatıldıktan sonra Bölüm 3’de MPEG video akımının çözülmesi aşamaları incelenecektir. Bölüm 4 şifreleme çekirdeğinde kullanılacak olan şifreleme yöntemini anlatmakta, Bölüm 5’te ise bu algoritmayı temel alan şifreleme çekirdeği ve buna ait benzetim sonuçları sunulmaktadır. Çalışma, sonuçların Bölüm 6’da açıklanması ile son bulacaktır. 10 2. MPEG VİDEO SIKIŞTIRMA METODU Saklama hacmi olarak toplamda daha az bit kullanılması, hareketli resimlerin çok daha hızlı bir şekilde transfer edilmesi anlamına gelmektedir. Böylece pahalı haberleşme hatları ve depolama cihazları, yeni video uygulamalarında daha verimli kullanılmaktadır. MPEG sıkıştırma metodu kullandığı birçok yöntem sayesinde yüksek sıkıştırma oranları yakalamaktadır. Sayısallaştırılmış video akımını sıkıştırma, hazır çorbaya benzetilebilir. Çorba paketlenirken taşıma ve saklamayı daha etkin yapmak için çorba içindeki tüm su ayrıştırılır, kurutulmuş çorba paketlenerek satılır. Paket müşteriye ulaştığında karışıma su eklenerek çorba tekrardan oluşturulur. MPEG sıkıştırması da ses ve görüntü akımından gereksiz bilgileri çıkartarak, sinyali orijinal boyutundan daha küçük hale getirmektedir. Akım izleyiciye ulaştığında kod çözücü birim orijinal içeriği tekrardan oluşturup videoyu izlenebilir kılmaktadır. Sıkıştırma sayesinde depolama ve iletimde büyük kolaylıklar sağlanmış ve video dosyalarının kullanım oranları artmıştır. MPEG sıkıştırma yöntemi kayıplı bir sıkıştırma yöntemidir. Bu yüzden video dosyası sıkıştırıldıktan sonra açıldığında görüntüde fark edilemeyecek düzeyde bir kayıp söz konusudur. MPEG sıkıştırma yöntemi izleyici tarafından fark edilemeyecek alanlarda kaliteyi düşürerek sıkıştırılmış sinyalin kalitesini yüksek tutmaktadır. MPEG sıkıştırma yönteminde birden fazla teknik kullanılarak bir sinyal, resim kalitesinden uzaklaştırılmadan hatırı sayılır biçimde sıkıştırılabilir, ancak bant genişliğini ekonomik kullanmak için daha fazla sıkıştırma gerektiğinde görüntü kalitesi de düşecektir. MPEG, kayıplı bir sıkıştırma yöntemi olduğundan farklı MPEG sıkıştırıcı birimlerin oluşturduğu akımlar bire bir aynı olmamaktadır. Bu yüzden bazı algoritmalar (stenografi, şifreleme, video işleme gibi) akım sıkıştırıldıktan sonra uygulanmalıdır. Aksi takdirde sıkıştırma işlemi sırasında algoritmayı aktif kılan elementler sıkıştırma işlemi sonucunda yok olmaktadır. Sıkıştırılmamış video dosyalarının aksine MPEG yöntemi ile sıkıştırılmış video dosyalarında 3 farklı çerçeve tipi vardır. Bu sayede birbirini takip eden çerçeveler arasında az bir görsel fark olması durumunda çerçevenin tamamı dosyaya aktarılmaz. Ara-çerçeve tahmini, ardıl çerçevelerdeki benzerlikleri avantaj olarak kullanmaktadır. Öncelikle tam bir referans çerçeve seçilmekte ve ardından gelen çerçeveler bu referans çerçeve ile olan 11 farklılıklar kodlanmak suretiyle ifade edilmektedir. Referans çerçeveye iç-kodlanmış çerçeve ya da I-çerçevesi denilmektedir. I-çerçevesi, P ve B tipi çerçeveleri tahmin etmek için kullanılmaktadır. Şekil 2.1 MPEG çerçeve tipleri ve çerçeveler arasındaki ilişkileri göstermektedir. Şekil 2.1. Mpeg çerçeve tipleri 2.1. I Çerçevesi I çerçevesi, gösterilebilmesi için başka bir resme ihtiyaç duyulmayan tam bir video resmidir. Bu yüzden en çok veriyi kapsamaktadır. Diğer çerçevelerden bağımsız olduğu için ayrı bir resim gibi düşünülebilir. I çerçevesi bir önceki çerçeve ile çok fazla farklılıkların olduğu durumlarda kullanılmaktadır. Bu çerçeve renk uzayı dönüşümü, örnekleme ve iç-çerçeve sıkıştırma metodu kullanılarak kodlanmaktadır. Şekil 2.2 I çerçevesinin sıkıştırılması sırasında kullanılan yöntemleri göstermektedir. 12 Y I çerçevesi Cb Cr Renk uzayı dönüşümü ve örnekleme Zig-zag tarama ve Entropi kodlama Nicelendirme Ayrık Kosinüs Dönüşümü 8x8 blok Şekil 2.2. I çerçevesinin kodlanması 2.1.1. Renk uzayı dönüşümü ve örnekleme Daha önceki bölümlerde anlatıldığı gibi sayısal video akımlarında, genellikle RBG renk uzayı kullanılmamaktadır. İnsan gözü, bir noktadaki parlaklık değişikliğini renk değişikliğine göre daha çok fark etmektedir. MPEG sıkıştırma metodu, RGB renk uzayını YCbCr renk uzayına dönüştürmektedir. Bu dönüşüm, Y (Parlaklık-Intensity) = + 0.299R + 0.587G + 0.114B Cb(Mavi/Sarı) = + 0.492(B - Y) = - 0.147R - 0.289G + 0.436B Cr (Kırmızı/Yeşil)= + 0.877(R - Y) = + 0.615R - 0.515G - 0.100B formülleri ile yapılmaktadır. Şekil 2.3 değişik Y değerlerine karşılık CbCr tonlarını göstermektedir. 13 Şekil 2.3. Değişik Y değerlerine karşılık CbCr tonları Örnekleme işleminde, Cb, Cr ile temsil edilen renkleri daha az yer kaplayacak şekilde daraltılmakta, Y ile temsil edilen parlaklık değerleri ise insan gözünün parlaklık değişikliklerine olan yüksek hassasiyetinden dolayı değiştirilmemektedir. R G B Y Cb Cr a) RGB YCbCr dönüşümü Y Cb Cr Y Cb Cr b) 4:2:2 örnekleme c) 4:2:0 örnekleme Şekil 2.4. Renk uzayı dönüşümleri ve örnekleme Renk uzayının dönüşümü ve yeniden örneklendirilmesi, kayıplı bir sıkıştırma sağlamaktadır. Bu sıkıştırma işlemi MPEG video görüntülerinde birbirine yakın piksellerde daha az ton değişikliğinin olmasına ve iç-çerçeve sıkıştırma verimliliğinin artmasına olumlu etki sağlamaktadır. Şekil 2.4 renk uzayı dönüşümü ve örnekleme işlemlerini göstermektedir. 14 2.1.2. İç-çerçeve sıkıştırma İç-çerçeve sıkıştırma, video çerçevesindeki düz alanlarda bulunan benzer renklerin oluşturduğu gurupları farklı şekilde kodlayarak sıkıştırma sağlamaktadır. Örnek olarak mavi gökyüzü arka planına sahip bir video görüntüsünde, birçok sütundan oluşan benzer mavi pikseller bulunmaktadır. Uzaysal kodlama, bu piksel grubundan sadece bir pikseli ve ardından diğerlerinin birbirine benzer olduklarını belirterek kodlamaktadır. Böylece bit akımından büyük oranda fazlalık veri atılmaktadır. İç-çerçeve sıkıştırma işlemi aşağıdaki adımlardan oluşur. Bunlar, 1. Ayrık kosinüs dönüşümü, 2. Nicelendirme, 3. Zig-Zag Tarama, 4. Değişken uzunluklu kodlama’dır. Ayrık kosinüs dönüşümü, videoyu oluşturan çerçeveleri 8x8 bloklara bölmekte, ardından katsayı denilen, piksel renk ağırlıklarını frekans düzlemine geçirmektedir. Elde edilen sayılar seçilen kalite oranına göre bir tablo kullanılarak nicelendirilmektedir. Bu işlemden sonra uzaysal ve tekrarlayan artıklardan dolayı birçok katsayı sıfır ya da sıfıra yakın değerlerle sonlanmaktadır. Bunlar katsayı serisinden atılarak bir video çerçevesi çok az sayıda bit ile gösterilmektedir. Sonuçta insan gözünün fark edemeyeceği düzeyde birçok ufak detayı yok eden kayıplı bir sıkıştırma sağlanmaktadır. 2.1.2.1. Ayrık kosinüs dönüşümü Dönüşüm kodlama, resim ve video işleme uygulamalarının çoğunda temel yöntem olarak kullanılmaktadır. Ayrık kosinüs dönmüşümü ile değerler frekans uzayına dönüştürülmektedir. 8x8’lik piksel bloklarına uygulanan ayrık kosinüs dönüşümü (Ahmed v.d. 1974), , 1 √ ∑ ∑ , 15 cos cos formunda verilmektedir. Burada kullanılan C fonksiyonu 1 √2 1 0 0 ile tanımlanır. Ayrık kosinüs dönüşümü için girdi aralığının -128 ile +127 arasında olması gerekmektedir. Bu yüzden ayrık kosinüs dönüşümü yapılmadan önce piksel değerlerinden 128 çıkartılarak ayrık kosinüs dönüşümü yapılmaktadır. Örnek NxN matris için ayrık kosinüs dönüşümü sonucu aşağıdaki gibi olmaktadır. Şekil 2.5. Ayrık Kosinüs Dönüşümü Aşağıda Şekil 2.6’daki ayrık kosinüs dönüşümü incelendiğinde, yöntemin sağlamış olduğu yüksek sıkıştırma görülebilmektedir. 16 Şekil 2.6. Örnek sıkıştırma 2.1.2.2. Nicelendirme Nicelendirme işlemi DCT işlemi sonucunda çıkan D matrisinin her bir elemanının nicelik matrisi Q ile bölünmesi işlemidir. , , MPEG sıkıştırma standardına göre 3 farklı tipte resim öngörülmektedir. İç-çerçeve sıkıştırma metoduyla kodlanan I çerçeveleri, iç-nicelik matrisi kullanılarak nicelendirilmektedir. P ve B çerçeveleri ise makro bloğun tipine bağlı olarak iç-nicelik matrisi veya iç-olmayan-nicelik matrisi kullanılarak nicelendirilir. Ayrıca kullanıcıya kendi nicelik matrisini kullanma şansı tanımaktadır.(Ding ve Liu, 1995) Şekil 2.7. İç-nicelik matrisi ve iç-olmayan-nicelik matrisi 17 Aşağıdaki örnekte iç-nicelik matrisi kullanarak niceleme işlemi gerçekleştirilecektir. D matrisi sol alt köşesinde düşük sayısal değerlerin bulunduğu ve Q iç-nicelik matrisinin sol alt köşesinde büyük sayısal değerlerin olduğu dikkate alındığında; niceleme işlemi sonucunda C matrisinin sol alt köşesindeki birçok değerin sıfır olduğu görülmektedir. D Q =C Şekil 2.8. Nicelendirme Kullanıcı tanımlı matrisler sıralama başlangıcından hemen sonra ya da nicelik matrisi uzantısında yüklenmektedirler. Video akımında akım sıralama başlangıç kodu bulunduğunda tüm nicelik matrisleri varsayılan olarak ayarlanmaktadır. Q matrisi 8 bit işaretsiz 64 değerden oluşmakta ve sıfır ile bölme işlemi olamayacağından sıfır değeri içermemektedir. (Chun v.d.,1993) 18 2.1.2.3. Zig-Zag tarama İki boyutlu olan C matrisi zig-zag tarama işlemi ile tek boyutlu bir dizi haline dönüştürülmektedir. Bu tarama ile dizinin son elemanlarının tümünün sıfır olması sağlanmaktadır. Bu durumda sıfırların hepsi akıma dahil edilmez, özel bir karakter kullanılarak dizinin geri kalanının sıfır olduğu kodlayıcıya bildirilmektedir. Şekil 2.9. Zig-Zag tarama Şekil 2.9’da örnek akımın zig-zag taranması sonucunda -52, -2, 0, -2, -1, -3, 1, -3, 0, -2, 1, 1, 3, 0, 2, -1, 0, -1, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 halinde tek boyutlu hale gelen veri - 52, -2, 0, -2, -1, -3, 1, -3, 0, -2, 1, 1, 3, 0, 2, -1, 0, -1, 1, 0, 0, 0, 0, 0, -1, -1, [özel dizi sonu karakteri] şeklinde değişken uzunlukta kodlama işlemine tabi tutulmaktadır. 2.1.2.4. Değişken uzunlukta kodlama Değişken uzunlukta kodlama, David A. Huffmann tarafından 1952 yılında veri sıkıştırılması için geliştirilmiş kayıpsız bir kodlama algoritmasıdır. Algoritma, temel olarak veri içerisinde en az kullanılan karakterler için en uzun, en çok kullanılan karakterler için ise en kısa kodu üretmektedir. Huffman sıkıştırma algoritması, veri içerisindeki karakterlerin kullanım sıklığına göre bir ağaç oluşturmaktadır. Ağacın en tepesinden sola ayrılan dal için 0, sağa ayrılan dal için 1 kodu verilmektedir. Ağaç oluşturulurken öncelikle karakterlerin kullanım frekansları hesaplanmaktadır. Örnek olarak BAACC verisi alındığında, karakterlerin kullanım sıklıkları aşağıdaki gibi olmaktadır: 19 2 1 A:2 B:1 B C:2 2 A C Ardından en küçük iki frekans toplanarak frekans tablosu yeniden düzenlenmektedir. 3 B+A: 3 1 C:2 2 B 2 A C Bu işlem tek bir ağaç oluşturulana dek tekrarlanır. 5 0 C+(A+B)=5 1 3 0 1 1 2 2 B A C Ağacın dallarını oluşturan rakamlar kullanım sıklıklarını kırmızı rakamlar ise bit kodlarını göstermektedir. Oluşturulan ağaca göre bit haritaları aşağıdaki şekilde olmaktadır: B:00 A:01 C:1 Oluşturulan bit haritaları karakterlerin veri içersindeki konumlarına göre yerleştirildiğinde ortaya çıkan bit haritası sıkıştırılmış veri olmaktadır. 20 BAACC = 00 01 01 11 = 17h Normal sabit uzunluklu kodlama ile her bir karakter 1 Byte yer kaplayacağından BAACC verisi toplam 5 Byte yer kaplamaktadır. Oysa veri Huffman sıkıştırma metoduyla sıkıştırıldığında 1 Byte yer kaplamaktadır. Huffmann algoritması az sayıda karakter çeşidine sahip ve büyük boyutlardaki verilerde çok kullanışlı olmaktadır. Yöntemin en zayıf noktası, oluşturulan ağaçların sıkıştırılmış veriye eklenmesi zorunluluğudur. Ağaç yapısı veriye eklendiğinde bir miktar kayıp oluşmaktadır. MPEG video sıkıştırma metodu, verinin kodlanması için kodun tamamında değişken uzunlukta kodlama yöntemini kullanmaktadır. Bununla beraber ağaç yapısının sıkıştırılmış veriye eklenmek zorunda kalınması dezavantajını aşmak için Ek 1’de bulunan sabit Huffman tabloları kullanılmaktadır. 2.2. P Çerçevesi P çerçevesi, bir önceki çerçevedeki farklılıkların tespit edildiği ve aradaki farklılıkların kodlandığı bir çerçevedir. Gösterilebilmesi için bir önceki I çerçevesine ihtiyaç duymaktadır. P çerçevesinde referans belirlemek için, 4 adet 8x8 bloğun birleşmesiyle meydana gelen makro bloklar kullanılmaktadır. Kodlayıcı P çerçevesindeki her bir makro blok için bir önceki P ya da I çerçevesinde arama yaparak uygun bir referans makro blok bulmaya çalışmaktadır. Referans makro blok ile oluşan küçük miktardaki farklılıklar da ayrıca kodlanarak iletilmektedir. Önceki çerçevede uygun bir referans makro blok bulunamaz ise o makro blok, I çerçevesi makro bloğu gibi kodlanmaktadır. Bu tip sıkıştırmaya ara-çerçeve sıkıştırması denmektedir. 2.2.1. Ara-çerçeve sıkıştırması ve hareket kodlama Bir hareketli resim dizisindeki iki komşu çerçeve genellikle birbirlerine çok benzerler. Resmin bazı kısımları çerçeveler arasında çok küçük miktarda yer değiştirmektedir. MPEG sıkıştırma metodu her yeni çerçeveyi uygun bir şekilde bölümlere ayırıp, bu bölümlerin nereden geldiğini belirlemek için bir önceki çerçeveyi araştırarak, meydana gelmiş olan zamansal fazlalıkları atmaktadır. Bir çerçevenin içeriğinin çoğu bir 21 önceki çerçevede de bulunuyorsa, o çerçevenin tekrardan gönderilmesi depolama ve aktarım kaybı yaratmaktadır. Bütün çerçeveyi göndermek yerine, bir önceki çerçeve referans alınarak farklılıkların kodlanması akım hacmini düşürmektedir. Şekil 2.10. Örnek çerçeve ve hareket vektörleri Nesnelerin ekrandaki konumları genellikle değişmekte iken, görünümleri sabit kalmaktadır. Hareket tahmini bu benzerliğin avantajını, nesnelerin hareketlerini ölçerek kodlanması yoluyla kullanmaktadır. Video akımı çözülürken vektör şeklinde kodlanmış hareket kullanılarak, önceki çerçevelerdeki konumu kaydırılmakta ve takip eden çerçevedeki yeni yerine getirilmektedir. Bu yüzden hareket eden nesneler, sadece bir kez kodlanmakta ve gerektikçe çerçeveler arasında hareket vektörleri yolu ile ifade edilmektedirler. 22 Şekil 2.111. P çerçeveesinin kodlaanması 2.3. B Çerçevesii Önceki çeerçevede ollmayan bir nesnenin I çerçevesiinden sonraa birdenbiree ortaya ması durumuunda, çerçeevede uyguun bir referrans bulunaamayacağınndan makro o bloğun çıkm tamaamının kodllanması gerrekmekte ve v bu sıkışttırma oranıını düşürmeektedir. Bu u yüzden nesnenin var oldduğu bir sonnraki P veyaa I çerçevessini referanss alan, üçünncü tip B çerrçeveleri kullaanılmaktadırr. B çerçevveleri bir önceki ö ya da d daha sonnraki çerçeevedeki fark klılıkları kodlaamaktadır. İleri ya da geri her ikii yönde tah hmin yapılabbileceğindeen en uygun n tahmin kodlaayıcı tarafınndan seçilm mektedir. 23 Şekil 2.12. B çerçevesiinin kodlanm ması 24 3. MPEG AKIMININ ÇÖZÜLMESİ MPEG sıkıştırma yöntemi, etkin bir sıkıştırma yöntemi olması ile birlikte dosya deseni bakımından da esnek bir yapıya sahiptir. Bir video bütününden kopartılan video parçacığı kendi başına izlenebilir, video parçacıkları birleştirilerek daha büyük video parçacıkları oluşturulabilir ve birleştirilmiş video parçalarının izlenebilmesi için ana video bütününe ihtiyaç duyulmaz. Esnek dosya yapısı, MPEG sıkıştırma yönteminde değişken uzunlukta kodlama kullanılmasından ileri gelmektedir. Değişken uzunlukta kodlama, dosyanın belli bir desene sahip olmasını engellemektedir. Belli bir dosya kalıbı yerine MPEG video akımında hiyerarşik bir katman yapısı öngörülmektedir. (Taşkın .v.d., 2007) Video akımı Resim grubu 8 piksel Dilim 8 piksel Blok Resim Makro blok Şekil 3.1 MPEG video katman yapısı 25 Bir video akımının en küçük elementi, 8x8 büyüklüğünde, değişken uzunlukta kodlanmış biçimde piksel bilgilerini içeren bloklardır. 4 adet bloğun birleştirilmesi ile 16x16 büyüklüğünde, içinde hareket vektörlerinin de saklandığı makro bloklar oluşturulmaktadır. Dilim katmanı, makro blokların birleşmesi ile meydana gelmektedir. Dilim katmanının hataların kontrolü açısından önemli bir görevi bulunmaktadır. Eğer kod çözücü birim, bir dilimde hata belirler ise dilimin kalanını çözmeden diğer dilime atlamaktadır. Dilimlerin birleşmesi ile video akımının izleyici tarafından gözlenebilen tek katmanı olan resimler oluşmaktadır. Resimler, kodlayıcı ve kod çözücü tarafından kolay kontrol edilebilmesi amacıyla resim grupları halinde gruplandırılmaktadır. Resim gruplarının birleşmesi video akımını oluşturmaktadır. 3.1 . Başlangıç Kodları Belli bir dosya deseni bulunmayan MPEG video akımında, video katmanlarının belirlenmesi için akım içinde benzeri bulunmayan başlangıç kodları kullanılmaktadır. Bütün başlangıç kodları yirmi üç adet 0 ve bir adet 1’den oluşan 3 byte’lık bir ön ek almaktadırlar. Ön ekin ardından gelen byte, farklı başlangıç kodlarının kimliğini belirlemektedir. Mpeg akımında değişken uzunlukta kodlama yapıldığından, başlangıç kodları dışında buna benzer bir dizilime rastlamak mümkün değildir. Çizelge 3.1.’de bazı video başlangıç kodları verilmiştir. Çizelge 3.1. Başlangıç kodları Ön Ek 0000 0000 0000 0000 0000 0001 Başlangıç kodu Değeri Resim grubu Resim Akım sonu Akım hatası Akım başlangıcı Dilim 1 … Dilim 175 1011 1000 0000 0000 1011 0111 1011 0100 1011 0011 0000 0001 … 1010 1111 26 Başlangıç kodları olmadan bir video akımının çözülmesi ve izleyiciye anlamlı görüntüler sunulması, alt katmanlara ayrılmış hiyerarşik MPEG video yapısı yüzünden imkânsızdır. Kod çözücü birim, katmanları blok tabakasına kadar çözmektedir. Kod çözücü birim, katman yapısına uymayan hatalı bir akım ile karşılaştığında o anda yaptığı işlemi kesip kodu çözmeye en başından başlamaktadır. 3.1.1. Akım başlangıç kodu Bir video akımının çözülebilmesi için ilk olarak akım başlangıç kodunun bulunması gerekmektedir. Akım başlangıç kodu olmayan bir akım geçerli bir MPEG video akımı olarak algılanamaz. Akım başlangıç kodu, belli aralıklar ile tekrarlanmaktadır. Bu tekrarlar sayesinde akım ileri ya da geri sarıldığında, akım çözme işlemi hatasız gerçekleştirilmiş olmaktadır. Sadece tek akım başlangıç kodu olan görüntüler baştan sona izlenebilirler fakat ileri ya da geri alınamazlar. Akım Bilgisi Akım başlangıç kodu Resim Grubu 00000000 00000000 00000001 10110011 Resim Grubu Resim Grubu Şekil 3.2. Akım başlangıç kodu ve akımın devamı Akım başlangıç kodunun hemen ardından akım ile ilgili detaylı bilgiler gelmektedir. Çizelge 3. 2. Akım başlangıç kodu ve örnek akım ile ilgili bilgiler Byte No Bit7 Bit6 Bit5 0 1 2 3 0 0 0 1 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 5 6 0 0 1 Bit4 Bit3 Bit2 0 0 0 0 0 0 0 0 0 1 0 0 Akım başlangıç kodu 1 1 0 0 Yatay boyut 0 0 0 0 0 Dikey boyut 27 Bit1 Bit0 Değeri 0 0 0 1 0 0 1 1 0 0 1 179 (B3) 0 0 0 0 1 0 384 288 7 0 0 7 8 9 0 0 10 1 10 11 11 11 11 0 0 0 1 0 0-0-1-0 = 3:4 Görünüş oranı 0 0 1 Çerçeve oranı 0 0 0 1 0 0 0 0 0 0 Bit oranı 4 bit sola kaydırılmıştır. 1 0-0-1-1 = 25 Fps 1 0 320 bps 1 0 0 0 0 İşaret biti her zaman 1’dir 0 1 1 1 0 112 VBV tampon boyutu 0 Zorunlu parametre bayrağı 0=Mpeg2 1=Mpeg1 0 İç nicelik matrisi yükle? 0=yükleme, 1=yükle 0 İç-olmayan nicelik matrisi yükle? 0=yükleme, 1=yükle 0 0 Ele alınan örnek akımın, 384x288 çözünürlüğünde, 320 bit/s oranına sahip bir MPEG-2 videosu olduğu görülmektedir. Ters ayrık kosinüs dönüşümü için herhangi bir iççarpan matrisi içerip içermediği, takip eden bitlerle ifade edilecektir. Akım kodu çözüldükten sonra video akımı hakkında genel bilgiler kod çözücü tarafından belirlenmiş olmaktadır. Akımın çözümü açısından bu bilgiler önemlidir. Çünkü bir daha çerçeve boyutuyla ilgili akım içerisinde herhangi bir bilgi bulunmamaktadır. Kod çözücü birim bu bilgileri dikkatle değerlendirmek zorundadır. 3.1.2. Resim grubu başlangıç kodu Video akımı başlangıç kodu belirlenerek, akımın karakteristiği hakkında bilgiler elde edilmektedir. Bu başlık kodundan sonra katman yapısına uygun biçimde resim grubu başlangıç kodu bulunmaktadır. Resim grubu başlangıç kodu Grup Bilgisi Resim 00000000 00000000 00000001 10111000 Şekil 3.3. Resim gurubu başlangıç kodu 28 Resim Resim Resim grubu başlangıç kodunun hemen ardından resim grubu hakkında teknik bilgiler veren bit alanları bulunmaktadır. Çizelge 3. 3. Resim grubu başlangıcı ve örnek akım ile ilgili bilgiler Byte No 0 1 2 3 Bit7 0 0 0 1 4 0 4 4 5 Bit6 0 0 0 0 Bit5 0 0 0 1 0 0 6 7 İşaret biti her zaman 0’dır 0 0 0 Saat bilgisi 0 0 0 0 0 0 Dakika bilgisi 1 İşaret biti her zaman 1’dir 0 0 0 Değeri 0 0 1 184(B8) 0 0 0 Bit0 0 0 1 0 0 5 5 6 Bit4 Bit3 Bit2 Bit1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 Resim grubu başlangıç kodu 1 0 0 0 0 0 0 Saniye bilgisi 0 0 0 0 Resim sayımı 7 1 1 Kapalı resim grubu? 0=Açık 1=Kapalı 0 Kırık bağlantı 0=Kırık değil 1=Kırık 0 0 0 0 Doldurmak İçin fazlalık olarak 5 adet 0 7 7 0 0 0 3.1.3. Resim başlangıç kodu Resim başlangıç kodu resim grubunun hemen ardından gelmekte ve en çok sıfır değerini içermektedir. 29 Resim başlangıç kodu Resim Bilgisi 00000000 00000000 00000001 00000000 Dilim1 Dilim 2 Dilim 3 Şekil 3.4. Resim başlangıç kodu ve akımın devamı Resim başlangıç kodunun hemen ardında, geçici referans numarası, çerçeve tipi gibi resim ile ilgili detaylı bilgilerin bulunduğu bir alan gelmektedir. Çizelge 3. 4.Resim başlangıcı ve örnek akım ile ilgili bilgiler Byte No 0 1 2 3 Bit7 0 0 0 0 Bit6 0 0 0 0 Bit5 0 0 0 0 Bit4 0 0 0 0 4 5 0 0 0 0 0 0 Bit3 Bit2 0 0 0 0 0 0 0 0 Resim 0 0 Bit1 0 0 0 0 Bit0 0 0 1 0 0 0 Değeri 0 0 1 0 Geçici referans numarası 5 0 0 1 1 Çerçeve tipi 001=I çerçevesi 5 1 1 1 FFFF 6 1 1 1 1 1 1 1 1 7 1 1 1 1 1 Vbv gecikmesi =FFFF değişken bit kodlama (Mpeg2 için geçerli) 7 0 0 0 0 Ekstra bit alanı =1 olduğu durumda 1 byte ekstra bilgi alanı karşımıza çıkar. Genelde 000 vardır Video akımının izlenebilir olması için aşılması gereken sorunlardan biri, MPEG video çerçevelerinin sıralanması işlemidir. MPEG akımında 3 tip çerçeve bulunmakta, B ve P tipi çerçevelerinin gösterilebilmesi için referans çerçevelere ihtiyaç duyulmaktadır. Şekil 4.5.a’da örnek bir video akımı gösterilmektedir. Bu akımda yer alan 2. çerçeve olan B çerçevesinin gösterilebilmesi için 4. çerçeve olan P çerçevesine ihtiyaç duyulmaktadır. Kod çözücü birimin 2. çerçeveyi göstermesi esnasında 4. çerçeveye ait bilgileri de kullanmaktadır. 30 Sıra Çerçeve Tipi 1 I 2 3 B B 4 P 5 6 B B 7 P 8 9 10 B B I 11 B 12 B 13 P 14 B 15 B 16 P 13 P 11 B 12 B 16 P 14 B 15 B a) Gösterim sırası Sıra Çerçeve Tipi 1 I 4 P 2 3 B B 7 P 5 6 10 8 9 B B I B B b) Akım sırası Şekil 3.5. Video gösterim ve akım sıraları Bu sorunun aşılması için MPEG video akımında çerçevelerin gösterim sırası ile akım içindeki sıraları farklı tutulmakta ve kod çözücü birimin gösterim sıralarını tespit edebilmesi için, geçici referans numarası adı verilen 10 bitlik bir numara kullanılmaktadır. Kod çözücü birim akımdaki sıralara dikkat etmemekte ve izleyiciye birbirini takip eden referans numaralı resimleri göstermektedir. Örnek video akımı dikkate alındığında kodu çözülmekte olan çerçevenin geçici referans numarası 0 olan bir I çerçevesi olduğu anlaşılmaktadır. 3.1.4. Dilim başlangıç kodu Resim çerçevesi, gösterim sırası ve diğer özellikleri kod çözücü tarafından daha önceden belirlendiği halde henüz akım izlenebilir değildir. Kod çözücü birim, katman yapısını takip etmekte ve bir sonraki adım olan dilim başlangıç kodunu belirlemektedir. Dilim başlangıç kodu diğer başlangıç kodlarından farklı olarak 175 farklı seçeneğe sahiptir. 1.Dilim başlangıç kodu 00000000 00000000 00000001 00000001 2.Dilim başlangıç kodu 00000000 00000000 00000001 00000010 Dilim Bilgisi Makroblok Makroblok Makroblok 1 2 3 Dilim Bilgisi Makroblok Makroblok Makroblok 1 2 3 ... 175.Dilim başlangıç kodu 00000000 00000000 00000001 10101111 Dilim Bilgisi Makroblok Makroblok Makroblok 1 2 3 Şekil 3.6. Dilim başlangıç kodları 31 Dilimlerin başlangıç kodları, resim çerçevesi içerisindeki konumları hakkında kod çözücü birimi bilgilendirmektedir. Her bir dilim resim çerçevesinin bir satırını tamamen kaplamak zorunda değildir. Ayrıca bir resim çerçevesinin oluşturulması için, MPEG sıkıştırma metodunun en fazla 175 adet çerçeveye izin verdiği açıkça görülmektedir. Çizelge 3. 5. Dilim başlangıcı ve örnek akım ile ilgili bilgiler 0 1 2 3 0 0 0 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 Numaralı dilim. Dilim numarasına göre başlık değişiyor 1 0 0 1 Nicelik Ölçeği 0 1 byte ilave bilgi alanı 0=Bilgi Yok 1=Bilgi var 0 0 1 1 9 3.1.5. Makro blok ve blok başlangıcı Makro blokların ve blokların herhangi bir başlangıç kodu bulunmamaktadır. Dilim bilgisinin hemen ardından makro blok ve kodlanmış bit dokusu şeklinde blok bilgisi gelmektedir. Dilim Bilgisi Makro blok adres Makro blok artım miktarı tipi Nicelik ölçeği Şekil 3.7. Makro blok 32 Hareket Vektörü Kodlanmış blok dokusu 4. VİDEO AKIMININ ŞİFRELENMESİ Sıkıştırılmış video akımında görsel bozulmaya dayalı şifreleme işlemi yapmak, MPEG kodlamanın kayıplı bir sıkıştırma metodu olmasından dolayı uygun olmamaktadır. Ayrıca görsel bozulmaya dayalı şifreleme sistemlerinin video işleme metotları kullanarak kırılabileceği gösterilmiştir. Bu durumda, görsel bozulmaya dayalı bir şifreleme algoritması kadar hafif ve düşük maliyetli bir şifreleme için MPEG sıkıştırma algoritmasına uyumlu bir metot geliştirilmelidir. MPEG akımını şifrelemek için geliştirilen algoritmaların temelinde kısmi şifreleme bulunmaktadır. Kısmi şifreleme ile akımın gösterilebilmesi için hayati önem taşıyan bilgiler şifrelendiğinde akımın gösterilmesi mümkün olmamaktadır. 4.1 Kısmi Şifreleme Günümüz araştırmaları, var olan şifreleme algoritmalarının video verisinin gerçek zamanlılık ihtiyaçlarını karşılayacak şekilde yeniden düzenlenmesi ya da yeni şifreleme algoritmaları geliştirilmesini hedef almaktadır. Bu araştırmalardan büyük bir kısmı, veri biçimine has özellikleri kullanarak güvenliği sağlamaya dayalıdır. Bu tip yaklaşımlara kısmi şifreleme denilmektedir. Kısmi şifreleme, veri bütünün bir kısmını işleyerek veri bütününün tamamının güvende olmasını sağlamaktadır. Kısmı şifrelemede boyut olarak küçük fakat akımın izlenebilirliği için önemli olan parçalar şifrelenmekte, geriye kalan büyük kısım ise şifrelenmemektedir. Sayısal video boyut olarak çok yer kapladığından kısmi şifreleme algoritmaları sıkıştırılmış video dosyalarına uygulanmaktadır. Sıkıştırılmış video en düşük düzeyde veri tekrarı içermekte ve akımdaki ufak bozukluklardan büyük tahribat görmektedir. Akım Yönü Æ Önemsiz Önemli Kısmi Şifreleme Önemsiz Şekil 4.1. Kısmi şifreleme 33 Önemli Gerek gerçek zaman sınırlamaları, gerekse potansiyel maliyet artımı gibi sebeplerden akan video görüntüleri kısmi olarak şifrelenmelidir. Kısmi şifrelemenin en hassas noktası, şifrelenecek olan önemli alanların belirlenmesi işlemidir. Örnex olarxk Türxçe bix cümlx için xer beşixci haxfin şxfrelxnmesx çok exkin bxr yönxem dexildix. Yukarıdaki örnek cümlede %20’lik bir tahribat olmasına rağmen cümle hala anlaşılabilir düzeydedir. Kısmi şifreleme yapılırken en düşük düzeyde bozulma ile en yüksek düzeyde güvenlik hedeflenmektedir. Bu örnek göstermektedir ki kısmi şifreleme, şifrelenecek olan verinin tipine özel olmalıdır. 4.2. Geçici Referans Numaralarını Şifreleme MPEG video akımının doğru olarak gösterilebilmesi için geçici referans numaraları çok önemlidir. Bir MPEG video akımında her bir çerçevenin geçici referans numarası bulunmaktadır. Saniyede 30 çerçeve gösterim oranına sahip bir akımda, bir dakikalık görüntüde yaklaşık 2KB yer kaplayan 1800 adet geçici referans numarası vardır. Gerçekleştirilen şifreleme algoritmasında, video akımında bulunan geçici referans numaraları şifrelenecek alan olarak belirlenmektedir. Şekil 4.2’de gösterildiği gibi geçici referans numaraları, sıkıştırılmış video akımın depolanması ile gösterilmesi arasındaki sıralama farklılıklarını kodlamaktadır. a) Gösterim sırası b) Depolama sırası Şekil 4.2. Gösterim ve depolama sıraları 34 Geçici referans numaralarını şifrelemek için geçici referans numarası ile anahtar değeri XOR işlemine tabi tutulmaktadır. Geçici referans numarası bilinçli şekilde bozulmuş bir video akımının şifreli olduğu kod çözücü birim tarafından fark edilememektedir. Kod çözücü birim hatalı referans numaralarını kullanarak akımın kodunu çözdüğünde görsel olarak bozuk bir görüntü elde edilmektedir. Şekilde kod çözücünün şifreli görüntüyü nasıl gösterdiği görülmektedir. a) Orijinal görüntü b) Şifrelenmiş görüntü Şekil 4.3. Orijinal görüntü ve şifreleme işlemi sonrası izlenebilen görüntü Referans numaralarının şifrelenmesi ile gösterim sırası bozulmuş çerçeveler elde edilmektedir. Yapılan şifreleme sonucunda video akımında 1/15.000 oranında çok düşük bir şifreleme alanı ile akımda izlenemeyecek oranda bozulma elde edilmiştir. Şifreleme işleminin sonucunda referans numaraları tahrip edilmiş bir video akımı elde edilmektedir ve hatalı referanslara sahip hareket vektörleri ortaya çıkmaktadır. Benzer yöntemler MPEG video katmanları dikkate alındığında hareket vektörlerinin ve işaretlerinin değiştirilebilmesi için akımı blok seviyesine kadar çözmektedir. Bu da akımın neredeyse tamamının elden geçmesi anlamına gelmektedir. Geliştirilen yöntem, akımı resim katmanına kadar incelemekte ve hareket vektörlerinin şifrelenmesi işlemini, hatalı referanslar yaratarak temelden çözmektedir. 35 5. SECURE Secure projesi kapsamında, MPEG akımındaki referans numaralarını şifreleyen ve gösterim sırası bozulmuş bir akım meydana getiren bir çekirdek tasarlanmıştır. Çok düşük oranda veri şifrelenerek akımda izlenemeyecek derecede görsel bozulmalar elde edilmektedir. Çekirdeğin çalışması sonlu durum makinesi şeklinde tasarlanmıştır. BAŞLANGIÇ, ANAHTAR_HAZIR, D1, D2, D3, D4,R1,R2, B1, B2, B3, B4 olmak üzere on bir adet durum vardır. Çizelge 5.1 durumların açıklamalarını şekil 5.x ise durum diyagramını göstermektedir. Çizelge 5.1. Durum çizelgesi Durum Tanımı Başlangıç durumu, cihazın şifreleme anahtarı beklediği durum, BASLANGIC veri_bekleme girişi pasif Yaz girişinin aktif olması ve anahtarın yazılması ile geçilen durum. ANAHTAR_HAZIR veri_bekleme girişi aktif, ilk verinin geldiği durum İkinci verinin geldiği durum, eğer başlık bilgisi değilse bir sonraki D1 durum B1 ve şifreleme pasif,veri bekleme pasif, eğer başlık bilgisi ise bir sonraki durum D2, veri bekleme aktif Üçüncü verinin geldiği durum, eğer başlık bilgisi değilse bir D2 sonraki durum B2 ve şifreleme pasif, ,veri bekleme pasif eğer başlık bilgisi ise bir sonraki durum D3, veri bekleme aktif Dördüncü verinin geldiği durum, eğer başlık bilgisi değilse bir D3 sonraki durum B3 ve şifreleme pasif, ,veri bekleme pasif eğer başlık bilgisi ise bir sonraki durum R1 Beşinci verinin (referans numarası) geldiği durum, şifreleme aktif, R1 sonraki durum R2 Altıncı verinin (referans numarası) geldiği durum, şifreleme aktif, R2 sonraki durum B2 Şifreleme pasif ise fifo’dan okuma yaparak çıkışa yönlendirir, sonraki durum ANAHTAR_HAZIR,Şifreleme aktif ise fifo’dan B1 okuma yapar ve şifreleyerek çıkışa yönlendirir, sonraki durum B4, şifreleme pasif yapılır. Şifreleme pasif ise fifo’dan okuma yaparak çıkışa yönlendirir, B2 sonraki durum B1,Şifreleme aktif ise fifo’dan okuma yapar ve şifreleyerek çıkışa yönlendirir, sonraki durum B1. B3 Fifo’dan okuma yaparak çıkışa yönlendirir, sonraki durum B2 B4 Fifo’dan okuma yaparak çıkışa yönlendirir, sonraki durum B3 36 Şekil 5.1 Durum diyagramı 37 Başlangıç durumunda çekirdek anahtarın yüklenmesini beklemektedir. Yaz girişinin aktif olmasıyla beraber anahtar kaydedilir ve veri_bekleme girişi aktif yapılır. Bunun sonucunda ANAHTAR_HAZIR durumuna geçilir. ANAHTAR_HAZIR durumunda gelen veri kontrol edilmektedir. 32 bitlik başlık bilgisinin analiz edilmesi için dört kez veri girişi gerekmektedir. Gelen veriler her adımda fifo’ya kaydedilmektedirler. Gelen verilere göre D1, D2, D3 durumları oluşmaktadır. D3 durumu sonunda eğer bir başlık bilgisine ulaşılmışsa çekirdek R1 durumuna geçer. Bu durumda geçici referans numarası, takip eden byte alanlarındadır. R1 ve R2 durumlarında geçici referans numaraları şifrelenmek üzere fifo’ya kaydedilirler. B1, B2, B3, B4 durumlarında fifo’daki veriler çıkışa yönlendirilmektedirler. R2 durumundan sonra sifreleme=1 yapılarak B2 durumuna ulaşılır. Bu durumda geçici referans numarası olan iki byte şifrelenerek veri_cikis’a yönlendirilirler. Ardından sifreleme=0 yapılarak B4 durumuna ulaşılmaktadır. Takip eden B4, B3, B3, ve B1 durumlarında ise başlık bilgileri şifrelenmeden veri_cikis’a aktarılmaktadır. Eğer verilerin dizlimi başlık bilgilerine uymuyorsa; sifreleme<>1 olur ve B4,B3,B2 ve B1 durumlarından birine ulaşılır. Bu durumda veriler fifo’dan okunarak şifrelenmeden veri_cikis’a yönlendirilirler. 38 5.1. Ara yüz Sinyalleri Secure tasarımında mikroişlemcili bir sisteme kolayca dahil edilebilecek genel amaçlı bir ara yüz hedeflenmiştir. Tasarımda kullanılan ara yüz sinyalleri çizelge 5.2’deki şekildedir. Çizelge 5.2. Ara yüz sinyalleri ve özellikleri Sinyal Adı Boy Giriş/Çıkış Saat 1 G Reset 1 G Yaz 1 G veri_bekleme 1 Ç veri_g 8 G veri_gecerli 1 Ç veri_c 8 Ç Tanımı Çekirdeğin genel saati, tüm işlemler saatin yükselen kenarında yapılmaktadır. Asenkron reset girişi Yaz sinyalinin aktif olması ile birlikte çekirdeğe veri girişi yapılmaktadır Çekirdeğin veri almaya hazır olduğunu belirten çıkış Şifrelenecek veri ve şifreleme anahtarının çekirdeğe aktarıldığı giriş Çekirdeğin dışarıya veri aktarmaya hazır olduğunu belirten çıkış Kısmi şifreleme algoritmasına göre şifrelenmiş veri çıkışı Secure çekirdeği saatin yükselen kenarında durum değiştirmektedir. Her saat vuruşunda durum ve bir_sonraki_durum değişkenleri kontrol edilerek durum makinesinin işleyişi sağlanmaktadır. 5.2. Blok Şema Ve Mimari Tasarlanan çekirdeğin blok şeması şekil 5.2’deki gibidir. Örnekteki şekilde 8 bitlik veri giriş çıkışı için tasarlanmış olan çekirdek görülmektedir. İstenildiği taktirde generic(veri_boyu:natural:=x) şeklinde boyu değiştirilebilir. Şekil 5.2. Secure Blok Şeması 39 Çekirdek akımın tamamını şifrelemekte, kısmı şifreleme gerçekleştirmektedir. Bu yüzden şifrelenecek kısım belirlenirken gelecek olan veriler fifo bellek kullanılarak depolamaktadır. 5.3. Anahtar Yazılması Şifreleme işlemine başlamadan önce şifreleme için kullanılacak olan anahtar yüklenmelidir. Yaz girişinin aktif edilmesi ile birlikte saat vuruşunun sonunda anahtar değer veri_g noktasından içeriye alınmaktadır. Anahtar alındıktan sonra çekirdek şifreleme yapmaya hazır olduğunu şekil 5.3’te görüldüğü gibi veri_bekleme çıkışını aktif yaparak belirtir. Şekil 5.3. Anahtar yazılması işlemi Anahtarın başarı ile alınması veri_bekleme girişinin aktif olması ile anlaşılmaktadır. Çekirdek anahtarın alınması ile birlikte ANAHTAR_HAZIR durumuna geçmektedir. 5.4. Veri girişi Anahtarın belirlenmesi ile birlikte çekirdek, veri_g girişinden veri kabul etmeye hazır hale geldiğini veri_bekleme girişini aktif ederek belli eder. Yaz girişinin aktif olduğu durumlarda veri_g girişinden veriler işlenmeye başlarlar. Algoritma, girilen veriyi belirlediği şartlar dahilinde işlemek üzere bekletebilir veya şifrelemeden doğrudan veri çıkışına yönlendirebilir. 40 Şekil 5.4. Secure veri girişi Her veri girişi ile birlikte çekirdek D1, D2, D3, R1, R2, B1, B2, B3 ve B4 durumlarından birisine geçmektedir. 5.5. Veri Çıkışı Secure bir akan video görüntü şifreleyicidir. Bu yüzden veri girişi olduğu sürece, karşısında şifrelenmiş veriyi alacak hazır bir hedef olmasa dahi veri çıkışını gerçekleştirir. Şifrelenmiş akımın hazır olduğunu veri_gecerli çıkışını aktif yaparak alıcıya bildirmektedir. 5.6. Benzetim Sonuçları Çekirdeğin benzetimi Modelsim programı ile gerçekleştirilmiştir. Şekil 5.6 çekirdeğe ait sinyalleri ve giriş çıkışları göstermektedir. Şekil 5.5 Giriş, çıkış ve iç sinyaller 41 Şekil 5.6 Çekirdeğin ilk çalışması anı ve saat vuruşları Yaz girişinin aktif olması ve veri girişi ile birlikte şekil 5.7’de de görüldüğü gibi anahtar hazır hale gelmektedir ve çekirdek ANAHTAR_HAZIR durumuna geçmektedir. Şekil 5.7 Benzetim sonuçları: ANAHTAR_HAZIR durumu 42 Anahtar hazır durumunda iken MPEG başlık bilgileri uygun olduğu takdirde çekirdek R1 durumuna geçer ve şifrelenmek üzere referans numarasını bekler Şekil 5.8 Benzetim sonuçları: D1, D2, D3, R1 durumları Çekirdek okuduğu 4 bytelık başlık bilgisinin ardından iki byte daha okuyarak referans numarasına erişmiş olur. Şekil 5.9 Benzetim sonuçları: B4, B3, B2 ve B1 durumları 43 Ardından fifo’da tuttuğu başlık bilgisini şifrelemeden, referans numarasını ise anahtar değer ile şifreleyerek veri çıkışına yönlendirir. Bu işlem sırasında B1,B2,B3 ve B4 durumları şekilde açıkça görülmektedir. B1,B2,B3 ve B4 durumları sırasında veri çıkışı olmaktadır ve veri_gecerli çıkışını aktif edilmektedir. Çekirdek bu esnada yeni veri girişi kabul etmemektedir. Akım şifrelendikten ve çıkışa aktarıldıktan sonra çekirdek yine ANAHTAR_HAZIR durumuna geçer ve veri girişini kabul eder. 44 6. SONUÇ Bu çalışmada video akımını şifrelemek için kullanılan yöntemler incelenmiş, yöntemlerin açık noktaları belirlenerek alternatif bir şifreleme yöntemi geliştirilmiştir. Geliştirilen alternatif yöntem, diğer yöntemlerden farklı olarak DES, RSA, AES gibi zaman alıcı klasik şifreleme metotlarını içermemektedir. Video verisi gibi yüksek veri oranlarına sahip bilginin şifrelenebilmesi için önerilen yöntem kısmi şifreleme mantığı ile bağdaşmaktadır. Kısmi şifreleme yapan bir yöntem olması, gerçek zamanlı şifreleme yapabilmesini sağlamaktadır. Yöntem kullanılarak şifrelenmiş akımın yapısı büyük oranda sağlam kalmasına rağmen akımın izlenebilirliği bozulmaktadır. Resim çerçevesi bazında şifreleme yapan bir metot olmadığı için bilinen açık metin saldırılarına karşı daha güvenli bir metottur. Temel tarama desenleri pikseller yerine başlangıç kodları ile ilişkilendirildiğinden özgün bir yaklaşımdır. Yeni geliştirilen yöntem MPEG kodlama yapısına özel tasarlandığından veri bütününün şifrelenmesi gereken kısımlarını kendisi belirlemektedir. Video akımının tamamı şifrelenmediğinden yöntemin kaynak ihtiyacı düşük olmaktadır. Piksel değerlerinde bir değişiklik yapılmamasına rağmen görsel olarak bozuk bir video görüntüsü elde edilmektedir. Bu, akımın şifresini kırmak isteyen saldırganları yanlış yönlendirmektedir. MPEG başlık bilgileri dosyanın çok az miktarını kapsadıkları halde içinde önemli bilgileri barındırmaktadır. Bu bilgilere farklı yöntemler uygulanabilir. 45 KAYNAKLAR 1. Ahmet N., Natarajan T., Rao R., 1974, Computers, “Discrete Cosine Transform”, IEEE Trans. 2. Algın G. B., Tunalı E.T., 2007, “Kodlanmış video verisinin gizlilik gereksinimleri ve video şifreleme algoritmaları”, Akademik Bilişim 2007, Kütahya. 3. Benson B., 1986, “Television Engineering Handbook”, McGraw-Hill 4. Bhargava B., Changgui S., Wang S.Y., 2002, “MPEG video encryption algorithms”, Kluwer Academic Publishers 5. Brady N., 1999, “MPEG-4 standardized methods for compression of abritrarily shaped objects”, IEEE Trans. Circuits and Systems-Video Technologies 6. Brady N., Bossen F., Murphy N., 1997, “Context based arithmetic encoding of 2D shape sequences”, IEEE Image Processsing Conferance 7. Chang S., Messerschmidt D., 1995, “Manipulation and composting of MC-DCT compressed video”, IEEE Journal Selected Area Communications 8. Chang S., 1995, “Compressed domain techiques for image/video indexing and manipulation”, IEEE Conference-Image Processing 9. Chang S., Sall S., Lee U., 1999, “Efficient video indexing scheme for content based retrieval”, IEEE Trans. Circuits and Systems-Video Technologies 10. Chen J., Lin D., 1997, “Optimal bit allocation for video coding video signals over ATM Networks”, IEEE Journal Selected Area Communications 11. Chiang T., Zhang Y., 1997, “A new rate control scheme using quadratic rate-distortion modelling”, IEEE Trans. Circuits and Systems-Video Technologies 12. Cheng H., Li X., 2000, “Partial encryption of compressed images and video”, IEEE Trans. Signal Processing 46 13. Chun K., Lim W., Cho H., Ra B., 1993, “An adaptive perceptual quantization algorithm for video coding”, IEEE Trans. Consumer Electronics 14. Clarke C.K.P., 1986, “Colour encoding and decoding techniques for line-locked sampled PAL and NTSC television signals”, BBC Research Department Report BBC 15. Cücioğlu İ., 2003, “Analog video temelleri”, www.eproje.com 16. Coppersmith D., 1994, “The data encryption standard (DES) and its strenght against attacks”, IBM journal of research and development. 17. Daemen J., Rijmen V., 1999, ”AES proposal: rijndel, AES algorithm submission”, http://www.nist.gov/CryptoToolkit. 18. Ding W., Liu B., 1995, “Rate-Quantization modelling for rate control of MPEG video coding and recording” , SPIE Digital Video Compression 19. Ding W., Liu B., 1996, “Rate control of MPEG video coding and recording by ratequantization modelling”, IEEE Trans. Circuits and Systems-Video Technologies 20. Dipçin V., Pazarcı M., 2003, “Görsel bozulmaya dayalı sayısal video şifreleme”, Itu dergisi-Mühendislik, Cilt 2, Sayı 1 21. Divakaran A., Sun H., 2000, “A descriptor for spatial distribution of motion activity”, Proc. Storage and Retrieaval From Image and Video Databases, San Jose CA 22. Drake M., Hoffmann H., Rabbah R., Amarasinghe S., 2006, “MPEG-2 Decoding in stream programming language”, 20th IEEE International Parallel & Distributed Processing Symposium 23. Dufaux F., Moscheni F.,1995, ”Motion estimation techniques for digital tv: a review and a new contribution”, Proc. Of IEEE, Vol. 83 24. Erol B., Kossentini F., 2000, ”Automatic key video object plane selection using shape information in the MPEG-4 compressed domain”, IEEE Trans. Multimedia 25. Eskicioglu A.M., 2003, “Protecting intellectual property in digital multimedia Networks”, IEEE Computer, (Vol. 36, No. 7), 39–45 26. Fieury P., Reichel J., Ebrahimi T., 1996, ”Image quality prediction for bit rate allacation”, IEEE International Conferance Image Processing 47 27. Fish M. M., Stögner H., Uhl A., 2004, “Layered encryption techniques for dct-coded visual data”, The European Association for Signal Processing 28. Furth B.,Socek D., 2003, “Multimedia security : encryption techniques”, IEC Comprehensive Report on Information Security, Chicago 29. Furth B., Kirovsky D., 2004, “Multimedia security handbook”, CRC 30. Geman S., Geman D., 1984, ”Stochastic relaxation, gibbs distributions, and the bayesian restoration on images” , IEEE Trans. Pattern Anal. Machine 31. Gapalakrishnan S., Reininger D., 1999, “Realtime MPEG system stream transcoder for heterogeneous Networks”, Packet Video Workshop, New York 32. Gilvarry J., 1999, ‘Extraction of Motion Vectors from an MPEG Stream’, Technical Report, Dublin City University 33. Howgrave-Graham N., Nguyen P., Pointcheval D., Proos J., Silverman J.H., Singer A., Whyte W., 2003, “The Impact of Decryption Failures on the Security of NTRU Encryption”, Crypto 2003, Santa Barbara 34. Jack K., 1995, “Video Demystified”, LLH Technology Publishing 35. Khayam S.A., 2003, “The discrete cosine transform (DCT): theory and application”, Michigan State University 36. Kuhn M., 1998, “Analysis http://www.cl.cam.ac.uk/ mgk25 of nagravision video scrambling method”, 37. Li S., Chen G., 2007, “On the design of perceptual MPEG-video encryption algorithms”, IEEE Transactions on Circuits and Systems for Video Technology 38. Liu X., Eskicioglu A.M., 2003, “Selective Encryption of Multimedia Content in Distribution Networks: Challenges and New Directions”, IASTED International Conference on Communications, Internet and Information Technology (CIIT 2003), Scottsdale 39. Lookabaugh T., Sicker D.C., Keaton D.M., Guo W.Y., Vedula I., 2003, “Security Analysis of Selectively Encrypted MPEG-2 Streams”, Multimedia Systems and Applications VI Conference 40. Li Y., Chen Z., Tan S., Champbell R. H., 1996, “Security enhanced MPEG player”, IEEE First International Workshop on Multimedia Software Development (MMSD'96), 48 41. Mao Y., Wu M., 2004, “Security evaluation for communication-friendly encryption for multimedia”, International Conference on Image Processing (ICIP 2004) ,Singapore 42. Maples T.B., Spanos G.A., 1995, “Performance Study Of Selective Encryption Scheme For The Security Of Networked Real-Time Video”, 4th International Conference on Computer and Communications, Las Vegas 43. Markus K., 1998, “Analysis of the nagravision video scrambling method” 44. MENG, J., CHANG, S., 1995, ‘Tools for Compressed Domain Video Indexing and Editing’, SPIE Conference on Storage and Retrieval 45. Meyer J., Gadegast F., 1995, ”Security Mechanisms for Multimedia Data with the Example MPEG-1 Video”, Project Description of SECMPEG, Technical University of Berlin 46. Mitchell J.L., Pennebaker W.B., Fogg C.E., Legal D.J., 1996, “Mpeg Video Compression Standard”, Chapman and Hall 47. Nemoto Y., Toyota Y., Sakazawa S., Zhao L., Yamamoto H., 2005, “A study on video scrambling considering inter-frame prediction”, IEICE Technical Report- Image engineering 48. Patel N., Sethi I., 1996, “Compressed Video Processing for Cut Detection”, IEE Proceedings - Vision, Image and Signal Processing 49. Podesser M., Schmidt H.,Uhl A., 2002, “Selective Bitplane Encryption for Secure Transmission of Image Data in Mobile Environments”, 5th Nordic Signal Processing Symposium, Hurtigruten, Norway 50. Pommer A., Uhl A., 2003, “Selective encryption of wavelet-packet encoded image data”, ACM Multimedia Systems 51. Qiao L., Nahrstedt K., 1997, “A New Algorithm for MPEG Video Encryption”,1st International Conference on Imaging Science, Systems and Technology (CISST ’97) 52. Rivest R., Shamir A., Adleman L.,1978, “A method for optaining digital signatures and public-key cryptosystems”, Communications of ACM, ss:120-126. 53. RSA Laboratories, 2000, “Frequently asked questions about today's cryptography” 49 54. Spanos G.A., Maples T.B., 1996, “Security for Real-Time MPEG Compressed Video in Distributed Multimedia Applications”, Conference on Computers and Communications 55. Seidel T., Socek D., Sramka M., 2004, “Parallel Symmetric Attack on NTRU using NonDeterministic Lattice Reduction”, Designs Codes and Cryptography, Kluwer Academic Publishers 56. Shi C., Bhargava B., 1998, “A Fast MPEG Video Encryption Algorithm, 6th International Multimedia Conference, Bristol, U.K. 57. Shi C., Wang S., Bhargava B., 1999, “MPEG Video Encryption in Real-Time Using Secret key Cryptography”, International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’99), Las Vegas 58. Stinson D.R., 2002, “Cryptography Theory and Practice”, CRC Press, Boca Raton, FL 59. Tang L., 1996, “Methods for Encrypting and Decrypting MPEG Video Data Efficiently”, 4th ACM International Multimedia Conference, Boston, 60. Taşkın D., Suçsuz N., 2006, “Sıkıştırılmış ortamda çerçeve tipine dayalı gerçek zamanlı sahne değişimi belirleme”, IV. Bilgi teknolojileri Kongresi, Denizli. 61. Taşkın D., Taşkın C., Suçsuz N., 2007, ”MPEG akımında başlık şifreleme”, Akademik Bilişim 2007, Kütahya. 62. Taşkın D., Taşkın C., Suçsuz N., 2007. “MPEG akımında operatör işlemlerinin kısıtlanması yoluyla içerik koruma”, Akademik Bilişim 2007, Kütahya. 63. Taşkın D., Taşkın C., Suçsuz N., 2007. “Sıkıştırılmış video güvenliği”, e-Journal of New World Sciences Academy, Volume: 2, Number: 3 (BASIMDA) 64. Tosun A. Ş., Feng W., 2000, “Efficient Multi-layer coding and encryption of MPEG video streams”, Multimedia and Expo, ICME 2000 65. Van Droogenbroeck M., Benedett R., 2002, “Techniques for a Selective Encryption of Uncompressed and Compressed Images”, Advanced Concepts for Intelligent Vision Systems (ACIVS) 66. Van Oorschot P.C., Menezes A.J., Vanstone S.A., 1997, Cryptography”, CRC Press, Boca Raton, FL “Handbook of Applied 67. Yılmaz İ., 2002, “Renk Sistemleri, renk uzayları ve dönüşümler”, Selçuk Üniversitesi Jeodezi ve Fotogrametri Mühendisliği Öğretiminde 30. Yıl Sempozyumu, Konya 50
Benzer belgeler
dosya1 - MCU Turkey
sayede birbirini takip eden çerçeveler arasında
az bir görsel fark olması durumunda
çerçevenin tamamı dosyaya aktarılmaz. Ara
çerçeve
tahmini
ardıl
çerçevelerdeki
benzerlikleri
avantaj
olarak
kulla...