PL B1. SONY CORPORATION, Tokio, JP , JP, P , JP, P , JP, P

RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) (21) Numer zgłoszenia: 339206 Urząd Patentowy Rzeczypospolitej Polskiej (54) (22) Data zgłoszeni...
Author: Kinga Wysocka
0 downloads 2 Views 2MB Size
RZECZPOSPOLITA POLSKA

(12)

OPIS PATENTOWY

(19)

(21) Numer zgłoszenia: 339206

Urząd Patentowy Rzeczypospolitej Polskiej

(54)

(22) Data zgłoszenia: 24.03.2000

PL

208230 (13) B1 (11)

(51) Int.Cl. G06F 21/00 (2006.01) G11B 27/36 (2006.01) G11C 7/16 (2006.01)

Sposób odtwarzania danych z nośnika zapisu typu odłączalna karta pamięci oraz urządzenie odtwarzające dane z nośnika zapisu typu odłączalna karta pamięci

(73) Uprawniony z patentu: (30) Pierwszeństwo:

26.03.1999, JP, P11-084918 29.06.1999, JP, P11-183411 27.01.2000, JP, P2000-023329

(43) Zgłoszenie ogłoszono:

09.10.2000 BUP 21/00

SONY CORPORATION, Tokio, JP

(72) Twórca(y) wynalazku:

TEPPEI YOKOTA, Tokio, JP NOBUYUKI KIHARA, Tokio, JP EIICHI YAMADA, Tokio, JP TAKUMI OKAUE, Tokio, JP

(45) O udzieleniu patentu ogłoszono:

PL 208230 B1

29.04.2011 WUP 04/11

(74) Pełnomocnik:

rzecz. pat. Izabela Ludwicka

2

PL 208 230 B1

Opis wynalazku Sposób odtwarzania danych z nośnika zapisu typu odłączalna karta pamięci oraz urządzenie odtwarzające dane z nośnika zapisu typu odłączalna karta pamięci, zwłaszcza do sprawdzania sfałszowanej informacji o pliku zapisanym na odłączalnej karcie pamięci. EEPROM (Programowalna Pamięć Stała Wymazywalna Elektrycznie), która jest pamięcią zapisywalną elektrycznie, wymaga dużo przestrzeni, ponieważ każdy bit składa się z dwóch tranzystorów. Stąd możliwości integracji EEPROM są ograniczone. Aby rozwiązać ten problem, rozwinięto pamięci typu flash, które pozwalają na zapamiętanie jednego bitu z wykorzystaniem jednego tranzystora, realizując układ wymazywania wszystkich bitów. Oczekuje się, że pamięci typu flash będą następcami konwencjonalnych nośników zapisu, takich jak dyski magnetyczne i dyski optyczne. Znana jest także karta pamięci wykorzystująca pamięci typu flash. Taka karta pamięci może być swobodnie podłączana i odłączana od urządzenia. Możliwe są do wykonania cyfrowe urządzenia zapisujące/odtwarzające sygnał audio, które wykorzystują karty pamięci zamiast konwencjonalnych dysków optycznych CD (Compact Disc: Znak towarowy) lub MD (Mini Disc: Znak towarowy). Znane są urządzenia odtwarzające dane z nośnika zapisu typu odłączalna karta pamięci z pamięcią typu flash, zawierające układ scalony dekodera audio z interfejsem sygnału audio oraz blokiem kodera/dekodera, układ scalony zabezpieczenia z interfejsem, z układem szyfrowania DES oraz z kolejką FIFO, procesor sygnałowy DSP połączony z pamięcią typu SRAM i dołączony do zewnętrznego sterownika poprzez szynę komunikacyjną oraz zamocowaną w mechanizmie dołączającym/odłączającym odłączalną kartę pamięci, która mieści pamięć typu flash. Istnieją dwa typy kart pamięci, te które realizują funkcję szyfrowania, i te które nie umożliwiają szyfrowania. Jednakże typ kart pamięci, które są wykorzystywane z nagrywarką/odtwarzaczem zapisującą dane chronione prawem autorskim, jest ograniczony do typu szyfrującego. Dane głosowe oraz dane obrazu, które są zapisywane przez użytkownika, są zapisywane na kartach pamięci typu nie obsługującego szyfrowania. Na fig. 3 przedstawiono schemat blokowy, ilustrujący przykładową wewnętrzną budowę karty pamięci 40 typu szyfrującego. Karta pamięci 40 zawiera blok sterujący 41 oraz pamięć flash 42, które są umieszczone w jednej kości układu scalonego. Pomiędzy procesorem sygnałowym DSP nagrywarki/odtwarzacza, a kartą pamięci 40 umieszczony jest dwukierunkowy interfejs szeregowy. Dwukierunkowy interfejs szeregowy składa się z dziesięciu linii, którymi są: linia zegara SCK, do przesyłania sygnału zegarowego, który jest przesyłany wraz z danymi, linia statusu SBS, do przesyłania sygnału określającego status, linia danych DIO, do przesyłania danych, linia przerwań INT, dwie linie uziemienia GND, dwie linie INT, oraz dwie linie zarezerwowane. Linia zegara SCK jest wykorzystywana do przesyłania sygnału zegarowego zsynchronizowanego z danymi. Linia statusu SBS jest wykorzystywana do przesyłania sygnału, określającego status karty pamięci 40. Linia danych DIO jest wykorzystywana do wprowadzania i wyprowadzania polecenia i zaszyfrowanych danych audio. Linia przerwań INT jest wykorzystywana do przesyłania sygnału przerwania, który powoduje, iż karta pamięci 40 zgłasza przerwanie do procesora sygnałowego DSP 30 nagrywarki/odtwarzacza. Gdy karta pamięci 40 jest podłączana do nagrywarki/odtwarzacza, to generuje ona sygnał przerwania. Jednak, według przykładu realizacji niniejszego wynalazku, ponieważ sygnał przerwania jest przesyłany poprzez linię danych DIO, to linia przerwań INT pozostaje uziemiona. Blok konwersji szeregowo/równoległej, konwersji równoległo/szeregowej, oraz blok interfejsu (blok S/P, P/S, I/F) 43 jest interfejsem, umieszczonym pomiędzy procesorem sygnałowym DSP 30 nagrywarki / odtwarzacza, a blokiem sterującym 41 karty pamięci 40. Blok konwersji S/P, P/S i interfejsu I/F 43 przekształca dane szeregowe odbierane z procesora sygnałowego DSP 30 nagrywarki/odtwarzacza na dane równoległe i przesyła te dane równoległe do bloku sterującego 41. Ponadto blok konwersji S/P, P/S i interfejsu I/F 43 przekształca dane równoległe odebrane z bloku sterującego 41 na dane szeregowe i dostarcza te dane szeregowe do procesora sygnałowego DSP 30. Kiedy blok S/P, P/S i interfejsu I/F 43 odbiera poprzez linię danych DIO polecenie i dane, to rozdziela on je, na te normalnie dostępne w pamięci flash 42, i na te, które są szyfrowane. W formacie, w którym dane są przesyłane poprzez linię danych DIO, dane są przesyłane po przesłaniu polecenia. Blok S/P, P/S i interfejsu I/F 43 wykrywa kod polecenia i określa, czy polecenie i dane są tymi, które są swobodnie dostępne, czy też są tymi, które są kodowane. W zależności od otrzymanego wyniku, blok S/P, P/S i interfejsu I/F 43 polecenie, które jest normalnie dostępne, prze-

PL 208 230 B1

3

chowuje w rejestrze poleceń 44, a dane które, są normalnie dostępne, przechowuje w buforze stronicowym 45 i w rejestrze zapisu 46. Razem z rejestrem zapisu 46, karta pamięci 40 posiada układ kodowania z kodem korekcji błędu 41 (ECC). Układ kodowania z kodem korekcji błędu 47 generuje kod nadmiarowy, który jest kodem korekcji dla danych przechowywanych tymczasowo w buforze stronicowym 45. Dane wyjściowe z rejestru poleceń 44, z bufora stronicowego 46, z rejestru zapisu 46, i z układu kodowania z kodem korekcji błędu 47, dostarczane są do interfejsu pamięci flash i układu sekwencyjnego adresującego (które są oznaczone tutaj jako interfejs pamięci I/F i układ sekwencyjny adresujący 51). Interfejs pamięci I/F i układ sekwencyjny adresujący 51, jest to interfejs, umieszczony pomiędzy blokiem sterującym 41, a pamięcią flash 42, który steruje wymianą danych pomiędzy nimi. Dane są zapisywane w pamięci flash poprzez interfejs pamięci I/F i układ sekwencyjny adresujący 51. Dane audio, które zostały skompresowane zgodnie z formatem ATRAC3 i zapisane w pamięci flash (te dane audio są określane tutaj dalej mianem danych ATRAC3), są szyfrowane przez zabezpieczający układ scalony 20 nagrywarki/odtwarzacza i przez blok zabezpieczający 52 karty pamięci 40, tak aby chronić prawa autorskie do danych ATRAC3. Blok zabezpieczający 52 zawiera bufor pamięci 53, układ szyfrujący DES 54, oraz pamięć nieulotną 55. Blok zabezpieczający 52 karty pamięci 40 posiada wiele kluczy uwierzytelniających i unikalny dla każdej karty pamięci klucz pamięci. Pamięć nieulotną 55 przechowuje klucz niezbędny do zaszyfrowania danych. Klucz przechowywany w pamięci nieulotnej 55 nie może być analizowany. Zgodnie z przykładem realizacji, klucz pamięci jest przechowywany w pamięci nieulotnej 55. Blok zabezpieczający 52 posiada także układ generujący liczby losowe. Blok zabezpieczający 52 uwierzytelnia stosowną nagrywarkę/odtwarzacz i współdzieli z nią klucz sesji. Ponadto, blok zabezpieczający 52 szyfruje ponownie treść kluczem pamięci poprzez układ szyfrujący DES 54. Na przykład, gdy karta pamięci 40 dołączana jest do nagrywarki/odtwarzacza, to wzajemnie się one uwierzytelniają. Zabezpieczający układ scalony IC 20 nagrywarki/odtwarzacza i blok zabezpieczający 52 karty pamięci 40 dokonują wzajemnego uwierzytelnienia. Gdy nagrywarka/odtwarzacz uwierzytelni kartę pamięci 40 jako odpowiednią kartę pamięci, a karta pamięci 40 uwierzytelni nagrywarkę/odtwarzacz jako odpowiednią nagrywarkę/odtwarzacza, oznacza to, że wzajemnie się one uwierzytelniły. Po zakończonym powodzeniem procesie wzajemnego uwierzytelnienia, nagrywarka/odtwarzacz i karta pamięci 40 generują odpowiednie klucze sesji i współdzielą je ze sobą. Za każdym razem gdy nagrywarka/odtwarzacz i karta pamięci 40 dokonają wzajemnego uwierzytelnienia, generowane są odpowiednie klucze sesji. W momencie gdy w karcie pamięci 40 zapisywana jest treść, nagrywarka/odtwarzacz szyfruje klucz zawartości z wykorzystaniem klucza sesji i przesyła zaszyfrowane dane do karty pamięci 40. Karta pamięci 40 deszyfruje klucz zawartości z wykorzystaniem klucza sesji, ponownie szyfruje klucz zawartości z wykorzystaniem klucza pamięci, i dostarcza klucz zawartości do nagrywarki/odtwarzacza. Klucz pamięci jest unikalny dla każdej karty pamięci 40. Gdy nagrywarka/odtwarzacz odbierze zaszyfrowany klucz zawartości, to realizuje ona proces formatowania dla zaszyfrowanego klucza zawartości i zapisuje zaszyfrowany klucz zawartości i zaszyfrowaną treść w karcie pamięci 40. W powyższym fragmencie opisany został proces zapisywania dla karty pamięci 40. Poniżej, opisany zostanie proces odczytywania z karty pamięci 40. Dane, które są odczytywane z pamięci typu flash 42 są dostarczane do bufora stronicowego 45, rejestru odczytu 48 oraz układu korekcji błędu 49 poprzez interfejs pamięci IF i układ sekwencyjny adresujący 51. Układ korekcji błędu 49 koryguje błąd danych przechowywanych w buforze stronicowym 45. Dane wyjściowe z bufora stronicowego 45, które zostały skorygowane pod kątem błędów, oraz dane wyjściowe z rejestru odczytu 48 są dostarczane do bloku konwersji S/P, P/S i interfejsu I/F 43. Dane wyjściowe z bloku konwersji S/P, P/S i interfejsu I/F 43 są podawane do procesora sygnałowego DSP nagrywarki/odtwarzacza poprzez opisany powyżej interfejs szeregowy. Gdy dane są odczytywane z karty pamięci 40, z pamięci typu flash 42 odczytywany jest klucz zawartości, zaszyfrowany z wykorzystaniem klucza pamięci i treść, zaszyfrowana z wykorzystaniem klucza blokowego. Blok zabezpieczający 52 deszyfruje klucz zawartości przy pomocy klucza pamięci. Blok zabezpieczający 52 ponownie szyfruje odszyfrowany klucz zawartości przy pomocy klucza sesji i przesyła ponownie zaszyfrowany klucz zawartości do nagrywarki/odtwarzacza. Nagrywarka/odtwarzacz deszyfruje klucz zawartości wykorzystując klucz sesji i generuje klucz blokowy z wykorzystaniem odszyfrowanego klucza zawartości. Nagrywarka/odtwarzacz sukcesywnie deszyfruje zaszyfrowane dane.

4

PL 208 230 B1

Pamięć konfiguracyjna ROM 50 jest pamięcią, która przechowuje informacje dotyczące partycji, informacje o różnego rodzaju atrybutach i tym podobne informacje dotyczące karty pamięci 40. Karta pamięci 40 posiada także przełącznik 60 zabezpieczający przed usunięciem informacji. Gdy przełącznik 60 znajduje się w położeniu zabezpieczającym przed usunięciem informacji, nawet w sytuacji gdy z nagrywarki/odtwarzacza wysłane zostało do karty pamięci 40, polecenie nakazujące karcie pamięci 40 usunięcie danych, karta pamięci nie może usunąć danych przechowywanych w pamięci typu flash 42. OSC 61 jest oscylatorem, który generuje sygnał zegarowy, który jest sygnałem odniesienia dla synchronizacji procesów odbywających się w karcie pamięci 40. Fig. 4 jest schematem blokowym, przedstawiającym hierarchię procesów wykorzystujących znany system plików systemu komputerowego, który wykorzystuje jako nośnik pamięci kartę pamięci. W hierarchii, najwyższą warstwą hierarchiczną jest warstwa procesu aplikacji. Po warstwie procesu aplikacji umieszczona jest warstwa procesu zarządzania plikami, warstwa zarządzania adresami logicznymi, warstwa zarządzania adresami fizycznymi, oraz warstwa dostępu do pamięci typu flash. We wspomnianej powyżej strukturze hierarchicznej, warstwą zarządzania plikami jest system plików FAT. Blokom pamięci flash przypisane są fizyczne adresy. Relacja pomiędzy blokami pamięci flash, a ich fizycznymi adresami nie zmienia się. Adresy logiczne są adresami, które są obsługiwane w sposób logiczny w warstwie procesu zarządzania plikami. Fig. 5 jest schematem blokowym, przedstawiającym fizyczną strukturę danych przechowywanych w pamięci flash 42 karty pamięci 40. W pamięci 42, jednostka danych (nazywana segmentem) jest dzielona na określoną liczbę bloków (o jednakowej długości). Jeden blok jest podzielony na określoną liczbę stron (o ustalonej długości). W pamięci flash dane są usuwane po jednym bloku naraz. Dane są zapisywane w pamięci flash 42 lub odczytywane z niej po jednej stronie naraz. Wielkość każdego bloku jest taka sama. Podobnie wielkość każdej strony jest taka sama. Jeden blok jest zbudowany ze stron od strony 0 do strony m. Na przykład, jeden blok ma pojemność wynoszącą na przykład 8KB (kilobajtów) lub 16KB. Jedna strona na pojemność 512 B (bajtów). Gdy jeden blok ma pojemność 8KB, całkowita pojemność pamięci typu flash 42 wynosi 4MB (512 bloków) lub 8MB (1024 bloki). Gdy jeden blok ma pojemność 16KB, całkowita pojemność pamięci typu flash 42 wynosi 16MB (1024 bloki), 32 MB (2048 bloków), lub 64MB (4096 bloków). Jedna strona jest zbudowana z części z danymi o rozmiarze 512 bajtów i części nadmiarowej 16 bajtów. Pierwsze trzy bajty części nadmiarowej są częścią nadpisywaną, która jest ponownie zapisywana za każdym razem, gdy dane są uaktualniane. Pierwsze trzy bajty zawierają kolejno obszar statusu bloku, obszar statusu strony, obszar statusu uaktualnienia. Pozostałe 13 bajtów części nadmiarowej zawiera dane stałe, uzależnione od treści zawartej w części z danymi. Trzynaście bajtów zawiera obszar znacznika zarządzania (1 bajt), obszar adresu logicznego (2 bajty), obszar zarezerwowany formatu (5 bajtów), obszar rozproszenia informacji ECC (2 bajty), oraz obszar danych ECC (3 bajty). Obszar rozproszenia informacji ECC zawiera dane nadmiarowe dla procesu korekcji błędu, mogącego pojawić się w obszarze znacznika zarządzania, obszarze adresu logicznego, oraz w obszarze zarezerwowanym formatu. Obszar danych ECC zawiera dane nadmiarowe, wykorzystywane w procesie korekcji błędów w stosunku do obszaru 512 bajtów danych. Obszar znacznika zarządzania zawiera znacznik systemowy (1: blok użytkownika, 0: blok startowy), znacznik tabeli konwersji (1: nieważny, 0: blok tabeli), znacznik zakazu kopiowania (1: OK, 0: NG), oraz znacznik pozwolenia dostępu (1: swobodny, 0: zabezpieczenie przed odczytem). Pierwsze dwa bloki - blok 0 i 1 są blokami startowymi. Blok 1 jest kopią rezerwową bloku 0. Bloki startowe są górnymi blokami, które są wiążące dla karty pamięci. Kiedy karta pamięci zostaje połączona z nagrywarką/odtwarzaczem, w pierwszej kolejności odczytywane są bloki startowe. Pozostałe bloki są blokami użytkownika. Strona 0 bloku startowego zawiera obszar nagłówka, systemowy obszar zapisu oraz obszar startowy i informacji o atrybutach. Strona 1 bloku startowego zawiera obszar zabronionego bloku danych. Strona 2 bloku startowego zawiera obszar CIS (Strukturę Informacji Karty)/IDI (Informację Identyfikacyjną Napędu). Obszar nagłówka bloku startowego zawiera identyfikator (ang. ID) bloku startowego oraz liczbę udanych zapisów. Zapisy systemowe obejmują pozycje startowe zabronionego bloku danych, wielkość tych danych, typ tych danych, pozycję startową obszaru CIS/IDI, wielkość danych tego obszaru, typ danych tego obszaru. Informacja startowa i informacja dotycząca atrybutów obejmują typ karty pamięci (tylko do odczytu, zapisywalna, typu hybrydowego), wielkość bloku, liczbę bloków, całkowitą liczbę bloków, typ zabezpieczony/nie zabezpieczony, datę produkcji karty (datę wyprodukowania), i tym podobne informacje.

PL 208 230 B1

5

