DE60025401T2 - Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion - Google Patents

Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion Download PDF

Info

Publication number
DE60025401T2
DE60025401T2 DE60025401T DE60025401T DE60025401T2 DE 60025401 T2 DE60025401 T2 DE 60025401T2 DE 60025401 T DE60025401 T DE 60025401T DE 60025401 T DE60025401 T DE 60025401T DE 60025401 T2 DE60025401 T2 DE 60025401T2
Authority
DE
Germany
Prior art keywords
values
key
value
way function
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60025401T
Other languages
English (en)
Other versions
DE60025401D1 (de
Inventor
J. Eric Carlsbad SPRUNK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
Arris Technology Inc
General Instrument Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arris Technology Inc, General Instrument Corp filed Critical Arris Technology Inc
Application granted granted Critical
Publication of DE60025401D1 publication Critical patent/DE60025401D1/de
Publication of DE60025401T2 publication Critical patent/DE60025401T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Detection And Correction Of Errors (AREA)
  • Lock And Its Accessories (AREA)

Description

  • 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.

Claims (34)

  1. Ein Verfahren zum Erzeugen eines kryptographischen Schlüssels K2, das die folgenden Schritte beinhaltet: (a) Erzeugen eines ersten Satzes Werte; (b) Verarbeiten von mindestens einem Anteil des ersten Satzes Werte mit einer ersten Einwegfunktion, um einen entsprechenden Wert P zu erhalten; (c) Testen des Werts P auf Erfüllung einer mathematischen Randbedingung; (d) Bilden des kryptographischen Schlüssels K2 als eine Funktion des Werts P, wenn der Wert P die mathematische Randbedingung in Schritt (c) erfüllt; und (e) wenn der Wert P die mathematische Randbedingung in Schritt (c) nicht erfüllt, Wiederholen der Schritte (a), (b) und (c) wie erforderlich, um einen Wert P zu erhalten, der die mathematische Randbedingung in Schritt (c) erfüllt, und Bilden des kryptographischen Schlüssels K2 als eine Funktion des Werts P.
  2. Verfahren gemäß Anspruch 1, wobei: mindestens einer des ersten Satzes Werte zufällig erzeugt wird.
  3. Verfahren gemäß Anspruch 1 oder 2, wobei: der Schlüssel K2 ein Rivest, Shamir und Adleman-Schlüssel (RSA-Schlüssel) ist.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei: die mathematische Randbedingung mit einem Elliptische-Kurven-Kryptosystem assoziiert wird.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, das die folgenden weiteren Schritte beinhaltet: (f) Verschlüsseln einer Nachricht Y, um eine verschlüsselte Nachricht X als eine Funktion des Schlüssels K2 zu bilden; (g) Übertragen der verschlüsselten Nachricht X über ein Breitbandkommunikationsnetz an einen Decodierer in einer Gesamtheit von Decodierern; und (h) Versehen des Decodierers mit Daten zur Verwendung beim Entschlüsseln der verschlüsselten Nachricht X.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei: der Schritt (b) den Schritt des Verarbeitens von mindestens einem Anteil des ersten Satzes Werte mit der ersten Einwegfunktion beinhaltet, um einen entsprechenden ersten Satz verarbeitete Werte zu erhalten.
  7. Verfahren gemäß Anspruch 6, wobei der Schritt (b) den folgenden weiteren Schritt beinhaltet: Assemblieren des ersten Satzes verarbeitete Werte, um den Wert P zu bilden.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, wobei: die mathematische Randbedingung mit einem gewünschten Primheitsvertrauensgrad Primheit ist.
  9. Verfahren gemäß Anspruch 8, das die folgenden weiteren Schritte beinhaltet: (f) Erzeugen eines zweiten Werts Q aus einem zweiten Satz Werte; (g) Bilden von φ = (P – 1)·(Q – 1); (h) Erzeugen eines dritten Satzes Werte; (i) Verarbeiten von mindestens einem Anteil des dritten Satzes Werte mit einer Einwegfunktion davon, um einen entsprechenden Wert K1 zu erhalten; (j) Testen des Werts K1 auf relative Primheit hinsichtlich φ; und (k) wenn sich der Wert K1 in dem Schritt (j) nicht als relativ teilerfremd hinsichtlich φ herausstellt, Wiederholen der Schritte (h), (i) und (j) wie erforderlich, um einen Wert K1 zu erhalten, der relativ tellerfremd zu φ ist.
  10. Verfahren gemäß Anspruch 9, wobei: der Schritt (i) den Schritt des Verarbeitens von mindestens einem Anteil des dritten Satzes Werte mit der Einwegfunktion davon beinhaltet.
  11. Verfahren gemäß Anspruch 9 oder 10, wobei: der Schritt (j) bestimmt, dass der Wert K1 hinsichtlich φ relativ tellerfremd ist, wenn ein größter gemeinsamer Teiler des Werts K1 und φ eins ist.
  12. Verfahren gemäß einem der Ansprüche 9 bis 11, wobei: mindestens ein Anteil des zweiten Satzes Werte zufällig erzeugt wird.
  13. Verfahren gemäß einem der Ansprüche 9 bis 12, wobei: der zweite Wert Q in dem Schritt (f) durch das Verarbeiten von mindestens einem Anteil des zweiten Satzes Werte mit einer Einwegfunktion davon erzeugt wird.
  14. Verfahren gemäß einem der Ansprüche 9 bis 13, wobei: mindestens ein Anteil des dritten Satzes Werte zufällig erzeugt wird.
  15. Verfahren gemäß einem der Ansprüche 9 bis 14, das die folgenden weiteren Schritte beinhaltet: (l) Bilden eines Moduls N = P × Q; und (m) Bilden einer verschlüsselten Nachricht X durch Verschlüsseln einer Nachricht Y als eine Funktion des Schlüssels K2 und des Moduls N.
  16. Verfahren gemäß Anspruch 15, wobei: der Schritt (m) den Schritt des Verschlüsselns der Nachricht Y beinhaltet, um die verschlüsselte Nachricht X = YK2 (mod N) zu bilden.
  17. Verfahren zum Decodieren einer verschlüsselten Nachricht X an einem Decodierer, das die folgenden Schritte beinhaltet: (a) Verarbeiten von mindestens einem Anteil eines ersten Satzes Werte mit einer ersten Einwegfunktion, um einen entsprechenden ersten Satz verarbeitete Werte zu erhalten; (b) Bilden eines Werts P aus dem ersten Satz verarbeitete Werte; (c) Erzeugen eines kryptographischen Schlüssels K1 aus einem zweiten Satz Werte; und (d) Entschlüsseln der verschlüsselten Nachricht X als eine Funktion des kryptographischen Schlüssels K1 und des Werts P; wobei: (i) die verschlüsselte Nachricht X an einem Codierer als eine Funktion eines kryptographischen Schlüssels K2 verschlüsselt ist, (ii) der Schlüssel K2 an dem Codierer gemäß dem Verfahren aus Anspruch 1 aus Werten einschließlich eines dritten Satzes Werte erzeugt wird, und (iii) mindestens ein Anteil des dritten Satzes Werte mit einer ersten Einwegfunktion davon entsprechend der ersten Einwegfunktion des Schritts (a) verarbeitet wird, um einen entsprechenden dritten Satz verarbeiteter Werte zu erhalten, die eine mathematische Randbedingung erfüllen.
  18. Verfahren gemäß Anspruch 17, wobei: mindestens einer des zweiten Satzes Werte zufällig erzeugt wird.
  19. Verfahren gemäß Anspruch 17 oder 18, wobei: der Schlüssel K1 ein Rivest, Shamir und Adleman-Schlüssel (RSA-Schlüssel) ist.
  20. Verfahren gemäß einem der Ansprüche 17 bis 19, wobei: die mathematische Randbedingung mit einem Elliptische-Kurven-Kryptosystem assoziiert ist.
  21. Verfahren gemäß einem der Ansprüche 17 bis 20, wobei: die verschlüsselte Nachricht X über ein Breitbandkommunikationsnetz von dem Codierer an eine Gesamtheit von Decodierern einschließlich des Decodierers übertragen wird.
  22. Verfahren gemäß einem der Ansprüche 17 bis 21, wobei: mindestens einer des ersten Satzes Werte zufällig erzeugt wird.
  23. Verfahren gemäß einem der Ansprüche 17 bis 22, wobei: mindestens einer des dritten Satzes Werte zufällig erzeugt wird.
  24. Verfahren gemäß einem der Ansprüche 17 bis 23, wobei: die mathematische Randbedingung an einem gewünschten Primheitsvertrauensgrad Primheit ist.
  25. Verfahren gemäß einem der Ansprüche 17 bis 24, wobei der Schritt (b) den folgenden weiteren Schritt beinhaltet: Assemblieren des ersten Satzes verarbeitete Werte, um den Wert P zu bilden.
  26. Verfahren gemäß einem der Ansprüche 17 bis 25, wobei: der Schritt (c) den Schritt des Verarbeitens von mindestens einem Anteil des zweiten Satzes Werte mit einer Einwegfunktion davon beinhaltet, um einen entsprechenden zweiten Satz verarbeitete Werte zu erhalten.
  27. Verfahren gemäß Anspruch 26, wobei der Schritt (d) den folgenden Schritt beinhaltet: Assemblieren des zweiten Satzes verarbeitete Werte, um den Schlüssel K1 zu bilden.
  28. Verfahren gemäß einem der Ansprüche 17 bis 27, das die folgenden weiteren Schritte beinhaltet: (d) Bereitstellen eines vierten Satzes Werte; (e) Verarbeiten von mindestens einem Anteil des vierten Satzes Werte mit einer Einwegfunktion davon, um einen entsprechenden Wert Q zu erhalten; und (f) Bilden eines Moduls N = P × Q zur Verwendung beim Entschlüsseln der verschlüsselten Nachricht X.
  29. Verfahren gemäß Anspruch 28, wobei: der vierte Satz Werte der gleiche ist wie der dritte Satz Werte.
  30. Verfahren gemäß Anspruch 28 oder 29, wobei: K2 und K1 durch K2 = K1–1 mod φ in Beziehung stehen, wobei φ = (P – 1)×(Q – 1).
  31. Verfahren gemäß einem der Ansprüche 28 bis 30, wobei mindestens ein Anteil des vierten Satzes Werte zufällig erzeugt wird.
  32. Verfahren gemäß einem der Ansprüche 28 bis 31, wobei die verschlüsselte Nachricht X aus einer Nachricht Y an dem Codierer gemäß: X = YK2 (mod N) gebildet wird, das den folgenden weiteren Schritt beinhaltet: (g) Entschlüsseln der verschlüsselten Nachricht X unter Verwendung des kryptographischen Schlüssels K1 und des Moduls N, um die Nachricht Y gemäß: XK1 (mod N) zu erhalten.
  33. Ein Codierer zum Erzeugen eines kryptographischen Schlüssels K2, der Folgendes beinhaltet: Mittel (315, 320) zum Erzeugen eines ersten Satzes Werte; Mittel (325) zum Verarbeiten von mindestens einem Anteil des ersten Satzes Werte mit einer ersten Einwegfunktion, um einen entsprechenden Wert P zu erhalten; Mittel (345) zum Testen des Werts P zur Erfüllung einer mathematischen Randbedingung; und Mittel (365) zum Bilden des kryptographischen Schlüssels K2 als eine Funktion des Werts P, wenn der Wert P die mathematische Randbedingung erfüllt; wobei, wenn der Wert P die mathematische Randbedingung nicht erfüllt, das Erzeugungsmittel (315, 320) einen neuen ersten Satz Werte erzeugt, das Verarbeitungsmittel (325) den neuen ersten Satz Werte verarbeitet und das Testmittel (345) den neuen Wert P zur Erfüllung der mathematischen Randbedingung testet, bis der Wert P die mathematische Randbedingung erfüllt, und das Bildungsmittel (365) ausgeführt ist, um den kryptographischen Schlüssel K2 als eine Funktion des Werts P zu bilden.
  34. Ein Decodierer zum Decodieren einer verschlüsselten Nachricht X, der Folgendes beinhaltet: Mittel zum Erzeugen eines ersten Satzes Werte; Mittel (615) zum Verarbeiten von mindestens einem Anteil des ersten Satzes Werte mit einer ersten Einwegfunktion, um einen entsprechenden ersten Satz verarbeitete Werte zu erhalten; Mittel (610) zum Bilden eines Werts P aus dem ersten Satz verarbeitete Werte; Mittel (610) zum Erzeugen eines kryptographischen Schlüssels K1 aus einem zweiten Satz Werte; und Mittel (265) zum Entschlüsseln der verschlüsselten Nachricht X als eine Funktion des kryptographischen Schlüssels K1 und des Werts P; wobei: (i) die verschlüsselte Nachricht X an einem Codierer (200) als eine Funktion eines kryptographischen Schlüssels K2 verschlüsselt ist, (ii) der Schlüssel K2 an dem Codierer (200) gemäß dem Verfahren aus Anspruch 1 aus einem Satz Werte erzeugt wird, und (iii) mindestens ein Anteil des Satzes Werte des Schlüssels K2 mit einer ersten Einwegfunktion davon entsprechend der ersten Einwegfunktion des Schritts (b) verarbeitet wird, um einen entsprechenden Satz verarbeiteter Werte zu erhalten, die eine mathematische Randbedingung erfüllen.
DE60025401T 1999-11-29 2000-11-22 Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion Expired - Fee Related DE60025401T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45019499A 1999-11-29 1999-11-29
US450194 1999-11-29
PCT/US2000/032126 WO2001047178A2 (en) 1999-11-29 2000-11-22 Generation of a mathematically constrained key using a one-way function

Publications (2)

Publication Number Publication Date
DE60025401D1 DE60025401D1 (de) 2006-03-30
DE60025401T2 true DE60025401T2 (de) 2006-09-14

Family

ID=23787154

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60025401T Expired - Fee Related DE60025401T2 (de) 1999-11-29 2000-11-22 Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion

Country Status (10)

Country Link
US (1) US20040234074A1 (de)
EP (1) EP1234404B1 (de)
KR (1) KR20020060243A (de)
CN (1) CN1402920A (de)
AT (1) ATE315292T1 (de)
AU (1) AU5074201A (de)
CA (1) CA2392077A1 (de)
DE (1) DE60025401T2 (de)
TW (1) TW548940B (de)
WO (1) WO2001047178A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2120391A3 (de) * 2008-05-15 2011-10-19 CompuGroup Medical AG Verfahren zur Erzeugung eines asymmetrischen kryptografischen Schlüsselpaares und die Anwendung in der elektronischen Gesundheitskarte (eGK)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170997B2 (en) 2000-12-07 2007-01-30 Cryptico A/S Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data
US8068516B1 (en) * 2003-06-17 2011-11-29 Bigband Networks, Inc. Method and system for exchanging media and data between multiple clients and a central entity
KR100667757B1 (ko) * 2004-07-07 2007-01-11 삼성전자주식회사 자기 규제 방법 및 이를 이용한 콘텐츠 송수신 방법
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
DE102005030657B3 (de) * 2005-06-30 2006-11-16 Siemens Ag Codierverfahren und Codiereinrichtung zum Sichern eines Zählerstands eines Zählwerks vor einer nachträglichen Manipulation, sowie Prüfverfahren und Prüfeinrichtung zum Prüfen einer Authentizität eines Zählerstands eines Zählwerks
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
KR101285597B1 (ko) * 2006-06-29 2013-07-15 삼성전자주식회사 그룹 키 업데이트 방법 및 이를 이용한 그룹 키 업데이트장치
US8595273B2 (en) * 2007-01-24 2013-11-26 International Business Machines Corporation Hash algorithm using randomization function
US8060750B2 (en) * 2007-06-29 2011-11-15 Emc Corporation Secure seed provisioning
US8307210B1 (en) 2008-05-02 2012-11-06 Emc Corporation Method and apparatus for secure validation of tokens
US7522723B1 (en) * 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
CA2728445C (en) * 2008-06-24 2017-01-24 Nagravision S.A. Secure memory management system and method
US8954696B2 (en) 2008-06-24 2015-02-10 Nagravision S.A. Secure memory management system and method
FR2941115B1 (fr) * 2009-01-14 2011-02-25 Sagem Securite Codage de points d'une courbe elliptique
US20120032816A1 (en) * 2010-08-06 2012-02-09 Cho Jeffrey C System And Method For Controlling Sport Event Transducers
US9432342B1 (en) * 2011-03-08 2016-08-30 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
CN108055128B (zh) * 2017-12-18 2021-11-19 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备
CN113127911B (zh) * 2021-05-06 2022-05-20 国网河北省电力有限公司信息通信分公司 电力数据加密方法、装置及终端

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US5201000A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5488412A (en) * 1994-03-31 1996-01-30 At&T Corp. Customer premises equipment receives high-speed downstream data over a cable television system and transmits lower speed upstream signaling on a separate channel
US5515307A (en) * 1994-08-04 1996-05-07 Bell Communications Research, Inc. Pseudo-random generator
US5602917A (en) * 1994-12-30 1997-02-11 Lucent Technologies Inc. Method for secure session key generation
WO1996033565A1 (en) * 1995-04-21 1996-10-24 Certicom Corp. Method for signature and session key generation
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
US5937066A (en) * 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
US5809140A (en) * 1996-10-15 1998-09-15 Bell Communications Research, Inc. Session key distribution using smart cards
US5953420A (en) * 1996-10-25 1999-09-14 International Business Machines Corporation Method and apparatus for establishing an authenticated shared secret value between a pair of users
ATE325478T1 (de) * 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2120391A3 (de) * 2008-05-15 2011-10-19 CompuGroup Medical AG Verfahren zur Erzeugung eines asymmetrischen kryptografischen Schlüsselpaares und die Anwendung in der elektronischen Gesundheitskarte (eGK)

Also Published As

Publication number Publication date
EP1234404B1 (de) 2006-01-04
CA2392077A1 (en) 2001-06-28
TW548940B (en) 2003-08-21
WO2001047178A3 (en) 2002-04-25
CN1402920A (zh) 2003-03-12
EP1234404A2 (de) 2002-08-28
AU5074201A (en) 2001-07-03
KR20020060243A (ko) 2002-07-16
US20040234074A1 (en) 2004-11-25
WO2001047178A2 (en) 2001-06-28
DE60025401D1 (de) 2006-03-30
ATE315292T1 (de) 2006-02-15

Similar Documents

Publication Publication Date Title
DE60025401T2 (de) Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion
DE60303018T2 (de) Mehrbenutzerschlüsselerzeugung auf polynombasis und Authentisierungsverfahren uns System
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
DE69534192T2 (de) Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE69834431T3 (de) Leckresistentes kryptographisches verfahren und vorrichtung
DE69725659T2 (de) Verfahren und Einrichtung zur Ablage eines in einem RSA-Kryptosystem benutzten Geheimschlüssels
DE69629857T2 (de) Datenkommunikationssystem unter Verwendung öffentlicher Schlüssel
DE69929251T2 (de) Verschlüsselungssystem mit einem schlüssel veränderlicher länge
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE102012201164B4 (de) Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE60313519T2 (de) Verfahren zur Erzeugung eines Schlüssels, Inhaltsbereitstellungsverfahren, Entschlüsselungsverfahren für verschlüsselte Inhalte, Verfahren zur Erkennung von illegalen Benutzern, System zum Bereitstellen von Inhalten, Benutzersystem, Verfahren zur Ablaufverfolgung, Verschlüsselungsgerät, Entschlüsselungsgerät, und Computerprogramm
DE602004001273T2 (de) Verfahren und Vorrichtung zur Identifiezierungsbasierten Verschlüsselung
DE60215332T2 (de) System und Verfahren zum Verabreiten eines gemeinsamen Geheimnisses
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
DE69937007T2 (de) Verfahren und vorrichtung zur verschlüsselung und entschlüsselung von daten
CH660822A5 (de) Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage.
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE112012000971B4 (de) Datenverschlüsselung
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
EP1423786A2 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses einer modularen exponentiation
DE10248004A1 (de) Verfahren und Vorrichtung zum Verschlüsseln von Daten
EP1590731A2 (de) Modulare exponentiation mit randomisierten exponenten
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee