-
ALLGEMEINER
STAND DER TECHNIK
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zum Erzeugen eines kryptographischen Schlüssels. Eine Einwegfunktion
und Primalitätstest
wird dazu verwendet, ein Modul bereitzustellen, das höchst sicher
ist. Beispielsweise kann ein Modul zur Verwendung mit dem Rivest-Shamir- und Adleman-(RSA)-Verschlüsselungsalgorithmus
für einen öffentlichen
Schlüssel
bereitgestellt sein. Die Erfindung kann z.B. beim Verschlüsseln von Daten
verwendet werden, die über
ein Breitbandkommunikationsnetz wie etwa ein Satellitenverteilungsnetz
oder ein Kabelfernsehnetz an eine Gesamtheit von Decodierern kommuniziert
wird, oder zur Verwendung mit einer beliebigen anderen Sicherheitseinrichtung.
-
Das
Dokument MENEZES, OORSCHOT, VANSTONE: „HANDBOOK OF APPLIED CRYPTOGRAPHY" HANDBOOK OF APPLIED
CRYPTOGRAPHY, CRC PRESS SERIES ON DISCRETE MATHEMATICES AND ITS
APPLICATIONS, BOCA RATON, FL, CRC PRESS, USA, 1997, XP002178884 ISBN:
0-8493-8523-7 behandelt Zufallsbitgeneratoren auf Hardware- und
Softwarebasis. Außerdem werden
Entzerrungstechniken beschrieben.
-
Das
Dokument „LOOK-AHEAD
PROCESSING FOR HIGH SPEED RSA CRYPTOGRAPHIC KEY PAIR GENERATION" IBM TECHNICAL DISCLOSURE
BULLETIN, IBM CORP. NEW YORK, USA, Bd. 37, Nr. 1, 1994, Seiten 115–118, XP000428715
ISSN: 0018-8689 offenbart ein Hochleistungsverfahren zum Erzeugen
von kryptographischen Schlüsselpaaren
für den
RSA-Verschlüsselungsalgorithmus
für öffentliche
Schlüssel.
-
Aus
EP 0 534 420 A2 sind
ein Datenverarbeitungssystem, ein Programm und ein Verfahren zum Verwalten
eines kryptographischen Systems mit öffentlichem Schlüssel bekannt,
das einen Generator für
ein Paar öffentlicher
Schlüssel/privater
Schlüssel enthält. Das
Verfahren beinhaltet den Schritt des Erzeugens eines ersten Paars öffentlicher
Schlüssel/privater
Schlüssel,
wobei ein einem Benutzer bekannter erster Keimwert verwendet wird,
wobei der erste Keimwert aus einer Passphrase erzeugt wird. Eine
erste Zufallszahl wird unter Verwendung des ersten Keimwerts erzeugt
und auf das Erzeugen des ersten Schlüsselpaars angewendet. Das Verfahren erzeugt
dann einen ersten Steuervektor, der eine erste Verwendung des ersten
Paars öffentlicher
Schlüssel/privater
Schlüssel
definiert. Es wird dann fortgesetzt mit einem Schritt des Erzeugens
eines zweiten Paars öffentlicher
Schlüssel/privater
Schlüssel
unter Verwendung eines dem Benutzer unbekannten zweiten Keimwerts,
wobei der zweite Keimwert eine echte Zufallszahl ist. Die zweite
Zufallszahl wird unter Verwendung des zweiten Keimwerts in einem
Pseudozufallszahlengenerator erzeugt und auf das Erzeugen des zweiten
Schlüsselpaars
angewendet. Das Verfahren erzeugt einen zweiten Steuervektor, der eine
zweite Verwendung des zweiten Paars öffentlicher Schlüssel/privater
Schlüssel
definiert. Das Verfahren steuert dann die Verwendung des ersten Paars öffentlicher
Schlüssel/privater
Schlüssel
unter Verwendung des ersten Steuervektors und steuert die Verwendung
des zweiten Paars öffentlicher Schlüssel/privater
Schlüssel
mit einem zweiten Steuervektor.
-
Video-,
Audio- und andere Daten, die in einem Breitbandkommunikationsnetz
an eine Gesamtheit von Decodierern kommuniziert werden, werden unter
Verwendung eines oder mehrerer kryptographischer Schlüssel am
Kopfende verschlüsselt,
um eine Zugangskontrolle zu den Daten zu liefern. Keimdaten werden
erzeugt und in adressierbare Empfänger geladen, und zwar zum
Zeitpunkt ihrer Herstellung. Dies gestattet, dass die später Meldungen
verarbeiten, die diese kryptographischen Schlüssel enthalten, nachdem sie
in einem Kommunikationsnetz verwendet worden sind. Ein feindlicher
Angreifer könnte jedoch
in der Lage sein, die Keimdaten durch verschiedene bekannte Angriffstechniken
wie etwa Chipentkapselung, Probing und dergleichen zu erhalten. Wenn
ein Angreifer diese Keiminformationen erst einmal besitzt, könnte er
potentiell alle an diesen Empfänger
gesendeten Meldungen entschlüsseln, wodurch
dieser Empfänger
permanent oder für
eine lange Periode kompromittiert wird.
-
Ein
Weg, um dieses Problem zum Zeitpunkt der Herstellung des Empfängers zu überwinden,
besteht darin, dass der Empfänger
einen Vorkeim unter Verwendung einer vorbestimmten Funktion verarbeitet,
um den Keim abzuleiten. Selbst wenn der Vorkeim später von
einem Angreifer entdeckt wird, kann der Angreifer dann den Keim
nicht erhalten, sofern er nicht die vorbestimmte Funktion kennt.
-
Diese
vorbestimmte Funktion kann eine Einwegfunktion sein. Eine Einwegfunktion
ist im Wesentlichen irreversibel, so dass eingegebene Daten, die durch
die Einwegfunktion verarbeitet werden, von einer nichtautorisierten
Person nicht wiederhergestellt werden können. Eine Einwegfunktion kann
eine Distribution-Hash-Funktion umfassen, bei der eingegebene Daten
unter einem oder mehreren Verschlüsselungsalgorithmen verschlüsselt werden,
und die resultierenden verschlüsselten
Daten werden, beispielsweise unter Verwendung einer Exclusive-Or-(XOR)-Funktion
mit den eingegebenen Daten gestreut. Bei einem gegebenen Keim ist
es somit im Wesentlichen unmöglich,
einen Vorkeim, der über eine
Einwegfunktion verarbeitet wird, um einen Keim zu erhalten, ohne
Kenntnis der Einwegfunktion in einem Trial-And-Error-Angriff wiederherzustellen.
-
Im
Allgemeinen muss sich ein Angreifer, der gespeicherte Informationen
z.B. aus einem Chip liest anstelle der Vorkeimlademeldung, mit der
die gespeicherten Informationen erzeugt werden, sich rückwärts durch
eine Einwegfunktion (OWF – one-way function)
durcharbeiten, um die Vorkeimlademeldung wiederherzustellen. Da
der Angreifer diese Einwegfunktionumkehrung nicht vornehmen kann
und da er nicht die ursprüngliche
Vorkeimlademeldung besitzt, mit der Vorkeime in den Chip geladen
werden, kann er keine gültigen
Keime in den Chip in einem Empfänger
laden. Zu dieser Verwendung einer OWF kommt es im Altgemeinen nur
in einer Fabrik, in der Decodierer produziert werden, nicht in einem
Netz. Somit empfangen Decodierer in dem Feld üblicherweise keine Meldungen,
die diese Technik verwenden.
-
Die
obige Technik, dem Decodierer einen Vorkeim zu liefern, ist angemessen,
wenn der Vorkeim eine Bitkette oder ein Schlüssel ist, der beispielsweise
dem DES (Data Encryption Standard – Datenverschlüsselungsstandard)
entspricht. Ein gültiger
DES-Schlüssel
umfasst im Wesentlichen jede Zufallskette aus 56 Bits. Dementsprechend
führt ein DES-Schlüssel, der über eine
Einwegfunktion verarbeitet wird, zu ausgegebenen Daten, die als
ein weiterer DES-Schlüssel
verwendet werden können. Während der
DES-Schlüssel
in vielen Fällen
angemessene Sicherheit liefern kann, können andere Sicherheitseigenschaften,
die mit einer Verschlüsselung
eines öffentlichen
Schlüssels
assoziiert sind, mit einem RSA-Schlüssel erzielt werden.
-
Das
RSA Public Key Cryptosystem ist ein bei der Kryptographie mit öffentlichem
Schlüssel
weit verwendeter Standard. Bei diesem System wird eine Meldung Y
verschlüsselt,
um den Schlüsseltext
X = YK2 (mod N) zu erhalten. Ein öffentlicher
Schlüssel
ist definiert durch (K2, N), wobei K2 der öffentliche Exponent und das
Modul N das Produkt aus zwei großen Primzahlen P und Q ist.
Zusätzlich
ist K2 < N und K2
ist relativ prim zum Eulen-Totient φ = (p – 1)·(Q – 1). Zwei ganze Zahlen sind
relativ prim zueinander, wenn sie keine Primfaktoren gemeinsam haben.
Das heißt,
ihr einziger gemeinsamer Faktor ist Eins. Die Sicherheit des Systems
basiert auf der Schwierigkeit, N in zwei Komponenten P und Q zu
zerlegen. Bei der Entschlüsselungsoperation
wird die Meldung Y aus dem Schlüsseltext
X als Y = XK1 (mod N) wiederhergestellt, wobei K1 der private Schlüssel oder
der private Exponent ist und K2-1 = K1 mod (φ).
-
Es
ist höchst
unwahrscheinlich, dass ein gültiger
RSA-Schlüssel
K2, der über
eine Einwegfunktion verarbeitet wird, zu einem anderen gültigen RSA-Schlüssel wird,
da das Auftreten von Primzahlen bei großen Zahlen, z.B. Ketten aus
56 Bit und länger,
immer unwahrscheinlicher wird.
-
1 zeigt
eine bekannte asymptotische Beziehung zwischen Bitlänge und
dem Prozentsatz an Zahlen, die prim sind. Insbesondere erklärt der Primzahlsatz,
dass bei einem Wert X die Anzahl an Primzahlen kleiner als X asymptotisch
gleich X dividiert durch den Logarithmus von X ist. Eine x-Achse 110 zeigt
die Anzahl von Bits in einer Primzahl, während eine y-Achse 120 den
Prozentsatz an Zahlen, die prim sind. Beispielsweise sind bei einer
Binärzahl mit
56 Bit nur etwa 0,025 % aller Zahlen prim. Wie durch die Kurve 130 gezeigt,
nimmt dieser Ateinl mit der Bitlänge
ab. Die Wahrscheinlichkeit, dass eine zufällig erzeugte Zahl prim ist,
folgt diesem gleichen Anteil, auch wenn bei einer derartigen Zufallserzeugung
eine Einwegfunktion verwendet wird. Es ist sehr unwahrscheinlich,
dass die Verarbeitung eines RSA-Schlüssels mit einer Einwegfunktion
einen gültigen
RSA-Schlüssel
erzeugen würde.
Da die Ausgabe einer Einwegfunktion am besten als eine Zufallszahl
modelliert wird, ist es analog unwahrscheinlich, dass eine Ausgabe
irgendeiner unwahrscheinlichen mathematischen Randbedingung genügen würde, wobei
die Primalität
nur ein Beispiel ist.
-
Es
wäre dementsprechend
wünschenswert, ein
rechnerisch effizientes System zum Erzeugen mathematisch eingeschränkter Schlüssel, wie
etwa gültiger
RSA-Schlüssel,
unter Verwendung einer Einwegfunktion bereitzustellen. Ein derartiges
System sollte einen höchst
sicheren Verschlüsselungsschlüssel, z.B.
einen Vorkeim liefern, der sowohl durch das ausgewählte Verschlüsselungssystem
als auch eine Einwegfunktion geschützt ist.
-
Es
wäre weiterhin
wünschenswert,
ein Kommunikationsnetz mit einem Übertragungsort oder einem Kopfende
bereitzustellen, wo mathematisch eingeschränkte Werte wie etwa ein öffentlicher
RSA-Exponent K2 und Modul N = P·Q unter Verwendung der gleichen
oder anderer Einwegfunktionen erzeugt werden und wo Daten wie etwa
Video-, Audio- und andere
Daten gemäß dem RSA-System
unter K2 und N verschlüsselt
werden.
-
Es
wäre wünschenswert,
eine Vorkeimlademeldung mit Vorkeimdaten bereitzustellen, die ebenfalls über eine
Einwegfunktion in einem Chip (das heißt integrierten Schaltung)
an einem Empfänger oder
Decodierer zur Verwendung beim Ableiten von K1 und N verarbeitet
werden, um die verschlüsselten Video-
oder anderen Daten zu entschlüsseln.
-
Die
vorliegende Erfindung stellt ein System mit den obigen und weiteren
Vorteilen bereit.
-
KURZE DARSTELLUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zum Erzeugen eines mathematisch eingeschränkten Schlüssels wie etwa eines kryptographischen
RSA-Schlüssels
oder Moduls, wobei eine Einwegfunktion verwendet wird. Dieser erzeugte
Schlüssel
erfüllt
eine mathematische Randbedingung wie etwa Primheit.
-
Vorkeimdaten
werden an einem Codierer zum Zeitpunkt der Herstellung unter Verwendung
einer Einwegfunktion verarbeitet und getestet, um zu bestimmen,
ob die verarbeiteten Daten einige mathematisch eingeschränkte Bedingungen
erfüllen,
wie etwa, eine Primzahl zu sein. Falls dies der Fall ist, wird die
getestete Zahl beispielsweise zum Bilden eines RSA-Moduls N und
eines kryptographischen Schlüssels
K2 verwendet. Daten Y wie etwa Video-, Audio- oder andere Daten
in einem Kabel- oder Satellitenfernsehnetz (als Beispiel) werden
danach verschlüsselt,
um die verschlüsselten
Daten X = YK2 (mod N) zu erhalten, und über das
Netz zu einer Gesamtheit von Decodierern übertragen.
-
Außerdem weisen
spezifische autorisierte Decodierer Chips auf, die die RSA-Schlüssel speichern,
die sich aus der Einwegfunktionsverarbeitung von Vorkeimdaten durch
diesen Decodierer zum Zeitpunkt der Decodiererherstellung ergeben.
Die verschlüsselten
Daten X werden unter Verwendung dieser RSA-Schlüssel entschlüsselt, die
freien Daten Y = Xk1 (mod N) wiederherzustellen.
-
Bevorzugt
werden die Vorkeimdaten erhalten durch Unterteilen einer Zufallsbitkette
in mehrere Segmente, dann unabhängiges
Verarbeiten jedes Segments mit einer Einwegfunktion, um entsprechende
verarbeitete Segmente zu erhalten. Die verarbeiteten Segmente werden
zusammengesetzt, um eine verarbeitete Bitkette zu erhalten, die
dann als Ganges auf die mathematisch eingeschränkte Bedingung wie etwa Primheit
getestet wird.
-
Allgemein
ist die vorliegende Erfindung nicht spezifisch für RAS, sondern lässt sich überall dort
anwenden, wo ein mathematisch eingeschränkter Schlüssel erzeugt werden muss. RSA-Schlüssel, die auf
Primzahlen basieren, sind nur ein Beispiel für einen mathematisch eingeschränkten Schlüssel. Andere
Nebenbedingungen willkürlicher
Art wie etwa Elliptische-Kurve-Kryptosysteme sollen einbegriffen sein.
-
Ein
hier dargestelltes spezifisches Codierverfahren zum Erzeugen eines
kryptographischen Schlüssels
K2 enthält
den Schritt des Erzeugens eines ersten Satzes Zufallswerte vor-P
wie etwa eine 512-Bit-Bitkette. Mindestens ein Anteil der Werte vor-P
werden mit einer ersten Einwegfunktion verarbeitet, um einen entsprechenden
Wert P zu erhalten. Bevorzugt enthält vor-P Sätze von Werten (z.B. Bits), die
durch die Einwegfunktion individuell verarbeitet werden. Der Wert
P wird daraufhin getestet, ob er einer mathematischen Randbedingung
wie etwa Primheit genügt.
Falls P die Nebenbedingung nicht erfüllt, werden die obigen Schritte
wiederholt, um einen neuen Wert P zu bilden, bis die Randbedingung
erfüllt
ist. Der Schlüssel
K2 wird schließlich
als Funktion des Werts P und anderer Variablen P und K1 gebildet.
-
Insbesondere
kann ein zweiter Satz Zufallswerte vor-Q analog zu den vor-P-Werten verarbeitet werden,
um einen Wert Q abzuleiten, der ebenfalls der mathematischen Randbedingung
genügt.
Ein Modul N = PQ und der Euler-Totient φ = (P – 1)(Q – 1) werden dann gebildet.
-
Als
Nächstes
wird ein dritter Satz Zufallswerte vor-K1 unter Verwendung einer
Einwegfunktion verarbeitet, um einen Wert K1 abzuleiten. Es wird dann
bestimmt, ob K1 gegenüber φ relativ
prim ist. Diese Bedingung ist erfüllt, wenn der Euklidsche Algorithmus
anzeigt, dass der größte gemeinsame
Teiler (ggT) von K1 und φ Eins
ist. Wenn die Bedingung nicht erfüllt ist, werden zusätzliche
Werte von K1 gebildet, bis die Bedingung erfüllt ist.
-
Der
Schlüssel
K2 kann dann unter Verwendung eines Euklidschen erweiterten Algorithmus, z.B.
K2 = K1-1 (mod φ)
gebildet werden. Daten Y können
unter K2 und N verschlüsselt
werden, wobei z.B. X = YK3 (mod N) verwendet
wird. Beispielsweise können
Daten wie etwa Fernsehprogrammierung bei einem Codierer verschlüsselt werden.
-
Ebenfalls
wird gemäß der vorliegenden
Erfindung ein Decodierverfahren zum Erzeugen eines kryptographischen
Schlüssels
K1 bereitgestellt. Die Werte vor-P, vor-Q und vor-K1, die schließlich beim Codierer
zum Ableiten von K2 verwendet wurden, werden an einen Decodierer
geliefert. Am Decodierer werden vor-P und vor-Q mit den zuvor verwendeten Einwegfunktionen
verarbeitet, um P bzw. Q zu bilden. Das Modul N = PQ wird dann wie
zuvor gebildet.
-
Der
dritte Satz Zufallswerte vor-K1, die bei dem Codierer verwendet
wurden, werden unter Verwendung der gleichen Einwegfunktion zum
Ableiten des Werts K1 verarbeitet. Die verschlüsselten Daten können dann über K1 und
N entschlüsselt
werden. Beispielsweise können
die Daten X unter Verwendung von Y = XK1 (mod
N) entschlüsselt
werden.
-
Die
verschlüsselte
Meldung X kann vom Codierer über
ein Breitbandkommunikationsnetz mit einer Gesamtheit von Decodierern
P, vor-Q zum Decodierer übertragen
werden, und von-K1 kann als eine Keim-Lademeldung lokal in einem Chip beim
Decodierer gespeichert werden, z.B. intern oder in einer Smartcard.
-
Es
werden auch eine entsprechende Codiervorrichtung und Decodiervorrichtung
vorgestellt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 veranschaulicht
den Primzahlsatz.
-
2 veranschaulicht
ein Breitbandkommunikationsnetz mit einem Codierer und Decodierer
gemäß der vorliegenden
Erfindung.
-
3 veranschaulicht
einen Codierer gemäß der vorliegenden
Erfindung.
-
4(a) veranschaulicht den ersten Teil eines Codierverfahrens
gemäß der vorliegenden
Erfindung.
-
4(b) veranschaulicht den zweiten Teil des Codierverfahrens
von 4(a) gemäß der vorliegenden Erfindung.
-
5 veranschaulicht
einen Decodierer gemäß der vorliegenden
Erfindung.
-
6 veranschaulicht
ein Decodierverfahren gemäß der vorliegenden
Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zum Erzeugen eines mathematisch eingeschränkten Schlüssels wie etwa eines kryptographischen
RSA-Schlüssels
und -Moduls unter Verwendung einer Einwegfunktion und Testen auf die
mathematisch eingeschränkte
Bedingung wie etwa Primheit.
-
Ein
CA-(conditional access – bedingter
Zugang)-System wie etwa ein Breitbandkabelfernseh- oder Satellitenverteilnetz
liefert Informationen in Meldungen an vertrauenswürdige Komponenten,
die diese Informationen speichern. Angreifer eines CA-Systems können manchmal
vertrauenswürdige
Komponenten illegal klonen oder kopieren durch Entfernen und erneutes
Unterbreiten von Informationen unter Verwendung der normalen Meldungsliefersyntax
und -verarbeitung dieser Komponente. Es ist deshalb wünschenswert,
dass die gespeicherten Informationen in einer Form vorliegen, die
ihre Wiederverwendung als eine legitime Informationsliefermeldung
verhindert. Dieses Problem wird als ein „Informationsliefer- und -wiederverwendungsproblem" bezeichnet.
-
Eine
typische Einwegfunktion (OWF) weist eine oder mehrere Eingaben IN1,
IN2, ... und eine Ausgabe OUT auf. Ihre wesentlichen Einwegcharakteristiken
sind:
- • wenn
alle Eingaben IN1, IN2, ..., gegeben sind, kann OUT leicht berechnet
werden; aber
- • wenn
OUT und mindestens eine fehlende Eingabe IN1 oder IN2 oder ... gegeben
ist, ist es rechnerisch nicht machbar, die fehlende Eingabe zu berechnen.
-
Eine
rechnerische Undurchführbarkeit
bedeutet, dass kein Verfahren bekannt ist, das besser ist, als einfach
alle möglichen
Werte der fehlenden Variable auszuprobieren, um den korrekten zu
bestimmen.
-
Bei
der vorliegenden Erfindung kann eine einfache OWF mit einer Eingabe
und einer Ausgabe verwendet werden, wobei sich OUT = OWF (IN) leicht berechnen
lässt,
aber IN = OWF (OUT)–1 nicht.
-
Bei
Breitbandkommunikationsnetzen wie etwa Kabelfernsehnetzen werden
Filme, Sportereignisse und anderes Video-, Audio- und Datenmaterial („Dienste") an autorisierte
Decodierer in einer Gesamtheit von Decodierern auf der Basis der
Zahlung der Gebühr
geliefert. Um zu verhindern, dass unautorisierte Personen einen
Dienst betrachten oder auf andere Weise verwenden, wird der Dienst
unter einem oder mehreren kryptographischen Schlüsseln verschlüsselt. Keim-
oder Vorkeimdaten (z.B. eine Keimlademeldung) wird an autorisierten
Decodierern zur Verwendung beim Erzeugen der kryptographischen Schlüssel zum
Entschlüsseln
des verschlüsselten
Dienstes vorgesehen. Beispielsweise können die Keim- oder Vorkeimdaten
in Chips innerhalb des Decodierers oder in Smartcards gespeichert
werden. Dementsprechend handelt es sich bei den empfindlichsten
Informationen in vielen Decodierern um die Keime. Keime umfassen
zusammen mit der öffentlichen
Einheitenadresse, die eine eindeutige Kennung für jeden Decodierer darstellt,
die eindeutige und unveränderliche
Identität
einer Komponente. Alle kryptographischen Funktionen innerhalb der
Decodierer können
auf irgendeine Art auf Keimen basieren.
-
In
der Vergangenheit war es das Ziel von Angreifern, Sicherheitskomponenten
zu kopieren oder zu klonen, indem sie Keime aus einer Komponente extrahierten
und sie in mehrere andere luden. Dieser Prozess wird oftmals als „Klonen" bezeichnet. Einige Decodierer
sind so ausgelegt, dass sie eine Keimlademeldung der folgenden Form
akzeptieren:
Einheitenadresse + Keim-1 + Keim-2 + Keim-3 + Keim-4
-
In
dieser Meldung werden nur als Beispiel vier Keime bereitgestellt.
Es können
weniger oder mehr verwendet werden. Die durch diese Meldung geladenen
fünf Informationsteile
können
ungeändert in
fünf Bereichen
des Speichers eines Decodierers abgelegt werden (als Beispiel).
Nach dem Verschicken der Decodierer könnte ein Angreifer einen Weg finden,
um auf diese fünf
Speicherbereiche zuzugreifen und die Informationen zu entfernen.
Da diese Informationen die Erzeugung der ursprünglichen Keimlademeldung gestatten,
würde ein
derartiger Angriff einem „Piraten" gestatten, unautorisierte
Decodiererkloneinheiten herzustellen. Dies stellt ein signifikantes
Problem dar, da es zu einem Verlust an Einkünften für die Netzbetreiber und andere
führt.
-
Anstatt
Keime in der Keimlademeldung zu verwenden, können Vorkeime verwendet werden. Die
Vorkeimlademeldung kann die folgende Form aufweisen:
Einheitenadresse
+ Vorkeim-1 + Vorkeim-2 + Vorkeim-3 + Vorkeim-4
-
Wenn
die Vorkeimlademeldung an einem Decodierer empfangen wird, werden,
um die Keime zu erzeugen, die Vorkeime unter Verwendung einer OWF
verarbeitet: Einheitenadresse [gespeichert] = Einheitenadresse [empfangen]
Keim-1
[gespeichert] = OWF (Vorkeim-1 [empfangen])
Keim-2 [gespeichert]
= OWF (Vorkeim-2 [empfangen])
Keim-3 [gespeichert] = OWF (Vorkeim-3
[empfangen])
Keim-4 [gespeichert] = OWF (Vorkeim-4 [empfangen])
-
Durch
dieses Verfahren erhält
man größere Sicherheit,
da es nun für
einen Angreifer rechnerisch undurchführbar ist, aus einer aus einem
Sicherheitskomponentenspeicher extrahierten Keim einen Vorkeim zu
berechnen. Um beispielsweise aus Keim-1 Vorkeim-1 zu berechnen,
müsste
der Angreifer berechnen:
Vorkeim-1 = OWF–1 (Keim-1)
-
So
lange jedoch die gewählte
OWF ausreichend stark war, war dies ein unhaltbares Problem. Insbesondere
sind OWFs auf DES-Basis gut untersucht und als recht zuverlässig angesehen
worden. Dieser OWF-Ansatz
löst das
Informationsliefer- und -wiederverwendungsproblem für die Zustellung
von DES-Schlüsseln.
-
Man
beachte, dass bei der Verwendung dieser OWF-Technik im Grunde angenommen
wird, dass man durch Schicken eines gültigen DES-Schlüssels
durch die OWF eine Ausgabe erhält, die
ebenfalls ein gültiger
DES-Schlüssel
ist. Wenn dies nicht wahr wäre,
dann wäre
Keime keine gültigen
DES-Schlüssel,
wodurch sie nutzlos würden.
-
Unter
Verwendung einer beliebigen adäquaten
Quelle von Zufallsbits und einer Trivialprozedur lassen sich DES-Schlüssel leicht
erzeugen:
- Schritt 1. Erzeuge 56 Zufallsbits.
- Schritt 2. Verwende alle 56 als einen gültigen DES-Schlüssel.
-
Der
Ausdruck „Zufall" soll hier „pseudozufällig" einschließen. Es
versteht sich, dass sich ein rein zufälliger Prozess in der Praxis
schwer erreichen lässt.
-
RSA-Schlüssel werden
anders erzeugt, wobei die folgende komplexe nummerische Prozedur verwendet
wird:
- Schritt 1. Wähle eine (große) Modulgröße, z.B. 1024
Bit.
- Schritt 2. Erzeuge probabilistisch eine 512-Bit-Primzahl P wie
folgt:
- a) Erzeuge 512 Zufallsbits.
- b) Setze diese Bits zu der Zahl P zusammen.
- c) Teste, ob P eine Primzahl ist.
- d) Falls Primzahl, dann behalte P bei und gehe zu Schritt 3.
- e) Falls nicht Primzahl, gehe zurück zu Schritt 2a.
- Schritt 3. Wiederhole Schritt 2 für eine andere 512-Bit-Primzahl
Q.
- Schritt 4. Bilde das 1024-Bit-Modul N = P·Q.
- Schritt 5. Bilde den Euler-Totienten φ (PHI) = (P – 1)·(Q – 1)
- Schritt 6. Erzeuge zufällig
den Schlüssel
K1, wobei K1 relativ prim sein muss zu (P – 1)·(Q – 1).
- a) Erzeuge 1024 Zufallsbits.
- b) Setze diese Bits zu der Zahl K1 zusammen.
- c) Teste, ob K1 relativ prim zu (P – 1)·(Q – 1) ist.
- d) Falls relativ prim, gehe zu Schritt 7. Falls nicht, gehe
zurück
zu Schritt 6a.
- Schritt 7. Leite Schlüssel
K2 von Schlüssel
K1 und (P – 1)·(Q – 1) ab
unter Verwendung des Euklidschen erweiterten Algorithmus.
- Schritt 8. Verwerfe P, Q und (P – 1)·(Q – 1) (wichtig).
- Schritt 9. Behalte die folgenden zur Verwendung bei der RSA-Verschlüsselung
bei:
- a) K1
- b) K2
- c) Das Modul N = P·Q
-
Die
Schritte 2 und 3 sind die problematischen Differenzen bei der DES-Schlüsselerzeugung
bezüglich
der vorliegenden Erfindung. Die Zufallserzeugung von Zahlen, die
eine mathematisch eingeschränkte
Bedingung erfüllen,
wie etwa Primheit, ist ein probabilistischer Prozess, wobei viele
Zahlen erzeugt werden, die nicht prim sind, weil Primzahlen, wie
oben bezüglich 1 erörtert, relativ
rar sind und weil es keinen bekannten Weg gibt, eine Primzahl direkt
zu erzeugen. Stattdessen werden Zufallszahlen erzeugt und getestet,
ob sie prim sind. Wenn eine Primzahl gefunden wird, kann die Suche
stoppen.
-
Es
gibt jedoch ein Problem mit der Erzeugung eines öffentlichen RSA-Schlüssels, wie
aus der folgenden Erörterung
hervorgeht. Die „Entropie" eines Schlüssels kann
definiert werden als die Anzahl gültiger Schlüssel für eine Schlüsselgröße von N Bits. Ein „maximal-entroper" Schlüssel von
N Bits weist 2N gültige Schlüssel auf. Ein Schlüssel, der
auf irgendeine Weise eingeschränkt
ist, ist weniger entrop, wobei engere Einschränkungen die Entropie entsprechend reduzieren.
Ein fester Schlüssel
ist degenerativ entrop (das heißt
weist eine „Null-Entropie") auf, da er nur
einen einzelnen Wert aufweist. DES-Schlüssel, RSA-Moduli, RSA-Schlüssel K1
und RSA-Schlüssel
K2 können
alle im Hinblick auf Entropie von dem am wenigsten entropen zu dem
am meisten entropen eingestuft werden, und zwar wie folgt: RSA-Schlüssel K2,
RSA-Moduli, RSA-Schlüssel
K1 und DES-Schlüssel.
-
Diese
Entropieeinstufungen ergeben sich aus den folgenden Überlegungen:
- • DES-Schlüssel sind
maximal entrop, weil ein DES-Schlüssel der Größe N Bits 2N gültige Schlüssel aufweist.
Jede N-Bit-Zahl
ist ein gültiger Schlüssel.
- • RSA-Schlüssel K1
ist von mittelhoher Entropie, da er zufällig gewählt wird, aber (lose) so eingeschränkt ist,
dass er zu (P – 1)·(Q – 1) relativ
prim ist. Es ist recht wahrscheinlich, dass ein zufällig gewählter Wert
zu einem gleichgroßen
(P – 1)·(Q – 1) relativ
prim ist, so dass relativ wenige Werte ungültig sein würden.
- • Ein
RSA-Modul weist eine mittelniedrige Entropie auf, da es als eine
Primzahl erzeugt wird. Primzahlen sind auf dem Gebiet der Zahlen
ungewöhnlich,
und ihre Erzeugung ist unwahrscheinlich, wie in 1 gezeigt.
Viele Versuche werden benötigt,
um ein einzelnes gültiges
RSA-Modul zu erzeugen.
- • RSA-Schlüssel K2
weist eine Null-Entropie auf, da der eine gültige Wert von K2 direkt von
Schüssel
K1 und Modul N abgeleitet ist, anstatt zufällig erzeugt zu sein. Schlüssel K2
weist deshalb eine degenerative Entropie auf.
-
Bei
einem traditionellen DES-Schlüssel
aus 56 Bits brauchen nur 56 Zufallbits erzeugt zu werden, damit
man einen guten Schlüssel
hat, weil alle 256 möglichen Werte eines 56-Bit-Schlüssels zulässige DES-Schlüssel mit äquivalenter
Sicherheit sind. Bei Algorithmen mit öffentlichem Schlüssel auf
der Basis von zahlentheoretischen Prinzipien ist dies nicht der Fall.
Wenn man ein Kandidaten-RSA-Modul aus N Bits erzeugt, dann ist es
die meiste Zeit noch nicht einmal ein gültiges Modul und muss verworfen
werden. Ein RSA-öffentlicher-Schlüssel-Modul
muss das Produkt aus zwei großen
Primzahlen sein (als Beispiel), so dass immer dann, wenn ein Kandidatenschlüssel aus
zufällig
erzeugten Bits zusammengesetzt wird, weiteres Testen erforderlich
ist, um zu erkennen, ob es wirklich ein gültiger Schlüssel ist.
-
In
RSA wird dies getestet, um zu bestimmen, ob die zusammengesetzten
Bits eine Primzahl darstellen. Bei anderen Algorithmen gibt es neben
dem Primzahltesten andere Tests, und diese können außergewöhnlich komplex sein. Die vorliegende
Erfindung stellt ein System bereit, das die OWF-Operation während der
Anfangsphase der Zufallsbiterzeugung ausführt, bevor weitere Gültigkeitstests
wie etwa Primalität
angewendet werden. Wenn dann eine gültige Zahl gefunden wird (z.B.
eine Primzahl) dann ist die Eingabe zu einer OWF, die diese gültige Zahl
ausgibt, bereits erfasst worden.
-
Falls
beispielsweise ein Acht-Bit-Schlüssel für eine „Mini-DES" angefertigt wurde,
ergibt es 256 zulässige
Schlüssel
der Größe 8 Bits
(d.h. 28 = 256). Wenn ein Acht-Bit-RSA-Modul
N = P·Q
mit jeweils P und Q aus vier Bits angefertigt wurde, dann sind wir dadurch
eingeschränkt,
dass es nur fünf
akzeptable Vier-Bit-Primzahlen gibt (d.h. 3, 5, 7, 11, 13), die
5·5 =
25 mögliche
RSA-Moduli N aus 8 Bits ergeben. Die Chance, eine dieser Vier-Bit-Zahlen
zufällig
zu erzeugen, beträgt
nur 5/16, weshalb eine OWF wahrscheinlich keine erzeugen würde. Wenn
irgendein unbestimmter Algorithmus XYZ Schlüssel besäße, die abgesehen davon, prim
zu sein, auf irgendeine Weise eingeschränkt sind (z.B. „alle Schlüssel müssen durch
13 teilbar sein",
würde eine ähnliche
Situation vorliegen, die sich nur durch die Art der mathematischen
Randbedingungen unterscheiden würde.
-
Zudem
gibt es 19 Acht-Bit-Zahlen, die durch 13 geteilt werden können, das
heißt,
13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195, 208,
221, 234 und 247. Dementsprechend hat das zufällige Erzeugen einer Acht-Bit-Zahl
nur eine Chance von 19/256, ein gültiger Schlüssel für ein derartiges System mit
eingeschränktem
Schlüssel
zu sein. Dies ist einfach eine weitere Randbedingung neben der Primalität, wobei ähnliche
Techniken genauso relevant sind. Dementsprechend sollte die vorliegende
Erfindung alle derartigen mathematisch eingeschränkten Systeme einschließen, nicht
nur RSA.
-
Eine
OWF erzeugt eine Ausgabe, die am besten als eine Zufallszahl modelliert
wird. Die Herausforderung, die durch die vorliegende Erfindung gelöst wird,
besteht darin, eine derartige OWF-Ausgabe als einen Schlüssel zu
verwenden, wenn die gewünschte
Art von Schlüssel
nicht maximal entrop ist. Es ist wahrscheinlich, dass eine gegebene OWF-Funktionsausgabe
kein gültiger
RSA-Schlüssel oder
kein gültiges
RSA-Modul ist, was
die Verwendung einer OWF verhindert, wenn nur eine Ausgabe zur Verfügung steht.
Selbst wenn durch wiederholte Versuche mehrere Ausgaben zur Verfügung stehen, muss
die Prozedur die Zeit zum Ausführen
solcher Versuche gestatten, um eine gültige Ausgabe zu erhalten.
-
Da
eine beliebige Zahl, z.B. mit einer Länge von 56 Bits, ein gültiger DES-Schlüssel ist,
eignet sich DES gut zum Annehmen der Ausgabe einer OWF. Es spielt
keine Rolle, dass die Zahl direkt von einer Zufallsquelle von Bits
oder von der Ausgabe einer OWF kommt; beides funktioniert. Die DES-Schlüsselerzeugung
ist effizient und lässt
sich aus diesem Grund flexibel anwenden, da Zufallsbits mit recht
hohen Raten leicht hergestellt werden können.
-
Im
Gegensatz dazu ist der RSA-Schlüssel K2
ausgesprochen schlecht geeignet, die Ausgabe einer OWF zu sein,
da es verschwindend unwahrscheinlich ist, dass der einsame gültige Wert
von K2 durch einen zufällig
modellierten Prozess erzeugt wird.
-
Der
RSA-Schlüssel
K1 ist entsprechend seiner geringeren Entropie weniger geeignet,
die Ausgabe einer OWF anzunehmen. Wenn aber mehrere Ausgaben aus
mehreren Versuchen verfügbar
wären,
könnte
das Erhalten eines gültigen
K1 durchführbar
sein. Eine Anwendung mit nur einer OWF-Ausgabe (wie etwa Keimladen)
kann mit RSA-Schlüssel
K1 nicht funktionieren.
-
Eine
gegebene Zufallszahl oder OWF-Ausgabe hat jedoch bei Verwendung
als ein RSA-Modul nur eine sehr kleine Wahrscheinlichkeit, gültig zu sein,
wie man aus 1 erkennen kann. Das RSA-Modul
ist Teil der Schlüsselerzeugung
und wird zuerst hergestellt, so dass die RSA-Schlüsselerzeugung
langsam und ineffizient ist. Schlimmer noch: selbst wenn ein gültiges Modul
gefunden wird, ist es sehr wahrscheinlich, dass es durch nicht eine
OWF geschickt werden kann, ohne ein ungültiges Modul zu werden.
-
Es
ist auch nicht möglich,
ein gültiges RSA-Modul
zu nehmen und sich rückwärts durch eine
OWF zu arbeiten, um die Eingabe abzuleiten, die es berechnen würde. Dies
bedeutet Rückwärtsarbeiten
durch eine Einwegfunktion, was nach Definition rechnerisch undurchführbar ist.
Die direkte Verwendung einer OWF-Ausgabe als ein RSA-Modul ist völlig unausführbar. Es
kann deshalb kein herkömmlicher
OWF-Keimlademeldungsansatz
verwendet werden, wobei wir wieder auf dem Informationsliefer- und
-wiederverwendungsproblem sitzen bleiben.
-
Das
Erhalten eines gültigen
RSA-Moduls am Ausgang einer OWF ist ein Problem, das die vorliegende
Erfindung löst.
-
Im
Weiteren soll der Ausdruck „RSA-Schlüsselerzeugung" oder „Schlüsselerzeugung" den Erzeugungsprozess
sowohl für
das RSA-Modul als auch
den RSA-Schlüssel
K1 und K2 beinhalten, und die beschriebene OWF soll eine 64-Bit-Eingabe
und -Ausgabe aufweisen. Es können
weniger oder mehr Bits verwendet werden. Außerdem können zur Fehlerkorrektur Prüfbits verwendet
werden.
-
RSA-Schlüssel und
-Moduli können
wie folgt unter Verwendung einer OWF erzeugt werden. Herkömmlich ist
die Zufallsschlüsselerzeugung
ein Prozess, der separat davon ist, wie die erzeugten gültigen Schlüssel verwendet
werden. Dies funktioniert, weil sich DES-Schlüssel leicht erzeugen lassen
und auch dann gültig
sind, wenn sie danach durch eine OWF geschickt werden. Das Trennen
der Schlüsselerzeugung
von der Erstellung einer Keimlademeldung ist aber nicht möglich, wenn
traditionell erzeugte RSA-Schlüssel
verwendet werden.
-
Gemäß der vorliegenden
Erfindung wird die Keimlademeldung-OWF in den eigentlichen Prozess der
RSA-Schlüssel-
und Moduluserzeugung integriert. Dies geschieht an drei spezifischen
Plätzen
in dem Prozess, was zu der unten stehenden modifizierten RSA-Schlüssel- und
Moduluserzeugungsprozedur führt:
-
- Schritt 1. Wähle eine (große) Modulusgröße wie etwa
1024 Bits.
- Schritt 2. Erzeuge probabilistisch wie folgt eine 512-Bit-Primzahl P:
- a) Erzeuge 512 (= 8·64)
Zufallsbits.
- b) Setze jeweils 64 Bits zu acht Stücken oder Segmenten zusammen,
die als vor-P1 ... vor-P8 bezeichnet
sind.
- c) Schicke vor-P1 ... vor-P8 durch
eine OWF, um P1, ... P8 zu
bilden.
- d) Setze P1 ... P8 wieder
zu der 512-Bit-Zahl P zusammen.
- e) Teste, ob P eine Primzahl ist.
- f) Falls P prim ist, behalte P und vor-P1 ...
vor-P8 bei und gehe zu Schritt 3.
- g) Falls P nicht prim ist, verwerfe vor-P1 ...
vor-P8 und gehe zurück zu Schritt 2a.
- Schritt 3. Wiederhole Schritt 2 für Primzahl Q, und es entsteht
dabei vor-Q1 ... vor-Q8.
- Schritt 4. Bilde das 1024-Bit-Modul N = P·Q.
- Schritt 5. Bilde den Euler-Totienten = (P – 1)·(Q – 1)
- Schnitt 6. Erzeuge zufällig
den Schlüssel
K1, wobei K1 relativ prim sein muss zu (P – 1)·(Q – 1).
- a) Erzeuge 1024 Zufallsbits.
- b) Setze jeweils 64 Bits zu 16 Zahlen vor-K11,
... vor-K116 zusammen.
- c) Schicke vor-K11 ... vor-K116 durch eine OWF, um jeweils K11 ...
K116 zu bilden.
- d) Setze K11 ... -K116 zu
der 1024-Bit-Zahl K1 zusammen.
- e) Teste, ob K1 relativ prim zu (P – 1)·(Q – 1) ist.
- f) Falls relativ prim, gehe zu Schritt 7. Falls nicht, gehe
zurück
zu Schritt 6a.
- Schritt 7. Leite Schlüssel
K2 von Schlüssel
K1 und (P – 1)·(Q – 1) ab
unter Verwendung des Euklidschen erweiterten Algorithmus.
- Schritt 8. Verwerfe P, Q und (P – 1)·(Q – 1) (wichtig).
- Schritt 9. Behalte die folgenden zur Verwendung bei der OWF-Meldungslieferung
und RSA-Verschlüsselung
bei:
- a) vor-K11 ... vor-K116
- b) K2
- c) vor-P1 ... vor-P8
- d) vor-Q1 ... vor-Q8
-
Die
obige Prozedur der vorliegenden Erfindung gestattet die Erzeugung
von gültigen RSA-Schlüsseln, die
die Ausgabe einer OWF sind. Die OWF wird nun in den eigentlichen
Schlüsselerzeugungsprozess
integriert, z.B. in die Erstellung von P, Q und K1.
-
Die
OWF-RSA-Schlüselerzeugungsprozedur
kann dazu verwendet werden, wie folgt das Informationstiefer- und
-wiederverwendungsproblem zu lösen.
Die Aufgabe besteht darin, das Modul N und Schlüssel K1 an den Empfänger/Decodierer
zu liefern. Schlüssel
K2 wird von dem Empfänger
nicht benötigt,
da er nur am Kopfende für
die Meldungsverschlüsselung
verwendet wird. Schlüssel
K1 wird zur Meldungsentschlüsselung
nur an einem Decoder verwendet.
- Schritt 1.
Erzeuge RSA-Schlüsselvariablen vor-K11 ... vor-K116, vor-P1 ... vor-P8, vor-Q1 ... vor-Q8 und K2 unter Verwendung der obigen OWF-Prozedur.
Die OWF kann eine 64-Bit-Eingabe und -Ausgabe aufweisen.
- Schritt 2. Bilde eine RSA-Vorkeimlademeldung der folgenden Form:
Einheitenadresse
+ vor-P1 ...vor-P8 +
vor-Q1 ... vor-Q8 +
vor-K11 ...
vor-K116
- Schritt 3. Sende die RSA-Vorkeimiadenachricht an den Meldungsempfänger (z.B.
Decodierer).
-
Nun
führt der
Meldungsempfänger
(z.B. Decodierer) die ganze Verarbeitung aus. Man beachte, dass
der Decodierer die bei der obigen Schlüsselerzeugung verwendete OWF
besitzen muss. Die OWF kann unter Verwendung verschiedener Techniken
an Decodierern in einer Gesamtheit von Decodierern geliefert werden.
Beispielsweise kann die OWF zum Zeitpunkt der Herstellung des Decodierers
in einem nichtflüchtigen
Speicher installiert werden, wobei eine Smartcard oder dergleichen
verwendet wird, oder über
das Kommunikationsnetz heruntergeladen werden. Die OWF kann selbst
verschlüsselt
werden, um ein Abfangen und Kompromittieren zu verhindern.
-
Der
Decodierer führt
die folgenden Schritte aus, um K1 und N zur Verwendung beim Entschlüsseln des
verschlüsselten
Videomaterials, Audiomaterials oder anderer Daten abzuleiten:
- Schritt 1. Verarbeite vor-P1 ...
vor-P8:
- a) Schicke vor-P1 ... vor-P8 durch
die OWF, um P1, ... P8 zu
bilden.
- b) Verwerfe vor-P1 ... vor-P8 (wichtig).
- c) Setze P1 ... P8 wieder
zusammen, um P zu bilden.
- Schritt 2. Verarbeite vor-Q1 ... vor-Q8:
- a) Schicke vor-Q1 ... vor-Q8 durch
die OWF, um Q1 ... Q8 zu
bilden.
- b) Verwerfe vor-Q1 ... vor-Q8 (wichtig).
- c) Setze Q1 ... Q8 wieder
zusammen, um Q zu bilden.
- Schritt 3. Verarbeite P und Q:
- a) Multipliziere P und Q, um das Modul N zu bilden.
- b) Verwerfe P und Q (wichtig).
- Schritt 4. Verarbeite vor-K11 ... vor-K116:
- a) Schicke vor-K11 ... von-K116 durch die OWF, um jeweils K11 ...
K116 zu bilden.
- b) Verwerfe vor-K11 ... von-K116 (wichtig).
- c) Setze K11 ... K116 wieder
zusammen, um K1 zu bilden.
-
An
diesem Punkt besitzt der Meldungsempfänger/-decodierer die gewünschten
Informationen, wobei er sie abgeleitet hat, indem er RSA-Keimlademeldungsinformationen
durch eine OWF geschickt hat. Falls ein Angreifer irgendwie das
Modul N und Schlüssel
K1 extrahiert, kann er keine gültige RSA-Vorkeimlademeldung
bilden, da erstens P und Q nicht ohne Faktorisierung des Moduls
N gebildet werden kann. Dies ist das „harte Problem", auf dem die Sicherheit
von RSA basiert. Zweitens können
wegen der Verwendung der OWF selbst bei gegebenen P, Q oder K1 vor-P1 ... vor-P8, vor-Q1 ... vor-Q8 und vor-K11 ... vor-K116 nicht
abgeleitet werden.
-
Die
Erfindung ist in den folgenden Figuren dargestellt.
-
2 veranschaulicht
ein Breitbandkommunikationsnetz mit einem Codierer und Decodierer
gemäß der vorliegenden
Erfindung. Ein Codierer ist allgemein bei 200 gezeigt,
während
ein Decodierer allgemein bei 260 gezeigt ist. Der Codierer 200 kann am
Kopfende eines Kabelfernseh- oder Satellitenverteilungsnetzes vorgesehen
sein, während
der Decodierer 260 einen Decodierer in einer Gesamtheit
von Decodierern darstellt, z.B. bei einem Verbraucher zu Hause.
Der Codierer 200 enthält
einen Schlüssel- und Modulgenerator 205 und
wahlweise einen Multiplexer (MUX) 240.
-
Der
Schlüssel-
und Modulgenerator 205 verwendet eine Einwegfunktion, um
eine Reihe von Vorkeimsegmenten vor-P1 bis
vor-P8, vor-Q1 bis
vor-Q8 und vor-K1-1 bis vor-K1-16 zu erzeugen.
Wahlweise können
für die
verschiedenen Sätze
Segmente andere Einwegfunktionen verwendet werden. Beispielsweise
kann eine erste Einwegfunktion mit vor-P1 bis vor-P8 (vor-P),
eine zweite Einwegfunktion mit vor-Q1 bis
vor-Q8, (vor-Q) und eine dritte Einwegfunktion
mit vor-K1-1 bis vor-K1-16 (vor-K) verwendet werden. Es ist auch
möglich,
für jedes
Segment innerhalb eines Satzes andere Einwegfunktionen zu verwenden.
-
Der
Schlüssel-
und Modulgenerator 205 verwendet zum Erzeugen des RSA-Schlüssels K2
und des RSA-Moduls N die Vorkeimdaten. Der Verschlüsseler 230 verwendet
K2 und N, um freie Daten Y zu verschlüsseln, wodurch man entsprechende
verschlüsselte
Daten X erhält.
Der Verschlüsseler 230 implementiert
das RSA-öffentliche-Schlüssel-Kryptosystem
gemäß X = YK2 (mod N). Wie erwähnt können die freien Daten Y Video-,
Audio- und andere Daten umfassen.
-
Man
beachte, dass unverschlüsselte
Daten mit den verschlüsselten
Daten an den Decodierer 260 und andere Decodierer im Netz
geschickt werden können.
Beispielsweise kann ein abgestufter Verteilungsdienst angeboten
werden, bei dem alle Decodierer autorisiert sind, eine Basisstufe
der Programmierung zu empfangen, während nur spezifische Decodierer
autorisiert sind, bei Zahlung zusätzlicher Entgelte eine oder
mehrere Stufen an Premium-Programmierung zu empfangen. In diesem
Fall brauchen nur die Premium-Programme verschlüsselt zu werden.
-
Ein
Steuerzentrum 210, das wahlweise Teil des Codierers 200 sein
kann, kann die Verarbeitung des Schlüssel- und Modulgenerators 205 steuern. Das
Steuerzentrum 210 kann wahlweise eine Abrechnungsfähigkeit
bereitstellen, z.B. durch die Pflege von Aufzeichnungen hinsichtlich dessen,
welche Decodierer autorisiert sind, die verschlüsselten Daten zu empfangen.
Beispielsweise kann das Steuerzentrum 210 Zahlungen, Rechnungslegung
und andre relevante Informationen im Auge behalten.
-
Die
gleichen Vorkeimdaten beim Schlüssel- und
Modulgenerator 205 werden z.B. über einen Chip an dem Decodierer 260 geliefert.
Zu diesem Schritt kommt es im Allgemeinen nur beim Herstellungsprozess
für den
Decodierer 260. Die verschlüsselten Daten X werden an den
MUX 240 zur Kommunikation über einen Kanal 250 an
den Decodierer 260 geliefert. Beispielsweise kann der Kanal 250 ein
Kabelfernsehverteilungsnetz oder ein Satellitenverteilungsnetz umfassen,
das mit einer Gesamtheit von Decodierern kommuniziert. Andere Daten
wie etwa verschlüsselte
oder unverschlüsselte
Programm- und/oder Steuerdaten können
beim MUX 240 mit den verschlüsselten Daten X gemultiplext
werden.
-
Beim
Decodierer 260 werden die übertragenen Daten vom Kanal 250 beim
Demultiplexer (DEMUX) 270 empfangen. Der DEMUX 270 liefert
die verschlüsselten
Daten X an einen Entschlüsseler 265.
Andere am DEMUX 270 empfangene Daten werden wie erforderlich
weitergeleitet. Die Vorkeimdaten werden beim Schlüssel- und
Modulgenerator 275 z.B. über einen Chip an dem Decodierer
verarbeitet, der eine Vorkeimlademeldung speichert, wobei die Vorkeimdaten
mit der gleichen Einwegfunktion verarbeitet werden, die beim Codierer 200 zum Ableiten
des kryptographischen Schlüssels
K1 und des Moduls N verwendet wurde. K1 und N werden dem Entschlüsseler 265 geliefert,
damit sie beim Entschlüsseln
der verschlüsselten
Daten X verwendet werden können,
um die freien Daten Y wieder herzustellen.
-
Ein
Steuerzentrum 282 ist wahlweise beim Decodierer 260 zum
Steuern der Verarbeitung beim Schlüssel- und Modulgenerator 275 vorgesehen.
-
Die
freien Daten Y können
gegebenenfalls unter Verwendung herkömmlicher Schaltungen weiter
verarbeitet werden. Wenn beispielsweise die freien Daten Y Videodaten
umfassen, ist es möglicherweise
erforderlich, eine herkömmliche
Videodekompressionsverarbeitung durchzuführen. Einzelheiten hinsichtlich
dieser Verarbeitung liegen im Bereich des Fachmanns.
-
Man
beachte auch, dass, während
in 2 ein einzelner Decodierer 260 gezeigt
ist, es in der Regel Tausende von Decodierern in einer Gesamtheit von
Decodierern gibt, die Daten von einem einzelnen Kopfenddecodierer
wie etwa einem Codierer 200 empfangen.
-
3 zeigt
einen weiteren Codierer gemäß der vorliegenden
Erfindung. Der Codierer 200' enthält eine
Reihe anderer Prozesse, die individuell gezeigt sind. Es sei jedoch
angemerkt, dass die verschiedenen Prozesse unter Verwendung gemeinsamer
Schaltungen implementiert werden können, einschließlich eines
gemeinsamen Mikroprozessors und von Speicherelementen und/oder anderer
Software, Firmware und/oder Hardware. Weiterhin können diese
Prozesse als Teil des Schlüssel-
und Modulgenerators 205 und des Verschlüsselers 230 von 2 angesehen
werden.
-
Der
Codierer 200' enthält eine
zentrale Verarbeitungseinheit (CPU) 310, die mit einem
Bus 305 kommuniziert. Ein Zufallsbitgenerator 315 erzeugt unter
Verwendung einer beliebigen bekannten Zufallsdatenerzeugungstechnik
Zufallsbitketten. Beispielsweise können 512-Bit- und 1024-Bit-Bitketten erzeugt
werden. Ein Bitunterteiler/-assembler 320 kann die Zufallsbitkette
in eine Reihe von Segmenten unterteilen. Beispielsweise können acht
gleiche Segmente verwendet werden.
-
Allgemein
ist es wünschenswert,
dass jedes Segment eine Länge
wie etwa 64 Bits oder mehr aufweist, wodurch man den erforderlichen
Grad an Sicherheit erhält,
wenn zum Verarbeiten jedes Segments eine Einwegfunktion verwendet
wird. Wenn das Segment zu kurz ist, reicht die Sicherheitsstufe möglicherweise
selbst dann nicht aus, wenn zum Verarbeiten des Segments eine Einwegfunktion
verwendet wird. Mit zunehmender Länge jedes Segments nimmt jedoch
die Wahrscheinlichkeit ab, dass eine zufällig erzeugte Bitkette oder
eine andere Teilmenge davon prim ist oder eine andere gewünschte mathematische
Randbedingung erfüllt,
wodurch die Rechenzeit zunimmt. Dementsprechend gibt es einen Kompromiss
zwischen Sicherheit und Rechenzeit.
-
Eine
Einwegfunktion 325 verarbeitet individuell jedes der Bitsegmente
von dem Bitunterteiler/-assembler 320. Es kann jede bekannte
Einwegfunktion verwendet werden. Beispielsweise kann jedes Segment
unter Verwendung eines oder mehrerer DES-Schlüssel und einer Mitkopplungs-Hashfunktion verschlüsselt werden.
Die Segmente, die von der Einwegfunktion 325 verarbeitet
werden, werden dann bei dem Bitunterteiler/-assembler 320 zu
einer einzelnen Bitkette zusammengesetzt. Wenn beispielsweise acht
64-Bit-Segmente
verwendet werden, können
die Segmente verkettet oder auf andere Weise zusammengesetzt werden,
um eine neue 512 Bit lange Bitkette zu erhalten.
-
Wahlweise
kann es vor und/oder nach der Verarbeitung durch die Einwegfunktion
zu einer Zufallsumordnung kommen, damit man mehr Sicherheit erhält. Eine
entsprechende Umordnung muss am Decodierer verwendet werden.
-
Die
neu zusammengesetzte Bitkette kann an einen Primzahltester 345 geschickt
werden, der eine beliebige bekannte Primzahltesttechnik implementieren
kann, um zu bestimmen, ob die verarbeitete Bitkette eine Primzahl
ist. Selbst wenn keine Primheit mit vollständiger Sicherheit bestimmt
werden kann, ist es zudem möglich,
einen gewünschten
Vertrauensgrad zu erzielen, das heißt, dass die Bitkette prim ist,
z.B. 99,9999 % Vertrauen.
-
Beispielsweise
verwendet eine Primtesttechnik einen „WITNESS" bezeichneten Algorithmus, der in Miller,
G., „Reimann's Hypothesis and
Tests for Primality",
Proceedings of the Seventh Annual ACM Symposium on the Theory of
Computing, Mai 1975 und Rabin, M., „Probabilistic Algorithms
for Primality Testing",
Journal of Number Theory, Dezember 1980, erörtert wird. Der Algorithmus
empfängt
eine Eingabe „n", die auf Primheit
zu testende Zahl, und eine beliebige ganze Zahl „a", wobei a < n, wie in dem folgenden Pseudocode
dargestellt wurde:
-
WITNESS (a, n)
-
- 1. es sei bkbk–1 ...
b0 die binäre Darstellung von (n – 1).
- 2. d ← 1
- 3. für
i ← k hinunter
zu 0
- 4. ausführen
x ← d
- 5. d ← (d
x d) mod n
- 6. falls d = 1 und x ≠ 1
und x ≠ n – 1
- 7. dann gib zurück
WAHR
- 8. falls b1 = 1
- 9. dann d ← (d
x a) mod n
- 10. falls d ≠ 1
- 11. dann gib zurück
WAHR
- 12. gib zurück
FALSCH
-
- Falls WAHR zurückgegeben
wird, dann ist „n" bestimmt keine Primzahl.
- Falls FALSCH zurückgegeben
wird, dann kann „n" eine Primzahl sein.
-
Wie
in Corrnen, T., Leiserson, C. und Rivest, R., Introduction to Algorithms,
Cambridge, Mass., MIT Press, 1990, erörtert wird, kann zudem WITNESS
unter Verwendung zufällig
gewählter
Werte für „a" wiederholt aufgerufen
werden. Falls an einem beliebigen Punkt WAHR zurückgegeben wird, dann ist „n" keine Primzahl.
Falls FALSCH „s"-mal hintereinander
zurückgegeben
wird, dann beträgt
die Wahrscheinlichkeit, dass „n" eine Primzahl ist,
mindestens 1–2–s.
Für einen
ausreichend großen
Wert von „s" kann somit ein entsprechender
Vertrauensgrad festgelegt werden, dass dieses „n" eine Primzahl ist.
-
Insbesondere
können
von dem Primzahltester 345 zwei 512-Bit-Bitketten P und
Q getestet werden. Nachdem sich herausgestellt hat, dass die Bitketten
P und Q ausreichend prim sind, werden sie zum Bilden des RSA-Moduls N = P·Q an einen
Modulrechner 350 geschickt.
-
Man
beachte, dass jede Funktion, die auf eine beliebige mathematische
Randbedingung hin testet (nicht auf Primheit beschränkt), gemäß der vorliegenden
Erfindung verwendet werden kann.
-
Außerdem wird
eine Eulersche Totientenfunktion 355 dazu verwendet, das
Produkt φ =
(P – 1)·(Q – 1) zu
bilden. Der Eulersche Totient stellt die Anzahl positiver ganzer
Zahlen kleiner als N und relativ prim zu N dar. Nachdem φ bestimmt
ist, wird der Euklidsche (grundlegende) Algorithmus bei Funktion 360 ausgeführt, um
den größten gemeinsamen
Teiler (ggT) von K1 und φ wie
in Verbindung mit 4(a) und 4(b) näher beschrieben
zu bilden. Eine positive ganze Zahl C Ist der ggT der beiden ganzen Zahlen
A und B, wenn C ein Teiler von A und B ist, und jeder Teiler von
A und B ist ein Teiler von C.
-
Der
Euklidsche erweiterte Algorithmus wird bei Funktion 365 ausgeführt, um
den Schlüssel
K2 zu erhalten.
-
Anhand
K2 und N werden von einem Verschlüsseler 230 Daten X
= YK2 (mod N) verschlüsselt. Die CPU 310 und
der Speicher 340 können
dazu verwendet werden, die anderen Funktionen zu steuern und gegebenenfalls
für eine
Zwischen- und/oder Endspeicherung von Daten zu sorgen. Außerdem können die
beim Verschlüsseler 230 zu
verschlüsselten
Daten über
den Bus 305 oder über
andere Mittel bereitgestellt werden.
-
4(a) veranschaulicht den ersten Teil eines Codierverfahrens
gemäß der vorliegenden
Erfindung. Bei Block 400 wird eine Zufallsbitkette mit
z.B. einer Länge
von 512 Bits erzeugt. Bei Block 405 werden die Bits zu
einer Anzahl von Vorkeim-Teilmengen vor-P1 bis
vor-P8 zusammengesetzt. Beispielsweise können acht
Teilmengen mit einer Länge
von jeweils 64 Bits verwendet werden. Bei Block 410 wird
jede der Teilmengen mit einer Einwegfunktion verarbeitet, um entsprechende
Teilmengen P1 bis P8 zu
erhalten. Da eine Einwegfunktion verwendet wird, ist es im Wesentlichen
unmöglich,
die Vorkeim-Teilmengen vor-P1 bis vor-P8 jeweils aus den Teilmengen P1 bis P8 abzuleiten. Bei Block 415 werden
die verarbeiteten Teilmengen P1 bis P8 zur Bildung der 512 Bit langen Bitkette
P zusammengesetzt. Bei Block 420 wird P getestet, um zu
bestimmen, ob es mit einem ausreichenden Vertrauensgrad prim ist.
Falls nicht, wird der Prozess bei Block 400 wiederholt
und die Vorkeimdaten werden verworfen. Falls ja, geht die Verarbeitung
weiter bei Block 455.
-
Eine
entsprechende Bitkette Q wird bei den Blöcken 430, 435, 440 und 445 abgeleitet,
was den Blöcken 400, 405, 410 bzw. 415 entspricht.
Spezifisch wird bei Block 430 eine weitere 512-Bit-Zufallsbitkette
erzeugt. Bei Block 435 wird die Bitkette zu Teilmengen
vor-Q1 bis vor-Q8 zusammengesetzt.
Bei Block 440 werden vor-Q1 bis
vor-Q8 mit einer Einwegfunktion verarbeitet,
um jeweils die entsprechenden verarbeiteten Teilmengen Q1 bis Q8 zu erhalten.
Bei Block 445 werden Q1 bis Q8 zur Bildung der 512-Bit-Bitkette Q zusammengesetzt.
-
Bei
Block 450 erfolgt entsprechend Block 420 eine
Bestimmung, ob Q bis zu einem ausreichenden Vertrauensgrad prim
ist. Fall nicht, wird der Prozess bei Block 430 wiederholt
und die Vorkeimdaten werden verworfen. Falls ja, geht die Verarbeitung weiter
bei Block 455.
-
Alternativ
kann ein Testen auf eine beliebige mathematische Randbedingung bei
den Blöcken 420 und 450 durchgeführt werden.
-
Bei
Block 455 wird das RSA-Modul N = P·Q gebildet, und bei Block 460 wird
der Eulersche Totient φ =
(P – 1)·(Q – 1) gebildet.
Bei Block 465 wird die Verarbeitung bei Block A von 4(b) fortgesetzt. Man beachte, dass die in den
Blöcken 410 und 440 verwendeten
Einwegfunktionen die gleichen sein können; dies ist jedoch nicht
erforderlich. Es ist zudem sogar möglich, jede Teilmenge mit einer
anderen Einwegfunktion zu verarbeiten und/oder zwei oder mehr Einwegfunktionen
zu verwenden, um eine einzelne Teilmenge oder eine komplette Bitkette
zu verarbeiten. Andere Variationen, einschließlich der Verwendung zusätzlicher
herkömmlicher
Verschlüsselungsschritte,
ergeben sich dem Fachmann.
-
4(b) veranschaulicht den zweiten Teil des Codierverfahrens
von 4(a) gemäß der vorliegenden Erfindung.
Die Verarbeitung wird bei Block 500 fortgesetzt. Bei Block 505 wird
eine Zufallsbitkette mit einer Länge
von z.B. 1024 Bits erzeugt. Bei Block 510 wird die Bitkette
in sechzehn Vorkeim-Teilmengen vor-K1-1 bis vor-K1-16 mit jeweils
einer Länge
von 64 Bits unterteilt. Bei Block 515 wird jede 64-Bit-Teilmenge
mit einer Einwegfunktion verarbeitet, um entsprechende verarbeitete
Teilmengen K1-1 bis K1-16 zu erhalten. Die bei Block 515 verwendete Einwegfunktion
kann die gleiche sein wie die bei Blöcken 410 und 440 von 4(a) verwendete oder eine andere. Bei Block 520 werden
die verarbeiteten Teilmengen K1-1 bis K1-16 zusammengesetzt, um den
RSA-Schlüssel
K1 zu bilden.
-
Bei
Block 525 erfolgt eine Bestimmung dahingehend, ob K1 zu φ („PHI") mit einem ausreichenden
Vertrauensgrad relativ prim ist. K1 ist relativ prim zu φ, wenn der
Euklidsche grundlegende Algorithmus angibt, dass ggT (K1, φ) = 1. Falls
ggT (K1, φ) ≠ 1 wird die
Verarbeitung beginnend bei Block 505 wiederholt und die
Vorkeimdaten werden verworfen. Falls ggT (K1, φ) = 1, wird die Verarbeitung
bei Block 530 fortgesetzt, wo zum Bilden des RSA-Schlüssels K2
= K1–1 mod φ der Euklidsche
erweiterte Algorithmus verwendet wird.
-
Bei
Block 535 wird eine Meldung Y unter K2 und N verschlüsselt, um
den Schlüsseltext
X = YK2·(mod N) zu bilden. Bei Block 540 werden
P, Q und φ verworfen.
Dieser Schritt ist wichtig, da ein Angreifer möglicherweise in der Lage ist,
diese Informationen zu erhalten, wenn sie im Speicher gespeichert sind.
Schließlich
wird die verschlüsselte
Meldung X bei Block 550 an die Gesamtheit von Decodierern übertragen.
-
Man
beachte, dass die Vorkeim-Segmente vor-P1 bis
vor-P8, vor-Q1 bis
vor-Q8 und von-K1-1 bis von-K1-16 ebenfalls
z.B. über
Chips an die Gesamtheit von Decodierern geliefert werden. Zu diesem Schritt
kommt es im Allgemeinen unabhängig
von den vorausgegangenen Schritten, die die Verarbeitung bei einem
Codierer beinhalten.
-
Bevorzugt
werden die Vorkeimdaten für
die drei Bitketten P, Q und K1 an die Decodierer geliefert. Es ist
jedoch möglich,
die Erfindung zu implementieren, indem die Vorkeimdaten für weniger
als alle drei der Bitketten an die Decodierer geliefert werden.
Die Sicherheit des Systems wird noch weiter verbessert, da die einem
Angreifer auferlegte Last erhöht
wird.
-
5 zeigt
einen Decodierer gemäß der vorliegenden
Erfindung. Der Decodierer 600 enthält eine CPU 602, die
mit einem Bus 605 kommuniziert. Ein Bit-Unterteiler-/-Assembler 610,
eine Einwegfunktion 615, Speicher 620 und Modulrechner 625 entsprechen
allgemein den gleich benannten Elementen des Codierers 200' von 3.
-
Die
Vorkeimsegmente, die an den Decodierer 600 z.B. über einen
Chip geliefert werden, werden von der Einwegfunktion 615 verarbeitet,
um die entsprechenden verarbeiteten Segmente zu erhalten. Als nächstes setzt
der Bit-Unterteiler/-Assembler 610 die jeweiligen verarbeiteten
Segmente zusammen, um P, Q und K1 zu bilden. Das RSA-Modul N wird
bei Funktion 625 berechnet. Bei dem Entschlüsseler 265 werden
K1 und N dazu verwendet, die empfangenen verschlüsselten Daten X zu entschlüsseln, damit
der freie Text Y = XK1 (mod N) wiederhergestellt
wird.
-
Die
CPU 602 und der Speicher 620 können dazu verwendet werden,
die anderen Decodiererfunktionen zu steuern und gegebenenfalls eine
Zwischen- und Enddatenspeicherung zu bewirken. Zudem kann jedes
der Decodiererelemente in separaten und/oder gemeinsam benutzten
Komponenten einschließlich
Software, Firmware und/oder Hardware implementiert werden.
-
6 zeigt
ein Decodierverfahren gemäß der vorliegenden
Erfindung. Die jeweiligen Vorkeimsegmente, die bei dem Decodierer
verwendet wurden, stehen auch am Decodierer zur Verfügung, z.B. von
einem Chip, einer Smartcard oder dergleichen.
-
Bei
Block 705 werden die Vorkeimsegmente vor-P1 bis
vor-P8 mit einer Einwegfunktion verarbeitet,
um die entsprechenden verarbeiteten Segmente P1 bis
P8 zu erhalten. Dies ist die gleiche Einwegfunktion,
wie sie bei Block 410 von 4(a) verwendet wird.
Bei Block 710 werden die verarbeiteten Segmente P1 bis P8 zusammengesetzt,
um P zu bilden. Analog werden bei Block 715 die Vorkeimsegmente vor-Q1 bis vor-Q8 mit
einer Einwegfunktion verarbeitet, um jeweils die verarbeiteten Segmente
Q1 bis Q8 zu erhalten.
Dies ist die gleiche Einwegfunktion, wie sie bei Block 440 von 4(a) verwendet wird. Bei Block 720 werden
die verarbeiteten Segmente Q1 bis Q8 zusammengesetzt, um Q zu bilden. Bei Block 725 wird
das Modul N = P·Q
gebildet.
-
Bei
Block 730 werden die Vorkeimsegmente vor-K1-1 bis vor-K1-16
mit einer Einwegfunktion verarbeitet, um jeweils die verarbeiteten
Segmente K1-1 bis K1-16 zu erhalten. Dies ist die gleiche Einwegfunktion,
wie sie bei Block 515 von 4(b) verwendet
wird. Bei Block 732 werden vor-K1-1
bis vor-K1-16 verworfen. Bei Block 735 werden
die verarbeiteten Segmente K1-1 bis K1-16 zusammengesetzt, um den
RSA-Schlüssel
K1 zu bilden. Schließlich
werden bei Block 740 die verschlüsselten Daten X unter K1 und
N entschlüsselt,
um Y = XK1 (mod N) zu erhalten.
-
Wie
erwähnt
ist es möglich,
beim Codierer beim Verarbeiten der verschiedenen Segmente und/oder
kompletter Bitketten verschiedene Einwegfunktionen zu verwenden.
Entsprechend sollten beim Decodierer die gleiche oder die gleichen
Einwegfunktionen verwendet werden, um die ursprünglichen Segmente und Bitketten
zu erhalten. Außerdem
ist es möglich,
bei der Verarbeitung einer gegebenen Bitkette seriell mehr als eine
Einwegfunktion zu verwenden. Außerdem
können
in Verbindung mit der vorliegenden Erfindung andere bekannte Verschlüsselungstechniken
verwendet werden.
-
Es
ist dementsprechend ersichtlich, dass die vorliegende Erfindung
ein Verfahren und eine Vorrichtung zum Erzeugen eines mathematisch
eingeschränkten
Schlüssels
wie etwa eines kryptographischen RSA-Schlüssels
und Moduls unter Verwendung einer Einwegfunktion und Testen auf
die mathematisch eingeschränkte
Randbedingung wie etwa Primheit bereitstellt. Bei einer Ausführungsform
werden mit der Erfindung die Sicherheitsvorzüge sowohl des RSA-Systems als
auch einer oder mehrere Einwegfunktionen erzielt. Die Erfindung
eignet sich insbesondere für
den Einsatz mit zugangsgesteuerten Breitbandkommunikationsnetzen,
bei denen Vorkeimdaten an spezifische Decodierer im Netz geliefert
werden.
-
Bei
einer dargestellten Ausführungsform werden
die Vorkeimdaten bei einem Codierer wie etwa einem Kopfende unter
Verwendung einer Einwegfunktion verarbeitet und getestet, um zu
bestimmen, ob sie prim sind. Falls ja, werden so zwei Primzahlen
P und Q erhalten und zum Bilden eines RSA-Moduls N und kryptographischen
Schlüssels
K2 verwendet. Daten Y, wie etwa Video-, Audio oder andere Daten
in einem Kabel- oder Satellitenfernsehnetz werden verschlüsselt, um
die verschlüsselten
Daten X = YK2 (mod N) zu erhalten, und über das Netz
zu einer Gesamtheit von Decodierern übertragen.
-
Während des
Herstellungsprozesses oder zum Zeitpunkt der Installation erhalten
Decodierer die Vorkeimdaten z.B. über lokale Chips, die bei den Decodierern
unter Verwendung der gleichen Einwegfunktion verarbeitet werden,
die während
des Schlüsselerzeugungsprozesses
verwendet wurde, um das Modul N und den RSA-Schlüssel K1 zu erhalten. K1 wird über den
Euklidschen erweiterten Algorithmus aus K2 abgeleitet.
-
Die
verschlüsselten
Daten X werden entschlüsselt,
um die freien Daten Y = XK1 (mod N) wieder
herzustellen. Bevorzugt werden die Vorkeimdaten erhalten, indem
eine Zufallsbitkette in mehrere Segmente unterteilt und dann jedes
Segment unabhängig
mit der Einwegfunktion verarbeitet wird, um entsprechende verarbeitete
Segmente zu erhalten. Die verarbeiteten Segmente werden zusammengesetzt,
um eine verarbeitete Bitkette zu erhalten, die auf Primheit getestet
wird. Die Bitkette wird verwendet, wenn sich herausstellt, dass
sie zu einem ausreichenden Vertrauensgrad prim ist. Ansonsten werden aufeinander
folgende Iterationen durchgeführt,
bis eine akzeptable Bitkette erhalten wird. Zudem werden die Bitkettensegmente
so ausgewählt,
dass sie lang genug sind, damit man adäquate Sicherheit erhält und doch
kurz genug, um übermäßige Rechenzeit
aufgrund mehrerer Iterationen zum Erhalten einer primen Bitkette
zu vermeiden.
-
Wenngleich
die Erfindung in Verbindung mit verschiedenen spezifischen Ausführungsformen
beschrieben worden ist, erkennt der Fachmann, dass daran zahlreiche
Abänderungen
und Modifikationen vorgenommen werden können, ohne von dem Gedanken
und Schutzbereich der Erfindung abzuweichen, wie sie in den Ansprüchen dargelegt
sind.
-
Beispielsweise
wurde die Erfindung zwar in Verbindung mit einem Kabel- oder Satellitenfernsehbreitbandkommunikationsnetz
erörtert,
doch versteht sich, dass andere Netze wie etwa Lokalnetze (LANs), Stadtnetze (MANs),
Fernnetze (WANs), Internets, Inteanets und das Internet verwendet
werden können.
-
Zudem
versteht sich, dass die Bitkettenlängen und die Anzahl von Segmenten
pro Bitkette, wie sie in den Darstellungen verwendet werden, nur
Beispiele sind. Allgemein lautet die einzige Anforderung in dieser
Hinsicht, dass die kleinste Bitkettenlänge für ein Segment, das über eine
Einwegfunktion verarbeitet wird, ausreichend groß ist, z.B. 56 oder 64 Bits, um
einen hohen Sicherheitsgrad aufrecht zu erhalten.
-
Zudem
kann eine Verarbeitung von mehreren Bitkettensegmenten z.B. mit
den Einwegfunktionen an den Schlüsselerzeuger
während
der Herstellung und/oder am Decodierer entweder seriell oder gleichzeitig
in einem Parallelverarbeitungsverfahren implementiert werden.
-
Zusätzlich werden
zwar bevorzugt P, Q und K1 jeweils mit Einwegfunktionen verarbeitet,
doch ist dies nicht erforderlich. Beispielsweise erhält man Sicherheitsvorzüge auch
dann noch, wenn nur ein oder mehrere von P, Q und K1 mit einer oder
mehreren Einwegfunktionen verarbeitet werden.
-
Während die
Verarbeitung im Hinblick auf das Erzeugen von Bitketten und Bits
erörtert
wurde, versteht sich zudem, dass die erzeugten Werte in einer beliebigen
numerischen Basis einschließlich
z.B. dezimal und hexadezimal ausgedrückt werden können.