Ponieważ pamięć typu flash posiada ograniczenie dotyczące ilości możliwych do wykonania cykli zapisu, wynikające z pogorszenia się jakości błony izolacyjnej, niezbędne jest zabezpieczenie przed natężonym dostępem do ciągle tego samego obszaru przechowującego (bloku). Tak więc, po tym, jak dane zostają uaktualnione, zależność pomiędzy logicznym adresem i fizycznym adresem zmienia się. Proces ten określa się procesem zamiany (ang. „swap process"). W rezultacie, nie jest wykorzystywany w sposób natężony ciągle ten sam blok. A zatem czas życia pamięci typu flash może zostać wydłużony. Adres logiczny przypisany jest do danych zapisanych w bloku. Nawet jeśli blok z danymi oryginalnymi jest inny niż blok z danymi uaktualnionymi, adres w tablicy alokacji FAT się nie zmienia. Tak więc możliwy jest poprawny dostęp do tych samych danych. Jednakże, ponieważ przeprowadzany zostaje proces zamiany, to wymagane jest wprowadzenie tablicy konwersji, która łączyła by adresy logiczne z adresami fizycznymi (taką tablicę określa się jako tablicę konwersji adresów logicznych-fizycznych). Przy wykorzystaniu tablicy konwersji adresów logicznych - fizycznych, uzyskiwany jest adres fizyczny odpowiadający adresowi logicznemu, określonemu w tablicy alokacji plików FAT. W ten sposób, możliwy jest dostęp do bloku, który jest wskazywany przez adres fizyczny. Procesor sygnałowy DSP urządzenia zapisującego/odtwarzającego przechowuje tablicę konwersji adresów logicznych - fizycznych w pamięci SRAM urządzenia zapisującego/odtwarzającego. Gdy pojemność pamięci RAM jest niewielka, tablica konwersji adresów logicznych - fizycznych może być przechowywana w pamięci flash. Tablica konwersji adresów logicznych - fizycznych łączy adresy logiczne (2 bajty), przechowywane w porządku rosnącym, z adresami fizycznymi (2 bajty). Ponieważ maksymalna pojemność pamięci flash wynosi 128MB (8192 bloki), to przez dwa bajty mogą zostać określone 8192 adresy. Tablicą konwersji adresów logicznych - fizycznych operuje się dla każdego segmentu. Stąd też, rozmiar tablicy konwersji adresów logicznych - fizycznych jest proporcjonalny do pojemności pamięci flash. Gdy pojemność pamięci typu flash wynosi 8MB (dwa segmenty), to na potrzeby tablicy konwersji adresów logicznych - fizycznych, dla każdego segmentu wykorzystywane są dwie strony. Kiedy w pamięci flash przechowywana jest tablica konwersji adresów logicznych - fizycznych, to określony jeden bit w obszarze znacznika zarządzania w części nadmiarowej w każdej ze stron wskazuje, czy aktualny blok jest blokiem zawierającym tablicę konwersji adresów logicznych fizycznych, czy też nie. Opisana powyżej karta pamięci może być wykorzystywana wraz systemem plików FAT systemu komputera osobistego tak jak dyskowe nośniki zapisu. Pamięć typu flash posiada obszar IPL, obszar FAT oraz obszar katalogu głównego (nie przedstawiony na fig. 5). Obszar IPL zawiera adres programu, który ma być załadowany do pamięci nagrywarki/odtwarzacza na początku. Dodatkowo, obszar IPL zawiera różnego typu informacje dotyczące pamięci. Obszar tablicy alokacji plików FAT zawiera informacje w odniesieniu do bloków (klastrów). Tablica alokacji plików FAT wskazuje niewykorzystane bloki, numer kolejnego bloku, bloki uszkodzone oraz numer ostatniego bloku. Obszar katalogu głównego zawiera zapisy katalogowe (ang. direktory entries) którymi są: atrybut pliku, data aktualizacji [dzień, miesiąc, rok], rozmiar pliku i tym podobne informacje. Z chwilą zdygitalizowania sygnału audio/wideo i wykorzystania go w zastosowaniach multimedialnych, ważnym staje się zapewnienie ochrony praw autorskich tego sygnału. Na polu usług informacyjnych, użytkownik będzie wyposażony w zapisywalny nośnik, na którym nagrana będzie informacja audio/wideo w postaci cyfrowej, posiadająca określone ograniczenia związane z jej odtwarzaniem. Dodatkowo, informacja audio/wideo w postaci cyfrowej, posiadająca informację o określonych ograniczeniach odtwarzania będzie rozsyłana do użytkownika z wykorzystaniem przekazu cyfrowego i Internetu. Użytkownik może odtworzyć dostarczone lub krążące informacje audio/wideo (zawartość) przez określony czas, lub określoną liczbę razy, reprezentowaną przez informację o ograniczeniach odtwarzania. Gdy jest to konieczne, użytkownik może zapisać żądaną informację audio/wideo w karcie pamięci za określoną cenę. Chociaż plik zawierający informację o ograniczeniach odtwarzania łatwo jest zapisać i przechowywać, to jeśli informacja o ograniczeniach odtwarzania jest sfałszowana przy użyciu szczególnych środków, to strona odtwarzająca nie może wykryć sfałszowanej informacji o ograniczeniach odtwarzania. Jako prosty sposób sprawdzenia informacji sfałszowanej dotyczącej ograniczeń odtwarzania można wykorzystać metodę CRC (Cykliczną Kontrolę Nadmiarową) (ang. Cyclic Redundancy Check) oraz wartość, jaką dzięki niej otrzymujemy. Jednak jeżeli po tym, jak sfałszowano informację o ograniczeniach odtwarzania/kopiowania, sfałszowano jeszcze CRC, to sfałszowana informacja dotycząca ograniczeń odtwarzania nie może zostać wykryta.

6

PL 208 230 B1

Tak więc celem niniejszego wynalazku jest opracowanie urządzenia odtwarzającego oraz sposobu odtwarzania, które umożliwiłyby bezpieczne wykrycie sfałszowanej informacji o ograniczeniach odtwarzania, oraz umożliwiłyby zabezpieczenie zawartości przed odtwarzaniem. Sposób odtwarzania danych z nośnika zapisu typu odłączalna karta pamięci, zawierającego pamięć typu flash, według niniejszego wynalazku, gdzie pamięć flash podzielona jest logicznie na fizyczne bloki tworzące obszar danych i obszar zarządzania, przy czym w obszarze danych zapisane są pliki, a w obszarze zarządzania zapisane są informacje zarządzania lub pliki zarządzania do zarządzania odtwarzaniem tych plików, które są zapisane w obszarze danych, w którym to sposobie mierzy się w dopowiedzi na sygnał sterujący z procesora sygnałowego DSP, czy odłączalna karta pamięci jest aktualnie dołączona, uwierzytelnia się kartę w procesorze sygnałowym DSP, następnie odczytuje się z pamięci flash karty pamięci informacje zarządzania bądź plik zarządzania odpowiadający odtwarzanemu plikowi i zapisuje się go w pamięci SRAM, charakteryzuje się tym, że w odpowiedzi na każde polecenie odtwarzania pliku generuje się przy pomocy układu obliczania funkcji skrótu, z wykorzystaniem klucza, sygnał z aktualną wartością skrótu dla parametrów odtwarzania, a następnie podaje się je do układu szyfrującego DES w celu zapisania ich w niedostępnym z zewnątrz bloku pamięci nieulotnej, która jest zawarta w układzie szyfrującym DES, oraz dalej przesyła się ten sygnał do komparatora, odczytuje się z drugiego, niedostępnego z zewnątrz bloku pamięci nieulotnej, poprzednią wartość skrótu dla parametrów odtwarzania i podaje się ją do komparatora, porównuje się w komparatorze sygnały z aktualną i poprzednią wartością skrótu dla parametrów odtwarzania, następnie, na podstawie sygnału otrzymanego z komparatora, oraz na podstawie sygnału z co najmniej jednym z wielu indywidualnych parametrów z bloku wartości ograniczających, zawartym w pliku zarządczym generuje się sygnał sterujący w układzie sterującym, zezwalający lub niezezwalający na odtwarzanie pliku odpowiadającego aktualnemu poleceniu odtwarzania. Urządzenie odtwarzające dane z nośnika zapisu typu odłączalna karta pamięci z pamięcią typu flash, według wynalazku, zawierające układ scalony dekodera audio z interfejsem sygnału audio oraz blokiem kodera/dekodera, układ scalony zabezpieczenia z interfejsem, z układem szyfrowania DES oraz z kolejką FIFO, procesor sygnałowy DSP połączony z pamięcią typu SRAM i dołączony do zewnętrznego sterownika poprzez szynę komunikacyjną, a zamocowana w mechanizmie dołączającym/odłączającym odłączalna karta pamięci mieści pamięć typu flash, blok sterujący oraz blok zabezpieczający z układem szyfrowania/deszyfrowania DES, charakteryzuje się tym, że jest zaopatrzone w układ sprawdzania autentyczności, zawierający układ obliczania funkcji skrótu, do generowania, z wykorzystaniem klucza, sygnału z wartością skrótu dla parametrów odtwarzania w odpowiedzi na każde polecenie odtwarzania, połączony z układem szyfrowania DES, obejmującym układ pamięci, zawierający bloki pamięci nieulotnej do przechowywania wartości skrótu parametrów odtwarzania dla aktualnej oraz poprzedniej komendy odtwarzania, komparator, połączony z układem szyfrowania DES, do stwierdzania zgodności pomiędzy wartością skrótu parametrów odtwarzania dla aktualnej oraz poprzedniej komendy odtwarzania, połączony z komparatorem układ sterujący z zegarem wewnętrznym, zezwalający bądź niezezwalający, w oparciu o sygnał z komparatora i drugi sygnał wejściowy z co najmniej jednym z wielu indywidualnych parametrów z bloku wartości ograniczających, zawartym w pliku zarządczym, na odtworzenie pliku, odpowiadającego aktualnemu poleceniu odtworzenia. Korzystnie, komparator i układ pamięci nieulotnej do przechowywania wartości skrótu są umieszczone w jednym sterowniku. Przedmiot wynalazku został przedstawiony w przykładzie realizacji na figurach rysunku, na których: fig. 1 jest schematem blokowym, przedstawiającym budowę cyfrowego odtwarzacza audio, wykorzystującego kartę pamięci, według niniejszego wynalazku, fig. 2 jest schematem blokowym, przedstawiającym wewnętrzną budowę procesora sygnałowego DSP 30, według niniejszego wynalazku, fig. 3 jest schematem blokowym, przedstawiającym wewnętrzną budowę karty pamięci 40, fig. 4 jest schematem blokowym, przestawiającym strukturę pliku zarządzającego karty pamięci, będącej nośnikiem pamięci, fig. 5 jest schematem blokowym, przedstawiającym fizyczną strukturę danych, umieszczonych w pamięci typu flash 42 karty pamięci 40, fig. 6 jest strukturą danych karty pamięci 40, według niniejszego wynalazku,

PL 208 230 B1

7

fig. 7 jest schematem blokowym, przedstawiającym hierarchię struktury plików, umieszczonych na karcie pamięci 40, fig. 8 jest schematem blokowym przedstawiającym strukturę danych pliku zarządzania odtwarzaniem PBLIST.MSF, który jest podkatalogiem zapisanym w karcie pamięci 40, fig. 9 jest schematem blokowym, przedstawiającym strukturę danych w przypadku, gdzie jeden plik danych ATRAC3 jest podzielony na bloki o określonej jednostce długości oraz gdzie dodano do niego pliki atrybutów, fig. 10A jest schematem blokowym, przedstawiającym strukturę pliku przed poddaniem dwóch plików edycji przy wykorzystaniu procesów połączonych, fig. 10B jest schematem blokowym, przedstawiającym strukturę pliku po poddaniu dwóch plików edycji przy wykorzystaniu procesów połączonych, fig. 10C jest schematem blokowym, przedstawiającym strukturę pliku po poddaniu jednego pliku edycji przy wykorzystaniu procesu podziału, fig. 11 jest schematem blokowym, przedstawiającym strukturę danych pliku zarządzania odtwarzaniem PBLIST, fig. 12A jest schematem blokowym, przedstawiającym strukturę danych w części nagłówka pliku zarządzania odtwarzaniem PBLIST, fig. 12B jest schematem blokowym przedstawiającym strukturę danych w części głównych danych pliku zarządzania odtwarzaniem PBLIST, fig. 12C jest schematem blokowym, przedstawiającym strukturę danych w części danych z informacją dodatkową pliku zarządzania odtwarzaniem PBLIST, fig. 13 jest tabelą, która łączy typy informacji dodatkowych z ich wartościami kodowymi, fig. 14 jest tabelą, która łączy typy informacji dodatkowych z ich wartościami kodowymi; fig. 15 jest tabelą, która łączy typy informacji dodatkowych z ich wartościami kodowymi, fig. 16A jest schematem blokowym, przedstawiającym strukturę danych z informacjami dodatkowymi, fig. 16B jest schematem blokowym, przedstawiającym strukturę danych z informacjami dodatkowymi, w przypadku gdy daną z informacją dodatkową jest nazwa artysty, fig. 16C jest schematem blokowym, przedstawiającym strukturę danych z informacjami dodatkowymi, w przypadku gdy daną z informacją dodatkową jest kod prawa autorskiego, fig. 16D jest schematem blokowym, przedstawiającym strukturę danych z informacjami dodatkowymi, w przypadku gdy daną z informacją dodatkową jest informacja data/informacja o czasie, fig. 16E jest schematem blokowym, przedstawiającym strukturę danych z informacjami dodatkowymi, w przypadku gdy daną z informacją dodatkową jest rejestr odtworzeń, fig. 17 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych pliku danych ATRAC3, fig. 18 jest schematem blokowym, przedstawiającym strukturę danych górnej części nagłówka atrybutów, który zawarty jest w pliku ATRAC3, fig. 19 jest schematem blokowym, przedstawiającym strukturę danych środkowej części nagłówka atrybutów, który zawarty jest w pliku ATRAC3, fig. 20 jest tabelą, która łączy ze sobą tryby zapisu, czas zapisu i inne parametry, fig. 21 jest tabelą przedstawiającą stany kontroli kopiowania, fig. 22 jest schematem blokowym, przedstawiającym strukturę danych dolnej części nagłówka atrybutów, który zawarty jest w pliku ATRAC3, fig. 23 jest schematem blokowym przedstawiającym strukturę danych nagłówka bloku danych pliku ATRAC3, fig. 24 do 24C są sieciami działań programu, przedstawiającymi sposób odzyskiwania danych, według niniejszego wynalazku, w przypadku jeśli obszar FAT został zniszczony, fig. 25 jest schematem blokowym, przedstawiającym strukturę pliku znajdującego się w karcie pamięci 40, według drugiego przykładu realizacji niniejszego wynalazku, fig. 26 jest schematem blokowym, przedstawiającym relacje pomiędzy plikiem zarządzania informacjami o ścieżkach TRKLIST.MSF, a plikiem danych ATRAC3 A3Dnnnnn.MSA, fig. 27 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych pliku zarządzania informacjami o ścieżce TRKLIST.MSF, fig. 28 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych NAME1 do zarządzania nazwą,

8

PL 208 230 B1

fig. 29 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych NAME2 do zarządzania nazwą, fig. 30 jest schematem blokowym, przedstawiającym szczegółowo strukturę pliku danych ATRAC3 A3Dnnnnn.MSA, fig. 31 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych pliku INFLIST.MSF, który reprezentuje informacje dodatkowe, fig. 32 jest schematem blokowym, przedstawiającym szczegółowo strukturę danych pliku INFLIST.MSF który reprezentuje dane z informacjami dodatkowymi, fig. 33 jest siecią działania programu, przedstawiającą sposób odzyskiwania danych, według drugiego przykładu realizacji niniejszego wynalazku, w przypadku jeśli uszkodzony został obszar FAT, fig. 34 jest schematem blokowym, przedstawiającym układ sprawdzający sfałszowanie, według niniejszego wynalazku, fig. 35 jest siecią działań, przedstawiającą proces sprawdzania sfałszowania zabezpieczenia, według pierwszego przykładu realizacji niniejszego wynalazku, fig. 36 jest siecią działań, przedstawiającą proces sprawdzania sfałszowania zabezpieczenia, według drugiego przykładu realizacji niniejszego wynalazku. Poniżej opisany zostanie przykład realizacji niniejszego wynalazku. Fig. 1 jest schematem blokowym, przedstawiającym budowę cyfrowego odtwarzacza/nagrywarki sygnału audio, wykorzystującej karty pamięci zgodne z przykładem realizacji niniejszego wynalazku. Cyfrowy odtwarzacz/nagrywarka sygnału audio nagrywa i odtwarza cyfrowy sygnał audio, wykorzystując odłączalne karty pamięci. W rzeczywistości odtwarzacz/nagrywarka zawierają układ audio wyposażony w jednostkę wzmacniającą, głośnik, odtwarzacz płyt CD, nagrywarkę mini dysków MD, tuner radiowy, i tym podobne urządzenia. Jednak należy zauważyć, iż niniejszy wynalazek może być zastosowany również do innych nagrywarek audio. Innymi słowy, niniejszy wynalazek może być stosowany w przenośnych urządzeniach nagrywająco/odtwarzających. Dodatkowo, niniejszy wynalazek może być stosowany w dekoderach STB (ang. set top box), które nagrywają dane sygnału audio, które są rozpowszechniane drogą satelitarną, przez emisję cyfrową, lub poprzez Internet. Co więcej, prezentowany wynalazek może zostać zastosowany w układach które zapisują/odtwarzają dane, dane z obrazami ruchomymi i po prostu z obrazami, a nie z danymi audio. Układ według przykładu realizacji niniejszego wynalazku może zapisywać i odtwarzać dodatkowe informacje, takie jak obraz i tekst, inne niż cyfrowy sygnał audio. Urządzenie zapisujące/odtwarzające posiada układ scalony kodera/dekodera audio 10, układ scalony zabezpieczający 20, procesor sygnałowy DSP 30 (ang. Digital Signal Processor). Każde z tych urządzeń mieści się w jednej kości układu scalonego. Urządzenie zapisujące/odtwarzające posiada odłączalną kartę pamięci 40. Kość układu scalonego karty pamięci 40 mieści pamięć typu flash (pamięć nieulotną), blok sterowania pamięcią, oraz blok zabezpieczający. Blok zabezpieczający posiada układ szyfrowania DES (Standard Szyfrowania Danych) (ang. Data Encryption Standard). Zgodnie z przykładem realizacji, urządzenie zapisujące/odtwarzające może, zamiast procesora sygnałowego DSP 30, wykorzystywać mikrokomputer. Układ scalony kodera/dekodera 10 posiada interfejs audio 11 oraz blok kodera/dekodera 12. Blok kodera/dekodera 12 koduje cyfrowe dane audio zgodnie z wysoce wydajną metodą kodowania i zapisuje zakodowane dane w karcie pamięci 40. Dodatkowo, blok kodera dekodera 12 dekoduje zakodowane dane, które są odczytywane z karty pamięci 40. W technologii Mini-Disc wykorzystuje się wysoce wydajny sposób kodowania w formacie ATRAC3, który jest modyfikacją ATRAC (Kodowanie Dźwięku z wykorzystaniem Transformaty Adaptacyjnej) (ang. Adaptive Transform Acoustic Coding). W formacie ATRAC3, sygnał audio, próbkowany z częstotliwością 44.1kHz, i kwantowany z rozdzielczością 16-bitową, jest wysoce wydajnie kodowany. W formacie ATRAC3, minimalna jednostką danych audio, która jest przetwarzana, jest jednostka dźwięku (SU). 1 SU to dane, które zostały skompresowane z danych o 1024 próbkach (1024 x 16 bitów x 2 kanały) do wielkości kilkuset bajtów. Czas trwania 1 SU wynosi około 23 msec. W tym wysoce wydajnym sposobie kodowania, ilość danych audio jest skompresowana do ilości około 10-krotnie mniejszej niż ilość oryginalnych danych. W porównaniu z wykorzystywanym w nośnikach Mini-Dics formatem ATRAC1, sygnału audio skompresowany i zdekompresowany odpowiednio w formacie ATRAC3 pogarsza się mniej jeżeli chodzi o jakość sygnału audio. Selektor wejścia liniowego 13 dostarcza selektywnie odtwarzany sygnał wyjściowy, pochodzący z MD, sygnał wyjściowy z tunera, lub odtwarzany sygnał wyjściowy z taśmy do przetwornika analogo-

PL 208 230 B1

9

wo-cyfrowego A/D 14. Przetwornik analogowo-cyfrowego A/D 14 przetwarza sygnał wejścia liniowego na cyfrowy sygnał audio (częstotliwość próbkowania = 44.1kHz, liczba bitów kwantyzacji = 16). Cyfrowy selektor wejściowy 16 podaje selektywnie cyfrowy sygnał wyjściowy, pochodzący z MD, CD lub CS (Cyfrowa Transmisja Satelitarna) do cyfrowego odbiornika wejściowego 17. Cyfrowy sygnał wejściowy jest przesyłany, na przykład, przez światłowód. Sygnał wyjściowy z cyfrowego odbiornika wejściowego 17 jest dostarczany do konwertera próbkującego 15. Konwerter próbkujący 15 konwertuje cyfrowy sygnał wejściowy na cyfrowy sygnał audio (częstotliwość próbkowania = 44.1kHz, liczba bitów kwantyzacji = 16). Blok kodera/dekodera 12 układu scalonego kodera/dekodera audio 10, dostarcza zakodowane dane do układu szyfrującego DES 22, poprzez interfejs 21 scalonego układu zabezpieczającego 20. Układ szyfrujący DES 22 posiada kolejkę FIFO 23 (pierwszy na wejściu pierwszy na wyjściu). Układ szyfrujący DES 22 jest umieszczony tak, aby zabezpieczać prawa autorskie treści. Karta pamięci 40 także posiada układ szyfrujący DES. Układ szyfrujący DES 22 urządzenia zapisującego/odtwarzającego posiada wiele kluczy głównych oraz unikalny dla urządzenia klucz pamięci. Układ szyfrujący DES 22 posiada także układ generowania liczb losowych. Układ szyfrowania DES 22 może współdzielić proces uwierzytelnienia oraz klucz sesji z kartą pamięci, która zawiera układ szyfrowania DES. Ponadto, układ szyfrowania DES 22 może ponownie szyfrować dane, wykorzystując klucz pamięci układu szyfrującego DES. Zaszyfrowane dane audio, które są wyprowadzane na wyjście układu szyfrującego DES, są następnie dostarczane do procesora sygnałowego DSP 30. Procesor sygnałowy DSP 30 komunikuje się z kartą pamięci poprzez interfejs. W tym przykładzie, karta pamięci 40 jest zamocowana w mechanizmie włączającym/odłączającym (nie przedstawiony) urządzenia zapisującego/odtwarzającego. Procesor sygnałowy DSP 30 zapisuje zaszyfrowane dane w pamięci typu flash karty pamięci 40. Zaszyfrowane dane są przesyłane szeregowo pomiędzy procesorem sygnałowym DSP 30 a kartą pamięci 40. Ponadto, z procesorem sygnałowym DSP 30 połączona jest zewnętrzna pamięć typu SRAM 31 (Statyczna pamięć o dostępie swobodnym). SRAM 31 zapewnia urządzeniu zapisującemu/odtwarzającemu odpowiednią pojemność pamięci, umożliwiającą sterowanie kartą pamięci 40. Z procesorem sygnałowym DSP 30 połączony jest interfejs szyny 32. Dane ze sterownika zewnętrznego (nie przedstawiony) dostarczane są do procesora sygnałowego DSP 30 poprzez szynę 33. Sterownik zewnętrzny steruje wszystkimi działaniami układu audio. Sterownik zewnętrzny dostarcza takie dane, jak polecenie zapisu lub polecenie odtwarzania, które są generowane w odpowiedzi na czynności użytkownika, przez część operacyjną, i są dostarczane do procesora sygnałowego DSP 30 poprzez interfejs szyny 32. Ponadto, sterownik zewnętrzny dostarcza do procesora sygnałowego DSP 30 poprzez interfejs 32, dodatkowe informacje, takie jak informacje obrazowe lub informacje tekstowe. Szyna 33 stanowi dwukierunkową ścieżkę komunikacyjną. Informacja dodatkowa, która jest odczytywana z karty pamięci 40, dostarczana jest do sterownika zewnętrznego poprzez procesor sygnałowy DSP 30, interfejs szyny 32, oraz szynę 33. W rzeczywistości, sterownik zewnętrzny jest umieszczony na przykład w jednostce wzmacniacza układu audio. Ponadto, sterownik zewnętrzny powoduje, iż urządzenie wyświetlające wyświetla informacje dodatkowe, stan pracy nagrywarki i tym podobne informacje. Urządzenie wyświetlające jest współdzielone przez cały układ audio. Ponieważ dane wymieniane poprzez szynę 33 nie są danymi chronionymi prawem autorskim, nie są one szyfrowane. Zaszyfrowane dane audio, które są odczytywane z karty pamięci 40 przez procesor sygnałowy DSP 30, są deszyfrowane przez zabezpieczający układ scalony 20. Układ scalony kodera/dekodera audio 10 dekoduje dane zakodowane zgodnie z formatem ATRAC3. Dane wyjściowe kodera/dekodera audio 10 są dostarczane do przetwornika cyfrowo-analogowego D/A 18. Przetwornik cyfrowo-analogowy D/A 18 przetwarza dane wyjściowe z kodera/dekodera audio 10 na sygnał analogowy. Analogowy sygnał audio jest dostarczany do liniowego wyjścia sygnałowego 19. Analogowy sygnał audio jest podawany do jednostki wzmacniającej (nie przedstawiona) poprzez liniowe wyjście sygnałowe 19. Analogowy sygnał audio jest odtwarzany przez głośnik lub słuchawki. Sterownik zewnętrzny dostarcza do przetwornika cyfrowo-analogowego 18 sygnał wyciszenia. Kiedy sygnał wyciszenia reprezentuje stan wyciszenie-włączone, oznacza to, że sterownik zewnętrzny uniemożliwia sygnałowi audio pojawienie się na liniowym wyjściu sygnałowym 19. Fig. 2 jest schematem blokowym przedstawiającym wewnętrzną budowę procesora sygnałowego DSP 30. Odnośnie fig. 2, procesor sygnałowy DSP 30 zawiera rdzeń 34, pamięć flash 35, pamięć SRAM 36, interfejs szyny 37, interfejs karty pamięci 40, mostki międzyszynowe. Procesor sygnałowy

10

PL 208 230 B1

DSP 30 pełni taką samą funkcję co mikrokomputer. Rdzeń 34 jest odpowiednikiem jednostki centralnej CPU. Pamięć flash 35 przechowuje program, który nakazuje procesorowi sygnałowemu DSP 30 wykonanie określonych procesów. Pamięć SRAM 36 oraz zewnętrzna pamięć SRAM 31 są wykorzystywane jako pamięć RAM urządzenia zapisującego/odtwarzającego. Procesor DSP 30, w odpowiedzi na sygnał operacyjny, taki jak polecenie zapisu, odebrane poprzez interfejsy szyn 32 i 37, steruje procesem zapisywania zaszyfrowanych danych audio i informacji dodatkowych na karcie pamięci 40, oraz steruje procesem odczytywania ich z tej karty. Innymi słowy, DSP 30 jest umieszczony pomiędzy stroną oprogramowania aplikacyjnego układu audio, które zapisuje/odtwarza dane audio i informacje dodatkowe, a kartą pamięci 40. Procesor sygnałowy DSP 30 pracuje wtedy, gdy realizowany jest dostęp do karty pamięci 40. Ponadto, procesor sygnałowy DSP 30 pracuje zgodnie z oprogramowaniem, takim jak system plików. Procesor sygnałowy DSP 30 zarządza plikami przechowywanymi na karcie pamięci 40 z wykorzystaniem systemu plików FAT, stosowanego w konwencjonalnych komputerach osobistych. Oprócz systemu plików, zgodnie z przykładem realizacji niniejszego wynalazku, możliwe jest wykorzystanie pliku zarządzania. Plik zarządzania zostanie opisany później. Plik zarządzania jest wykorzystywany do zarządzania plikami danych przechowywanymi w karcie pamięci 40. Plik zarządzania, będąc pierwszą informacją dotyczącą zarządzania plikiem, jest wykorzystywany do zarządzania plikami danych audio. Z drugiej strony, tablica alokacji plików FAT, będąc drugą informacją dotyczącą zarządzania plikiem, jest wykorzystywana do zarządzania wszystkimi plikami, włączając w to pliki z danymi audio oraz pliki zarządzania, przechowywane w pamięci flash karty pamięci 40. Plik zarządzania jest przechowywany w karcie pamięci 40. Tablica alokacji plików FAT jest zapisana w pamięci flash w katalogu głównym, wraz podobnymi informacjami, przed przetransportowaniem karty pamięci 40 drogą morską czy lądową. Szczegóły tablicy alokacji plików FAT zostaną opisane później. W nawiązaniu do fig. 6, opisany zostanie sposób zarządzania wykorzystujący tablicę alokacji plików FAT. Fig. 6 jest schematem blokowym przedstawiającym mapę pamięci. Górny obszar mapy pamięci jest tablicą partycji. Po części zawierającej tablicę alokacji plików znajduje się obszar blokowy, sektor startowy, obszar tablicy alokacji plików FAT, obszar kopii tablicy alokacji plików FAT, obszar katalogu głównego, obszar podkatalogów, obszar danych. Na mapie pamięci, adresy logiczne zostały przekształcone na adresy fizyczne zgodnie z tablicą konwersji adresów logicznych - fizycznych. Sektor startowy, obszar tablicy alokacji plików FAT, obszar kopii tablicy alokacji plików FAT, obszar katalogu głównego, obszar podkatalogów, oraz obszar danych są określane mianem obszaru partycji FAT. Tablica partycji zawiera adresy startowe i adresy końcowe obszaru partycji FAT. Tablica alokacji plików FAT wykorzystywana w konwencjonalnych dyskietkach (ang. flopy disk) nie zawiera takiej tablicy partycji. Ponieważ pierwsza ścieżka zawiera tylko tablicę partycji, to znajduje się tam obszar pusty. Sektor startowy zawiera rozmiar struktury tablicy alokacji plików FAT (12 bitowej tablicy alokacji plików FAT lub 16 bitowej tablicy alokacji plików FAT), rozmiar klastra, oraz rozmiar każdego z obszarów. Tablica alokacji plików FAT wykorzystywana jest do zarządzania pozycją pliku, zapisanego w obszarze danych. Obszar kopii tablicy alokacji plików FAT jest obszarem, w którym znajduje się kopia bezpieczeństwa tablicy alokacji plików FAT. Obszar katalogu głównego zawiera nazwy plików, adresy ich klastrów początkowych, oraz różne ich atrybuty. Obszar katalogu głównego wykorzystuje 32 bajty na każdy plik. Obszar podkatalogów jest zrealizowany w postaci podkatalogu, który jest plikiem o atrybucie katalogu. W przykładzie realizacji przedstawionym na fig. 6, obszar podkatalogów posiada cztery pliki o nazwach PBLIST.MSF, CAT.MSF, DOG.MSF oraz MAN.MFA. Obszar podkatalogów jest wykorzystany do zarządzania nazwami plików oraz zapisywania ich pozycji w tablicy alokacji plików FAT. Innymi słowy, ramce z nazwą pliku CAT.MSF przypisany jest w tablicy alokacji plików adres "5". Ramce z nazwą pliku CAT.MSF przypisany jest w tablicy alokacji plików adres "10". Obszar po klastrze 2 jest wykorzystywany jako obszar danych. W tym przykładzie realizacji, zapisane zostały dane audio, które zostały skompresowane w formacie ATRAC3. Najwyższej z ramek o nazwie pliku MAN.MSA przypisany jest w tablicy alokacji plików FAT adres "110". Według przykładu realizacji niniejszego wynalazku, dane audio wraz z nazwą pliku CAT.MSF są zapisane w klastrach od 5 do 8. Dane audio DOG-1, będące pierwszą połową pliku o nazwie pliku DOG.MSF, są zapisane w klastrach od 10 do 12. Dane audio DOG-2, stanowiące drugą połowę pliku o nazwie pliku DOG.MSF, są zapisane w klastrach o numerze 100 i 101. Dane audio o nazwie pliku MAN.MSF są zapisane w klastrach 110 i 111.

PL 208 230 B1

11

W przykładzie realizacji niniejszego wynalazku, opisano pojedynczy plik, który jest podzielony na dwie części i zapisany w sposób rozproszony. W przykładzie realizacji, obszar zaznaczony jako "Pusty" w obszarze danych jest obszarem zapisywalnym. Obszar po klastrze 200 jest wykorzystywany do zarządzania nazwami plików. Plik CAT.MSF jest zapisany w klastrze 200. Plik DOG.MSF jest zapisywany w klastrze 201. Plik MAN.MSF jest zapisywany w klastrze 202. Gdy pozycje plików zostają zmienione, obszar poniżej klastra 200 zostaje przeorganizowany. Gdy karta pamięci zostaje podłączona, początek i koniec obszaru partycji FAT zostają zapisane w odniesieniu do górnej części tablicy partycji. Po odtworzeniu części sektora startowego, odtwarzany jest obszar katalogu głównego i obszar podkatalogów. W obszarze podkatalogu wykryta zostaje ramka informacji zarządzania odtwarzaniem PBLIST.MSF. W ten sposób uzyskuje sie adres części końcowej ramki pliku PBLIST.MSF. W przykładzie realizacji, ponieważ na końcu pliku PBLIST.MSF zapisany został adres "200", odesłanie następuje do klastra 200. Obszar poniżej klastra 200 jest wykorzystywany do zarządzania kolejnością odtwarzania plików. W przykładzie realizacji, plik CAT.MSA jest pierwszym programem. Plik DOG.MSA jest drugim programem. Plik MAN.MSA jest trzecim programem. Po odesłaniu do obszaru znajdującego się poniżej klastra 200, następuje odesłanie do ramek plików CAT.MSA, DOG.MSA oraz MAN.MSA. Na fig. 6 adres "10" jest przypisany do końca ramki pliku DOG.MSA. Początkowi ramki pliku MAN.MSA jest przypisany adres "110". Gdy w tablicy alokacji plików FAT wyszukiwany jest adres wejścia (ang. entry address) pod adresem "5", to otrzymuje się adres klastra "6". Gdy w tablicy alokacji plików FAT wyszukiwany jest adres wejścia pod adresem "6", to otrzymuje się adres klastra "7". Gdy w tablicy alokacji plików FAT wyszukiwany jest adres wejścia pod adresem "8", to otrzymuje się kod "FFF", oznaczający koniec. Tak więc, plik CAT.MSA wykorzystuje klastry 5, 6, 7 i 8. Po odesłaniu do klastrów 5, 6, 7 i 8 w obszarze danych, można uzyskać dostęp do obszaru danych ATRAC3 w pliku o nazwie CAT.MSA. Następnie, opisany zostanie sposób wyszukiwania pliku DOG.MSF który został zapisany w sposób rozproszony. Końcowi ramki pliku DOG.MSA jest przypisany adres "10". Kiedy adres wejściowy w tablicy alokacji pliku FAT wyszukiwany jest pod adresem "10", to uzyskuje się adres klastra "11". Gdy adres wejściowy w tablicy alokacji pliku FAT jest wyszukiwany z pod adresem "11", to uzyskuje się adres "12". Gdy adres wejściowy w tablicy alokacji plików FAT jest wyszukiwany z pod adresem "12", to otrzymujemy adres "100" itd. Gdy następuje odesłanie do adresu wejściowego "101", to otrzymuje się kod "FFF", reprezentujący koniec. Tak więc, plik DOG.MSF wykorzystuje klastry 10, 11, 12, 100 i 101. Gdy odwołanie następuje do klastrów 10, 11 i 12, to otrzymuje się pierwszą część danych ATRAC3 pliku DOG.MSF. Gdy odwołanie następuje do klastrów 100 i 101, to otrzymuje się drugą część danych ATRAC3 pliku DOG.MSF. Ponadto, gdy w tablicy alokacji plików FAT adres wejściowy wyszukiwany jest pod adresem "110", to otrzymuje się adres klastra "101". Gdy w tablicy alokacji plików FAT adres wejściowy wyszukiwany jest pod adresem "110", to otrzymuje się kod "FFF" oznaczający koniec. Tak więc jasne jest, że plik MAN.MSA wykorzystuje klastry 110 i 111. Tak jak to opisano powyżej, pliki danych rozproszone w pamięci flash mogą być połączone i sekwencyjnie odtworzone. Według przykładu realizacji prezentowanego wynalazku, oprócz systemu zarządzania plikami zdefiniowanym w formacie karty pamięci 40, w celu zarządzania ścieżkami i częściami plików muzycznych, wykorzystywany jest plik zarządzania. Plik zarządzania jest zapisany w bloku użytkownika w pamięci flash 42 karty pamięci 40. Tak więc, tak jak to zostanie opisane poniżej, nawet jeśli tablica alokacji plików FAT karty pamięci 40 zostanie zniszczona, to plik może zostać odzyskany. Według przykładu realizacji niniejszego wynalazku, w celu zabezpieczenia prawa autorskiego do danych, dane audio, które zostały skompresowane zgodnie z formatem kodowania ATRAC3, są szyfrowane. Jednocześnie, ponieważ nie ma potrzeby ochrony praw autorskich do pliku zarządzania, plik ten nie jest szyfrowany. Plik zarządzania jest generowany przez procesor sygnałowy DSP 30. Gdy włączane jest zasilanie nagrywarki/odtwarzacza, procesor sygnałowy DSP 30 określa, czy karta pamięci 40 jest połączona z nagrywarką/odtwarzaczem, czy też nie. Kiedy karta pamięci zostaje podłączona, procesor sygnałowy DSP 30 uwierzytelnia kartę pamięci 40. Gdy procesor sygnałowy DSP 30 dokona pozytywnego uwierzytelnienia karty pamięci 40, to odczytuje blok startowy pamięci typu flash 42. W ten sposób DSP 30 odczytuje tablicę konwersji adresu fizycznego - logicznego i przechowuje odczytane dane w pamięci SRAM. Tablica alokacji plików FAT i katalog główny zostają zapisane w pamięci flash karty pa-

12

PL 208 230 B1

mięci 40 zanim karta pamięci 40 zostaje przesłana do odbiorcy końcowego. Kiedy w pamięci karty 40 zapisywane są dane, to generowany jest plik zarządzania. Innymi słowy, polecenie zapisu wydane przez sterownik zewnętrzny użytkownika, lub podobne urządzenie, jest dostarczane do procesora sygnałowego DSP 30 ze sterownika zewnętrznego poprzez szynę i interfejs szyny 32. Koder/dekoder IC 10 kompresuje odbierane dane audio i dostarcza wynikowe dane ATRAC3 do układu zabezpieczającego IC 20. Układ zabezpieczający IC 20 szyfruje dane ATRAC3. Zaszyfrowane dane ATRAC3 są zapisywane w pamięci flash 42 karty pamięci 40. Następnie, uaktualniane są tablica alokacji plików FAT i plik zarządzania. Za każdym razem gdy uaktualniany jest plik (w rzeczywistości za każdym razem, gdy zakończony zostaje proces zapisu danych audio), tablica alokacji plików FAT oraz plik zarządzania, które znajdują się w pamięciach SRAM 31 i 36 są ponownie zapisywane. Gdy karta pamięci 40 jest odłączana lub wyłączane jest zasilanie nagrywarki/odtwarzacza, tablica alokacji plików FAT i plik zarządzania, które zostają dostarczone z pamięci SRAM 34 i 36, są zapisywane w pamięci flash 42. Alternatywnie, za każdym razem gdy przeprowadzany jest proces zapisu danych audio, tablica alokacji plików FAT i plik zarządzania, które są już zapisane w pamięci flash 42 mogą być tam zapisane ponownie. Gdy dane audio poddawane są edycji, zawartość pliku zarządzania zostaje uaktualniona. W strukturze danych według przykładu realizacji, w pliku zarządzania zawarte są informacje dodatkowe. Informacja dodatkowa jest uaktualniana i zapisywana w pamięci flash 42. W innej strukturze danych pliku zarządzającego, poza plikiem zarządzania ścieżkami, generuje się plik zarządzania informacją dodatkową. Informacja dodatkowa jest dostarczana ze sterownika zewnętrznego do procesora sygnałowego DSP 30 poprzez szynę i interfejs szyny 32. Informacja dodatkowa jest zapisywana w pamięci flash 42 karty pamięci 40. Ponieważ informacja dodatkowa nie jest dostarczana do układu zabezpieczającego IC 20, nie jest ona zaszyfrowana. Gdy karta pamięci 40 jest odłączana od nagrywarki/odtwarzacza lub wyłączane jest jego zasilanie, informacja dodatkowa jest przepisywana z pamięci SRAM procesora sygnałowego DSP 30 do pamięci typu flash 42. Fig. 7 jest schematem blokowym przedstawiającym strukturę plików karty pamięci 40. W strukturze plików, umieszczone zostały: katalog zdjęć, katalog filmów, katalog nagrań głosu, katalog sterujący, katalog muzyki (HIFI). Według przykładu realizacji, programy muzyczne są zapisywane i odtwarzane. Poniżej opisany zostanie katalog muzyki. Katalog muzyki zawiera dwa rodzaje plików. Pierwszym rodzajem jest plik zarządzania odtwarzaniem PBLIST.MSF (określany dalej jako PBLIST). Drugim typem jest plik danych ATRAC3 A3Dnnnn.MSA który przechowuje zaszyfrowane dane muzyczne. Katalog muzyki może przechowywać do czterystu plików ATRAC3 (mianowicie 400 programów muzycznych). Pliki danych ATRAC3 są zarejestrowane w pliku zarządzania odtwarzaniem i są wygenerowane przez nagrywarkę/odtwarzacz. Fig. 8 jest schematem blokowym przedstawiającym strukturę pliku zarządzania odtwarzaniem. Fig. 9 jest schematem blokowym, przedstawiającym strukturę pliku danych ATRAC3. Plik zarządzania odtwarzaniem jest plikiem o stałej długości 16KB. Dla każdego programu muzycznego, plik danych ATRAC3 jest zbudowany z obszaru nagłówka atrybutów oraz obszaru zaszyfrowanych danych. Dane atrybutów mają stałą długość 16KB. Struktura nagłówka atrybutów jest podobna do struktury pliku zarządzania odtwarzaniem. Plik zarządzania odtwarzaniem przedstawiony na fig. 8 jest zbudowany z nagłówka, nazwy karty pamięci NM-1S (dla kodu jednobajtowego), nazwy karty pamięci NM2-S (dla kodu dwubajtowego), tabeli sekwencji odtwarzania programów TRKTBL, oraz informacji dodatkowych karty pamięci INF-S. Nagłówek atrybutów (przedstawiony na fig. 9) znajduje się na początku pliku danych i jest zbudowany z nagłówka, nazwy programu NM1 (dla kodu jednobajtowego), nazwy programu NM2 (dla kodu dwubajtowego), informacji o ścieżce TRKINF (takiej jak informacje o kluczu ścieżki), informacji o części PRTINF, oraz informacji dodatkowej o ścieżce INF. Nagłówek zawiera informacje o całkowitej liczbie 'części', atrybut nazwy, wielkość informacji dodatkowej i tym podobne informacje. Po danych atrybutu występują dane muzyczne ATRAC3. Dane muzyczne są pogrupowane w blokach po 16KB każdy. Każdy blok zaczyna się nagłówkiem. Nagłówek zawiera wartość początkową, wykorzystywaną do deszyfrowania zaszyfrowanych danych. Zaszyfrowane są tylko dane muzyczne w pliku danych ATRAC3. Tak więc inne dane, takie jak plik zarządzania odtwarzaniem, nagłówek, i tym podobne informacje nie są zaszyfrowane. Następnie, w odniesieniu do fig. od 10A do 10C, opisany zostanie związek pomiędzy programami muzycznymi a plikami danych ATRAC3. Jedna ścieżka odpowiada jednemu programowi muzycznemu. Ponadto, jeden program muzyczny zbudowany jest z jednych danych ATRAC3 (patrz

PL 208 230 B1

13

fig. 9). Plik danych ATRAC3 jest plikiem danych audio które zostały skompresowane zgodnie z formatem ATRAC3. Plik danych ATRAC3 jest zapisywany w pamięci karty pamięci 40 jako klaster. Jeden klaster ma pojemność 16KB. Zbiór plików nie jest zapisywany w jednym klastrze. Minimalną jednostką danych, którą można usunąć z pamięci typu flash 42, jest jeden blok. W przypadku karty pamięci 40 dla danych muzycznych, blok jest synonimem klastra. Ponadto, jeden klaster jest odpowiednikiem jednego sektora. Pojedynczy program muzyczny zbudowany jest zasadniczo z jednej części. Jednakże, kiedy program muzyczny poddawany jest edycji, to wtedy pojedynczy program muzyczny może składać się z wielu części. 'Część' jest jednostką danych która jest zapisywana sukcesywnie. Normalnie jedna ścieżka składa się z jednej 'części'. Połączenie części programu muzycznego jest realizowane z wykorzystaniem informacji o 'części' PRTINF (ang. part information PRTINF), zawartej w nagłówku atrybutów każdego programu muzycznego. Innymi słowy, rozmiar 'części' jest reprezentowany przez 'rozmiar części PRTSIZE' (ang. part size PRTSIZE) (4 bajty) w 'informacji o części PRTINF'. Pierwsze dwa bajty 'rozmiaru części PRTSIZE' odpowiadają całkowitej ilości klastrów aktualnej części. Następne dwa bajty odpowiadają pozycji 'startowej jednostki dźwiękowej (SU)' oraz 'końcowej jednostki dźwiękowej (SU)', odpowiednio, klastra początkowego i końcowego. W dalszej części opisu 'jednostka dźwiękowa' zostaje określona skrótem SU. Z takim zapisem dotyczącym części, gdy dane muzyczne są edytowane, ruch danych muzycznych może zostać zlikwidowany. Kiedy dane muzyczne są edytowane dla każdego bloku, mimo że ich ruch może zostać zlikwidowany, to jednostka edycji bloku jest znacznie większa niż jednostka edycji SU. 'Jednostka SU' jest minimalną jednostką 'części'. Ponadto, jednostka SU jest minimalną jednostką danych w przypadku, gdy dane audio są skompresowane zgodnie z formatem ATRAC3. Pojedyncza 'jednostka SU' jest danymi audio, na które składają się 1024 próbki pobrane z częstotliwością 44.1kHZ (1024x16bitówx2kanały), a które zostały skompresowane do wielkości około 10-krotnie mniejszej niż rozmiar oryginalnych danych. Czas trwania jednej 'jednostki SU' wynosi około 23 [msec]. Zazwyczaj, jedna 'część' jest zbudowana z kilku tysięcy 'jednostek SU'. Kiedy jeden klaster jest zbudowany z 42 jednostek SU, to wtedy jeden klaster pozwala na wygenerowanie dźwięku o długości 1 sekundy. Liczba 'części' tworzących jedną ścieżkę zależy od wielkości informacji dodatkowych. Ponieważ liczba 'części' jest uzyskiwana przez odjęcie nagłówka, nazwy programu, danych dodatkowych i tym podobnych informacji od jednego bloku, gdy nie ma żadnych informacji dodatkowych, to wykorzystana może zostać maksymalna liczba części (645 części). Fig. 10A jest schematem blokowym przedstawiającym strukturę pliku w przypadku, gdy zapisywane są sukcesywnie dwa programy muzyczne pochodzące z CD lub tym podobnych nośników. Pierwszy program (plik 1) składa się na przykład z pięciu klastrów. Ponieważ jeden klaster nie może zawierać dwóch plików, programu pierwszego i programu drugiego, to plik 2 zaczyna się na początku kolejnego klastra. Tak więc koniec 'części 1', odpowiadającej plikowi 1 znajduje się w połowie jednego klastra, a pozostały obszar klastra nie zawiera żadnych danych. Podobnie drugi program muzyczny (plik 2) jest zbudowany z jednej 'części'. W przypadku pliku 1, rozmiar 'części' wynosi 5. Pierwszy klaster zaczyna się od zerowej jednostki SU. Ostatni klaster kończy się na czwartej jednostce SU. Istnieją cztery typy operacji edycji którymi są, proces podziału, proces łączenia, proces usuwania, i proces przesuwania. Proces dzielenia jest realizowany w celu podzielenia ścieżki na dwie części. Kiedy realizowany jest proces dzielenia, to całkowita liczba ścieżek zostaje zwiększona o jeden. W procesie dzielenia, jeden plik zostaje podzielony na dwa pliki w systemie plików. Tak więc w tym przypadku, uaktualniany jest plik zarządzania odtwarzaniem i tablica alokacji plików FAT. Proces łączenia jest realizowany w celu połączenia dwóch ścieżek w jedną. Kiedy realizowany jest proces łączenia, to całkowita liczba ścieżek zmniejsza się o jeden. W procesie łączenia, łączone są dwa pliki, tworząc jeden plik w systemie plików. Tak więc, gdy realizowany jest proces łączenia, uaktualniany jest plik zarządzania odtwarzaniem i tablica alokacji plików FAT. Proces usuwania jest realizowany w celu usunięcia ścieżki. Całkowita liczba ścieżek po usunięciu ścieżki zmniejsza się o jeden. Proces przenoszenia jest realizowany w celu zmiany sekwencji ścieżek. Tak więc podczas realizacji procesu usuwania lub procesu przenoszenia, uaktualniany jest plik zarządzania odtwarzaniem i tablica alokacji plików FAT. Fig. 10B jest schematem blokowym przedstawiającym wynik połączenia dwóch programów (plik 1 i plik 2), przedstawionych na fig. 10A. W wyniku procesu łączenia, połączony plik składa się z dwóch 'części'. Fig. 10C jest schematem przedstawiającym wynik podziału, w którym jeden plik

14

PL 208 230 B1

(plik 1) został rozdzielony w połowie klastra 2. W wyniku procesu podziału plik 1 składa się z dwóch klastrów 0, 1 i początkowej części klastra 2. Plik 2 składa się z końcowej części klastra 2 i klastrów 3 i 4. Tak jak to pisano powyżej, zgodnie z przykładem realizacji niniejszego wynalazku, jako że zdefiniowana została notacja 'części', to w wyniku łączenia (patrz fig. 10B) pozycja początkowa 'części 1', pozycja końcowa 'części 1', oraz pozycja końcowa 'części 2' mogą zostać określone przy pomocy 'jednostek SU' . Tak więc, aby wykorzystać przestrzeń wynikającą z wyniku połączenia, nie ma potrzeby przesuwania danych muzycznych 'części 2'. Ponadto, w wyniku podziału (patrz. Fig. 10C) nie ma potrzeby przesuwania danych i zajmowania przestrzeni znajdującej się na początku pliku 2. Fig. 11 jest schematem blokowym przedstawiającym szczegółowo strukturę danych pliku zarządzania odtwarzaniem PBLIST. Fig 12A i 12B przedstawiają część nagłówkową oraz pozostałą część pliku zarządzania odtwarzaniem PBLIST. Wielkość pliku zarządzania odtwarzaniem wynosi jeden klaster (jeden blok = 16KB). Wielkość nagłówka przedstawionego na fig. 12A wynosi 32 bajty. Pozostała część pliku zarządzania odtwarzaniem PBLIST przedstawiona na fig. 12B zawiera obszar nazwy NM1-S (256 bajtów) (dla karty pamięci), obszar nazwy NM2-S (512 bajtów), obszar klucza zawartości, obszar MAC, obszar S-YMDHMS, obszar tabeli zarządzania sekwencją odtwarzania TRKTBL (800 bajtów), obszar informacji dodatkowych karty pamięci IF-S (12720 bajtów), oraz obszar informacji nadmiarowych nagłówka. Pozycje startowe tych obszarów są zdefiniowane w pliku zarządzania odtwarzaniem. Pierwsze 32 bajty (0x0000) do (0x0010) przedstawione na fig. 12A są wykorzystane dla nagłówka. W pliku, obszary o rozmiarze 16 bajtów są oznaczane jako 'ramki'. Odnośnie fig. 12A, nagłówek jest umieszczony w pierwszej i drugiej ramce. Nagłówek zawiera następujące obszary. Obszar oznaczony jako "Zarezerwowany" jest obszarem niezdefiniowanym. Zazwyczaj, w obszarze zarezerwowanym, zapisywane są wartości zerowe (0x00). Jednakże nawet jeśli w obszarze zarezerwowanym zapisane są jakieś dane, to dane zapisane w obszarze zarezerwowanym są ignorowane. W przyszłych wersjach, niektóre obszary zarezerwowane mogą zostać wykorzystane. Ponadto, zabroniony jest zapis danych w obszarach zarezerwowanych. Gdy obszar opcjonalny jest nie wykorzystany, jest on traktowany jako obszar zarezerwowany. = BLKID-TL0 (4 bajty) Znaczenie: Identyfikator Bloku, Identyfikator Pliku Funkcja: Identyfikuje początek pliku zarządzania odtwarzaniem. Wartość: Wartość stała = "TL=0" (na przykład 0x544C2D30). = MCode (2 bajty) Znaczenie: Kod producenta Funkcja: Identyfikuje producenta i model nagrywarki/odtwarzacza. Wartość: 10 bitów bardziej znaczących (kod producenta); 6 bitów mniej znaczących (kod modelu). = WERYFIKACJA (ang. REVISION) (4 bajty) Znaczenie: Liczba dokonanych zapisów pliku PBLIST Funkcja: Zwiększana za każdym razem, gdy plik zarządzania odtwarzaniem jest przepisywany. Wartość: rozpoczyna się od 0 i zwiększana jest o 1. =S-YMDHMS (4 bajty) (Opcjonalna) Znaczenie: rok, miesiąc, dzień, godzina. Minuta, sekunda zapisane przez nagrywarkę/odtwarzacz z odpowiednim zegarem. Funkcja: Identyfikuje datę i czas ostatniego zapisu. Wartość: bity 25 do 31 : Rok 0 do 99 (1980 do 2079) bity 21 do 24 : Miesiąc 0 do 12 bity 16 do 20 : Dzień 0 do 31 bity 11 do 15 : Godzina 0 do 23 bity 05 do 10 : Minuta 0 do 59 bity 00 do 04 : sekunda 0 do 29 (odstęp dwu bitowy). =SY1C+L (2 bajty) Znaczenie: Atrybut nazwy (kod jedno bajtowy) karty pamięci, zapisany w obszarze NM1-S. Funkcja: reprezentuje kod znakowy i kod języka w postaci kodu jedno bajtowego Wartość: Kod znakowy (C): jeden najbardziej znaczący bajt 00: Brak kodu znakowego, liczba binarna

PL 208 230 B1

01:

15

ASCII (American Standard Code for Information Interchange - standardowy kod alfa numeryczny) 02: ASCII+KANA 03: Zmodyfikowany 8859-1 81: MS-JIS 82: KS C 5601-1989 83: GB (Wielka Brytania) 2312-80 90 S-JIS (Japoński standard przemysłowy) (dla kodowania głosu). Kod języka (L): jeden najmniej znaczący bajt, Identyfikuje język bazując na standardzie EBU Tech 3258, 00: Brak ustawień, 08: Niemiecki 09: Angielski 0A: Hiszpański 0F: Francuski 15: Włoski 1D: Holenderski 65: Koreański 69: Japoński 75: Chiński Gdy dane nie są zapisane, ten obszar jest wypełniony zerami. = SN2C=L (2 bajty) Znaczenie: Atrybut nazwy karty pamięci w obszarze NM2-S. Funkcja: reprezentuje kod znakowy i kod języka w postaci kodu jedno bajtowego. Wartość: takie same jak w przypadku SN1C+L =SINFSIZE (2 bajty) Znaczenie: Całkowity rozmiar informacji dodatkowej znajdującej się w karcie pamięci w obszarze INF-S. Funkcja: reprezentuje wielkość danych z inkrementacją co 16 bajtów. Gdy dane nie są zapisane, obszar ten jest wypełniony zerami. Wartość: Wielkość: 0x0001 do 0x39C (924) =T-TRK (2 bajty) Znaczenie: Całkowita liczba ścieżek. Funkcja: reprezentuje całkowitą liczbę ścieżek. Wartość: 1 do 0x0190 (Maksymalnie 400 ścieżek) gdy dane nie są zapisane ten obszar jest wypełniony zerami. =VerNo (2 bajty) Znaczenie: Numer wersji formatu. Funkcja: reprezentuje główny numer wersji (bajt o wyższym znaczeniu) i uzupełniający numer wersji (bajt o mniejszym znaczeniu) Wartość: 0x0100 (wersja 1.0) 0x0203 (wersja 2.3) Poniżej opisane zostaną obszary (patrz. Fig. 13B), które znajdują się za nagłówkiem. =NM1-S Znaczenie: Nazwa karty pamięci (w postaci kodu jedno bajtowego) Funkcja: Reprezentuje nazwę karty pamięci w postaci kodu jednobajtowego (maksymalnie 256). Na końcu tego obszaru, zapisany jest kod końca (0x00). Rozmiar jest liczony począwszy od kodu końca. Gdy dane nie są zapisane, wartości zerowe (0x00) zapisane są od początku tego obszaru (0 x 0020) w co najmniej jednym bajcie. Wartość: różnego rodzaju kody znakowe. =NM2-S Znaczenie: Nazwa karty pamięci (w postaci kodu dwu bajtowego) Funkcja: Reprezentuje nazwę karty pamięci w postaci kodu dwu bajtowego (maksymalnie 512). Na końcu tego obszaru, zapisany jest kod końca (0x00). Rozmiar jest liczony począwszy od kodu końca. Gdy dane nie są zapisane, od

16

PL 208 230 B1

początku tego obszaru (0x0120) w co najmniej dwóch bajtach zapisane są wartości zerowe (0x00). Wartość: różnego rodzaju kody znakowe. = KLUCZ ZAWARTOŚCI: Znaczenie: Wartość odpowiadająca programowi muzycznemu. Zabezpieczona z wykorzystaniem MG(M) i zapamiętywana. Taka sama jak KLUCZ ZAWARTOŚCI. Funkcja: wykorzystywana jako klucz do obliczania MAC dla S-YMDhms. Wartość: od 0 do 0xFFFFFFFFFFFFFFFF =MAC Znaczenie: wartość kontrolna zafałszowania informacji o prawach autorskich. Funkcja: Reprezentuje wartość wygenerowaną przy wykorzystaniu S-YMDhms i klucza zawartości. Wartość: od 0 do 0xFFFFFFFFFFFFFFFF =TRK-nnn Znaczenie: Numer SQN (sekwencji) odtwarzanego pliku danych ATRAC3. Funkcja: Reprezentuje numer FNo TRKINF. Wartość: od 1 do 400 (0x190) =INF-S Znaczenie: Informacja dodatkowa karty pamięci (na przykład, informacje dotyczące zdjęć, piosenek, przewodników, i tym podobne informacje). Funkcja: Reprezentuje informację dodatkową o zmiennej długości wraz z nagłówkiem. Wykorzystanych może zostać wiele typów informacji dodatkowych. Każdy z typów informacji dodatkowej posiada swój identyfikator ID oraz rozmiar. Każdy obszar informacji dodatkowej zawiera nagłówek zbudowany z przynajmniej 16 bajtów oraz wielokrotności 4 bajtów. Szczegóły są przedstawione w kolejnym punkcie. Wartość: Porównaj z treścią punktu "Struktura danych informacji dodatkowej". (4 bajty) (Opcjonalna) =S-YMDhms Znaczenie: rok, miesiąc, dzień, godzina. Minuta, sekunda zapisane przez nagrywarkę/odtwarzacz z odpowiednim zegarem. Funkcja: Identyfikuje datę i czas ostatniego zapisu. W przypadku EMD, ten obszar jest obowiązkowy. Wartość: bity 25 do 31 : Rok 0 do 99 (1980 do 2079) bity 21 do 24 : Miesiąc 0 do 12 bity 16 do 20 : Dzień 0 do 31 bity 11 do 15 : Godzina 0 do 23 bity 05 do 10 : Minuta 0 do 59 bity 00 do 04 : sekunda 0 do 29(odstęp dwu bitowy) W ostatniej ramce pliku zarządzania odtwarzaniem, zapisywane są wartości te same co w nagłówku: BLKID-TL0, MCode, WERYFIKACJA. Podczas zapisywania danych w karcie pamięci, karta może zostać pomyłkowo lub nieumyślnie odłączona, lub może też zostać wyłączone zasilanie nagrywarki/odtwarzacza. Kiedy taka nieodpowiednia operacja zostanie wykonana, to powinien zostać wykryty błąd. Tak jak to opisano powyżej, obszar WERYFIKACJA jest umieszczony na początku i na końcu każdego bloku. Za każdym razem gdy dane są przepisywane, wartość WERYFIKACJA zostaje zwiększona. Jeśli wadliwe zakończenie nastąpi gdzieś w środku bloku, to wartość obszaru WRYFIKACJA na początku nie będzie odpowiadała wartości obszaru WERYFIKACJA na końcu bloku. Tak więc, takie wadliwe zakończenie może zostać wykryte. Ponieważ istnieją dwa obszary WERYFIKACJA, nienormalne zakończenie może zostać wykryte z dużym prawdopodobieństwem. Gdy wykryte zostanie nienormalne zakończenie, to wygenerowany zostaje taki alarm, jak komunikat błędu. Ponadto, ponieważ stała wartość BLKID-TL0 zostaje zapisana na początku jednego bloku (16KB), w przypadku zniszczenia tablicy alokacji plików FAT, wartość stała jest wykorzystywana jako punkt odniesienia dla odzyskiwanych danych. Innymi słowy, przez odniesienie się do wartości stałej, możliwe jest określenie typu pliku. Ponieważ wartość stała BLKID-TL0 jest zapisana nadmiarowo w nagłówku i części końcowej każdego bloku, to zapewniona może zostać pewność działania. Alternatywnie, ten sam plik zarządzania odtwarzaniem może zostać zapisany nadmiarowo.

PL 208 230 B1

17

Ilość danych w pliku danych ATRAC3 jest znacznie większa niż ta zawarta w pliku zarządzania odtwarzaniem. Ponadto, tak jak zostanie to opisane później, do pliku danych ATRAC3 dodawany jest numer bloku BLOCK SERIAL. Jednakże, ponieważ w karcie pamięci zapisywanych jest wiele plików ATRAC3, to aby zapobiec ich redundancji, wykorzystywane są zarówno CONNUM0 jak BLOCK SERIAL. W przeciwnym wypadku, w przypadku zniszczenia tablicy alokacji plików FAT, trudno było by odzyskać plik. Innymi słowy, pojedynczy plik danych ATRAC3 może być zbudowany z wielu bloków, które są zapisane rozłącznie. Do zidentyfikowania bloków należących do tego samego pliku wykorzystywany jest obszar CONNUM0. Ponadto, do zidentyfikowania kolejności bloków w pliku danych ATRAC3, wykorzystywany jest obszar BLOCK SERIAL. Podobnie, na początku i na końcu każdego bloku zapisany jest nadmiarowo kod producenta (Mcode) tak, aby w takim przypadku, w którym plik został nieprawidłowo nagrany, w sytuacji gdy tablica alokacji plików nie została zniszczona, zidentyfikować producenta i model urządzenia. Fig. 12C jest schematem blokowym przedstawiającym strukturę danych informacji dodatkowej. Informacja dodatkowa jest zbudowana z poniższego nagłówka i danych o zmiennej długości. Nagłówek posiada następujące obszary. = INF Znaczenie: Identyfikator pola, FIELD ID Funkcja: Reprezentuje początek informacji dodatkowej (wartość stała). Wartość: 0x69 =ID Znaczenie: kod klucza informacji dodatkowej. Funkcja: Reprezentuje kategorię informacji dodatkowej. od 0 do 0xFF Wartość: = SIZE Znaczenie: wielkość poszczególnej informacji dodatkowej . Funkcja: Reprezentuje wielkość każdego typu informacji dodatkowej. Niemniej wielkość danych nie jest ograniczona, powinna wynosić przynajmniej 16 bajtów i wielokrotność 4 bajtów. Reszta danych powinna być wypełniona zerami (0x00). Wartość: od 16 do 14784 (0x39C0) = MCode Znaczenie: Kod producenta Funkcja: Identyfikuje producenta i model nagrywarki/odtwarzacza. Wartość: 10 bitów bardziej znaczących (kod producenta); 10 bitów mniej znaczących (kod urządzenia). = C+L Znaczenie: Atrybut znaków w obszarze danych rozpoczynającym się od bajtu 12-ego. Funkcja: Reprezentuje kod znaków i kod języka w postaci kodu jednobajtowego. Wartość: tak sama jak w przypadku SNC+L = DATA Znaczenie: pojedyncze informacje dodatkowe. Funkcja: Reprezentuje każdy typ informacji dodatkowej danymi o zmiennej długości. Dane rzeczywiste zaczynają się od bajtu 12-stego. Długość (wielkość) danych rzeczywistych powinna wynosić przynajmniej 4 bajty i wielokrotność 4 bajtów. Pozostały obszar danych powinien być wypełniony zerami (0x00). Wartość: Indywidualnie zdefiniowana, odpowiadająca zawartości każdego z typów informacji dodatkowej. Fig. 13 jest tabelą która łączy najważniejsze wartości kodowe (0 do 63) informacji dodatkowej z jej typem. Wartości kodowe (0 do 31) są przypisane do znakowej informacji o muzyce. Wartości kodowe (32 do 63) są przypisane URLom (Uniform Resource Locator - jednolity lokalizator zasobów) (informacja sieciowa). Informacja znakowa o muzyce i informacja o URL zawierają informację znakową dotyczącą tytułu albumu, nazwy wykonawcy, CM, i tym podobne informacje dodatkowe. Fig. 14 jest tabelą która łączy wartości kodowe (64 do 127) informacji dodatkowych z ich typami. Wartości kodowe (64 do 95) są przypisane do ścieżek / innych. Wartości kodowe (96/127) są przypisane danym sterującym numerycznym. Na przykład ID=98 odpowiada TOC-ID, będącej informacją dodatkową. TOC-ID reprezentuje pierwszy numer programu muzycznego, ostatni numer programu muzycznego, numer aktualnego programu muzycznego, całkowity czas nagrania,

18

PL 208 230 B1

aktualny czas trwania programu muzycznego odpowiadający informacji TOC dla CD (Commpact Disk - płyty kompaktowej). Fig. 15 jest tabelą, która łączy wartości kodowe (128 do 159) informacji dodatkowych z ich typami. Wartości kodowe (128 do 159) są przypisane informacjom odtwarzania synchronicznego. Na fig. 15, EMD oznacza sposób dystrybucji muzyki w postaci elektronicznej. Poniżej, w odniesieniu do fig. 16A do 16E opisane zostaną przykłady rzeczywistych informacji dodatkowych. Tak jak fig. 12C, fig. 16A przedstawia strukturę danych informacji dodatkowych. Na fig. 16B wartość kodowa ID=3 (nazwa artysty jako informacja dodatkowa). SIZE = 0x1C (28 bajtów) odpowiada długości informacji dodatkowej włączając nagłówek 28 bajtów; C+L wskazuje na rodzaj kodu znakowego C=0x01 (kod ASCII), oraz na kod języka L-=0x09 (język Angielski). Dane o zmiennej długości występujące po bajcie 12 zwierają dane jednobajtowe "SIMON & GRAFUNKEL" odpowiadające nazwie wykonawcy. Ponieważ długość danych informacji dodatkowej powinna być wielokrotnością 4 bajtów, pozostała część danych wypełniona jest zerami (0x00). Na fig. 16C, wartość kodowa ID=97 wskazując, że dodatkową informacją jest ISRC (International Standard Code: Kod Prawa Autorskiego). SIZE = 0x14 (20 bajtów) odpowiada długości danych informacji dodatkowej wynoszącej 20 bajtów. C=0x00 i L=0x00 wskazują na to, że rodzaj kodu znaków oraz język nie zostały ustawione. A zatem dane są w kodzie binarnym. Dane o zmiennej długości są ośmiobajtowym kodem ISRC, reprezentującym informacje związane z prawem autorskim (państwo, właściciela praw autorskich, rok nagrania, numer seryjny). Na fig. 16D wartość kodowa ID wynosi 103 wskazując, że dodatkową informacją jest data i czas zapisu. SIZE=0x10 (16 bajtów) odpowiada długości informacji dodatkowej, wynoszącej 16 bajtów. C=0x00, a L=0x00 wskazują, że kod znaków i język nie zostały ustawione. Daną o zmiennej długości jest czterobajtowy (32bitowy) kod, reprezentujący datę i czas zapisu (rok, miesiąc, dzień, godzina, minuta, sekunda). Na fig. 16E wartość kodowa ID=107 wskazując, że dodatkową informacją jest rejestr odtworzeń. SIZE = 0x10 (16 bajtów) odpowiada długości danych informacji dodatkowej wynoszącej 16 bajtów. C=0x00, a L=0x00 wskazuje, że kod znaków i język nie zostały wybrane. Dane o zmiennej długości są czterobajtowym kodem reprezentującym rejestr odtworzeń (rok, miesiąc, dzień, godzinę, minutę, sekundę). Gdy nagrywarka/odtwarzacz posiada funkcje prowadzenia rejestru odtworzeń, zapisuje on dane 16 bajtowe za każdym razem gdy odtwarza dane muzyczne. Fig. 17 jest schematem blokowym przedstawiającym strukturę danych pliku A3Dnnnn danych ATRAC3 w przypadku, gdy jedna jednostka SU składa się z N bajtów (na przykład N=384 bajty). Fig. 17 przedstawia nagłówek atrybutów (1 blok) pliku danych i plik danych muzycznych (1 blok). Fig. 17 przedstawia pierwszy bajt (0x0000 do 0x7FF0) każdej ramki dwóch bloków (16x2 = 32 kilobajtów). Tak jak to pokazano na fig. 18, pierwsze 32 bajty nagłówka atrybutów są wykorzystane jako nagłówek; 256 bajtów wykorzystanych jest jako obszar programu muzycznego NM1 (256 bajtów); a 512 bajtów wykorzystane jest obszar tytułu programu muzycznego NM2 (512 bajtów). Nagłówek nagłówka atrybutów zawiera następujące obszary. = BLKID-HD0 (4 bajty) Znaczenie: IDENTYFIKATOR POLA, IDENTYFIKATOR BLOKU Funkcja: Identyfikuje początek pliku danych ATRAC3. Wartość: wartość stała = "HD=0" (na przykład, 0x48442D30) = MCode (2 bajty) Znaczenie: KOD PRODUCENTA Funkcja: Identyfikuje producenta i model nagrywarki/odtwarzacza. Wartość: 10 najbardziej znaczących bitów (kod producenta); 6 najmniej znaczących bitów (kod urządzenia). = BLOCK SERIAL (4 bajty) Znaczenie: numer seryjny ścieżki Funkcja: rozpoczyna się od 0 i zwiększa się o 1. Nawet jeśli program muzyczny poddawany jest edycji ta wartość się nie zmienia. Wartość: 0 do 0xFFFFFFFFFFFFFFFF = N1C+L (2 bajty) Znaczenie: reprezentuje atrybuty danych (NM1) ścieżki (tytuł programu muzycznego). Funkcja: reprezentuje kod znakowy i kod języka dla NM1 w postaci kodu jednobajtowego. Wartość: takie same jak dla SN1C+L

PL 208 230 B1

= N2C+L Znaczenie: Funkcja: Wartość: = INFSIZE Znaczenie: Funkcja:

19

(2 bajty) reprezentuje atrybuty danych (NM2) ścieżki (tytuł programu muzycznego). reprezentuje kod znakowy i kod języka dla NM1 w postaci kodu jednobajtowego. takie same jak dla SN1C+L (2 bajty) całkowity rozmiar informacji dodatkowej dla aktualnej ścieżki. reprezentuje rozmiar danych będący wielokrotnością 16 bajtów. Gdy dane nie są zapisane, ten obszar powinien być wypełniony zerami. Wartość: 0x0000 do 0x3C6 (966) = T-PRT (2 bajty) Znaczenie: Całkowita liczba bajtów. Funkcja: reprezentuje liczbę 'części', które tworzą aktualną ścieżkę. Normalnie wartość T-PRT wynosi 1. Wartość: 1 do 285 (645) = T-SU (4 bajty) Znaczenie: Całkowita liczba jednostek SU. Funkcja: Reprezentuje całkowitą liczbę jednostek SU w jednej ścieżce, która odpowiada czasowi odtworzenia programu. Wartość: 0x01 do 0x001FFFFF = INX (2 bajty) (Opcjonalnie) Znaczenie: pozycja względna INDEKSU. Funkcja: Wykorzystywany jako wskaźnik, który reprezentuje początek 'części' reprezentatywnej programu muzycznego. Wartość INX jest określona przez wartość aktualnej liczby jednostek SU, podzielnej przez cztery, odpowiadającej aktualnemu położeniu programu. Wartość INX jest odpowiednikiem czterokrotnej długości jednostki SU (około 93msec). Wartość: 0 do 0xFFFF (maksymalnie około 6084 sekund). = XT (2 bajty) (Opcjonalna) Znaczenie: czas odtworzenia indeksu. Funkcja: oznacza czas odtwarzania INDEKSU, określony przez Inx-nnn w wartościach, dla których liczba SU jest podzielna przez 4. Wartość INX jest odpowiednikiem czterokrotnie większym od jednostki SU (około 93msec). Wartość: 0x0000 (brak ustawień); 0x01 do 0xFFFE (do 6084 sekund); 0xFFFF (do końca programu muzycznego). Poniżej opisane zostaną obszary tytułu programu NM1 i NM2. = NM1 Znaczenie: Ciąg znaków określających tytuł programu muzycznego. Funkcja: Reprezentuje tytuł programu muzycznego w postaci kodów jednobajtowych (do 256 znaków) (o zmiennej długości). Obszar tytułu powinien być uzupełniony kodem końca (0x00). Wielkość powinna być obliczona na podstawie położenia kodu końca. Gdy dane nie są zapisane, w co najmniej jednym bajcie na początku (0x0020) obszaru powinna być zapisana wartość zerowa (x00). Wartość: Różne kody znakowe. = NM2 Znaczenie: Ciąg znaków określających tytuł programu muzycznego. Funkcja: Reprezentuje tytuł programu muzycznego w postaci kodów dwubajtowych (do 512 znaków) (o zmiennej długości). Obszar tytułu powinien być uzupełniony kodem końca (0x00). Wielkość powinna być obliczona na podstawie położenia kodu końca. Gdy dane nie są zapisane, w co najmniej dwu bajtach na początku (0x0120) obszaru powinna być zapisana wartość zerowa (x100). Wartość: Różne kody znakowe. Dane składające się z 80 bajtów, rozpoczynające się od stałego adresu (0x320) w nagłówku atrybutów, oznaczane są jako obszar informacji ścieżki TRKINF. Ten obszar jest głównie wykorzystywany do całościowego zarządzania informacją zabezpieczającą i informacją sterującą kopiowaniem. Fig. 19 przedstawia część TRKINF. Obszar TRKINF zawiera następujące obszary.

20

PL 208 230 B1

= KLUCZ ZAWARTOŚCI (8 bajtów) Znaczenie: Wartość dla każdego programu muzycznego. Wartość klucza zawartości jest chroniona w bloku zabezpieczającym karty pamięci a następnie zapisywana. Funkcja: Wykorzystywany jako klucz do odtwarzania programu muzycznego. Jest wykorzystywany do obliczania wartości MAC. Wartość: 0 do 0xFFFFFFFFFFFFFFFF =MAC Znaczenie: wartość kontrolna dotycząca sfałszowania informacji o prawach autorskich. Funkcja: Reprezentuje wartość wygenerowaną przy wykorzystaniu wielu wartości TRKINF, włączając w to numery kumulacyjne zawartości oraz tajny numer sekwencji. Tajny numer sekwencji jest numerem sekwencji zapisywanym w obszarze tajnym karty pamięci. Nagrywarka nie posiadająca funkcji ochrony praw autorskich nie może odczytać danych z tajnego obszaru karty pamięci. Z drugiej zaś strony, nagrywarka posiadająca funkcję ochrony praw autorskich oraz komputer z programem, który może odczytać dane z karty pamięci, mogą mieć dostęp do obszaru tajnego. =A (1 bajt) Znaczenie: atrybut 'części'. Funkcja: Reprezentuje informacje takie jak tryb kompresji 'części'. Wartość: Szczegóły zostaną przedstawione poniżej (patrz. Fig. 19 i 20). Poniżej opisane zostaną wartości obszaru A. W poniższym opisie tryb mono (N= 0 lub 1) został zdefiniowany jako specjalny tryb połączony, w którym bit 7 =1, podsygnał = 0, sygnał główny = (L+R). Odtwarzacz nie posiadający funkcji ochrony praw autorskich może zignorować informacje umieszczoną w bitach 2 i 1. Bit 0 obszaru A reprezentuje informację, która określa stan włączony/wyłączony. Bit 1 obszaru A reprezentuje informację pominięcia odtwarzania lub normalnego odtwarzania. Bit 2 obszaru A reprezentuje informację o typie danych, takim jak dane audio, dane transmisji faksymilowej i tym podobne. Bit 3 obszaru A nie jest zdefiniowany. Jak to pokazuje fig. 20, informację o trybie ATRAC3 zdefiniowano wykorzystując kombinację bitów 4, 5 i 6. Innymi słowy, N jest trzybitową wartością trybu. Dla pięciu trybów które są trybami mono (N=0 lub 1), wypunktowano LP (N=2), SP (N=4), EX (N=5), i HQ (n=7), czas trwania nagrania (tylko 64MB karta pamięci), współczynnik transmisji danych, liczba jednostek SU przypadających na blok. Liczba bajtów przypadająca na jednostkę SU zależy od trybu. Liczba bajtów jednostki SU w trybie mono wynosi 136 bajty. Liczba bajtów w jednostce SU w trybie LP wynosi 192 bajty. Liczba bajtów w jednostce SU w trybie SP wynosi 304 bajty. Liczba bajtów w jednostce SU w trybie EX wynosi 384 bajty. Liczba bajtów w jednostce SU w trybie HQ wynosi 512 bajty. Bit 7 obszaru A reprezentuje tryby ATRAC3 (0: podwójny, 1: połączone). Dla przykładu, opisana zostanie przykładowa karta pamięci 64MB wykorzystująca tryb SP. 64 megabajtowa karta pamięci posiada 3968 bloków. W trybie SP, jako że jednostce SU odpowiadają 304 bajty, to jeden blok zawiera 53 jednostki SU. Jednostka SU jest odpowiednikiem (1024/44100) sekund. Tak więc jeden blok wynosi (1024/44100)x53x(3968-10) = 4863 sekundy = 81 minut. Współczynnik transmisji wynosi (44100/1024)x304x8 = 104737 bps. = LT (jeden bajt) Znaczenie: znacznik ograniczenia odtwarzania (bity 7 i 6) oraz partycji zabezpieczającej (bity 5 do 0). Funkcja: Reprezentuje informacje dotyczące ograniczeń w wykorzystywaniu aktualnej ścieżki. Wartość: bit 7: 0 = brak ograniczeń, 1 = ograniczenia bit 6: 0 = aktualne, 1 = wygasły bit 5 do 0 : partycja zabezpieczająca (odtwarzanie zabronione, inne niż 0) = FNo (2 bajty) Znaczenie: Numer pliku. Funkcja: reprezentuje początkowo zapisany numer ścieżki, który określa położenie wartości obliczonej MAC zapisanej w obszarze tajnym karty pamięci. Wartość: 1 do 0x190 (400) =MG(D) SERIAL-nnn (16 bajtów) Znaczenie: Reprezentuje numer seryjny bloku zabezpieczającego (układ zabezpieczający IC 20) nagrywarki/odtwarzacza.

PL 208 230 B1

21

Funkcja: Wartość unikalna dla każdej nagrywarki/odtwarzacza. Wartość: 1 do 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF =CONNUM (4 bajty) Znaczenie: Numer kumulacyjny zawartości. Funkcja: Reprezentuje unikalną wartość skumulowaną dla każdego programu muzycznego. Wartość jest wykorzystywana przez blok zabezpieczający nagrywarki/odtwarzacza. Górna granica wartości wynosi 232, to jest 4,200,000,000. Wykorzystywana jest do identyfikacji nagranego programu. Wartość: 1 do 0xFFFFFFFF =YMDhms-S (4 bajty) (Opcjonalne) Znaczenie: Data i czas rozpoczęcia odtwarzania i czas trwania ścieżki wraz z ograniczeniami odtwarzania. Funkcja: Reprezentuje datę i czas, dla których odtwarzanie danych jest dozwolone w ramach EMD (electronic music distribution). Wartość: Takie same jak zapis daty i czasu w innych przykładach. =YMDhms-E (4 bajty) (Opcjonalne) Znaczenie: Data i czas zakończenia odtwarzania i czas trwania ścieżki wraz z ograniczeniami odtwarzania. Funkcja: Reprezentuje datę i czas, dla których prawo do odtwarzanie danych dla EMD wygasło. Wartość: Takie same jak zapis daty i czasu w innych przykładach. =MT (1 bajt) (Opcjonalne) Znaczenie: Maksymalna liczba dozwolonych odtworzeń. Funkcja: Reprezentuje maksymalną liczbę odtworzeń, która jest dozwolona przez EMD. Wartość: 1 do 0xFF. Gdy nie wykorzystany, wartość obszaru MT wynosi 00. =CT (1 bajt) (Opcjonalne) Znaczenie: Liczba ilości odtworzeń. Funkcja: Reprezentuje liczbę odtworzeń, zawierającą się w liczbie dozwolonych odtworzeń. Za każdym razem gdy dane są odtwarzane, wartość obszaru CT zostaje zmniejszona. Wartość: 0x00 do FF. Gdy nie wykorzystane, wartość obszaru CT wynosi 0x00. Gdy bit 7 obszaru LT jest ustawiony na 1, a wartość obszaru CT wynosi 00, dane nie mogą być więcej odtwarzane. (1 bajt) =CC Znaczenie: COPY CONTROL - Kontrola kopiowania. Funkcja: kontroluje operację kopiowania. Wartość: Bity 6 i 7 reprezentują informację kontrolującą kopiowanie. Bity 4 i 5 reprezentują informację kontrolującą operację kopiowania cyfrowego z dużą prędkością. Bity 2 i 3 reprezentują poziom autoryzacji bloku zabezpieczającego. Bity 0 i 1 są niezdefiniowane. Przykład wartości CC: (bity 7 i 6) 11: operacja kopiowania dozwolona w sposób nieograniczony. 01: kopiowanie zabronione. 00: dozwolona operacja jednokrotnego skopiowania. (bity 3 i 2) 00: nagrywanie z wykorzystaniem wejścia analogowego/cyfrowego. Poziom MG autoryzacji wynosi 0. Gdy realizowana operacja zapisywania cyfrowego wykorzystuje dane pochodzące z CD, (bity 7 i 6): 00 i (bity 3 i 2):00. =CN (1 bajt) (Opcjonalne) Znaczenie: Liczba dozwolonych kopiowań dla systemu zarządzania kopiowaniem szeregowym z dużą prędkością Funkcja: Rozszerzenie uprawnień do kopiowania o ilość kopiowań, nie ograniczoną do ko-

22

PL 208 230 B1

piowania jednokrotnego, i pozwolenie na bezpłatne kopiowanie. Ważne tylko wtedy, gdy generowana jest pierwsza kopia. Wartość w obszarze CN jest zmniejszana za każdym razem gdy wykonywana jest operacja kopiowania. Wartość: 00: kopiowanie zabronione. 01 do 0xFE: liczba razy 0xFF: nieograniczona liczba razy. Po obszarze informacji o ścieżce TRKINF, występuje 24-bajtowy obszar informacji zarządzania 'częściami' (PRTINF) poczynając od 0x0370. Gdy jedna ścieżka jest zbudowana z wielu 'części', wartości obszarów PRTINF dla poszczególnych części są rozmieszczone sukcesywnie na osi czasu. Fig. 22 przedstawia część obszaru PRTINF. W dalszej części, opisane zostaną obszary w obszarze PRTINF w porządku, w jakim są one rozmieszczone. =PRTSIZE (4 bajty) Znaczenie: Rozmiar 'części'. Funkcja: reprezentuje rozmiar 'części'. Klaster: 2 bajty (pozycja najwyższa), zaczyna początkowa jednostka SU: (1 bajt), jednostka końcowa SU (pozycja najniższa) Wartość: klastry 1 do 0x1F40 (8000) początkowa jednostka SU: 0 do 0xA0 (160) końcowa jednostka SU: 0 do 0xA0 (16) (proszę zauważyć że jednostki SU rozpoczynają się od 0). =PRTKEY (8 bajtów) Znaczenie: Wartość szyfrująca 'części'. Funkcja: Pozwala zaszyfrować 'część'. Wartość początkowa = 0. Proszę zauważyć, iż zastosowanie mają reguły edycji. Wartość: 0 do 0xFFFFFFFFFFFFFFFF =CONNUM0 (4 bajty) Znaczenie: Początkowo generuje klucz dla liczby kumulacyjnej zawartości. Funkcja: W sposób unikalny określa identyfikator ID zawartości. Wartość: Takie same wartości jak wartości klucza wartości początkowej liczby kumulacyjnej zawartości. Tak jak to przedstawiono na fig. 17, nagłówek atrybutów pliku danych ATRAC3 zawiera informację dodatkową INF. Informacja dodatkowa jest taka sama jak informacja dodatkowa INF-S (patrz. Fig. 11 i 12B) pliku zarządzania odtwarzaniem za wyjątkiem faktu, iż pozycja startowa nie jest stała. Poniżej pozycji ostatniego bajta (wielokrotność czterech) na końcu jednej lub wielu części, znajdują się dane informacji dodatkowej INF. = INF Znaczenie: Informacje dodatkowe dotyczące ścieżki. Funkcja: Reprezentuje informację dodatkową o zmiennej długości wraz nagłówkiem. Może ona zawierać wiele informacji dodatkowych różnych typów. Każdy z obszarów informacji dodatkowej posada identyfikator ID, oraz dane określające jego wielkość. Każdy obszar informacji dodatkowej jest zbudowany z co najmniej 16 bajtów i ma długość będącą wielokrotnością 4 bajtów. Wartość: takie same jak informacja dodatkowa INF-S pliku zarządzania odtwarzaniem. Po opisanym powyżej nagłówku atrybutów umieszczone są dane dla każdego bloku pliku danych ATARC3. Tak jak to pokazuje fig. 23, nagłówek jest dodawany do każdego bloku. Poniżej opisane zostaną dane każdego z bloków. =BLKID-A3D (4 bajty) Znaczenie: Identyfikator Bloku, Identyfikator Pliku. Funkcja: Identyfikuje początek danych ATRAC3. Wartość: Wartość stała = "A3D" (na przykład, 0x41334420). = MCode (2 bajty) Znaczenie: Kod producenta Funkcja: Identyfikuje producenta i model nagrywarki/odtwarzacza. Wartość: 10 najbardziej znaczących bitów (kod producenta); 6 najmniej znaczących (kod modelu). = CONNUM0 (4 bajty) Znaczenie: Liczba skumulowana początkowo utworzonej zawartości.

PL 208 230 B1

Funkcja:

23

Oznacza unikalny identyfikator ID dla zawartości. Nawet wtedy gdy zawartość jest poddawana edycji, wartość CONNUM0 się nie zmienia. Wartość: Takie same jak klucz początkowy liczby kumulacyjnej zawartości. = BLOCK SERIAL (4 bajty) Znaczenie: numer seryjny każdej ścieżki. Funkcja: rozpoczyna się od 0 i zwiększa się o 1. Nawet jeśli program muzyczny poddawany jest edycji wartość BLOCK SERIAL się nie zmienia. Wartość: 0 do OxFFFFFFFF = BLOCK-SEED (8 bajtów) Znaczenie: Klucz służący do szyfrowania jednego bloku. Funkcja: Początek bloku jest liczbą losową wygenerowaną przez blok zabezpieczający nagrywarki/odtwarzacza. Po liczbie losowej umieszczona jest wartość zwiększona o 1. Gdy wartość obszaru BLOCK-SEED zostaje utracona, czyli wtedy gdy dźwięk nie jest generowany przez około jedną sekundę, co odpowiada jednemu blokowi, to takie same dane są wpisywane do nagłówka i na końcu bloku. Nawet gdy zawartość jest poddawana edycji, to wartość obszaru BLOCK-SEED nie zmienia się. Wartość: początkowa ośmiobitowa liczba losowa. = WEKTOR INICJALIZACJI (8 bajtów) Znaczenie: Wartość niezbędna do zaszyfrowania/deszyfrowania danych ATARC3. Funkcja: Reprezentuje wartość początkową niezbędną do zaszyfrowania i deszyfrowania danych ATRAC3 dla każdego bloku. Blok zaczyna się od 0. Następny blok rozpoczyna się od ostatniej zaszyfrowanej wartości ośmiobitowej w ostatniej jednostce SU. Gdy blok jest dzielony, wykorzystuje się ostatnie osiem bajtów tuż przed początkową jednostką SU. Nawet jeśli zawartość podlega edycji, wartość obszaru WEKTOR INICJALIZACJI nie ulega zmianie. Wartość: 0 do 0xFFFFFFFFFFFFFFFF = SU-nnn Znaczenie: Dane jednostki dźwiękowej. Funkcja: reprezentacja danych skompresowanych, pochodzących z 1024 próbek. Liczba bajtów danych wyjściowych zależy od trybu kompresji. Nawet jeśli zawartość jest poddana edycji, wartość obszaru SU-nnn nie zmienia się. Wartość: Wartości danych ATRAC3. Na fig. 17, od N=384, w jednym bloku zapisane są 42 jednostki SU. Pierwsze dwie ramki (4 bajty) jednego bloku są wykorzystane na nagłówek. W ostatniej ramce (dwa bajty), nadmiarowo zapisane są obszary BLKIS-A3D, MCode, CONNUM0, i BLOCK SERIAL. Tak więc M bajtów pozostałego obszaru wynosi (16,384 - 384x42 - 16x3 = 208) bajtów. Tak jak to przedstawiono powyżej, obszar ośmiu bajtów BLOCK SEED jest zapisany nadmiarowo. Gdy obszar tablicy alokacji plików zostaje zniszczony, przeszukane zostają wszystkie bloki pamięci typu flash. Określa się, czy wartości obszaru ID BLKID (identyfikatora bloku) na początku każdego bloku jest wartością TL0, HD0 czy też A3D. Tak jak to pokazano na fig. 24A do 24C, w etapie SP1, określono czy wartość obszaru identyfikatora BLKID na początku bloku szczytowego wynosi BLKID-TL0, czy też nie. Gdy wynikiem określonym w etapie SP1 jest: "Nie", następuje przejście do etapu SP2. W etapie SP2, zwiększany jest numer bloku. Następnie w etapie SP3, określa się czy przeszukany został blok ostatni czy też nie. Gdy otrzymany wynik w etapie SP3, to wynik negatywny "Nie", następuje powrót do etapu SP1. Gdy otrzymany wynik w etapie SP1 jest wynikiem pozytywnym "Tak", następuje przejście do etapu SP4. W etapie SP4, następuje stwierdzenie, czy przeszukiwanym blokiem jest plik zarządzania odtwarzaniem PBLIST. Następnie, następuje przejście do etapu SP5. W etapie SP5, całkowita liczba ścieżek T-TRK w pliku zarządzania odtwarzaniem PBLIST jest zapisywana jako N w rejestrze. Na przykład, gdy w pamięci przechowywane jest 10 plików danych ATRAC3 (10 programów muzycznych), to w wartości T-TRK przechowywana jest liczba 10. W odniesieniu do wartości całkowitej liczby ścieżek T-TRK, odniesione są kolejne bloki TRK-001 do TRK-400. W tym przykładzie, ponieważ przechowywanych jest 10 programów muzycznych, odniesienie następuje do bloków TRK-001 do TRK-010. Ponieważ liczba plików FNO jest zapisana w TRK-XXX (gdzie X = 1 do 400) w etapie SP7, to do pamięci wpisywana jest tablica która łączy nu-

24

PL 208 230 B1

mer ścieżki TRK-XXX z numerem pliku FNO. Następnie w etapie SP8, N przechowywane w rejestrze zostaje zmniejszone. Pętla złożona z etapów SP6, SP7 i SP8 jest wykonywana aż do chwili gdy N=0 w etapie SP9. Gdy określony wynik w etapie SP9 jest wynikiem pozytywnym, tj. "Tak", następuje przejście do etapu SP10. W etapie SP10, wskaźnik jest zerowany i wskazuje na blok szczytowy. Proces wyszukiwania jest powtarzany począwszy od bloku szczytowego. Następnie następuje przejście do etapu SP11. W etapie SP11, określa się, czy wartość identyfikatora BLKID bloku szczytowego wynosi BLKID-HD, czy też nie. Gdy uzyskany wynik w etapie SP11, jest negatywny "Nie", następuje przejście do etapu SP12. W etapie SP12, numer bloku zostaje zwiększony. W etapie SP13 określa się, czy przeszukaniu uległ ostatni blok czy też nie. Gdy uzyskany wynik w etapie SP13 wynosi "Nie, następuje przejście do etapu SP11. Proces przeszukiwania jest powtarzany, aż do chwili, gdy uzyskany w etapie SP11 wynik wynosi "Tak". Gdy uzyskany w etapie SP11 wynik wynosi "Tak", następuje przejście do etapu SP14. W etapie SP14 określa się, czy blok jest nagłówkiem atrybutów (patrz fig. 8) (0x000 do 0x03FFF przedstawiony na fig. 18) znajdującym się na początku pliku danych ATARC3. Następnie, w etapie SP15, w odniesieniu do numeru pliku FNO, w pamięci umieszczane są numer sekwencji BLOCK SERIAL tego samego pliku danych ATRAC, oraz klucz liczby kumulacyjnej zawartości CONNUM0, zawarty w nagłówku atrybutów. Gdy zapisanych zostanie 10 plików danych ATRAC3, ponieważ istnieje 10 bloków z wartościami obszaru identyfikatora BLKID bloku szczytowego BLKID-TLO, to proces przeszukiwania jest kontynuowany aż do chwili przeszukania wszystkich 10 bloków. Gdy określony w etapie SP13 wynik wynosi "Tak", następuje przejście do etapu SP16. W etapie SP16, wskaźnik jest zerowany i ustawiany na blok szczytowy. Proces przeszukiwania jest powtarzany od bloku szczytowego. Następnie, następuje przejście do etapu SP17. W etapie SP17, określa się, czy wartość obszaru identyfikatora BLKID bloku szczytowego wynosi BLKID-A3D, czy też nie. Gdy wynik otrzymany w etapie SP17 wynosi "Nie", następuje przejście do etapu SP18. W etapie SP18, zwiększeniu ulega numer bloku. Następnie w etapie SP18', następuje stwierdzenie czy przeszukany został ostatni blok, czy też nie. Gdy otrzymanym w etapie SP18' wynikiem jest wynik "Nie", następuje powrót do etapu SP17. Gdy określonym w etapie SP7 wynikiem jest wynik "Tak", następuje przejście do etapu SP19. W etapie SP19, określa się, czy blok zawiera dane ATRAC3. Następnie realizowane jest przejście do etapu SP20. W etapie SP20, do pamięci wpisywane zostają: numer seryjny BLOCK SERIAL zapisany w bloku danych ATRAC3 i CONNUM0 klucz liczby kumulacyjnej zawartości. W tym samym pliku danych ATRAC3, do CUNNUM0 klucza liczby kumulacyjnej zawartości przypisywana jest wspólna liczba. Innymi słowy, gdy jeden plik danych ATRAC3 jest zbudowany z 10 bloków, wspólna liczba jest przypisywana wszystkim wartościom obszarów CONNUM0. Ponadto, gdy jedne dane ATRAC3 składają się z 10 bloków, to wartościom w obszarach BLOCK SERIAL 10 bloków przypisywane są numery seryjne od 1 do 10. W odniesieniu do wartości obszarów CONNUM0 i BLOCK SERIAL, określa się, czy aktualny blok tworzy tą samą zawartość i określa się kolejność odtwarzania aktualnego bloku w tej samej zawartości (mianowicie, sekwencję łączącą). Gdy zapisanych zostało 10 plików danych ATRAC3 (mianowicie 10 programów muzycznych) i każdy z plików danych ATARC3 zbudowany jest z 10 bloków, istnieje wówczas 100 bloków. W odniesieniu do wartości obszarów CONNUM0 i BLOCK SERIAL, uzyskuje się kolejność odtwarzania i wzajemne powiązania programów muzycznych złożonych ze 100 bloków. Gdy otrzymany w etapie SP19 wynik jest wynikiem "Tak", oznacza to, że wszystkie bloki zostały przeszukane w poszukiwaniu pliku zarządzania odtwarzaniem, pliku danych ATRAC3, oraz pliku atrybutów. Tak więc w etapie SP21, bazując na wartościach obszarów CONNUM0, BLOCK SERIAL, FNO oraz TRKX, w kolejności numerów bloków przechowywanych w pamięci, uzyskano stan połączenia plików. Po uzyskaniu stanu połączenia, możliwe jest wygenerowanie tablicy alokacji plików w wolnym obszarze pamięci. Poniżej opisany zostanie plik zarządzania odtwarzaniem według drugiego przykładu realizacji niniejszego wynalazku. Fig. 25 przedstawia strukturę pliku według drugiego przykładu realizacji niniejszego wynalazku. Odnośnie fig. 25, katalog muzyka zawiera plik zarządzania informacjami o ścież-

PL 208 230 B1

25

kach TRKLIST.MSF (odtąd określany mianem TRKLIST), kopię bezpieczeństwa pliku zarządzania informacjami dotyczącymi ścieżek TRKLISTB.MSF (odtąd określany mianem TRKLISTB), plik informacji dodatkowych INFLIST.MSF (który zawiera nazwę wykonawcy, kod ISRC, znacznik czasowy, dane w postaci obrazów, i tym podobne informacje (ten plik jest określany mianem INFIST)), plik danych ATRAC3 A3Dnnnn.MSF (określany odtąd A3nnnn). Plik TRKLIST zawiera dwa obszary NAME1 i NAME2. Obszar NAME1 jest obszarem który zawiera nazwę karty pamięci i nazwę programu (jednobajtowy kod odpowiadający kodowi znakowemu w standardzie ASCII/8859-1). Obszar NAME2 jest obszarem, który zawiera nazwę karty pamięci i nazwę programu (dwu bajtowy kod odpowiadający kodowi znakowemu w standardzie MS-JIS/Hankul/Chinese). Fig. 26 przedstawia zależność pomiędzy plikiem zarządzania informacją o ścieżce TRKLIST, obszarami NAME1 i NAME2m i plikiem A3Dnnnn danych ATRAC3. Plik TRKLIST ma stałą długość 64 kilobajtów (=16k x 4). Obszar 32 kilobajtów pliku jest wykorzystywany do tego, aby pomieścić obszary NAME1 i NAME2. Pomimo iż obszary NAME1 i NAME2 mieszczące nazwy programów mogą być utworzone w postaci pliku innego niż plik zarządzania informacją o ścieżkach, to w systemie o niewielkiej ilości pamięci, wygodnie jest obsługiwać w sposób całościowy plikiem zarządzania informacją o ścieżkach oraz plikami z nazwami programów. Obszar informacji o ścieżce TRKINF-nnnn i obszar informacji o 'części' PRTINF-nnnn pliku zarządzania informacjami o ścieżkach TRKLIST są wykorzystywane do zarządzania plikami danych A3Dnnnn oraz informacjami dodatkowymi INFLIST. Tylko plik A3Dnnnn danych ATRAC3 jest szyfrowany. Na fig. 26 długość danych w kierunku poziomym wynosi 16 bajtów (0 do F). Liczba szesnastkowa w kierunku pionowym określa wartość na początku aktualnej linii. Zgodnie z drugim przykładem realizacji, wykorzystane są trzy pliki, którymi są: plik zarządzania ścieżkami TRKLIST (włączając w to plik z tytułami programów), plik zarządzania informacją dodatkową INFLIST, plik danych A3Dnnnn. Według pierwszego przykładu wykonania (patrz fig. 7, 8 i 9) wykorzystane są dwa pliki, którymi są: plik zarządzania odtwarzaniem PBLIST do zarządzania całą kartą pamięci i plik danych ATRAC3 przechowujący programy. Poniżej opisana zostanie struktura danych według drugiego przykładu wykonania. Dla uproszczenia, w strukturze danych według drugiego przykładu wykonania, opis części podobnych do tych z pierwszego przykładu wykonania zostanie pominięty. Fig. 27 przedstawia szczegółowo strukturę pliku TRKLIST zarządzania informacjami o ścieżkach. W pliku zarządzania informacjami o ścieżkach TRKLIST, jeden klaster (blok) zbudowany jest z 16 kilobajtów. Wielkość i dane pliku TRKLISTB są takie same jak te dotyczące pliku kopii bezpieczeństwa TRKLISTB. Pierwsze 32 bajty pliku zarządzania informacją o ścieżkach wykorzystane są jako nagłówek. Wraz z nagłówkiem pliku zarządzania odtwarzaniem PBLIST, nagłówek pliku TRKLIST zawiera obszar BLKID-TL0/TL1 (identyfikator pliku kopii bezpieczeństwa) (4 bajty), obszar T-TRK (2 bajty) w którym zapisywana jest całkowita liczba ścieżek, obszar kodu producenta Mcode (2 bajty), obszar WERYFIKACJI (4 bajty) określający liczbę razy, którą plik TRKLIST został przepisany, oraz obszar S-YMDhms (4 bajty) (Opcjonalny) w którym przechowywana jest data i czas aktualizacji. Znaczenia i funkcje tych obszarów danych są takie same jak te opisane w pierwszym przykładzie wykonania. Ponadto, plik TRKLIST zawiera następujące obszary. = YMDhms (4 bajty) Reprezentuje datę i czas ostatniej aktualizacji (rok, miesiąc, dzień, godzinę, minutę, sekundę). = N1 (1 bajt) (Opcjonalnie) reprezentuje numer sekwencji w karcie pamięci (licznik). Gdy karta pamięci jest wykorzystywana wartość obszaru N1 wynosi 0x01. =N2 (1 bajt) (opcjonalnie) Reprezentuje numer sekwencji w karcie pamięci (mianownik). Gdy karta pamięci jest wykorzystywana wartość obszaru N2 wynosi 0x01. =MSID (2 bajty) (opcjonalnie) reprezentuje identyfikator karty pamięci. Gdy wykorzystywane jest wiele kart pamięci, wartość obszaru MSID każdej karty pamięci jest taka sama (T.B.D) (T.B.D (do zdefiniowania) oznacza iż wartość ma być zdefiniowana w przyszłości). =S-TRK (2 bajty) Reprezentuje ścieżkę specjalną (TB.B.D) Normalnie wartość obszaru S-TRK wynosi 0x0000. =PASS (2 bajty) (opcjonalnie) Reprezentuje hasło (T.B.D)

26

PL 208 230 B1

=APP (2 bajty) (opcjonalnie) Reprezentuje definicje aplikacji odtwarzającej (T.B.D) (normalnie wartość obszaru APP wynosi 0x0000). =INF-S (2 bajty) (opcjonalnie) reprezentuje wskaźnik informacji dodatkowych całej karty pamięci. Gdy nie ma informacji dodatkowych, to wartość obszaru INF-S wynosi 0x00. Ostatnie 16 bajtów pliku TRKLIST jest wykorzystane na obszar BLKID-TL0, obszar Mcode, oraz obszar WERYFIKACJA, które są takie same jak te w nagłówku. Plik kopii bezpieczeństwa TRKLISTB zawiera opisany powyżej nagłówek. W tym przypadku, nagłówek zawiera obszar BLKID-TL1, obszar Mcode, oraz obszar WERYFIKACJA. Po nagłówku występuje obszar informacji o ścieżce TRKINF, zawierający informacje dotyczące każdej ścieżki, oraz obszar informacje o części PRTINF zawierający informacje dotyczące każdej ścieżki i każdej części ścieżek (programów muzycznych). Fig. 27 przedstawia obszary poprzedzane przez obszar TRKLIST. Niższa część obszaru TRKLISTB przedstawia szczegółową strukturę tych obszarów. Na fig. 27 obszar zakreskowany przedstawia obszar niewykorzystany. Obszar informacji o ścieżkach TRKINF-nnn oraz obszar informacji o częściach PRTINF-nnn zawiera obszary plików danych ATRAC3. Innymi słowy, obszar informacji o ścieżce TRKINF-nnn oraz obszar informacji o części PRTINF, każdy z nich, zawiera obszar znacznika ograniczenia odtwarzania L1 (1 bajt), obszar klucza zawartości CONTENTS KEY (8 bajtów), obszar numeru seryjnego bloku zabezpieczającego nagrywarki/odtwarzacza MG(D) SERIAL (16 bajtów), obszar XT (2 bajty) opcjonalny) reprezentujący przyszłe 'części' programu muzycznego, obszar INX (2 bajty) (opcjonalny), obszar YDMhms-S (4 bajty), obszar YDMhms-E (4 bajty) (opcjonalny), obszar MT (1 bajt) (opcjonalny), obszar CT (1 bajt) (opcjonalny), obszar CC (1 bajt) (opcjonalny), obszar CN (1 bajt) (opcjonalny) (obszary TMDhms-S, YMDhms-E, MT, CT, CC i CN są wykorzystywane jako informacje ograniczające odtwarzanie i informacje pozwalające sterować kopiowaniem), obszar A (1 bajt) wykorzystywany jako atrybut części, obszar definiujący wielkość 'części' PRTSIZE (4 bajty), obszar klucza 'części' (ang. part key area) PRTKEY (8 bajtów), oraz obszar liczby kumulacyjnej zawartości CONNUM (4 bajty). Znaczenia, funkcje i wartości tych obszarów są takie same, jak tych w pierwszym przykładzie wykonania. Ponadto, obszar informacji o ścieżce TRKINF-nnn oraz obszar informacji o części PRTINF-nnn, każdy z nich, zawiera następujące obszary. =T0 (1 bajt) Wartość stała (T0=0x74) =INF-nnn (opcjonalny) (2 bajty) Reprezentuje wskaźnik informacji dodatkowych każdej ścieżki (0 do 409). 00: program muzyczny bez informacji dodatkowych. =FNM-nnn (4 bajty) Reprezentuje numer pliku (0x0000 do 0xFFFF) dla pliku danych ATRK3. Numer nnnn (w kodzie ASCII) nazwy pliku danych ATRAC3 (A3Dnnnn) jest konwertowany do 0xnnnnn. =APP_CTL (4 bajty) (opcjonalny) Reprezentuje parametr aplikacji (T.B.D) (normalnie wartość obszaru APP_CTL wynosi 0x0000). =P-nnn (2 bajty) Reprezentuje liczbę części (1 do 2039), które tworzą program muzyczny. Ten obszar odpowiada wspomnianemu wcześniej obszarowi T-PART. =PR (1 bajt) Wartość stała (PR=0x50) Poniżej opisane zostaną obszary NAME1 (dla kodu jednobajtowego) i NAME2 (dla kodu dwubajtowego) służące do zarządzania nazwami. Fig. 28 przedstawia szczegółowo strukturę obszaru NAME1 (dla kodu jednobajtowego). Każdy z obszarów NAME1 i NAME2 (które zostaną opisane później) jest podzielony na osiem bajtów. Tak więc, jedna ramka zbudowana jest z ośmiu bajtów. Pod adresem 0x8000 który jest początkiem każdego z tych obszarów, umieszczony jest nagłówek. Poniżej nagłówka znajdują się wskaźnik i nazwa. Ostatnia ramka obszaru NAME1 zawiera takie same obszary jak nagłówek. = BLKID-NM1 (4 bajty) Reprezentuje zawartość bloku (wartość stała) (NM1 -0x4E4D2D31). =PNM1-nnn (4 bajty) (opcjonalnie) Reprezentuje wskaźnik do obszaru NM1 (dla kodu jednobajtowego)

