Artykuł przedstawia wybrane metody ochrony transmisji mediów strumieniowych. Jest to technika polegająca na przesyłaniu skompresowanych danych multimedialnych przez sieć w postaci strumienia pakietów przetwarzanych na bieżąco w odbiorniku, tzn. nie występuje potrzeba pobrania całego pliku przed rozpoczęciem odtwarzania. Znajduje ona zastosowanie w realizacji szeregu usług: wideo na życzenie, czyli VoD (ang. Video-On-Demand), telewizja internetowa, wideokonferencja, telefonia internetowaVoIP, przeglądanie baz danych z obrazami medycznymi. Pierwsza część artykułu to przegląd algorytmów kryptograficznych powiązanych z kompresją danych. Najwięcej miejsca poświęcono w nim selektywnemu szyfrowaniu. W drugiej części artykułu zostaną przedstawione opisy narzędzi dostarczających usług: poufności, uwierzytelniania i integralności oraz kontroli dostępu obrazów oraz materiału wideo, a także implementacja standardów: JPEG 2000, MPEG-4 oraz niektórych algorytmów szyfrowania wideo. Tematyka artykułu jest poruszana w źródłach poświęconych bezpiecznej transmisji multimedialnej.
1. Podstawowe właściwości procesów kompresji, szyfrowania oraz danych multimedialnych
Kompresja danych prowadzi do zmniejszenia objętości danych wejściowych. Z kolei szyfrowanie zapewnia ochronę danych. Jeżeli szyfrowanie jest zastosowane przed kompresją, to losowość szyfrogramu znacząco ogranicza wydajność kompresji [FuKi05]. Jeżeli szyfrowanie następuje po kompresji, pojawiają się problemy z wbudowaniem schematu szyfrowania w zintegrowany system.
Jak można przypuszczać, zastosowanie stratnej kompresji zmniejsza rozmiar danych poddawanych szyfrowaniu, więc w tym drugim przypadku proces powinien przebiegać szybciej [FuKi05]. Jednakże zaleta płynąca z ograniczenia rozmiaru tekstu jawnego jest niewielka, ponieważ czas przetwarzania danych przez algorytm kompresji jest znacznie dłuższy od czasu operowania algorytmem szyfrowania. Wydajność szyfrowania zależy silnie od zastosowanego algorytmu kompresji.
Umiejętne połączenie obydwóch procesów wykazuje szereg zalet i jest uzyskiwane drogą modyfikacji oraz optymalizacji istniejących kryptosystemów przy uwzględnieniu specyficznego formatu danych audio-wideo [FuSo04].
Bezpośrednie szyfrowanie całego strumienia danych multimedialnych, który z reguły posiada dużą objętość, wiąże się ze sporymi nakładami czasowymi. Dodatkowo, w porównaniu z danymi w postaci tekstowej, dane audiowizualne przenoszą mniejszą ilość informacji [WuKu00, ÖzSo04]. Zawartość informacyjna jest tu bardziej rozrzedzona, nierównomiernie rozproszona i nie jest związana ze wszystkimi bitami. W przypadku deszyfrowanych danych multimedialnych dopuszczalne są również niewielkie zniekształcenia.
2. Kryteria oceny algorytmów
Podstawowymi kryteriami oceny algorytmów kryptograficznych, zawierających kroki typowe dla kompresji danych, są: stopień kompresji, błąd średniokwadratowy kompresji, rodzaj kompresji (stratna, bezstratna), poziom bezpieczeństwa, czas przetwarzania dla obydwóch kierunków przebiegu algorytmu [Wang05, ÖzSo04]. Najczęściej wykorzystuje się algorytmy stratnej kompresji (JPEG, MPEG), w których stopień kompresji jest zróżnicowany. Jednakże czasami, ze względów prawnych, pożądane jest zastosowanie algorytmu kompresji bezstratnej. Ma to miejsce w obrazowaniu medycznym.
Dokładne określenie optymalnego poziomu bezpieczeństwa jest trudne do zrealizowania. Zależy on od rodzaju zastosowania - jest niższy dla aplikacji generujących duże ilości danych multimedialnych, nie posiadających znacznej wartości, takich jak VoD. W takim przypadku stosuje się często techniki cyfrowego zarządzania prawami autorskimi (ang. Digital Right Management - DRM). Trudniejsza sytuacja ma miejsce w przypadku usługi wideokonferencji, w której transmitowane są, przykładowo, kluczowe firmowe uzgodnienia, a jednocześnie przepływności nie muszą należeć do najniższych.
Szybkość działania algorytmu jest krytycznym parametrem z uwagi na częste zastosowanie danych multimedialnych w aplikacjach czasu rzeczywistego oraz ich dużą objętość. Wyróżnia się czas potrzebny na przeprowadzenie procesu szyfrowania oraz czas niezbędny do określenia danych, które mają podlegać szyfrowaniu [UhPo05].
Czynnikami różnicującymi poszczególne algorytmy są:
- przezroczystość - zaszyfrowany materiał multimedialny jest dekodowalny w odbiorniku nawet bez znajomości klucza szyfrującego; w odbiorniku znana jest informacja o strukturze składni pliku lub strumienia, ponieważ ten element nie jest szyfrowany;
- skalowalność - wielopoziomowe zabezpieczenia dla różnych aplikacji z elastycznie dobieranymi wartościami parametrów; jest ona realizowana przez szyfrowanie wybranych warstw lub ich fragmentów, na przykład w standardzie JPEG2000 czy MPEG 2/4; pozwala kontrolować jakość zaszyfrowanych danych multimedialnych;
- dostrzegalność - uogólnienie wielowarstwowego (skalowalnego) szyfrowania, niezależne od wielowarstwowej struktury wbudowanej w zaszyfrowany obraz, oparte na częściowym szyfrowaniu obrazu czy wideo;
- tolerancja błędów - wprowadzenie do algorytmów szyfrowania udogodnień mających na celu podniesienie odporności na błędy, a tym samym zapewnienie prawidłowego przebiegu deszyfrowania [FuKi05].
3. Główne klasy algorytmów
3.1. Bezpośrednie szyfrowanie
Bezpośrednie szyfrowanie1 strumienia ciągu danych wejściowych tradycyjnymi metodami jest bardziej odpowiednie dla danych tekstowych i danych multimedialnych o niskiej jakości. Tego typu metody nazywane są w literaturze podejściem naiwnym (ang. naive approach) [FuSo04] i wykorzystują algorytmy symetrycznego szyfrowania. Ich przykładem jest szyfrowanie pakietów w czasie rzeczywistym za pomocą protokołu SRTP (ang. Secure Real-time Transport Protocol), który opiera się na szyfrze AES (ang. Advanced Encryption Standard), znanym również jako Rijndael.
3.2. Skramblowanie
Zastosowanie do całego strumienia ma również skramblowanie (ang. scrambling) [FuSo04]. Skramblowanie opiera się na prostych szyfrach podstawieniowych i przestawieniowych, oferujących bardzo niskie bezpieczeństwo. Innym sposobem skramblowania jest dokonywanie przekształceń na analogowym sygnale w dziedzinie czasu albo częstotliwości. Skramblowanie obniża stopień kompresji, ponieważ zaburza statystykę oryginalnych danych, na których bazuje algorytm kompresji.
3.3. Selektywne szyfrowanie
Właściwości wymienione w punkcie 1 wymuszają potrzebę zastosowania algorytmów kryptograficznych zapewniających mniejszy koszt obliczeniowy poprzez selektywne operowanie tylko niektórymi częściami strumienia bitów, bezpośrednio związanymi z przenoszoną informacją. Technika ta nosi nazwę selektywnego, częściowego, szyfrowania (ang. selective encryption).
Określone algorytmy selektywnego szyfrowania są najczęściej zoptymalizowane dla wąskiej grupy zastosowań [Look03]. Istnieje możliwość używania różnych algorytmów selektywnego szyfrowania dla pojedynczego strumienia bitów. Z drugiej strony, dany proces częściowego szyfrowania może współpracować ze stałym algorytmem kompresji lub algorytm ten, w szczególności jego parametry, podlegają modyfikacji.
Algorytmy selektywnego szyfrowania można dzielić, biorąc pod uwagę:
- typ danych wejściowych: obraz, wideo, audio, mowa;
- sposób reprezentacji informacji - dziedzina: przestrzenna; transformaty: DCT, falkowa, DFT, kodera entropijnego;
- postać danych wejściowych: szyfrowanie operujące danymi skompresowanymi (ang. compressed oriented schemes), szyfrowanie operujące strumieniem bitowym lub danymi w postaci jawnej (ang. bitstream oriented schemes) [FuKi05, UhPo05].
Schematy zorientowane bitowo mogą być zastosowane w usłudze wideokonferencji, natomiast zorientowane kompresyjnie - w aplikacjach VoD.
W porównaniu z podejściem naiwnym, użycie selektywnego szyfrowania jest zasadne, gdy suma czasu potrzebnego do zidentyfikowania wymaganych właściwości danych oraz przebiegu samego algorytmu jest znacznie mniejsza od czasu bezpośredniego zaszyfrowania.
Istniejące algorytmy selektywnego szyfrowania pracują najczęściej w dziedzinie transformaty DCT, falkowej oraz w odniesieniu do danych wideo.
Ponadto występuje szereg algorytmów, które mogą być zastosowane zarówno do szyfrowania obrazu, jak i danych wideo [FuKi05]. Dotyczy to m.in. algorytmów:
- opartych na transformacie DCT, wykorzystywanej w standardach JPEG, MPEG;
- szyfrowania obrazów, związanych z transformatą falkową, które są rozwijane w kierunku szyfrowania wideo (Motion-JPEG2000);
- zapewniających poufność procesu kodowania entropijnego podczas kompresji obrazu i wideo.
3.4. Schematy szyfrowania bazujące na chaosie
Kryptosystemy chaotyczne (ang. chaos cryptosystems), wykorzystujące teorię chaosu, są również stosowane do szyfrowania obrazu czy wideo. Wyróżnia się dwie gałęzie zastosowań chaosu do szyfrowania obrazów i wideo [FuKi05]. Chaos może być użyty do generacji bitów pseudolosowych, o założonych właściwościach statystycznych, lub do realizacji permutacji poprzez włączenie dwuwymiarowych map chaosu lub krzywych fraktalnych. Pierwsza metoda jest stosowana do projektowania chaotycznych szyfrów strumieniowych, a druga do schematów szyfrowania obrazów bazujących na chaosie. Kompresja jest stosowana głównie w algorytmach z krzywymi fraktalnymi, tzw. SCAN.
3.5. Kompresja w znakowaniu wodnym
Najważniejszą klasą algorytmów służących do otrzymywania odwracalnych znaków wodnych (ang. reversible watermarks) są algorytmy oparte na kompresji, należące do technik kodowania transformującego i przestrzennego [FuKi05]. Odwracalne znakowanie wodne daje możliwość usunięcia znaku wodnego wraz ze zniekształceniami wynikającymi z jego uprzedniego wstawienia, czyli możliwość całkowitego odwrócenia procesu znakowania oraz umieszczania dużej ilości danych w obrazie, rzędu setek kB.
W odwracalnym znakowaniu wodnym, bazującym na kompresji, dochodzi do zamiany nieznaczących cech obrazu na sekwencję pseudolosową w procesie wstawiania znaku. Cecha pseudolosowa jest utworzona przez strumień bitów złożony z tzw. payloadu (znaku wodnego) i skompresowanej - dla zapewnienia odwracalności - nieznaczącej, oryginalnej cechy obrazu. W celu odtworzenia oryginalnego obrazu najpierw pozyskiwana jest sekwencja pseudolosowa, a następnie oryginalna cecha obrazu jest otrzymywana ze złożonego strumienia bitów dzięki zastosowaniu dekompresji. Ostatecznie sekwencja pseudolosowa jest zamieniana na oryginalną cechę obrazu.
Często stosowane jest wbudowywanie znaku wodnego we współczynniki transformat materiału audio w celu zwiększenia zasięgu znaku oraz podniesienia odporności na ataki geometryczne (np. zmodyfikowane DCT, MDCT) [FuKi05]. Transformaty są często wykorzystywane przy wstawianiu znaku wodnego z uwagi na to, że przetwarzanie przez nie sygnałów, obejmujące kodowanie i kompresję, jest popularne. Proces wbudowywania znaku wodnego może być łatwo zintegrowany z istniejącymi schematami kodowania, bez wykonywania dodatkowych przekształceń czy obliczeń.
W dziedzinie znakowania wodnego często podnoszona jest kwestia odporności wstawionego znaku wodnego na zniekształcenia, wynikające m.in. z działania algorytmów kompresji.
3.6. Ukrywanie danych
Opisywane w poprzednim punkcie znakowanie wodne jest szczególnym przypadkiem technik ukrywania danych (ang. data hiding).
Z kompresją związane są algorytmy bezstratnego ukrywania danych [FuKi05], tzn. odwracalnego, prowadzącego do otrzymania oryginalnej postaci medium pokrywającego. Są nimi: kruche uwierzytelnianie (ang. fragile authentication), algorytmy o wysokiej pojemności wbudowywania (ang. high embedding capacity), półkruche uwierzytelnianie (ang. semifragile authentication).
W klasie algorytmów kruchego uwierzytelniania (gdzie dane uwierzytelniające szybko tracą swoją przydatność już w wyniku drobnych modyfikacji medium kryjącego) stosuje się bezstratną kompresję bitów oryginalnego obrazu w celu utworzenia miejsca na wstawienie ukrytych danych. Przykładowo, znane jest rozwiązanie bazujące na bezstratnej kompresji przesuniętych strumieni bitowych, otrzymanych ze skwantowanych współczynników JPEG.
Z kolei algorytmy prowadzące do wysokiej objętości wbudowanych danych mogą wykorzystywać bezstratną kompresję współczynników transformat falkowych lub skwantowanych wartości obrazu.
W półkruchym uwierzytelnianiu rozpatrywana jest głównie kwestia odporności tego typu algorytmów na niewielkie modyfikacje materiału multimedialnego, związane z obydwoma rodzajami kompresji, nie wprowadzające zasadniczych różnic w stosunku do oryginalnej postaci zawartości multimedialnej
3.7. Test pseudolosowości Lempela-Ziva
Kompresja jest zastosowana w teście pseudolosowości Lempela-Ziva, należącym do grupy 16 testów opublikowanych przez organizację NIST i służących do badania pseudolosowości sekwencji binarnych o określonej długości utworzonych przez generatory liczb pseudolosowych. W teście Lempela-Ziva bada się, w jakim stopniu sekwencja wejściowa daje się kompresować, przy czym sekwencja pseudolosowa powinna podlegać kompresji co najwyżej w niewielkim stopniu. Opis testu wraz z proponowanymi w stosunku do niego poprawkami można znaleźć w pracy pt. Corrections of the NIST Statistical Test Suite for Randomness [KiUm04].
3.8. Inne algorytmy kryptograficzne wykorzystujące kompresję
W tym podpunkcie [Avan05] zostaną przedstawione algorytmy kryptograficzne wykorzystujące kompresję, lecz rozumianą odmiennie w stosunku do klasycznych jej rozwiązań, stosowanych w dziedzinie multimediów - kompresję używaną w kryptografii torusowej (ang. torus-based cryptography) oraz kryptografii krzywych eliptycznych (ang. elliptic curve cryptography) [Avan05].
Kryptografia torusowa służy do projektowania kryptosystemów opartych na grupach o specjalnych właściwościach i problemie logarytmu dyskretnego. Kompresja w kryptografii torusowej prowadzi do otrzymania zwartej reprezentacji danej półgrupy, której elementy należą do torusa. Przykładem tego typu kryptosystemów są XTR oraz CEILIDH, które znajdują zastosowanie przy ulepszaniu znanych algorytmów z kluczem publicznym.
W dziedzinie krzywych eliptycznych, gdzie problem logarytmu dyskretnego rozwiązuje się w odniesieniu do takiej krzywej, a nie do skończonego ciała, skompresowaną postać otrzymuje się poprzez zadanie współrzędnej x oraz bitu określającego, które z maksymalnie dwóch rozwiązań jest właściwe dla równania kwadratowego opisującego daną krzywą. Dla krzywych eliptycznych wyższego rzędu podaje się z kolei wielomian p(x) stopnia co najwyżej n oraz n bitów dla określenia odpowiednich rozwiązań.
4. Przykłady algorytmów selektywnego szyfrowania
4.1. Szyfrowanie transparentne obrazów
Transparentne szyfrowanie (ang. transparent encryption) wiąże się z szyfrowaniem warstw wzbogacających (ang. enhancement layers) skalowalnego strumienia bitowego, które zawierają dane służące do podniesienia jakości obrazu lub wideo w stosunku do niskiej jakości reprezentowanej przez warstwę bazową (ang. base layer) [UhPo05]. Transparentne szyfrowanie znajduje zastosowanie w aplikacjach, w których materiał o niskiej jakości jest dostępny dla każdego, natomiast pełna jakość obrazu lub wideo jest osiągalna przez użytkowników po wniesieniu opłaty. Przykładami mogą być cyfrowa telewizja rozsiewcza lub efektywne przeglądanie multimedialnych baz danych.
W pracy pt. Techniques for selective encryption of uncompressed and compressed images [DrBe02] zaproponowano szyfrowanie bitplanów oryginalnego obrazu począwszy od najmniej znaczących bitów. Zaszyfrowanie co najmniej 4-5 najmniej znaczących bitplanów spośród 8 bitplanów obrazu w skali szarości, będących danymi słabo skorelowanymi z oryginalnym obrazem o charakterze zbliżonym do losowego, powoduje widoczną degradację obrazu oraz wykazuje odporność na ataki z otwartym tekstem jawnym. Funkcją szyfrującą jest XOR (czyli alternatywa wykluczająca), a długość klucza jest równa rozmiarowi szyfrowanych danych obrazu. Jednakże częściowa utrata jakości obrazu nie jest wystarczająca dla aplikacji wymagających wysokiego poziomu bezpieczeństwa.
W obrazach skompresowanych JPEG szyfrowaniu podlegają dodatkowe bity znaku oraz wartości bezwzględnej określonej liczby niezerowych współczynników AC [DrBe02]. Nie są szyfrowane słowa kodowe, ponieważ uczestniczą one w procesie synchronizacji, a także nie ma sensu zamienianie zerowych współczynników z niezerowymi współczynnikami oraz współczynników DC, których wartości są wysoce przewidywalne. Liczba niezaszyfrowanych współczynników powinna być mniejsza niż pięć (włącznie ze współczynnikiem DC). Algorytm może być przeprowadzany na określonych zbiorach współczynników danego obrazu przy wykorzystaniu różnych kluczy [Droo04]. Jeżeli zbiory te są odmienne, to stosuje się wielokrotne selektywne szyfrowanie, natomiast gdy zbiory te pokrywają się, to należy użyć schematu Ek1(Dk2(Ek1(f))) zwanego nad-szyfrowaniem (ang. over-encryption). Po procesie szyfrowania standardowym szyfrem blokowym (np. 3DES) następuje zamiana bitów w strumieniu bitowym w celu zapewnienia zgodności jego ostatecznej postaci z formatem wymaganym przez dany system kompresji.
Pierwszy z opisanych algorytmów szyfrowania obrazów operuje w dziedzinie przestrzennej na strumieniu bitowym, a drugi, w dziedzinie transformaty DCT, na danych skompresowanych algorytmem JPEG.
4.2. Szyfrowanie obrazów i danych wideo
W pracy pt. Partial Encryption of Compressed Images and Videos [ChLi00] przedstawiono sposób szyfrowania obrazów skompresowanych falkowo oraz jego rozszerzenie, służące do zabezpieczania materiału wideo. W obydwóch przypadkach dane są skompresowane algorytmem SPIHT, bazującym na drzewie zerowym.
Metoda przedstawiona w tej pracy polega na szyfrowaniu istotnych bitów, reprezentujących istotne zbiory lub piksele, które należą do dwóch najwyższych poziomów piramidy, jak również parametr n, określający początkowy próg istotności. Nie ma potrzeby szyfrowania wszystkich pozostałych danych, ponieważ są one otrzymywane w wyniku dekompozycji zbiorów leżących w dwóch pierwszych podpasmach (inicjalizacji różnych list wykorzystywanych przez algorytm). Wspomniane zaszyfrowane istotne bity nie mogą być odgadnięte poprzez obserwację bitów należących do niższych poziomów piramidy.
Ilość zaszyfrowanych danych jest więc niewielka, rzędu kilku procent. Algorytmem szyfrującym może być AES.
Powyższa metoda szyfrowania obrazu może być zastosowana również w odniesieniu do danych wideo posiadających niskie rozdzielczości, występujących np. w usłudze wideotelefonii. Cel zostaje osiągnięty przez szyfrowanie ramek typu I, wektorów ruchu oraz błędów predykcji. Zabezpieczanie dwóch pierwszych elementów pozwala uniknąć uzyskania aproksymacji kolejnych ramek przez atakującego, natomiast szyfrowanie błędu predykcji - uzyskania informacji o zarysach poruszających się obiektów, nie będących dokładnie przewidywanymi przez wektory ruchu.
4.3. Szyfrowanie sekwencji wideo
Schematy selektywnego szyfrowania danych wideo skompresowanych algorytmem MPEG opierają się najczęściej na zabezpieczaniu określonych makrobloków, ramek, współczynników DCT oraz wektorów ruchu i mogą nie zapewniać odpowiedniego poziomu bezpieczeństwa wskutek rozproszenia informacji widzialnej na wszystkie współczynniki DCT i ich poszczególne bity bądź ograniczenia szyfrowania tylko do ramek typu I [FuKi05]. Ponadto szyfrowanie nagłówków w tychże schematach powoduje utratę zgodności z formatem MPEG.
Z kolei metody polegające na poufnych permutacjach wszystkich lub wybranych makrobloków, bloków, współczynników DCT i wektorów ruchu bywają podatne na ataki: z szyfrogramem, a także ze znanym i wybranym tekstem jawnym [FuKi05].
Jednym z algorytmów operujących na danych wideo w standardzie MPEG, pozbawionym powyższych wad, jest RVEA (ang. Realtime Video Encryption Algorithm) [BhSh02]. Metoda ta szyfruje wybrane bity znaku współczynników DCT oraz wektorów ruchu dowolnym, znanym szyfrem blokowym. W końcowym etapie algorytmu zaszyfrowane bity znaku są umieszczane z powrotem na pozycjach, z których zostały pobrane.
Rys. 1. Sposób wyboru bitów znaku współczynników DCT w algorytmie RVEA [FuKi05]
W trakcie przebiegu algorytmu, dla każdego makrobloku wybieranych jest do:
64 bitów znaku współczynników DCT w przypadku ramek I,
62 bitów znaku współczynników DCT oraz bity znaku wektora ruchu w przód w przypadku ramek P,
60 bitów znaku współczynników DCT oraz bity znaku wektora ruchu w przód i w tył w przypadku ramek B.
Sposób wyboru bitów znaku współczynników DCT jest przedstawiony na rys. 1, gdzie: Yi - bloki luminancji 8 x 8 pikseli, Cb i Cr - bloki chrominancji 8 x 8 pikseli, β - kody współczynników DC, αi - kody i-tych niezerowych współczynników AC. Metoda wyboru jest uzależniona od spostrzeżenia, że współczynniki DC oraz AC wyższych częstotliwości są bardziej znaczące od współczynników AC niższych częstotliwości (wektory ruchu są bardziej znaczące od współczynników DCT).
Ograniczenie czasu trwania obliczeń jest uzyskiwane przez wybór skończonej liczby bitów. Bity znaku zajmują 10% całkowitego strumienia bitowego, dlatego za pomocą RVEA można zaoszczędzić 90% czasu obliczeń w porównaniu z szyfrowaniem bezpośrednim. Czas przetwarzania algorytmem RVEA jest zawsze krótszy, niezależnie od rozmiaru i rodzaju ramki.
Rys. 2. Algorytm VEA [QiNa97]
Szyfrowany może być również strumień wideo (rys. 2) [QiNa97]. Poszczególne etapy są następujące:
1) utworzenie bloku nagłówka dla każdej ramki MPEG typu I;
2) dodanie KeyF do KeyM i Keyi;
3) obliczenie dla i = j (mod4) dla j-tego 128-bitowego segmentu strumienia bitowego;
4) mieszanie j-tego 128-bajtowego segmentu strumienia bitowego z kluczem KeyM KeyF i podział wynikowego segmentu na cztery kolejne 32-bajtowe części, gdzie pierwsza i trzecia część tworzy dwie Listy Nieparzyste, a druga i czwarta - dwie Listy Parzyste;
5) mieszanie pierwszej Parzystej Listy z kluczem; Key2i+1 KeyF; wynikowa Parzysta Lista jest: a) ksorowana (poddawana działaniu funkcji XOR) z pierwszą Nieparzystą Listą, dając szyfrogram w postaci c1 c2 ... c32; b) szyfrowana funkcją E przy wykorzystaniu klucza KeyE, dając szyfrogram E1 E2 ... E32; zastosowanie tych samych kroków do innych par List Parzystych i Nieparzystych;
6) powtórzenie kroku 3;
7) powtórzenie kroku 1 dla każdej ramki.
KeyF jest kluczem 64 bitowym, przydzielanym każdej ramce, dołączanym do kluczy KeyM i Keyi w celu otrzymania nowych kluczy dla tejże ramki: KeyM KeyF Keyi KeyF oraz wprowadzenia dalszego zróżnicowania wyboru Listy Nieparzystej i Parzystej.
KeyM składa się ze 128 bitów - 64 zer i 64 jedynek. Jeżeli i-ty bit klucza KeyM jest równy 1, to i-ty bajt 128-bajtowego segmentu jest zaliczany do Listy Nieparzystej.
Keyi to osiem kluczy. Każdy z nich ma długość 20 bajtów i służy do mieszania jednej z ośmiu części w celu uzyskania niepowtarzalności wartości bajtów w obrębie połowy ramki. Key1 jest stosowany do pierwszych 32 bajtów Listy Nieparzystej, Key2 do kolejnych 32 bajtów itd.
W algorytmie VEA używana jest zmodyfikowana postać nagłówka ramki MPEG (rys. 3), ponieważ strumień wideo jest indeksowany oraz transmitowany ramka po ramce i nie są potrzebne 4-bajtowe pola startu obrazu oraz segmentu [QiNa97]. Pola te mogą natomiast zostać wykorzystane do przechowania informacji o kluczu KeyF, liczbie segmentów w ramce, odległości między kodem startu obrazu a pierwszym segmentem, długości każdego segmentu. W trakcie dekodowania ramki dochodzi do umieszczenia sekwencji 0010 jako kodu startu obrazu, rekonstrukcji kodów startu segmentów, umieszczenia ich na oryginalnych pozycjach na podstawie długości segmentu i otrzymania klucza KeyF. Blok nagłówka oraz klucz KeyF są zaszyfrowane z użyciem klucza KeyE. Nagłówki obrazów MPEG nie są szyfrowane, ponieważ zawierają informacje, które są bezwartościowe w przypadku braku znajomości danych użytkowych, czyli współczynników DCT (np. dotyczące rozmiaru obrazu i szybkości transmisji obrazu).
Rys. 3. Postać bloku nagłówka ramki MPEG używana w algorytmie VEA [QiNa97]
Szybkość działania algorytmu jest dwa razy szybsza w porównaniu z podejściem naiwnym, a jego bezpieczeństwo zależy od funkcji E, którą jest szyfr blokowy.
4.4. Zabezpieczanie kodera entropijnego
Kodowanie entropijne jest stosowane w standardach JPEG i MPEG. Algorytm zapewniający poufność kodowania entropijnego może wykorzystywać wielokrotne tablice Huffmana [XiKu04], gdzie na podstawie losowego indeksu, pełniącego rolę tajnego klucza, dochodzi do wyboru określonego drzewa Huffmana dla danego słowa kodowego.
Procedura kodowania entropijnego, opartego na wielokrotnych tablicach Huffmana, jest następująca:
1) generacja 2k różnych tablic Huffmana, ponumerowanych od 0 do 2k - 1,
2) generacja m-bitowej sekwencji pseudolosowej s,
3) obliczenie r=[m/k]
4) obliczenie h(s) = t1 || t2 || ... || tr || rem, gdzie: ti jest liczbą od 0 do n - 1, wyrażoną za pomocą k-bitów, rem - pozostałe bity, jeśli m nie jest wielokrotnością k,
5) dla każdego i, gdzie i = 1,2, ... r, użycie tablicy ti do zakodowania pojedynczego symbolu,
6) ustawienie s = s + 1, po zakodowaniu r symboli, i powrót do kroku 4.
Tablice Huffmana mogą być generowane przy użyciu zbiorów obrazów treningowych lub procesu mutacji drzewa Huffmana [WuKu01]. Poszczególne tablice Huffmana muszą pochodzić z różnych zbiorów treningowych, aby nie doszło do zmniejszenia stopnia kompresji.
![](/sites/default/files/images/old/stories/zdjecia_artykuly/6_2007/art5_6_2007/rys4.jpg)
Rys. 4. Proces mutacji drzewa Huffmana [WuKu01]
Proces mutacji drzewa Huffmana (rys. 4) polega na tworzeniu kolejnych tablic Huffmana w wyniku zmiany etykiet gałęzi czterech bazowych optymalnych drzew Huffmana. Jeżeli dane drzewo bazowe posiada m liści, to możliwe jest otrzymanie 2m-1 różnych tablic Huffmana. Modyfikowane są te pary etykiet, którym odpowiadają zerowe bity w losowo wygenerowanej (m - 1)-bitowej liczbie całkowitej.
4.5. Szyfrowanie danych audio
Zabezpieczenie danych audio, skompresowanych algorytmem MPEG Layer III, może opierać się na modyfikacji i zaszyfrowaniu określonych pól ramki MP3 [SeTe03]. Optymalne pod względem liczby szyfrowanych bitów oraz wielkości wprowadzanych zniekształceń sygnału audio jest szyfrowanie zaledwie jednego bitu z pola region1 oraz umożliwienie dekodowania bitów zawartych tylko w polu region0, ponieważ nawet niewielka modyfikacja w region1 wprowadza zauważalne zniekształcenia sygnału.
Rys. 5. Szyfrowanie ramki MP3 [SeTe03]
Znacznie bardziej bezpieczne jest szyfrowanie 70-100 bitów zawartych w region2 i jednoczesne dekodowanie bitów zawartych w polach region0 i region1 (rys. 5). Szyfrogram zajmuje wtedy 6.3-8.3% objętości strumienia bitowego, próbkowanego z częstotliwością 44.1 kHz, o przepływności 128 kbit/s. Pola region0-region2 zawierają zakodowane trzema różnymi kodami Huffmana największe wartości współczynników zmodyfikowanego przekształcenia kosinusowego, które odpowiadają najniższym częstotliwościom. Dekompresja, ograniczona do współczynników leżących w region0 i region1, jest równoważna filtracji dolnoprzepustowej sygnału audio. Prowadzi ona do otrzymania sygnału o obniżonej jakości. Ponadto rekonstrukcja zaszyfrowanych wartości współczynników MDCT wywołuje błędy synchronizacji, dlatego też obszar ramki MP3, który ma być zaszyfrowany, powinien być ominięty przez dekoder. W przypadku pola region2 efekt ten zostaje osiągnięty przez ustawienie wartości 4 w table_select region2. Z kolei poprzez wpisanie wartości 288 w pole big_values dochodzi do jego maksymalnego wydłużenia aż do końca pasma o wartość pola count1, które zwyczajowo przechowuje wartości współczynników z przedziału <-1; 1>. W celu odzyskania oryginalnej postaci ramki MP3 należy na początku ścieżki audio dołączyć dodatkowy zaszyfrowany nagłówek, zawierający dane o wcześniejszych wartościach table_select oraz big_values.
Opisany algorytm działa również w dziedzinie transformaty DCT.
4.6. Szyfrowanie mowy w standardzie G.729
W pracy pt. Frequency-Selective Partial Encryption of Compressed Audio [SeTe02] zaproponowano dwa algorytmy szyfrowania mowy w standardzie G.729, operującym z szybkością 8 kb/s. Pierwsza z metod ma na celu degradację mowy pozwalającą uniknąć bezpośredniego podsłuchu, który może stać się możliwy dopiero po odpowiedniej kryptoanalizie. Drugi z algorytmów szyfruje więcej, to jest około połowy strumienia bitowego, i zapewnia wyższy poziom bezpieczeństwa, porównywalny z tym, jaki jest oferowany w podejściu naiwnym. Wybór liczby szyfrowanych bitów został przeprowadzony doświadczalnie, z uwzględnieniem znaczenia percepcji poszczególnych parametrów wyjściowych kodeka G.729, takich jak: wpływ obwiedni widmowej na zrozumiałość, rola wzmocnienia przy rozróżnianiu mowy dźwięcznej i bezdźwięcznej oraz mowy i ciszy, okres wysokości dźwięku, identyfikacja płci. Większy ze zbiorów bitów obejmuje: indeksy kwantyzacji wektorowej L1 i L2, liniowe częstotliwości widmowe, pierwszych siedem najbardziej znaczących bitów wartości kwantyzowanego okresu wysokości dźwięku, pierwsze trzy najbardziej znaczące bity różnicowo kwantyzowanego okresu wysokości dźwięku, cztery indeksy wektora wzmocnienia. W drugim zbiorze dla wymienionych parametrów szyfrowanych jest mniej bitów, z wyjątkiem różnicowo zakodowanego okresu wysokości dźwięku.
Rys. 6. Zaszyfrowanie bity poszczególnych parametrów wyjściowych kodeka G.729 [SeTe02]
5. Podsumowanie
W artykule została omówiona problematyka adaptacji poziomu zabezpieczeń danego rodzaju materiału multimedialnego do warunków sieciowych oraz możliwości urządzeń końcowych. Jest ona związana głównie z zagadnieniami bezpiecznego skalowalnego streamingu i transkodingu, służącego do zapewniania poufności oraz uwierzytelniania.
Rozwiązania przedstawione w pierwszej części artykułu charakteryzują się znacznym zmniejszeniem ilości przetwarzanych danych i skróceniem czasu obliczeń w porównaniu z szyfrowaniem całości materiału multimedialnego. Znajdują one zastosowanie w zabezpieczaniu danych wideo, obrazu, audio i mowy, a tym samym usług multimedialnych, takich jak wideokonferencje, wideo na życzenie, telewizja rozsiewcza, multimedialne bazy danych. Algorytmy selektywnego szyfrowania wpływają na stopień kompresji w niewielkim zakresie, co jest również pożądane, zwłaszcza przy zapewnianiu bezpieczeństwa usług wymagających większych przepływności. Selektywne szyfrowanie danych wideo może wykazywać podatności być podatne na ataki, nie zapewniać odpowiedniego poziomu ochrony danych, a także skutkować utratą zgodności z formatem MPEG.
Piotr Piotrowski
Instytut Telekomunikacji, Wydział Elektroniki i Technik Informacyjnych,
Politechnika Warszawska
P.T.Piotrowski@elka.pw.edu.pl
Literatura:
[Avan05] Avanzi R., D.AZTEC.2. Alternatives to RSA (Lightweight Asymmetric Cryptography and alternatives to RSA), ECRYPT, August 2005.
[BhSh02] Bhargava B., Shi C., Wang S., „MPEG Video Encryption Algorithms", 2002.
[ChLi00] Cheng H., Li X., "Partial Encryption of Compressed Images and Videos", IEEE Trans. Signal Process., 48(8), 2439-2451, 2000.
[DrBe02] Van Droogenbroeck M., Benedett R., "Techniques for selective encryption of uncompressed and compressed images", Proceedings of ACIVS 2002 (Advanced Concepts for Intelligent Vision Systems), Ghent, Belgium, September 2002.
[Droo04] Van Droogenbroeck M., Partial encryption of images for real-time applications. Liege, Belgium 2004.
[FuKi05] Furht B., Kirovski D., Multimedia Security Handbook, CRC Press, 2005.
[FuSo04] Furht B., Socek D., „A Survey of Multimedia Security", Comprehensive Report on Information Security, IEC 2004.
[KiUm04] Kim S., Umeno K., Hasegawa A., „Corrections of the NIST Statistical Test Suite for Randomness", Cryptology ePrint Archive, January 2004.
[Look03] Lookabaugh T. D. i inni, „Security Analysis of Selectively Encrypted MPEG-2 Streams", Proceedings of the SPIE, Vol. 5241, pp. 10-21, November 2003.
[ÖzSo04] Öztürk I., Soğukpinar I., „Analysis and Comparison of Image Encryption Algorithms", International Journal of Information Technology, Vol. 1, No. 2, 2004.
[QiNa97] Qiao L., Nahrstedt K., „A New Algorithm for MPEG Video Encryption", Proceedings of the 1st International Conference on Imaging Science, Systems and Technology, 1997, pp.21 -29.
[SeTe02] Servetti A., De Martin J.C., „Perception-Based Partial Encryption of Compressed Speech", IEEE Transactions of speech and audio processing, Vol. 10, No. 8, 2002.
[SeTe03] Servetti A., Testa C., De Martin J.C., „Frequency-Selective Partial Encryption of Compressed Audio", IEEE International Conference on Acoustics, Speech and Signal Processing, Hong-Kong, 2003.
[UhPo05] Uhl A., Pommer A., Image and Video Encryption. From Digital Rights Management to Secured Personal Communication, Springer, 2005.
[Wang05] Wang C., „Cryptography in Data Compression.", CodeBreakers-Journal, Vol. 2, No. 3, 2005.
[WuKu00] Wu C.-P., Kuo C.-C. J., „Fast Encryption Methods for Audiovisual Data Confidentiality", Proceedings of the SPIE, Vol. 4209, pp.284-295, November 2000.
[WuKu01] Wu C.-P., Kuo C.-C. J., „Efficient Multimedia Encryption via Entropy Codec Design", Proceedings of the SPIE Security and Watermarking of Multimedia Content III, San Jose 2001, Vol. 4314.
[XiKu04] Xie D., Kuo C.-C.J., "Enhanced multiple Huffman table (MHT) encryption scheme using key hopping", ISCAS (5) 2004, pp.568-571.