Lektion
Die Theorie — Ein Gerät widerrufen, ohne allen anderen Bescheid zu sagen
Bei der Broadcast-Verschlüsselung erreicht derselbe verschlüsselte Film jedes Gerät, und die Lizenz bestimmt, wer ihn entschlüsseln darf. Ordne die Geräte als Blätter eines Binärbaums an und weise jedem Knoten einen eigenen Schlüssel zu. Ein Gerät erhält die Schlüssel auf seinem Pfad vom Blatt hinauf zur Wurzel. Das sind log₂N + 1 Stück. Ein Knoten steht somit für eine Gerätemenge, nämlich alle unter ihm liegenden Geräte. Der Lizenz-Header enthält den Filmschlüssel. Dieser wird für jede Menge in einer ausgewählten Kollektion einmal verschlüsselt. Diese Kollektion deckt alle legitimen Geräte ab und lässt die kompromittierten aus. Ein Gerät zu widerrufen bedeutet lediglich, eine andere Kollektion zu wählen.
Was die einzelnen Symbole bedeuten
N- die Gesamtzahl der Geräte, hier immer eine Zweierpotenz, damit der Baum vollständig besetzt ist
r- die Anzahl der Geräte, die kompromittiert sind und ausgeschlossen werden müssen
S(i,j)- die Teilmengendifferenz: jedes Gerät unter Knoten i, ausgenommen jene unter Knoten j. Genau dadurch kann ein einzelner Header-Eintrag ein fehlerhaftes Blatt überspringen
- Setzt voraus
- Dass ein widerrufenes Gerät nicht repariert, sondern nur ausgeschlossen werden kann. Außerdem vergisst es die einmal erhaltenen Schlüssel niemals. Genau das meint der Begriff „stateless receiver“ im Titel der Publikation. Aus diesem Grund ist die Lösung ein Überdeckungsproblem und kein Schlüsselaustausch. Niemand kann einem Gerät einen neuen Schlüssel senden. Das kompromittierte Gerät würde diesen nämlich ebenfalls empfangen.
- Versagt, wenn
- Wenn die kompromittierten Geräte gleichmäßig verteilt sind. Beide Verfahren arbeiten am effizientesten bei einem Block aufeinanderfolgender Seriennummern. Am schlechtesten schneiden sie ab, wenn jedes zweite Gerät betroffen ist. In diesem Fall ist kein Teilbaum sauber. Der Header benötigt dann für jedes verbleibende Gerät einen eigenen Eintrag. Das ist exakt der Preis, den du auch ganz ohne ein solches Verfahren zahlen würdest.
Aufgaben vollständig gelöst
-
Woher kommt die 2r − 1? Das Tool gibt sie in der vierten Zeile aus, und auf ihr ruht das gesamte Verfahren: Unabhängig von der Systemgröße braucht ein Subset-Difference-Header nie mehr als zwei Einträge pro kompromittiertem Gerät. Der Beweis ergibt sich durch einfaches Abzählen im Algorithmus und passt auf vier Zeilen.
-
Beginne mit dem Grundgerüst: der Vereinigung aller Pfade von der Wurzel zu den r kompromittierten Blättern. Jedes Blatt dieses Gerüsts ist ein kompromittiertes Gerät. Es beginnt also mit r Blättern, und die einzige Aufgabe des Algorithmus ist es, diese abzuarbeiten.
-
Eine Runde: Finde einen Knoten v, dessen zwei Äste jeweils genau ein verbleibendes Blatt enthalten. Gib für jeden Ast, der mehr als ein bloßes Blatt ist, ein Subset aus – also höchstens zwei Subsets. Reduziere dann alles unterhalb von v, sodass v selbst zu einem Blatt wird.
-
Zähle nach, was diese Runde mit den Blättern gemacht hat. Zwei sind verschwunden und eines ist dazugekommen. Das Gerüst ist somit ein Blatt kürzer, völlig unabhängig davon, wie der Baum aussah.
-
Es gibt also exakt r − 1 Runden, bis ein einziges Blatt übrig bleibt. Jede davon fügt höchstens 2 Subsets hinzu. Danach folgt ein letztes Subset für den Rest, der über diesem letzten Blatt verbleibt.
-
In dieser ganzen Überlegung kam die Baumtiefe nicht vor, und genau das ist der Punkt. Eine Runde kostet dasselbe, ob v nun drei oder dreißig Ebenen tiefer liegt.
-
Diese Schranke ist zudem fast überall unscharf, weil in jeder Runde beide Subsets ausgegeben werden müssten. Bei über 200 zufällig erzeugten Widerrufslisten in einem System mit 1.048.576 Geräten hat der durchschnittliche Header 1,2513 Schlüssel pro kompromittiertem Gerät bei 64 widerrufenen, 1,2520 bei 32 und 1,2580 bei 10. Die theoretische Grenze liegt bei 2. Der Richtwert für den Entwurf eines Lizenzformats liegt also bei etwa 1,25r, und der garantierte Wert ist 2r − 1.
Antwort
Höchstens 2 Subsets pro Runde, r − 1 Runden, plus 1 zum Abschluss: 2(r − 1) + 1 = 2r − 1. Nirgends taucht darin ein N auf. Die Complete-Subtree-Schranke für die gleichen Widerrufe lautet r·log₂(N/r). Genau diesen Term log₂(N/r) eliminiert die Subset-Difference – der Preis dafür sind ½log₂²N + ½log₂N + 1 Schlüssel in jedem Gerät anstelle von log₂N + 1.
-
-
Was kostet ein echter Media Key Block? Das Tool zählt einen Header in Einträgen, das ist die reine Mathematik. Eine Blu-ray Disc speichert ihn in Bytes, in einem Format, das jeder auslesen kann: Die AACS-Spezifikation legt exakt fest, wie eine Subset-Difference notiert wird. Die Größe des Headers auf einer echten Disc lässt sich also berechnen und nicht nur schätzen.
-
AACS identifiziert jede Subset-Difference über eine Ein-Byte-Maske u und eine Vier-Byte-Nummer
uv. Dazu kommen sechzehn Bytes an verschlüsselten Schlüsseldaten. In den eigenen Worten der Spezifikation: „Für jede Subset-Difference im Identifikationsteil gibt es 16 Bytes an Schlüsseldaten im Schlüsseldatenteil.“ Einundzwanzig Bytes pro Subset. Sonst absolut nichts. -
Die Überdeckung selbst berechnet das Tool. In der Praxis sind es etwa 1,25 Einträge pro widerrufenem Gerät, niemals mehr als zwei.
-
Ein Media Key Block benötigt also ungefähr sechsundzwanzig Bytes pro widerrufenem Gerät. Das ist die komplette Größenberechnung. Sie verläuft linear zur Anzahl der ausgesperrten Player, ohne dass die Systemgröße irgendwo eine Rolle spielt.
-
Stelle die beiden Verfahren bei identischen Widerrufen gegenüber. Die Subset-Difference-Spalte ist das, was tatsächlich ausgeliefert wird. Die Complete-Subtree-Spalte zeigt, was dieselben Widerrufe unter dem einfacheren Verfahren gekostet hätten.
-
In der zweiten Spalte kommt die Baumhöhe ins Spiel. Bei einem System mit 2³¹ Geräten – das Maximum, das eine 32-Bit-uv-Nummer adressieren kann – kostet der Widerruf von tausend Playern etwa 21.000 Complete-Subtree-Einträge gegenüber 1.250 Subset-Difference-Einträgen. Denn log₂(2³¹/1000) ist ungefähr 21, und jedes widerrufene Gerät zahlt diesen Preis.
Antwort
Ein Media Key Block erfordert grob 26 Bytes pro widerrufenem Gerät: 2,6 kB für hundert Player, 26 kB für tausend, 262 kB für zehntausend. Selbst im schlechtesten von der Schranke erlaubten Fall sind es nie mehr als 42 kB, 420 kB und 4,2 MB. Complete Subtree bräuchte 442 kB, wo Subset Difference mit 26 kB auskommt. Daraus folgen zwei Dinge, die das Tool nicht ausgibt. Die Disc wird einmal gepresst und zwanzig Jahre lang gelesen. Ein MKB wächst folglich immer nur. Deshalb ist der Identifikationsteil fünf Bytes lang und keine vollständige Knotenadresse. Aus demselben Grund lagert das Format die Schlüsseldaten in einen separaten Block aus, statt sie zu verschachteln. Und ein 26 kB großer Header fällt auf einer 25 GB großen Disc kaum ins Gewicht. Subset Difference gewann nie wegen der Bytes. Es siegte, weil die Alternative mit der Systemgröße wächst und eine heute gepresste Disc auch die Geräte des Jahres 2040 bedienen muss.
-
Lernpfad
Einen Stream schützen: Ein Gerät widerrufen, dann herausfinden, welches
Quellen (3)
- Both schemes on this page, the two bounds, and the algorithm the worked problem follows: D. Naor, M. Naor and J. Lotspiech, "Revocation and Tracing Schemes for Stateless Receivers." Advances in Cryptology — CRYPTO 2001, LNCS 2139, pp. 41–62.
- Why this scheme rather than a nicer one: the Media Key Block on a Blu-ray disc is a subset-difference tree, and the specification says so in as many words. AACS LA, Advanced Access Content System (AACS): Introduction and Common Cryptographic Elements, Revision 0.91, 17 February 2006, §3.2.1 "Subset-Difference Tree Overview".
- The problem before either scheme existed, and the source of the term: A. Fiat and M. Naor, "Broadcast Encryption." Advances in Cryptology — CRYPTO '93, LNCS 773, pp. 480–491.