PL 208 230 B1

27

=PNM1-S Reprezentuje wskaźnik do nazwy wskazującej kartę pamięci. nnn (= 1 do 408) reprezentuje wskaźnik na tytuł programu muzycznego. Wskaźnik reprezentuje pozycję startową (2 bajty) bloku, typ kodu znakowego (2 bity), wielkość danych (14 bitów). = NM1-nnn (opcjonalnie) Reprezentuje nazwę karty pamięci i tytuł programu muzycznego dla kodu jednobajtowego (o zmiennej długości). Kod końcowy (0x00) jest napisany na końcu każdego obszaru. Fig. 29 przedstawia szczegółowo strukturę danych obszaru NAME2 (dla kodu dwubajtowego). Pod adresem 0x8000, który jest początkiem obszaru, umieszczony jest nagłówek. Poniżej nagłówka umieszczone są wskaźnik i nazwa. Ostania ramka obszaru NAME2 zawiera takie same obszary jak nagłówek. = BLKID-NM2 (4 bajty) Reprezentuje zawartość bloku (wartość stała) (NM2 - 0x4E4D2D32). =PNM2-nnn (4 bajty) (opcjonalnie) Reprezentuje wskaźnik do obszaru NM2 (dla kodu dwubajtowego) =PNM2-S Reprezentuje wskaźnik do nazwy przedstawiającej kartę pamięci. nnn (= 1 do 408) reprezentuje wskaźnik do tytułu programu muzycznego. Wskaźnik reprezentuje pozycję startową (2 bajty) bloku, typ kodu znakowego (2 bity), wielkość danych (14 bitów). = NM2-nnn (opcjonalnie) Reprezentuje nazwę karty pamięci i tytuł programu muzycznego dla kodu dwubajtowego (o zmiennej długości). Kod końcowy (0x0000) jest napisany na końcu każdego obszaru. Fig. 30 przedstawia sposób ułożenia danych (dla jednego bloku) pliku A3Dnnnn danych ATRAC3, w tym przypadku jednostka SU jest zbudowana z N bajtów. W tym pliku, jedna ramka jest zbudowana z ośmiu bajtów. Fig. 30 przedstawia wartości pierwszej (górnej) 'części' (0x000 do 0x3FF8) każdej ramki. Pierwsze cztery ramki pliku są wykorzystywane jako nagłówek. Podobnie jak w pierwszym przykładzie realizacji gdzie blok danych jest poprzedzany przez nagłówek atrybutów, tak i tu umieszczony jest nagłówek. Nagłówek zawiera obszar BLKID-A3D (4 bajty), obszar kodu producenta Mcode (2 bajty), obszar BLOCK-SEED (8 bajtów) niezbędny w procesie szyfrowania, obszar CONNUM0 (4 bajty) wykorzystywany przez liczbę kumulacyjną zawartości początkowej, obszar numeru seryjnego BLOCK SERIAL (4 bajty) dla każdej ścieżki, oraz obszar WEKTORA INICJALIZACJI (8 bajtów) niezbędny w procesie szyfrowania/deszyfrowania. Druga od końca ramka bloku nadmiarowo zawiera obszar BLOCK SEED. Ostatnia ramka zawiera obszary BLKID-A3D i Mcode. Tak jak w pierwszym przykładzie wykonania, poniżej nagłówka znajdują się dane jednostki dźwiękowej SU-nnnn. Fig. 31 przedstawia szczegółowo strukturę danych pliku zarządzania informacją dodatkową INFLIST, który zawiera informację dodatkową. W drugim przykładzie wykonania, na początku (0x0000) pliku INFLIST, umieszczono poniższy nagłówek. Poniżej nagłówka umieszczono poniższy wskaźnik i obszary. =BLKID-INF (4 bajty) Reprezentuje zawartość bloku (wartość stała) (INF =0x494E464F). =T-DAT (2 bloki) reprezentuje całkowitą liczbę obszarów danych (0 do 409). =Mcode (2 bajty) Reprezentuje kod producenta nagrywarki/odtwarzacza. =YMDhms (4 bajty) Reprezentuje uaktualnioną datę i czas zapisu. =INF-nnnn (4 bajty) Reprezentuje wskaźnik do obszaru DATA informacji dodatkowej (zmienna długość, ponieważ za każdym razem zajmuje 2 bajty (ramkę)). Pozycja startowa jest reprezentowana przez szesnaście bitów bardziej znaczących (000 do FFFF). =DATASLOT-0000 (0x0800) Reprezentuje wartość przesunięcia w stosunku do początku (za każdym razem w ilości ramek). Rozmiar danych jest reprezentowany przez 16 bitów mniej znaczących (0001 do 7FFF). Znacz-

