|
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.
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
Ten adres email jest ukrywany przed spamerami, włącz obsługę JavaScript w przeglądarce, by go zobaczyć
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.
Zabezpieczenia 6/2007
|