28

PL 208 230 B1

nik wyłączenia jest ustawiony na bicie najbardziej znaczącym. MSB=0 (włączony), MSB =1 (wyłączony). Wielkość danych reprezentuje całkowitą ilość danych zawartą w programie muzycznym. Dane rozpoczynają się z początkiem każdej ramki. (Obszar ramki nie zawierający danych jest wypełniony zerami 00). Pierwszy INF reprezentuje wskaźnik do informacji dodatkowej całego albumu (normalnie INF-409). Fig. 32 przedstawia strukturę informacji dodatkowej. Ośmiobajtowy nagłówek umieszczony jest na początku jednego obszaru danych informacji dodatkowej. Struktura informacji dodatkowej jest taka sama, jak ta w pierwszym przykładzie realizacji (patrz. Fig. 12C). Innymi słowy, informacja dodatkowa zawiera obszar IN (2 bajty) oznaczający ID identyfikator, obszar klucza ID (1 bajt), obszar SIZE (2 bajty), który reprezentuje rozmiar każdego obszaru informacji dodatkowej, oraz obszar kodu producenta Mcode (2 bajty). Ponadto, informacja dodatkowa zawiera obszar SID (1 bajt) pełniący rolę identyfikatora dodatkowego. Według drugiego przykładu realizacji niniejszego wynalazku, oprócz systemu plików zdefiniowanego w formacie karty pamięci, wykorzystany jest plik zarządzania informacjami o ścieżce lub dane muzyczne. Tak więc, nawet wtedy gdy tablica alokacji plików FAT zostanie zniszczona, plik może zostać odzyskany. Fig. 33 przedstawia przebieg procesu odzyskiwania pliku. Aby odzyskać plik, wykorzystywany jest komputer, który wykonuje program odzyskiwania pliku, i który ma dostęp do połączonych z komputerem, karty pamięci i urządzenia pamięci (dysku twardego, pamięci RAM lub tym podobnych urządzeń). Komputer jest odpowiednikiem funkcyjnym procesora sygnałowego DSP 30. Poniżej opisany zostanie proces odzyskiwania pliku wykorzystujący plik zarządzania informacją o ścieżce TRKLIST. Wszystkie bloki pamięci typu flash, których tablica alokacji plików FAT została zniszczona, są przeszukiwane w celu odnalezienia TL-0, będącej wartością (BLKID) znajdującą się na szczycie każdego bloku. Ponadto, wszystkie bloki są przeszukiwane w celu odnalezienia NM-1, będącej wartością (BLKID) umieszczoną na początku każdego bloku. Następnie, wszystkie bloki są przeszukiwane w celu odnalezienia wartości NM-2, będącej wartością (BLKID) umieszczoną na szczycie każdego bloku. Cała zawartość czterech bloków (pliku zarządzania informacją o ścieżce) jest zapamiętywana na przykład na twardym dysku komputera odzyskującego. Liczba wszystkich ścieżek jest uzyskiwana z danych znajdujących się po czwartym bajcie pliku zarządzania informacją o ścieżce. Z dwudziestego bajtu obszaru informacji o ścieżce TRKINF-001 otrzymujemy wartość obszaru CONNUM-001 pierwszego programu muzycznego, oraz wartość następnego obszaru P-001. Liczba 'części' jest uzyskana na podstawie wartości obszaru P-001. Uzyskano wartości obszarów PRTSIZE wszystkich 'części' ścieżki 1 obszaru PRTINF. Obliczona i otrzymana zostaje całkowita liczba bloków (klastrów) n. Po uzyskaniu pliku zarządzania informacją o ścieżce, proces przechodzi do etapu 102. W etapie 102, odszukiwany jest plik danych głosowych (plik danych ATRAC3). Wszystkie inne bloki niż pliku zarządzania są wyszukiwane w pamięci typu flash. Zbierane są bloki, których wartości szczytowe (BLKID) wynoszą A3D. Wyszukiwany jest blok, którego wartość obszaru CONNUM0 w 16 bajcie A3Dnnnn jest taka sama jak w obszarze CONNUM-001 pierwszego programu muzycznego w pliku zarządzania informacją o ścieżce, a których wartość obszaru BLOCK SERIAL która rozpoczyna się od bajta dwudziestego, wynosi 0. Po uzyskaniu pierwszego bloku, wyszukiwany jest blok (klaster) z taką samą wartością obszaru CONNUM co w pierwszym bloku, a którego wartość BLOCK SERIAL jest zwiększona o 1 (1=0+1). Po uzyskaniu drugiego bloku wyszukiwany jest blok z taką samą wartością obszaru CONNUM0 jak blok drugi, a którego wartość obszaru BLOCK SERIAL została zwiększona o 1 (2=1+1). Przez powtórzenie tego procesu, plik danych ATRAC3 jest przeszukiwany aż do chwili uzyskania n bloków (klastrów) ścieżki 1. Gdy wszystkie bloki (klastrty) zostały uzyskane, są one sukcesywnie zapisane na dysku twardym. Taki sam proces jak dla ścieżki 1 realizowany jest dla ścieżki 2. Innymi słowy, wyszukiwany jest blok, którego wartość obszaru CONNUM0 jest taka sama jak wartość obszaru CONNUM-002 pierwszego programu muzycznego w pliku zarządzania informacją o ścieżce, a wartość którego to obszaru BLOCK SERIAL zaczyna się w bajcie dwudziestym. Następnie, w ten sam sposób co w przypadku

PL 208 230 B1

29

ścieżki 1, plik danych ATRAC3 jest przeszukiwany aż do chwili wykrycia ostatniego bloku (klastra) n'. Po uzyskaniu wszystkich bloków (klastrów), są one sukcesywnie zapisywane na dysku twardym. Dzięki powtórzeniu opisanych powyżej procesów dla wszystkich ścieżek (liczba ścieżek: m), wszystkie dane ATARC3 są zapisywane na dysku twardym sterowanym przez komputer odzyskujący. W etapie 103, karta pamięci której tablica alokacji plików FAT została uszkodzona zostaje poddana reinicjalizacji, a przez to odtworzona zostaje tablica alokacji plików. W karcie pamięci utworzone zostają określone wcześniej katalogi. Następnie plik zarządzania informacją o ścieżce, oraz plik danych ATRAC3 dla m ścieżek są kopiowane z dysku twardego do karty pamięci. Tak więc, proces odzyskiwania jest zakończony. W pliku zarządzania i pliku danych, ważne parametry (w szczególności, kody w nagłówkach) mogą być zapisane potrójnie a nie podwójnie. Gdy dane są zapisane nadmiarowo, to wtedy te same dane mogą być zapisane w dowolnym miejscu tak długo, jak są one od siebie oddalone na odległość co najmniej jednej strony. Poniżej opisany zostaje proces sprawdzania autentyczności (integralności) (ang. forge-checking process) dla pliku danych według pierwszego przykładu wykonania. Pod kątem sfałszowania mogą zostać sprawdzone informacje różnego rodzaju, takie jak plik zarządzania odtwarzaniem PBLIST.MSF i plik danych ATRAC3, który zawiera skompresowane dane audio. Ponieważ plik zarządzania odtwarzaniem PBLIST.MSF zawiera informację zegarową S-YMDhms, to w celu uniemożliwienia użytkownikowi sfałszowania go, sprawdzana jest informacja zegarowa. Kod autentyczności (integralności) (ang. forge-check code) jest generowany poprzez obliczenie wartości skrótu z użyciem klucza zawartości (CK) pliku danych ATRAC3 wygenerowanego wraz z plikiem zarządzania odtwarzaniem z wykorzystaniem funkcji skrótu (funkcji hashującej, ang. hash function). Ponadto, ponieważ plik może zostać usunięty lub przesunięty, wartość klucza zawartości (CK) jest przechowywana w innym pliku. W przypadku gdy informacja zegarowa S-YMDhms nie została wprowadzona, wszystkie wartości skrótu (ang. hash values) są ustawiane na zero bez przeprowadzania jakichkolwiek obliczeń. Za każdym razem gdy informacja zegarowa S-YMDhms jest uaktualniana, to obliczane są wartości skrótu. Jeżeli chodzi o plik danych ATRAC3, który zawiera dane audio, to sprawdzeniu pod kątem sfałszowania (sprawdzeniu integralności) poddawane są: atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersja zabezpieczeń LT, MG (D) numer seryjny MG (D) SERIAL, liczba kumulacyjna zawartości CONNUM, data/czas YMDhms-S początku odtwarzania, data/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczba odtworzeń ścieżki CT, liczba dozwolonych odtworzeń ścieżki MT, kontrola kopiowaniem CC, liczba zezwoleń kopiowania cyfrowego z dużą prędkością CN (opcjonalne), uniemożliwiając użytkownikowi ich sfałszowanie. Kod autentyczności (integralności) jest generowany poprzez obliczenie wartości skrótu z użyciem klucza zawartości (CK) pliku danych ATRAC3 z wykorzystaniem funkcji skrótu (funkcji hashującej). Gdy plik danych ATRAC3 jest podzielony lub połączony, to wraz z nowym kluczem zawartości, obliczana jest wartość skrótu. Fig. 34 przedstawia schemat blokowy przedstawiający układ sprawdzający autentyczność (integralność) znajdujący się w cyfrowej nagrywarce według niniejszego wynalazku. Gdy karta pamięci zostaje podłączona do cyfrowej nagrywarki audio lub kiedy zostaje naciśnięty klawisz odtwarzania, podłączona karta pamięci zostaje uwierzytelniona. Po tym jak karta pamięci przeszła pomyślnie proces uwierzytelnienia, procesor sygnałowy DSP 30 powoduje odczytanie pliku zarządzania informacją o ścieżce TRKLIST.MSF z pamięci typu flash karty pamięci 40 i zapamiętanie go w pamięci S-RAM (statyczna pamięć RAM) 31. Na fig. 34, w pliku zarządzania informacją o ścieżce zawarty jest blok 70 wartości ograniczającej odtwarzanie. Plik zarządzania odtwarzaniem jest przechowywany w określonym obszarze pamięci typu flash karty pamięci 70. Blok 70 wartości ograniczającej odtwarzanie jest odczytywany z pamięci typu flash i umieszczany w pamięci SRAM 34 (36). Blok wartości ograniczającej odtwarzanie 70 jest sprawdzany pod kątem sfałszowania. Układ sprawdzający autentyczność (integralność) przedstawiony na fig. 34 zawiera: układ obliczania funkcji skrótu 71, układ szyfrujący 22, posiadający określone obszary pamięci (72 i 73), które są pamięcią nie ulotną, komparator 74, układ sterujący 75. Układ sterujący 75 posiada wewnętrzny zegar 76. Układ obliczania funkcji skrótu 71 komparator 74, oraz układ sterujący 75 są realizowane jako struktura sprzętowa bądź też w sposób programowy. Procedury programowe są realizowane przez procesor sygnałowy DSP 30. Komparator (74) i układ pamięci nieulotnej (72, 73) do przechowywania wartości skrótu są umieszczone w jednym sterowniku. Układ oblicza-

30

PL 208 230 B1

nia funkcji skrótu 71 może zostać zrealizowany na przykład jako urządzenie funkcjonalne, które wchodzi w skład układu szyfrującego 22. Układ sterujący 75 monitoruje stan przyłączenia karty pamięci 40. Gdy karta pamięci zostaje przyłączona do cyfrowego odtwarzacza audio, układ sterujący 75 określa, czy dozwolona jest operacja odtworzenia plików przechowywanych w karcie pamięci 40 czy też nie, w zależności od odpowiednich wcześniej ustalonych informacji zawartych w bloku 70 wartości ograniczającej odtwarzanie. Wcześniej ustalonymi wartościami są na przykład: atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersja zabezpieczeń LT, MG(D) numer seryjny MG (D) SERIAL, zawartość liczby kumulacyjnej CONNUM, data/czas YMDhms-S początku odtwarzania, data/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczba odtworzeń ścieżki CT, liczba dozwolonych odtworzeń ścieżki MT, kontrola kopiowania CC, liczba zezwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne), klucz zawartości (CK), i tym podobne dane. Jeżeli chodzi o datę/czas początku odtwarzania i datę/czas wygaśnięcia możliwości odtwarzania, w celu określenia, czy operacja odtwarzania jest dozwolona, są one porównywane z datą/czasem zegara wewnętrznego 76. Jeżeli chodzi o liczby odtworzeń ścieżki CT i liczby dozwolonych odtworzeń ścieżki MT, określa się, czy operacja odtworzenia możliwa jest do przeprowadzenia, czy też nie. Układ obliczania funkcji skrótu 71 oblicza wartości skrótu (ang. hash values) dla poszczególnych parametrów zawartych w bloku 70 wartości ograniczających odtwarzanie. Wartości skrótu są uzyskiwane dzięki zastosowaniu funkcji skrótu (funkcji hashującej, ang. hash function). Gdy blok 70 wartości ograniczających odtwarzanie jest sfałszowany, to wartości skrótu różnią się. Funkcja skrótu (funkcja hashująca) jest ogólnie zdefiniowana w ISO/IEC 10118-1, JIS X5057-1. Funkcja skrótu jest funkcją, dla której dwie różne wartości wejściowe nie mogą dać tej samej wartości wyjściowej. Obliczony wynik układu obliczania funkcji skrótu 71 jest podawany do układu szyfrującego 22. Informacja sterująca jest podawana z układu sterującego 75 do pamięci nie ulotnej układu szyfrującego 22. Wartości skrótu obliczone przed operacją odtwarzania są przechowywane w określonym obszarze 72 pamięci jako aktualne wartości skrótu. Z drugiej strony, wartości skrótu obliczone po poprzedniej operacji odtwarzania są przechowywane jako poprzednie wartości skrótu w określonym obszarze pamięci 73. Aktualne wartości skrótu (ang. current hash values) oraz poprzednie wartości skrótu (ang. former hash values), przechowywane w układzie szyfrującym 72, są odczytywane i dostarczane do komparatora 74. Wartości w uprzednio określonych obszarach (72 i 73) pamięci typu flash układu szyfrującego 22 nie mogą być odczytane z zewnątrz z poziomu cyfrowej nagrywarki audio. Tak więc, niemożliwy jest dostęp z zewnątrz do wartości skrótu, które są przechowywane w obszarach 72 i 73. Z zewnątrz możliwy jest do odczytania jedynie wynik komparatora 74. Obszar do którego nie ma dostępu z zewnątrz jest określany mianem obszarem odpornym na włamanie (ang. tamper resistent area). Komparator 74 porównuje aktualne wartości skrótu z poprzednimi wartościami skrótu. W zależności od tego, czy aktualne wartości skrótu są takie same jak poprzednie wartości skrótu, określa się, czy blok 70 wartości ograniczających odtwarzanie został sfałszowany czy też nie. Dane wyjściowe z komparatora 74 są podawane do układu sterującego 75. Układ sterujący 75 stwierdza, czy operacja odtwarzania jest dopuszczalna czy zabroniona, bazując na wartościach atrybutu ścieżki A, znacznika ograniczeń odtwarzania, wersji zabezpieczeń LT, MG (D) numeru seryjnego MG (D) SERIAL, zawartości liczby kumulacyjnej CONNUM, daty/czasu YMDhms-S początku odtwarzania, daty/czasu YMDhms-E wygaśnięcia możliwości odtwarzania, liczby odtworzeń ścieżki CT, liczby dozwolonych odtworzeń ścieżki MT, kontroli kopiowania CC, liczby pozwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne), klucza zawartości (CK) oraz danych wyjściowych z komparatora 74. Układ sterujący 75 generuje informację sterującą odpowiadającą określonemu wynikowi. Innymi słowy, gdy stwierdzono, że blok 70 wartości ograniczających odtwarzanie, nie został sfałszowany i operacja odtworzenia jest dozwolona, to układ sterujący 75 generuje informację sterującą, która umożliwia wykonania operacji odtworzenia. Z drugiej strony, gdy blok 70 wartości ograniczających odtwarzanie został sfałszowany, układ sterujący 75 generuje informację sterującą, która uniemożliwia wykonania operacji odtwarzania. Nawet jeśli blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, tzn. gdy operacja odtwarzania jest zabroniona ze względu na wartości: atrybutu ścieżki A, znacznika ograniczeń odtwarzania, wersji zabezpieczeń LT, MG(D) numeru seryjnego MG (D) SERIAL, zawartości liczby kumulacyjnej CONNUM, daty/czasu YMDhms-S początku odtwarzania, daty/czasu YMDhms-E wygaśnięcia możliwości odtwarzania, liczby odtworzeń ścieżki CT, liczby dozwolonych odtworzeń ścieżki MT, kon-

PL 208 230 B1

31

troli kopiowania CC, liczby pozwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne), klucza zawartości (CK), to operacja odtworzenia jest zabroniona. W opisanym powyżej przykładzie realizacji, opisany został proces sprawdzania autentyczności (integralności) dla pliku danych ATRAC3. Podobnie, taki proces sprawdzania autentyczności realizowany jest dla informacji zegarowej S-YMDhms, zawartej w pliku zarządzania odtwarzaniem PBLIST.MSF. Kod autentyczności (integralności) jest generowany poprzez obliczenie wartości skrótu z użyciem klucza zawartości (CK) (ang. contents key) pierwszego programu pliku danych ATRAC3 wygenerowanego wraz z plikiem zarządzania odtwarzaniem PBLIST.MSF, z wykorzystaniem funkcji skrótu (funkcji hashującej, ang. hash function). Proces obliczania w tym przykładzie jest realizowany w taki sam sposób, jak ten dla pliku danych ATARC3. Układ służący do prowadzenia tego procesu obliczania może być współdzielony z tym wykorzystywanym dla obliczeń dla pliku danych ATRAC3. Ponieważ plik może być usunięty i przesunięty, wartość klucza zawartości (CK) jest przechowywana w innym pliku. W przypadku gdy informacja zegarowa S-YMDhms nie została wprowadzona, wszystkie wartości skrótu są ustawiane na zero bez prowadzenia jakichkolwiek obliczeń. Wartości skrótu oblicza się za każdym razem, gdy informacja zegarowa S-YMDhms zostaje uaktualniona. Fig. 35 przedstawia proces, w którym terminal EMD (dystrybucji muzyki w postaci elektronicznej) (nie przedstawiony) pobiera do karty pamięci plik danych ATRAC3 w formacie według pierwszego przykładu realizacji. Ponadto, fig. 35 przedstawia proces, w którym terminal EMD ściąga do karty pamięci poprzez linię publiczną (linia ISDN, linia telefoniczna lub połączenie satelitarne) plik danych ATRAC3, który został skompresowany i zaszyfrowany. W tym przykładzie, założono iż do terminalu EMD podłączona jest karta pamięci (pamięć typu flasz), która nie była do tej pory używana mianowicie, czysta karta pamięci (pamięć typu flash). W etapie SP101, gdy czysta karta pamięci jest połączona z terminalem EMD, generowany jest plik zarządzania odtwarzaniem PBLIST.MSF. Ponadto, generowana jest informacja o dacie/czasie pobrania. Informacja o dacie/czasie pobrania jest zapisywana jako informacja zegarowa S-YMDhms w pliku zarządzania odtwarzaniem PBLIST.MSF. W etapie SP102, gdy plik danych ATRAC3, który został skompresowany i zaszyfrowany, jest odbierany poprzez linię publiczną (linię ISDN, linię telefoniczną, łącze satelitarne) i zapisywany jest w pamięci typu flash, generowany jest nagłówek atrybutów, taki jak pokazuje fig. 9, który zostaje dodany do pliku danych ATRAC3. W etapie SP103, układ obliczania funkcji skrótu 71 przy użyciu klucza zawartości (CK) zawartego w nagłówku atrybutów, wykorzystując funkcję skrótu (ang. hash function), oblicza wartość skrótu informacji zegarowej S-YMDhms pliku zarządzania odtwarzaniem PBLIST.MSF, i przechowuje obliczoną wartość skrótu w obszarze pamięci 73 układu szyfrującego 22. W etapie SP104, układ obliczania funkcji skrótu 71 przy użyciu klucza zawartości (CK) zawartego w nagłówku atrybutów, wykorzystując funkcję skrótu (ang. hash function), oblicza wartości skrótu dla informacji ograniczających odtwarzanie: (atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersję zabezpieczeń LT, MG(D) numer seryjny MG (D) SERIAL, zawartość liczby kumulacyjnej CONNUM, datę/czas YMDhms-S początku odtwarzania, datę/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczbę odtworzeń ścieżki CT, liczbę dozwolonych odtworzeń ścieżki MT, kontrolę kopiowania CC, liczbę zezwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne)), pliku danych ATRAC3. Obliczona wartość, uzyskana w układzie obliczania funkcji skrótu 71, jest przechowywana w obszarze pamięci 73 układu szyfrującego 22. Ponadto, układ obliczania funkcji skrótu 71, przy użyciu klucza zawartości (CK) zawartego w nagłówku atrybutów, wykorzystując funkcję skrótu (ang. hash function), oblicza, wartość skrótu dla numeru seryjnego MG (D) SERIAL i zawartość liczby kumulacyjnej CONNUM, wygenerowane wraz z plikiem atrybutów. Obliczona wartość, otrzymana w układzie obliczania funkcji skrótu 71 jest przechowywana w obszarze pamięci 73 układu szyfrującego 22. Ponieważ dane są zapisywane na czystej karcie pamięci, to w obszarze pamięci 72 nie zostały zapisane żadne dane. W etapie SP105 określa się, czy pamięć typu flash została odłączona od terminalu EMD, czy też nie. Gdy wynikiem badania z etapu SP105 jest wynik "Tak", to następuje przejście do etapu SP106. W etapie SP106, określa się, czy pamięć typu flash została ponownie podłączona, czy też nie. Gdy wynikiem badania z etapu SP105 jest wynik "Nie", to następuje przejście do etapu SP107. W etapie SP107 określa się, czy zasilanie terminala EMD zostało wyłączone, czy też nie.

32

PL 208 230 B1

Gdy wynikiem badania z etapu SP107 jest wynik "Tak", to następuje przejście do etapu SP108. W etapie SP108, następuje określenie, czy zasilanie zostało ponownie włączone, czy też nie. Gdy wynikiem badania z etapu SP106 jest wynik "Tak", lub wtedy gdy wynikiem badania z etapu SP108 jest wynik "Tak", to następuje przejście do etapu SP109. W etapie SP109, układ obliczania funkcji skrótu 71 przy użyciu klucza zawartości (CK) zawartego w nagłówku atrybutów, oblicza, wykorzystując funkcję skrótu (ang. hash function), wartość skrótu dla informacji zegarowej S-YMDhms pliku zarządzania odtwarzaniem PBLIST.MSF. Obliczona wartość uzyskana w układzie obliczania funkcji skrótu 71 jest zapisywana do obszaru pamięci 72 układu szyfrującego 22. W etapie SP110, określa się, czy aktualne wartości skrótu przechowywane w obszarze pamięci 72 układu szyfrującego 22 odpowiadają poprzednim wartościom skrótu przechowywanym w obszarze pamięci 73 układu szyfrującego 22. Gdy wynikiem badania w etapie SP110 jest wynik "Tak", to aktualne wartości skrótu przechowywane w obszarze pamięci 72 układu szyfrującego 22 są kopiowane w miejsce poprzednich wartości skrótu przechowywanych w obszarze pamięci 73 układu szyfrującego 22. W etapie SP111, określa się, czy wydane zostało polecenie odtwarzania czy też nie. Gdy wynikiem realizowanego w etapie SP111 sprawdzania jest wynik "Tak" a także gdy wynikiem realizowanego w etapie SP110 sprawdzania jest wynik, "Tak", to następuje wtedy przejście do etapu SP112. W etapie SP112, w odpowiedzi na polecenie odtworzenia, układ obliczania funkcji skrótu 71 przy użyciu klucza zawartości (CK) zawartego w nagłówku atrybutów, wykorzystując funkcję szyfrującą (ang. hash function), oblicza wartość skrótu dla pliku atrybutów dołączonego do pliku danych ATRAC3: atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersję zabezpieczeń LT, MG(D) numer seryjny MG (D) SERIAL, zawartość liczby kumulacyjnej CONNUM, datę/czas YMDhms-S początku odtwarzania, datę/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczbę odtworzeń ścieżki CT, liczbę dozwolonych odtworzeń ścieżki MT, nadzór nad kopiowaniem CC, liczbę zezwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne) pliku atrybutów dołączonego do pliku danych ATRAC3. Obliczona wartość uzyskana w układzie obliczania funkcji skrótu 71 jest przechowywana w obszarze pamięci 72 układu szyfrującego 22. Następnie następuje przejście do etapu SP113. W etapie SP113, realizowane jest sprawdzenie, czy wartości skrótu przechowywane w obszarze pamięci 72 układu szyfrującego 22, uzyskane z układu obliczania funkcji skrótu 71, odpowiadają wartościom skrótu przechowywanym w obszarze pamięci 73 układu szyfrującego 22, czy też nie. Komparator 74 porównuje aktualnie obliczone wartości skrótu z poprzednio obliczonymi wartościami skrótu. Gdy są one zgodne, to następuje określenie, czy w pliku atrybutów nie została sfałszowana którakolwiek z informacji reprezentowanych przez: atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersję zabezpieczeń LT, MG (D) numer seryjny MG (D) SERIAL, zawartość liczby kumulacyjnej CONNUM, datę/czas YMDhms-S początku odtwarzania, datę/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczbę odtworzeń ścieżki CT, liczbę dozwolonych odtworzeń ścieżki MT, kontrolę kopiowania CC, liczbę zezwoleń kopiowania cyfrowego z dużą prędkością CN (opcjonalne). W dalszej kolejności następuje przejście do etapu SP114. W etapie SP114, zezwala się na operację odtwarzania pliku ATRAC3. Gdy wynikiem realizowanego w etapie SP113 sprawdzania jest wynik, "Nie", to znaczy że stwierdzono, iż w pliku atrybutów została sfałszowana któraś z informacji: atrybut ścieżki A, znacznik ograniczeń odtwarzania, wersja zabezpieczeń LT, MG (D) numer seryjny MG (D) SERIAL, zawartość liczby kumulacyjnej CONNUM, data/czas YMDhms-S początku odtwarzania, data/czas YMDhms-E wygaśnięcia możliwości odtwarzania, liczba odtworzeń ścieżki CT, liczba dozwolonych odtworzeń ścieżki MT, kontrola kopiowania CC, liczba zezwoleń na kopiowanie cyfrowe z dużą prędkością CN (opcjonalne). W tym przypadku następuje przejście do etapu SP115. W etapie SP115 zabrania się operacji odtworzenia pliku danych ATRAC3. Po tym następuje przejście do etapu SP116. W etapie SP116 ustawiona zostaje flaga sfałszowania (ang. forging flag). Gdy plik danych ATRAC3 ma być odtwarzany, następuje sprawdzenie, czy określone wcześniej wartości (jakiekolwiek dodatnie liczby całkowite) zostały wpisane w obszarach: liczba odtworzeń ścieżki CT oraz liczba dozwolonych odtworzeń ścieżki MT. Gdy jakaś określona uprzednio wartość jest liczbą odtworzeń ścieżki CT, to jest ona zmniejszana o 1. Gdy liczba odtworzeń ścieżki CT wynosi zero, a określona liczba (dowolna dodatnia liczba całkowita) jest liczbą ustawioną w obszarze ilości odtworzeń MT, to ponieważ operacja odtwarzania została wykonana dozwoloną liczbę razy, to operacja odtworzenia pliku danych ATRAC3 zostaje zabroniona.

PL 208 230 B1

33

Następnie, szczegółowo opisany zostanie prawdziwy przykład pracy terminala EMD z formatem według drugiego przykładu wykonania. Fig. 36 przedstawia przykład procesu, w którym terminal EMD (dystrybucji muzyki w postaci elektronicznej) pobiera plik muzyczny posiadający ograniczenie odtwarzania do dwóch razy. Dla uproszczenia, założono iż data/czas wygaśnięcia praw do odtwarzania są nieograniczone. Terminal EMD posiada taki sam układ szyfrujący (nie przedstawiony) jak opisana powyżej cyfrowa nagrywarka audio. Układ szyfrujący uwierzytelnia przyłączoną kartę pamięci. Po tym jak przyłączona karta pamięci została pozytywnie uwierzytelniona, układ szyfrujący zapisuje zaszyfrowany plik audio (plik danych ATRAC3) do pamięci karty. Ponadto, terminal EMD dostarcza do cyfrowej nagrywarki audio, informacje ograniczające odtwarzanie pliku audio. Cyfrowa nagrywarka audio realizuje proces formatowania dla pliku audio i informacji ograniczającej odtwarzanie i nagrywa sformatowane dane w pamięci typu flash. Na fig. 36, gdy terminal EMD ściąga dane do cyfrowej nagrywarki audio, to realizuje on proces oznaczony przez S201. W etapie S1, cyfrowa nagrywarka audio odbiera dane z terminalu EMD, posiadające ograniczenie ilości odtworzeń i ustawia (MT=2) i (CT=2) w obszarze TRKINF pliku zarządzania informacją o ścieżce TRKLIST. Ponadto, układ obliczania funkcji skrótu 71, oblicza wartości skrótu dla kilku parametrów (blok 70 wartości ograniczających odtwarzanie) włączając MT, CT oraz identyfikator zawartości CONTENT ID. Wartości skrótu obliczone przez układ obliczania funkcji skrótu 71 są przechowywane w obszarze pamięci 73 układu szyfrującego 22. Następnie, gdy zostaje wyłączone zasilanie cyfrowej nagrywarki audio lub gdy karta pamięci 40 zostaje odłączona, to blok 70 wartości ograniczających odtwarzanie jest sprawdzany pod kątem sfałszowanych informacji. Jeśli jest to konieczne, blok 70 wartości ograniczających odtwarzanie może być sprawdzony pod kątem informacji fałszywych za każdym razem, gdy realizowana jest operacja odtwarzania. Po odłączeniu karty pamięci 40 i ponownym jej podłączeniu, kiedy to w etapie S3 wydane zostaje polecenie odtwarzania, następuje przejście do etapu S202. W etapie S4, układ obliczania funkcji skrótu 71 oblicza wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie. Wartości skrótu obliczone przez układ obliczania funkcji skrótu 71 są przechowywane jako aktualne wartości skrótu w obszarze pamięci 72 układu szyfrującego 22. Aktualne wartości skrótu i poprzednie wartości skrótu są odczytywane i dostarczane do komparatora 74. Komparator 74 porównuje aktualne wartości skrótu z poprzednimi wartościami skrótu. W zależności od tego, czy są one zgodne czy nie, komparator 74 określa, czy blok 70 wartości ograniczających odtwarzanie został sfałszowany, czy też nie. Komparator 74 dostarcza otrzymany wynik do układu sterującego 75. W zależności od danych wyjściowych z komparatora 74, układ sterujący 75 tworzy informację sterującą. Innymi słowy, gdy blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, tzn. gdy aktualne wartości szyfrujące są zgodne z poprzednimi wartościami szyfrującymi, to sfałszowana informacja nie zostaje wykryta. W tym przypadku gdy liczba odtworzeń CT nie wynosi zero (CT≠0) następuje przejście do etapu S5. W etapie S5, część sterująca tworzy informację sterującą, która ma sterować operacją odtwarzania i rozpoczyna operację odtwarzania. Po zakończeniu operacji odtwarzania, następuje przejście do etapu S6. W etapie S6, liczba odtworzeń CT zostaje zmniejszona, tak więc ustawiona zostaje wartość (CT=1). Ponadto obliczone zostają wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie i wpisane zostają do obszaru pamięci 73 jako poprzednie wartości skrótu (ang. former hash values). Po odłączeniu karty pamięci 40 i ponownym jej podłączeniu, gdy w etapie S7 wydane zostanie polecenie odtwarzania, następuje przejście do etapu S203. W etapie S203, realizowany jest ten sam proces co w etapie S202. Innymi słowy obliczane są wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie i porównywane są one z poprzednimi wartościami skrótu. Tak więc (w etapie S8) następuje sprawdzenie, czy blok 70 wartości ograniczających odtwarzanie został sfałszowany. Gdy blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, to realizowana jest (w etapie S9) operacja odtwarzania. Po tym, (w etapie S10) zmniejszona zostaje o 1 liczba odtworzeń, a więc ustawiona zostaje wartość (CT=0). Po ustawieniu liczby odtworzeń CT na zero (CT=0), niezależnie od tego czy blok 70 wartości ograniczających kopiowanie został sfałszowany czy nie, liczba odtworzeń CT ma większy priorytet. Tak więc operacja odtwarzania jest zabroniona. Na przykład, po tym jak karta pamięci 40 odłączona i odłączona ponownie, i gdy w etapie S11 wydano polecenie odtwarzania, to następuje przejście do etapu S12. W etapie S12, obliczone zostają wartości skrótu (ang. hash values) dla bloku 70 wartości ograniczających odtwarzanie, a następnie te aktualne wartości skrótu są porównywane z poprzednimi wartościami skrótu. Gdy aktualne wartości skrótu są zgodne z poprzednimi wartościami skrótu, to

34

PL 208 230 B1

operacja odtworzenia jest dopuszczona normalnie. Jednakże gdy liczba odtworzeń CT wynosi zero (CT=0), to operacja odtworzenia jest zabroniona. Tak więc w tym przypadku, układ sterujący 75 tworzy informację sterującą, która zabrania operacji odtworzenia (w etapie S13). Dodatkowo, użytkownik jest informowany przy pomocy głośnika/wyświetlacza, że ponieważ liczba odtworzeń CT odpowiada liczbie dozwolonych odtworzeń MT, to operacja odtworzenia jest niemożliwa. Dalej opisany zostanie przypadek, w którym sfałszowana została informacja TRKINF pliku zarządzania informacją o ścieżce TRKLIST. Na przykład, założono iż TRKINF została sfałszowana w etapie S11, i że liczba dopuszczalnych odtworzeń MT pliku muzycznego została sfałszowana na wartość 10 (MT=10). Gdy w etapie S22 wydane zostanie polecenie odtwarzania, to następuje przejście do etapu S23. W etapie S23 obliczane są wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie. Wartości skrótu są przechowywane jako aktualne wartości skrótu w obszarze pamięci 72. Komparator 74 określa, czy aktualne wartości skrótu odpowiadają poprzednim wartościom skrótu. W tym przypadku, ponieważ blok 70 wartości ograniczających odtwarzanie został sfałszowany, to te wartości sobie nie odpowiadają. Tak więc układ sterujący 75 tworzy informację sterującą, która zabrania wykonania operacji odtworzenia (w etapie S23). A zatem, w etapie S24 operacja odtworzenia nie jest realizowana. W tym przypadku, użytkownik jest informowany przy pomocy głośnika/wyświetlacza, że ponieważ blok 70 wartości ograniczających odtwarzanie został sfałszowany, to operacja odtworzenia jest zabroniona. Po tym wszystkim następuje przejście do etapu S25. W etapie S25, w określonym miejscu (na przykład w obszarze "ZAREZERWOWANY" pokazanym na fig. 27) TRKINF pliku TRKLIST wystawiona zostaje flaga sfałszowania (ang. forging flag). Obliczone i zapamiętane zostają wartości skrótu. W sytuacji, w której wystawiona jest flaga sfałszowania, nawet jeśli liczba dozwolonych odtworzeń MT jest ustawiona na 2 (MT=2), to operacja odtworzenia jest zabroniona (w etapie S26), ponieważ został wystawiony znacznik sfałszowania. Innymi słowy, przed odtworzeniem pliku danych ATRAC3, sprawdzana jest obecność flagi sfałszowania. Gdy wykryta zostanie flaga sfałszowania, układ sterujący 75 stwierdza, iż operacja odtworzenia jest zabroniona. Stąd też w tym przypadku układ sterujący 75 tworzy informację sterującą, która zabrania wykonania operacji odtwarzania. A zatem, operacja odtwarzania nie zostaje realizowana. W opisanym powyżej przykładzie, za każdym razem gdy realizowana jest operacja odtwarzania, liczba odtworzeń CT jest zmniejszana o 1. Gdy liczba odtworzeń CT będzie równa zero (CT=0) operacja odtworzenia zostaje zabroniona. Alternatywnie, za każdym razem gdy realizowana jest operacja odtworzenia, liczba odtworzeń CT może być zwiększana o 1. Gdy liczba odtworzeń CT będzie równa liczbie dopuszczalnych odtworzeń MT (MT=CT), to operacja odtworzenia może zostać zabroniona. Kolejnym alternatywnym sposobem jest zmniejszanie liczby dozwolonych odtworzeń MT o 1 bez potrzeby wykorzystania liczby odtworzeń CT. Dalej opisany zostanie przypadek, w którym w informacji TRKINF w pliku TRKLIST ustawiona została jedynie data/czas wygaśnięcia praw do odtwarzania (YMDhms-E) ścieżki, bez ustawiania liczby dozwolonych odtworzeń MT i liczby odtworzeń CT. Gdy plik posiadający datę/czas wygaśnięcia praw do jego odtwarzania zostanie pobrany z terminalu EMD do karty pamięci, to data/czas wygaśnięcia praw do odtwarzania jest zapisywana w pliku zarządzania informacjami o ścieżce karty pamięci. Obliczone zostają wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie, które zawierają datę/czas wygaśnięcia praw do odtwarzania. Wartości skrótu są zapisywane jako poprzednie wartości skrótu w obszarze pamięci 73 układu szyfrującego 22. Następnie, gdy zasilanie cyfrowej nagrywarki audio zostaje wyłączone, gdy karta pamięci 40 zostaje odłączona, lub jeśli jest to niezbędne, w przypadku gdy wydane zostanie polecenie odtwarzania, przed wykonaniem operacji odtwarzania, blok 70 wartości ograniczających odtwarzanie zostaje sprawdzony pod kątem sfałszowania. Ponadto, porównywana jest data/czas wewnętrznego zegara 76 układu sterującego 75 z datą/czasem wygaśnięcia praw do odtwarzania. Po odłączeniu karty pamięci 40 i po ponownym jej połączeniu, gdy wydane zostaje polecenie odtworzenia, obliczane są wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie. Komparator 74, porównuje aktualnie obliczone wartości skrótu z wartościami skrótu obliczonymi poprzednio. W zależności od tego, czy są one ze sobą zgodne czy też nie, komparator 74 stwierdza, czy blok 70 wartości ograniczających odtwarzanie został sfałszowany czy też nie. Ponadto, komparator 74 porównuje datę/czas wewnętrznego zegara 76 z datą/czasem wygaśnięcia praw

PL 208 230 B1

35

do odtwarzania. Gdy blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, a data/czas zegara wewnętrznego 76, w wyniku przeprowadzonego przez komparator 74 sprawdzenia, są wcześniejsze niż data /czas wygaśnięcia praw do odtwarzania, to wykonuje się operację odtwarzania. Z drugiej strony, gdy blok 70 wartości ograniczających odtwarzanie został sfałszowany, co ustalono w wyniku przeprowadzonego przez komparator 74, to operacja odtwarzania zostaje zabroniona. Ponadto w przypadku gdy data/czas wewnętrznego zegara 76 są późniejsze niż data/czas wygaśnięcia praw do odtwarzania, co ustala się w wyniku przeprowadzonego przez komparator 74, to nawet w przypadku gdy blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, to i tak w określonym miejscu (na przykład w obszarze "ZAREZERWOWANY" przedstawionym na fig. 27) TRKINF pliku TRKLIST, ustawiona zostaje flaga wygaśnięcia. Ponadto data/czas wygaśnięcia praw do odtwarzania są traktowane z wyższym priorytetem bez względu na to czy blok wartości ograniczających odtwarzanie został czy nie został sfałszowany. A zatem operacja odtwarzania zostaje zabroniona. Innymi słowy, zanim plik danych zostanie odtworzony, to porównane zostają aktualne wartości skrótu i poprzednie wartości skrótu. Gdy nie są one ze sobą zgodne, oznacza to iż blok 70 wartości ograniczających odtwarzanie został sfałszowany, a operacja odtwarzania zostaje zabroniona. Jednakże, nawet jeśli aktualne wartości skrótu są zgodnie z poprzednimi wartościami skrótu, dopóki data/czas wygaśnięcia praw do odtwarzania nie są prawidłowe, to operacja odtwarzania jest zabroniona. Gdy operacja odtwarzania jest zabroniona, to użytkownik jest informowany przy pomocy głośnika lub wyświetlacza stosownym komunikatem. Nawet jeśli data/czas wewnętrznego zegara 76 są późniejsze niż data/czas wygaśnięcia praw do odtwarzania, to wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie są i tak obliczane i zapisywane do pamięci, stanowiąc zabezpieczenie przed przyszłymi próbami sfałszowania. Poniżej opisany zostanie przypadek, w którym w TRKINF pliku TRKLIST ustawione zostały tylko data/czas rozpoczęcia odtwarzania (YMDhms-S) pliku muzycznego, a nie ustawione zostały liczba dozwolonych odtworzeń MT i liczba odtworzeń CT. Gdy plik muzyczny zostaje pobrany z terminalu EMD do karty pamięci, data/czas rozpoczęcia odtwarzania zostają zapisane w pliku zarządzania informacjami o ścieżce. Obliczane są wartości skrótu dla bloku 70 wartości ograniczających odtwarzanie, który zawiera datę/czas wygaśnięcia praw do odtwarzania i następnie podawane są one do układu szyfrującego 22. Wartości skrótu są zapamiętywane jako poprzednie wartości szyfrujące w obszarze pamięci 73 układu szyfrującego 22. Gdy zasilanie cyfrowej nagrywarki audio zostaje wyłączone, lub gdy karta pamięci 40 zostaje odłączona, przed realizacją operacji odtwarzania, następuje sprawdzenie, czy blok 70 zawierający wartości ograniczające odtwarzanie został sfałszowany czy też nie. Ponadto, następuje stwierdzenie, czy data/czas wewnętrznego zegara 76 układu sterującego 75 odpowiada dacie/czasowi rozpoczęcia odtwarzania. Na przykład, po odłączeniu i ponownym podłączeniu karty pamięci 40, gdy wydane zostaje polecenie odtwarzania, porównane zostają aktualne wartości skrótu i poprzednie wartości skrótu. W zależności od tego czy są one ze sobą zgodne, czy też nie, następuje stwierdzenie, czy blok 70 wartości ograniczających odtwarzanie został sfałszowany, czy też nie. Ponadto, porównuje się datę/czas wewnętrznego zegara 76 i datę/czas rozpoczęcia odtwarzania. Gdy blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, a wynikiem porównania jest stwierdzenie, że data/czas wewnętrznego zegara 76 są późniejsze niż data/czas rozpoczęcia odtwarzania, to zezwala się na operację odtwarzania. Z drugiej strony, operacja odtwarzania jest zabroniona wtedy, gdy blok 70 wartości ograniczających odtwarzanie został sfałszowany, tak jak ma to miejsce w opisanym powyżej przypadku. Ponadto, nawet jeśli blok 70 wartości ograniczających odtwarzanie nie został sfałszowany, a wynikiem porównania jest stwierdzenie, że data/czas zegara wewnętrznego 76 nie są późniejsze niż data/czas rozpoczęcia odtwarzania, to data/czas rozpoczęcia odtwarzania są traktowane z większym priorytetem w stosunku do informacji sfałszowanej. Tak więc operacja odtworzenia zostaje zabroniona. W opisanym powyżej przykładzie, aby wykryć informację sfałszowaną, obliczane są wartości skrótu poszczególnych parametrów (identyfikatora zawartości ID, liczby odtworzeń CT, liczby dopuszczalnych odtworzeń MT, daty/czasu wygaśnięcia praw do odtwarzania, oraz daty/czasu rozpoczęcia odtwarzania) zawartych w bloku wartości ograniczających odtwarzanie. Alternatywnie, takie wartości skrótu mogą być obliczane dla każdego pliku muzycznego. W opisanym powyżej przykładzie, niniejszy wynalazek został zastosowany w cyfrowej nagrywarce audio. Alternatywnie, niniejszy wynalazek może być zastosowany w innych urządzeniach i obsługiwać inne typy danych, takie jak dane wideo, dane audio, dane programu i tym podobne dane. Zgodnie z niniejszym wynalazku, obliczane są wartości skrótu dla informacji ograniczających odtwarzanie. Uzyskane wartości skrótu są przechowywane w obszarze pamięci, który nie może być

36

PL 208 230 B1

dostępny z zewnątrz urządzenia. W zależności od tego, czy wartości poprzednie skrótu i aktualne wartości skrótu są ze sobą zgodne, czy też nie, stwierdza się, czy informacje ograniczające odtwarzanie zostały sfałszowane czy też nie. Gdy część sterująca wykryje informację sfałszowaną, na podstawie danych wyjściowych ze środków porównujących, to część sterująca zabrania wykonania operacji odtworzenia. Tak więc zgodnie z niniejszym wynalazkiem, można bezpiecznie wykryć sfałszowaną informację. Gdy informacja sfałszowana zostaje wykryta, to operacja odtwarzania pliku posiadającego sfałszowaną informację może zostać zabroniona. Mimo iż niniejszy wynalazek został przedstawiony i opisany w odniesieniu do najkorzystniejszego przykładu realizacji, zrozumiałe jest dla osób o stosownym wykształceniu, iż możliwe jest dokonanie dalszych różnych zmian, pominięć i uzupełnień, dotyczących jego formy i szczegółów, bez naruszania zakresu prezentowanego wynalazku.

Zastrzeżenia patentowe 1. Sposób odtwarzania danych z nośnika zapisu typu odłączalna karta pamięci, zawierającego pamięć typu flash, gdzie pamięć flash podzielona jest logicznie na fizyczne bloki tworzące obszar danych i obszar zarządzania, przy czym w obszarze danych zapisane są pliki, a w obszarze zarządzania zapisane są informacje zarządzania lub pliki zarządzania do zarządzania odtwarzaniem tych plików, które są zapisane w obszarze danych, w którym to sposobie mierzy się w dopowiedzi na sygnał sterujący z procesora sygnałowego DSP, czy odłączalna karta pamięci jest aktualnie dołączona, uwierzytelnia się kartę w procesorze sygnałowym DSP, następnie odczytuje się z pamięci flash karty pamięci informacje zarządzania bądź plik zarządzania odpowiadający odtwarzanemu plikowi i zapisuje się go w pamięci SRAM, znamienny tym, że w odpowiedzi na każde polecenie odtwarzania pliku generuje się przy pomocy układu obliczania funkcji skrótu (71), z wykorzystaniem klucza, sygnał z aktualną wartością skrótu dla parametrów odtwarzania, a następnie podaje się je do układu szyfrującego DES (22) w celu zapisania ich w niedostępnym z zewnątrz bloku pamięci nieulotnej (72), która jest zawarta w układzie szyfrującym DES (22), oraz dalej przesyła się ten sygnał do komparatora (74), odczytuje się z drugiego, niedostępnego z zewnątrz bloku pamięci nieulotnej (73), poprzednią wartość skrótu dla parametrów odtwarzania i podaje się ją do komparatora (74), porównuje się w komparatorze (74) sygnały z aktualną i poprzednią wartością skrótu dla parametrów odtwarzania, następnie, na podstawie sygnału otrzymanego z komparatora (74), oraz na podstawie sygnału z co najmniej jednym z wielu indywidualnych parametrów z bloku (70) wartości ograniczających, zawartym w pliku zarządczym generuje się sygnał sterujący w układzie sterującym (75), zezwalający lub niezezwalający na odtwarzanie pliku odpowiadającego aktualnemu poleceniu odtwarzania. 2. Urządzenie odtwarzające dane z nośnika zapisu typu odłączalna karta pamięci z pamięcią typu flash, zawierające układ scalony dekodera audio (10) z interfejsem sygnału audio (11) oraz blokiem kodera/dekodera (12), układ scalony zabezpieczenia (20) z interfejsem (21), z układem szyfrowania DES (22) oraz z kolejką FIFO, procesor sygnałowy DSP (30) połączony z pamięcią typu SRAM (31) i dołączony do zewnętrznego sterownika poprzez szynę komunikacyjną (32), a zamocowana w mechanizmie dołączającym/odłączającym odłączalna karta pamięci (40) mieści pamięć typu flash (42), blok sterujący (41) oraz blok zabezpieczający (52) z układem szyfrowania/deszyfrowania DES (54), znamienne tym, że jest zaopatrzone w układ sprawdzania autentyczności, zawierający układ obliczania funkcji skrótu (71), do generowania, z wykorzystaniem klucza, sygnału z wartością skrótu dla parametrów odtwarzania podczas w odpowiedzi na każde polecenie odtwarzania, połączony z układem szyfrowania DES (22), obejmującym układ pamięci, zawierający bloki pamięci nielotnej (72, 73) do przechowywania wartości skrótu parametrów odtwarzania dla aktualnej oraz poprzedniej komendy odtwarzania, komparator (74), połączony z układem szyfrowania DES (22), do stwierdzania zgodności pomiędzy wartością skrótu parametrów odtwarzania dla aktualnej oraz poprzedniej komendy odtwarzania, połączony z komparatorem (74) układ sterujący (75) z zegarem wewnętrznym (76), zezwalający bądź niezezwalający, w oparciu o sygnał z komparatora (74) i drugi sygnał wejściowy z co najmniej jednym z wielu indywidualnych parametrów z bloku (70) wartości ograniczających, zawartym w pliku zarządczym, na odtworzenie pliku, odpowiadającego aktualnemu poleceniu odtworzenia. 3. Urządzenie według zastrz. 2, znamienne tym, że komparator (74) i układ pamięci nieulotnej (72, 73) do przechowywania wartości skrótu są umieszczone w jednym sterowniku.

PL 208 230 B1

Rysunki

37

38

PL 208 230 B1

PL 208 230 B1

39

40

PL 208 230 B1

PL 208 230 B1

41

42

PL 208 230 B1

PL 208 230 B1

43

44

PL 208 230 B1

PL 208 230 B1

45

46

PL 208 230 B1

PL 208 230 B1

47

48

PL 208 230 B1

PL 208 230 B1

49

50

PL 208 230 B1

PL 208 230 B1

51

52

PL 208 230 B1

PL 208 230 B1

53

54

PL 208 230 B1

PL 208 230 B1

55

56

PL 208 230 B1

PL 208 230 B1

57

58

PL 208 230 B1

PL 208 230 B1

59

60

PL 208 230 B1

PL 208 230 B1

61

62

PL 208 230 B1

PL 208 230 B1

63

64

PL 208 230 B1

PL 208 230 B1

65

66

PL 208 230 B1

PL 208 230 B1

67

68

PL 208 230 B1

Departament Wydawnictw UP RP Cena 7,38 zł (w tym 23% VAT)