DE60206809T2 - Verfahren und Systeme zum Erzeugen von Chiffrierschlüsseln unter Verwendung von Zufallsbitfolgen - Google Patents

Verfahren und Systeme zum Erzeugen von Chiffrierschlüsseln unter Verwendung von Zufallsbitfolgen Download PDF

Info

Publication number
DE60206809T2
DE60206809T2 DE60206809T DE60206809T DE60206809T2 DE 60206809 T2 DE60206809 T2 DE 60206809T2 DE 60206809 T DE60206809 T DE 60206809T DE 60206809 T DE60206809 T DE 60206809T DE 60206809 T2 DE60206809 T2 DE 60206809T2
Authority
DE
Germany
Prior art keywords
computer system
random
computer
key
data packet
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 - Lifetime
Application number
DE60206809T
Other languages
English (en)
Other versions
DE60206809D1 (de
Inventor
Paul Cador Bury St. Edmunds Suffolk Roberts
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE60206809D1 publication Critical patent/DE60206809D1/de
Application granted granted Critical
Publication of DE60206809T2 publication Critical patent/DE60206809T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/80Wireless

Description

  • Die vorliegende Erfindung betrifft das Gebiet der sicheren digitalen Datenübertragung. Insbesondere betrifft die vorliegende Erfindung Verfahren und Systeme zum automatischen Erzeugen eines Sicherheitsschlüssels, wie zum Beispiel eines Chiffrierschlüssels, der ein Seed mit einer zufälligen Bitfolge verwendet.
  • Computernetzwerke haben die Art und Weise in der Menschen kommunizieren und Handel treiben verändert. Heute durchqueren selbst sensitive Datenübertragungen öffentliche Netzwerke, wie zum Beispiel das Internet. Die Verschlüsselung ermöglicht, das solche sensitiven Datenübertragungen mit einem deutlich verringerten Risiko, dass derartige Nachrichten von einem unberechtigten Individuum abgefangen und entschlüsselt werden, über öffentliche Netze übertragen werden können.
  • Die Verschlüsselung involviert die Verwendung eines Schlüssels zum Verschlüsseln der Daten, die generell lesbar sind (hierin auch als „Klartext" bezeichnet), in Daten, die generell nicht lesbar sind (hierin auch als „Ciphertext" bezeichnet). Der Ciphertext kann über ein öffentliches Netzwerk, das Angriffen durch unberechtigte Personen ausgesetzt ist, übertragen werden. Der berechtigte Empfänger verwendet einen Entschlüsselungsschlüssel, um den Ciphertext zurück in Klartext zu entschlüsseln, so dass die Daten adäquat interpretiert werden können. Da die allgemeine Öffentlichkeit keinen Zugang zu dem Entschlüsselungsschlüssel hat, können unberechtigte Nutzer den Ciphertext nicht dechiffrieren und infolgedessen die Daten nicht interpretieren.
  • Bei der symmetrischen Verschlüsselung ist der Schlüssel zur Verschlüsselung und der Schlüssel zu Entschlüsselung derselbe. Dieser zuvor ausgehandelte, geheime Schlüssel ist im Idealfall nur den berechtigten Teilnehmern einer sicheren Datenübertragung bekannt. Jedoch ist es für einen unberechtigt Abhörenden, unter der Voraussetzung, dass ausreichend Zeit, ausreichende Kenntnisse und genügend Verarbeitungsressourcen vorhanden sind, möglich, den Schlüssel zu identifizieren und infolgedessen alle Nachrichten, die sie während der Übertragung zwischen den berechtigten Teilnehmern der Datenübertragung abfangen können, zu entschlüsseln.
  • Um gegen derartiges unerwünschtes Abfangen von sicheren Datenübertragungen gerüstet zu sein, haben Sicherheitsprotokolle wie zum Beispiel das WTLS-Protokoll (Wireless Transport Layer Security Protocol) Bestimmungen zum Ändern des Schlüssels auf einer periodischen Basis. Infolgedessen hat ein Angreifer, dem es gelingt, sich den Schlüssel zu beschaffen, nur solange Zugriff auf die sichere Datenübertragung, bis der Schlüssel geändert wird.
  • In diesen Sicherheitsprotokollen wird zwischen den beiden Parteien in einer sicheren Datenübertragungssitzung eine Bitfolge, die „Master-Geheimnis" genannt wird, ausgehandelt. Dieses Master-Geheimnis wird zusammen mit einer Bitfolge, die als Seed bezeichnet wird, in einen Einweg-Hash-Algorithmus eingegeben, um einen Verschlüsselungs-/Entschlüsselungsschlüssel zu erzeugen. Da das Ergebnis des Einweg-Hash-Algorithmus von dem eingegebenen Seed abhängig ist, ändert das gelegentliche Ändern des Seeds von Zeit zu Zeit den Schlüssel. Das Seed wird innerhalb eines Datenpaketes klar übertragen. Der Empfänger verwendet das Seed und das zuvor verhandelte Master-Geheimnis als Eingaben für denselben Einweg-Hash-Algorithmus, um denselben Schlüssel, der verwendet wurde, um das Paket zu verschlüsseln, zu erzeugen. Da symmetrische Verschlüsselung angewendet wird, wird dieser Schlüssel anschließend verwendet, um das Paket zu entschlüsseln.
  • Bei konventionellen Sicherheitsprotokollen, wie dem WTLS-Protokoll, ist das Seed im Wesentlichen eine Bitfolge, die für den Klienten unikal ist. Wenn das Seed zu ändern ist, wird die Bitfolge einfach inkrementiert. Ein Angreifer kann einen Vorteil aus den vorhersehbaren Änderungen des Seeds gewinnen, um das Master-Geheimnis, das erforderlicht ist, um den Schlüssel, der für den Angriff erforderlich ist, zu bilden, festzustellen. Es würde eine Verbesserung der Technik darstellen, ein Verschlüsselungs/Entschlüsselungsverfahren und ein System bereitzustellen, in denen es für einen Angreifer schwieriger ist, das Master-Geheimnis und den Schlüssel zu identifizieren.
  • Es würde einen weiteren Vorteil bereitstellen, den Schaden zu verringern, der durch einen Angreifer verursacht wird, wenn der Angreifer den Schlüssel trotz der Schwierigkeiten beim Identifizieren des Schlüssels identifizieren würde.
  • US 5 428 686 A legt eine sichere Datenübertragungsvorrichtung offen, die eine nicht extrahierbare Langzeit-Masterschlüssel-Variable, die gemeinsam von allen Datenendgeräten des Systems verwahrt wird, einbezieht. Ein Pseudozufallsbitfolgen-Generator innerhalb des Senders stellt einen binären Bitstrom bereit, der unverschlüsselt zu dem vorgesehenen Empfänger übertragen wird.
  • WO 98 55717 A legt ein Verfahren und ein System zur Fernsteuerung von Vorrichtungen mit einer sicheren Selbstlernfähigkeit offen. Ein Codierer stellt unter Verwendung eines Schlüsselerzeugungs-Seeds einen verschlüsselten Wert her.
  • Es ist eine Aufgabe der vorliegenden Erfindung verbesserte Verfahren und entsprechende Computerprogrammprodukte zum Verschlüsseln und jeweiligen Entschlüsseln von Daten in einem Netzwerkssystem, basierend auf einem Sicherheitsschlüssel, der es für einen Angreifer schwieriger macht, den Schlüssel zu identifizieren, bereitzustellen.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst.
  • Die bevorzugten Ausführungsbeispiele sind durch die Gegenstände der abhängigen Ansprüche definiert.
  • Es werden Verfahren und Methoden zum Erzeugen eines Sicherheitsschlüssels, wie zum Beispiel eines Verschlüsselungsschlüssels, um es für Angreifer schwieriger zu machen, den Schlüssel zu identifizieren, beschrieben.
  • Speziell erzeugt ein kryptografisch sicherer Zufallszahlengenerator eine zufällige Bitfolge, die in ein Seed eingefügt wird. Dieses Zufalls-Seed wird mit einem ausgehandelten Master-Geheimnis an ein Schlüsselerzeugungs-Modul bereitgestellt. Das Schlüsselerzeugungs-Modul kann eine Pseudozufallsfunktion anwenden, die in Übereinstimmung mit dem TLS-Protokoll (Transport Layer Security Protocol) oder dem WTLS-Protokoll (Wireless Transport Layer Security Protocol) ist. Dieser Schlüssel kann anschließend verwendet werden, um eine klare Textnachricht zu verschlüsseln, um ein verschlüsseltes Datenpaket zu bilden. Das verschlüsselte Datenpaket enthält außerdem das Zufalls-Seed in unverschlüsselter Form. Das verschlüsselte Datenpaket kann bei vermindertem Risiko abgehört zu werden über ein öffentliches Netzwerk zu einem Empfänger übertragen werden.
  • Wenn die Entschlüsselungsvorrichtung des Empfängers das Datenpaket empfängt, liest die Vorrichtung des Empfängers das Seed aus dem Datenpaket und stellt das Zufalls-Seed zusammen mit dem ausgehandelten Master-Geheimnis an ein Schlüsselerzeugungs-Modul bereit, das mit dem Schlüsselerzeugungs-Modul, das verwendet wurde, um den Schlüssel für die Verschlüsselung zu erzeugen, identisch ist, bereit. Der sich daraus ergebende Schlüssel wird verwendet, um das Datenpaket zu entschlüsseln.
  • Ein Vorteil der vorliegenden Erfindung ist, dass das Seed, das verwendet wird, um den Schlüssel zu erzeugen, eine zufällige Bitfolge enthält. Dies macht es für einen Angreifer schwieriger den Verschlüsselungsschlüssel oder das Master-Geheimnis zu identifizieren, um dadurch in der Lage zu sein, eine sensitive Nachricht zu entschlüsseln und erfolgreich abzufangen.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung wird für jedes von der Verschlüsselungsvorrichtung zu der Entschlüsselungsvorrichtung übertragene Datenpaket eine neue zufällige Bitfolge erzeugt. Dies bedeutet, dass das Zufalls-Seed und infolgedessen der Verschlüsselungsschlüssel für jedes Datenpaket verschiedenen sind. Folglich würde der Angreifer selbst dann, wenn der Angreifer den Verschlüsselungsschlüssel für einen Datenpaket identifiziert, nicht automatisch in der Lage sein, weitere Datenpakete ohne das Brechen eines weiteren Verschlüsselungsschlüssels abzufangen. Folglich machen es die Prinzipien der vorliegenden Erfindung nicht nur schwieriger den Schlüssel zu brechen, sondern verringern außerdem den Gewinn für das Brechen des Schlüssels.
  • Weitere Merkmale und Nutzen der vorliegenden Erfindung werden in der folgenden Beschreibung dargestellt und werden teilweise aus der Beschreibung offensichtlich oder können durch das praktische Ausführen der Erfindung bekannt werden. Die Merkmale und Nutzen der Erfindung können durch die Instrumente und Kombinationen, die insbesondere in den angehängten Ansprüchen ausgeführt werden, realisiert und erreicht werden. Diese und weitere Merkmale der vorliegenden Erfindung werden durch die folgende Beschreibung und die angehängten Patentansprüche vollständiger sichtbar oder können durch das Umsetzen der Erfindung in die Praxis, wie hierin im Folgenden dargestellt, erkannt werden.
  • Kurzbeschreibung der Zeichnungen
  • Um die Art und Weise, in der die oben zitierten und weitere Vorteile und Merkmale der Erfindung erreicht werden können, zu beschreiben, folgt eine speziellere Beschreibung der Erfindung, die oben kurz beschrieben wurde, erstellt unter Bezugnahme auf spezielle Ausführungsbeispiel davon, die in den beigefügten Zeichnungen dargestellt sind. Es versteht sich, dass diese Zeichnungen nur typische Ausführungsbeispiele abbilden und deshalb nicht vorgesehen sind, um den Schutzumfang der Erfindung einzuschränken. Die Erfindung wird unter Verwendung der begleitenden Zeichnungen ausführlicher und detaillierter beschrieben, wobei in den Zeichnungen
  • 1 ein beispielhaftes System darstellt, das eine geeignete Betriebsumgebung für die vorliegende Erfindung bereitstellt,
  • 2 eine verschlüsselte Datenübertragung in einer Netzwerksystemumgebung darstellt,
  • 3 die Komponenten und den Datenfluss der Verschlüsselungsvorrichtung der 2 schematisch darstellt;
  • 4 ein Ablaufdiagramm eines Verfahrens zum Verschlüsseln von Daten, das durch die Verschlüsselungsvorrichtung der 2 angewendet wird, darstellt,
  • 5 schematisch die Komponenten und den Datenfluss der Entschlüsselungsvorrichtung der 2 darstellt und
  • 6 ein Ablaufdiagramm eines Verfahrens zum Entschlüsseln von Daten, das durch die Entschlüsselungsvorrichtung der 2 abgewendet wird, darstellt.
  • Ausführliche Beschreibung der Erfindung
  • Die vorliegende Erfindung erstreckt sich sowohl auf Verfahren als auch auf Systeme zum Erzeugen eines XX der ein Seed, das eine zufällige Bitfolge verwendet, enthält. Der Schlüssel wird sowohl durch das Eingeben des Seeds als auch eines vorab ausgehandelten Master-Geheimnisses in ein Schlüsselerzeugungs-Modul zum Erzeugen eines Schlüssels erzeugt. Anschließend verwendet ein Verschlüsselungsmodul den Schlüssel, um ein Datenpaket zu verschlüsseln. Das Datenpaket kann dann über ein öffentliches Netzwerk an den vorgesehenen Empfänger übertragen werden. Bei Empfang des Paketes verwendet der Empfänger ein vorab ausgehandeltes Master-Geheimnis und das aus dem Datenpaket gelesene Seed als Eingaben für dasselbe Schlüsselerzeugungs-Modul, das verwendet wurde, um den XX zu erzeugen. Ein Entschlüsselungsmodul, das mit dem Verschlüsselungsmodul symmetrisch ist, verwendet anschließend diesen Schlüssel, um das Datenpaket zu entschlüsseln. In einem Ausführungsbeispiel wird der Schlüssel für jedes Datenpaket durch das Ändern der zufälligen Bitfolge, die für jedes Paket in dem Seed enthalten ist, geändert.
  • Das Fehlen der Vorhersehbarkeit in dem Seed macht es für einen Angreifer schwierig, den Schlüssel und das Master-Geheimnis zu identifizieren. Zusätzlich verringert das Ändern des für jedes Datenpaket verwendeten Seeds den Schaden, der durch den Angreifer verursacht wird, da selbst dann, wenn der Angreifer den Schlüssel identifiziert, der Schlüssel nur für ein Datenpaket geeignet sein würde und für das nächste nicht mehr zu verwenden wäre.
  • Die Ausführungsbeispiele der vorliegenden Erfindung können einen Spezial- oder Allzweckcomputer, der verschiedene Computerhardware enthält, umfassen, wie im Folgenden ausführlicher erörtert wird. Die Ausführungsbeispiele innerhalb des Schutzumfangs der Erfindung enthalten außerdem computerlesbare Medien zum Tragen oder Besitzen von computerausführbaren Befehlen oder Datenstrukturen, die darauf gespeichert sind. Derartige computerlesbare Medien können alle erhältlichen Medien, auf die durch einen Spezialcomputer oder einen Allzweckcomputer zugegriffen werden können, sein. Beispielsweise und nicht einschränkend können solche computerlesbaren Medien physikalische Speichermedien, wie zum Beispiel RAM, ROM, EEPROM, CD-ROM oder optische Plattenspeicher-, magnetische Plattenspeicher- oder weitere magnetische Speichervorrichtungen oder jedes andere Medium, das verwendet werden kann, um erwünschte Programmcodeeinrichtungen in Form von computerausführbaren Befehlen oder Datenstrukturen speichern können und auf die durch einen Spezialcomputer oder einen Allzweckcomputer zugegriffen werden kann, umfassen.
  • Wenn Informationen über ein Netzwerk oder eine andere Datenübertragungsverbindung (entweder fest verdrahtet, drahtlos oder in einer Kombination aus fest verdrahtet und drahtlos) zu einem Computer übertragen werden, betrachtet der CompOuter die verbindung adäquat als ein computerlesbares Medium. Infolgedessen wird jede solche Verbindung richtigerweise als computerlesbares Medium bezeichnet. Kombinationen der oben aufgezählten sollten ebenso in den Geltungsbereich der computerlesbaren Medien aufgenommen werden. Computerlesbare Befehle umfassen beispielsweise Befehle und Daten, die einen Allzweckcomputer, einen Spezialcomputer oder eine spezielle Verarbeitungsvorrichtung veranlassen, eine bestimmte Funktion oder eine Reihe von Funktionen auszuführen.
  • Die 1 und die folgenden Diskussion sind vorgesehen, um eine kurze allgemeine Beschreibung einer geeigneten EDV-Umgebung bereitzustellen, in der die Erfindung angewendet werden kann. Obwohl nicht erforderlich, wird die Erfindung in dem allgemeinen Kontext von computerausführbaren Befehlen, wie zum Beispiel Programmmodulen, die durch Computer in Netzwerkumgebungen ausgeführt werden, beschrieben. Generell enthalten Programmmodule Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Computerlesbare Befehle, zugehörige Datenstrukturen und Programmmodule stellen Beispiele der Programmcodeeinrichtungen zum Ausführen der Schritte des hierin offen gelegten Verfahrens dar. Die bestimmte Reihenfolge von solchen ausführbaren Befehlen oder zugehörigen Datenstrukturen stellen Beispiele der entsprechenden Handlungen zum Implementieren der in solchen Schritten beschriebenen Funktionen dar.
  • Die Fachleute in dieser Technik werden anerkennen, dass die Erfindung in Netzwerk-EDV-Umgebungen mit vielen Computersystemkonfigurationstypen, wie Personalcomputern, tragbaren Vorrichtungen, Multiprozessorsystemen, mikroprozessorbasierter oder programmierbarer Anwenderelektronik, Netzwerk-PCs, Minicomputern, Großrechnern und dergleichen, in die Praxis umgesetzt werden kann. Ebenso kann die Erfindung in verteilten EDV-Umgebungen, in denen die Aufgaben durch lokale und dezentrale Verarbeitungsvorrichtungen, die durch ein Datenübertragungsnetzwerk (entweder durch fest verdrahtete Links, drahtlose Links oder durch eine Kombination von fest verdrahteten und drahtlosen Links) verbunden sind, ausgeführt werden. In einer verteilten EDV-Umgebung können die Programmmodule sowohl in den lokalen als auch in dezentralen Datenspeichervorrichtungen angeordnet sein.
  • Unter Bezugnahme auf die 1 enthält ein beispielhaftes System zum Implementieren der Erfindung eine Allzweck-EDV-Vorrichtung in Form eines konventionellen Computers 120, der einen Prozessor 121, einen Systemspeicher 122 und einen Systembus 123, der verschiedene Systemkomponenten, einschließlich den Systemspeicher 122, mit dem Prozessor 121 koppelt, enthält. Der Systembus 123 kann jeder einer Vielzahl von Busstrukturen sein, die einen Speicherbus oder Speicherkontroller, einen Peripheriebus und einen lokalen Bus enthalten, die jede eine Vielzahl von Busarchitekturen verwenden. Das System enthält einen Festspeicher (ROM) 124 und einen Direktzugriffsspeicher (RAM) 125. Ein die Grundroutinen enthaltendes Eingabe-/Ausgabe-System (BIOS) 126, das die Übertragung von Informationen zwischen den Elementen in dem Computer 120 beispielsweise beim Inbetriebsetzen unterstützt, kann in dem ROM 124 gespeichert sein.
  • Der Computer 120 kann außerdem ein magnetisches Festplattenlaufwerk 127 zum Auslesen und Beschreiben der magnetischen Festplatte 139, ein Magnetplattenlaufwerk 128 zum Auslesen und Beschreiben einer herausnehmbaren Magnetplatte 129 und ein optisches Plattenlaufwerk zum Auslesen und Beschreiben einer herausnehmbaren optischen Platte 131, wie zum Beispiel einer CD-ROM oder anderer optischer Medien, enthalten.
  • Das magnetische Festplattenlaufwerk 127, das Magnetplattenlaufwerk 128 und das optische Plattenlaufwerk 130 sind jeweils durch eine Festplattenlaufwerk-Schnittstelle 132, eine Magnetplattenlaufwerk-Schnittstelle 133 und eine Schnittstelle für das optische Laufwerk mit dem Systembus 123 verbunden. Die Laufwerke und die ihnen zugehörigen computerlesbaren Medien stellen für den Computer 120 das nichtflüchtige Speichern von computerausführbaren Befehlen, Datenstrukturen, Programmmodulen und weiteren Daten bereit. Obwohl die hierin beschriebene beispielhafte Umgebung eine magnetische Festplatte 139, eine herausnehmbare Magnetplatte 129 und eine herausnehmbare optische Platte 131 verwendet, können andere Typen von computerlesbaren Medien zum Speichern von Daten, wie beispielsweise Magnetkassetten, Flash-Speicherkarten, DVDs, Bernoulli-Kassetten, RAMs, ROMs und dergleichen, verwendet werden.
  • Programmcodeeinrichtungen, die ein Programmmodul oder mehrere Programmmodule umfassen, können auf der Festplatte 139, der Magnetplatte 129, der optischen Platte 131, in dem ROM 124 oder in dem RAM 125, einschließlich eines Betriebssystems 135, eines Anwendungsprogramms 136 oder mehrerer Anwendungsprogramme 136, weiterer Programmmodule 137 und weiterer Programmdaten 138, gespeichert werden. Ein Anwender kann durch eine Tastatur 140, eine Zeigevorrichtung 142 oder andere Eingabevorrichtungen (nicht gezeigt), wie zum Beispiel ein Mikrofon, einen Steuerhebel, ein Gamepad, eine Satellitenantenne, einen Scanner oder dergleichen, Befehle und Informationen in den Computer 120 eingeben. Diese und weitere Eingabevorrichtungen werden oft durch eine an den Systembus 123 gekoppelte serielle Eingangsschnittstelle 146 an den Prozessor 121 angeschlossen. Alternativ können die Eingabevorrichtungen durch andere Schnittstellen, wie zum Beispiel einen Paralleleingang, einen Gameport oder einen universellen Serienbus (USB) angeschlossen werden. Außerdem ist über eine Schnittstelle, wie zum Beispiel einen Videoadapter 148, ein Monitor 147 oder eine andere Anzeigevorrichtung an den Systembus 123 angeschlossen. Zusätzlich zu dem Monitor enthalten Personalcomputer typischerweise weitere periphere Ausgabevorrichtungen (nicht gezeigt), wie zum Beispiel Lautsprecher und Drucker.
  • Der Computer 120 kann in einer Netzwerkumgebung arbeiten, die logische Verbindungen zu einem dezentralen Computer oder zu mehreren dezentralen Computern, wie die dezentralen Computer 149a und 149b, verwendet.
  • Die dezentralen Computer 149a und 149b können jeweils ein weiterer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, eine Partnervorrichtung oder ein anderer gemeinsamer Netzwerkknoten sein und enthalten typischerweise viele oder alle der oben in Bezug auf den Computer 120 beschriebenen Elemente, obwohl in der 1 nur die Datenspeichervorrichtungen 150a und 150b und die ihnen zugehörigen Anwendungsprogramme 136a und 136b gezeigt werden. Die in der 1 abgebildeten logischen Verbindungen enthalten ein Lokalnetzwerk (LAN) 151 und ein Fernnetzwerk (WAN) 152, die hier beispielhaft und nicht einschränkend dargestellt werden. Derartige Netzwerke sind in firmeninternen oder unternehmensweiten Computernetzwerken, Intranetzen und im Internet weit verbreitet.
  • Wenn der Computer 120 in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 120 durch eine Netzwerkschnittstelle oder einen Adapater 153 an das lokale Netzwerk 151 angeschlossen. Wenn der Computer 120 in einer WAN-Netzwerkumgebung verwendet wird, kann der Computer 120 ein Modem 154, einen drahtlosen Link oder andere Einrichtungen zum Einrichten der Datenübertragung über das Fernnetz 152, wie zum Beispiel das Internet, enthalten. Das Modem 154, das extern oder intern sein kann, ist über eine serielle Eingangsschnittstelle 146 mit dem Systembus 123 verbunden. In einer Netzwerkumgebung können die Programmmodule, die in Beziehung auf den Computer 120 abgebildet sind, oder Teile davon in der dezentralen Datenspeichervorrichtung gespeichert werden. Es wird anerkannt werden, dass die gezeigten Netzwerkverbindungen beispielhaft sind und dass andere Einrichtungen zum Einrichten von Datenübertragungen über das Fernnetz 152 verwendet erden können.
  • Die 2 stellt eine Netzwerksystem 200 dar, in dem die vorliegende Erfindung arbeiten kann. Das Netzwerksystem 200 enthält ein erstes Computersystem (beispielsweise die Verschlüsselungsvorrichtung 201), das ein Netzwerk ist, das mit einem zweiten Computersystem (beispielsweise der Entschlüsselungsvorrichtung 202) netzwerkverbindbar ist. In dieser Beschreibung bedeutet der Ausdruck „netzwerkverbindbar", die Fähigkeit mit dem Netzwerk verbunden sein zu können. Wenn zwei Vorrichtungen „netzwerkverbunden" sind, dann bedeutet dies, dass die eine Vorrichtung mit der anderen Vorrichtung entweder direkt oder durch ein Netzwerk oder durch mehrere Netzwerke kommunizieren kann. Folglich umfasst „netzwerkverbunden" alle Formen von elektronischen unidirektionalen oder bidirektionalen Verbindungen, unabhängig davon, ob eine derartige Datenübertragung verbindungsorientiert ist. In einem Ausfürhungsbeispiel sind das erste und das zweite Computersystem ähnlich strukturiert wie der Computer 120, der unter Bezugnahme auf die 1 beschrieben wurde, jedoch ist dies nicht erforderlich.
  • In Betrieb wird der Klartext 203 in dem ersten Computersystem durch die Verschlüsselungsvorrichtung 201 in wenigstens ein verschlüsseltes Datenpaket 204 zur Datenübertragung über ein öffentliches Netzwerk 205 verschlüsselt. In dieser Beschreibung und in den Ansprüchen bezeichnet „Klartext" alle Daten, die durch einen Benutzer oder eine Anwendung ohne Entschlüsselung gelesen (und interpretiert) werden können, und ist nicht auf Textdaten beschränkt. Das verschlüsselte Datenpaket 204 wird dann in dem zweiten Computersystem unter Verwendung der Entschlüsselungsvorrichtung 202 entschlüsselt, um den Klartext 203 zu regenerieren.
  • In einem Ausführungsbeispiel wird das Datenpaket 204 unter Verwendung eines sicheren unbestätigten Push-Protokolls übertragen. Ein „sicheres unbestätigtes Push-Protokoll" ist als jedes Protokoll definiert, das verwendet werden kann, um ein Datenpaket in einer sicheren Weise zu übertragen, ohne dass Bestätigung des Empfangs des Datenpaketes erforderlich ist und ohne dass erforderlich ist, dass die Daten für jede Übertragung synchron abgefordert werden. Ein UDP-Protokoll (User Datagram Protocol) ist ein Beispiel eines sicheren unbestätigten Push-Protokolls. In diesem Fall kann das verschlüsselte Datenpaket 204 ein UDP-Paket sein, das erste Computersystem kann wenigstens Teil eines Computersystems sein, das der zweite Computer für Benachrichtigungen über bestimmte Ereignisse abboniert, und der zweite Computer kann wenigstens Teil eines Klienten-Computersystems, wie beispielsweise eine drahtlose Vorrichtung, sein.
  • Die 3 stellt wenigstens einige der Komponenten und den Datenfluss der Verschlüsselungsvorrichtung 201 dar, die verwendet erden kann, um für die erfindungsgemäß verbesserte Sicherheit einen Sicherheitsschlüssel (beispielsweise einen Verschlüsselungsschlüssel) in einer unikalen und dienlichen Form zu erzeugen.
  • Die Komponenten und der Datenfluss der Verschlüsselungsvorrichtung 201 werden unter häufiger Bezugnahme sowohl auf die 3, die die Komponenten und den Datenfluss der Verschlüsselungsvorrichtung 201 zeigt, als auch auf die 4, die ein Ablaufdiagramm, das den Betreib der Verschlüsselungsvorrichtung 201 darstellt, ist, beschrieben.
  • Einige Schritte in dem Verfahren der 4 werden durch das erste (Verschlüsselungs-)Computersystem durchgeführt, wie in der linken Spalte mit der Überschrift ERSTES (VERSCHLÜSSELUNGS-)COMPUTERSYSTEM aufgelistet, einige Vorgänge werden durch das zweite (Entschlüsselungs-)Computersystem durchgeführt, wie in der rechten Spalte mit der Überschrift ZWEITES (ENTSCHLÜSSELUNGS-)COMPUTERSYSTEM aufgelistet, und einige Handlungen werden von beiden Computersystemen durchgeführt, wie in der mittleren Spalte mit dem Titel BEIDE aufgelistet.
  • Wie durch die 4 dargestellt, handeln das erste und das zweite Computersystem, bevor die sichere Datenübertragung beginnt, sicher ein Master-Geheimnis (Schritt 401) aus, das nur das erste und das zweite Computersystem kennen. Weitere Parameter, wie zum Beispiel ein Sicherheitsparameterindex (SPI) und eine Algorithmusfolge können in derselben Sitzung ebenso ausgehandelt werden. Die Technologien zum sicheren Aushandeln eines Master-Geheimnisses sind in der Technik wohlbekannt und können die Verwendung von asymmetrischen Verschlüsselungstechniken umfassen.
  • Bei der asymmetrischen Verschlüsselung erfolgt die Datenübertragung in beiden Richtungen dadurch, dass das übertragende Computersystem eine Nachricht unter Verwendung eines öffentlichen Schlüssels, der für das empfangenden Computersystem speziell ist, verschlüsselt, wobei der öffentliche Schlüsse allgemein bekannt ist. Der Verschlüsselungsalgorithmus ist in dem Sinne asymmetrisch, dass die Nachricht, obwohl der öffentliche Schlüssel verwendet werden kann, um eine Nachricht zu verschlüsseln, nicht unter Verwendung desselben Schlüssels entschlüsselt werden kann, sondern nur durch einen privaten Schlüssel, der nur dem empfangenden Computersystem bekannt ist, entschlüsselt werden kann. Folglich kann die verschlüsselte Nachricht über ein öffentliches Netzwerk sicher zu dem empfangenden Computersystem übertragen werden, obwohl die Nachricht unter Verwendung eines öffentlichen Schlüssels, der allgemein bekannt ist, verschlüsselt wurde.
  • Die Datenübertragung kann in der entgegengesetzten Richtung ebenso erfolgen, bis ein Master-Geheimnis sicher ausgehandelt ist. An dieser Stelle kann ein geringerer Overhead symmetrischer Verschlüsselungsmechanismen verwendet werden, in dem derselbe Schlüssel, der verwendet wird, um die Daten zu verschlüsseln, verwendet wird, um die Daten zu entschlüsseln.
  • Sobald das Master-Geheimnis ausgehandelt ist (Schritt 401) implementiert die Verschlüsselungsvorrichtung einen Schritt zum Erzeugen eines Schlüssels, der das Master-Geheimnis und ein Seed verwendet, so dass das Master-Geheimnis und der Schlüssel für einen Angreifer schwierig zu identifizieren sind (Schritt 402). Die Handlungen, die diesem Schritt entsprechen sind in der 4 als Schritt 403, Schritt 404, Schritt 405 und Schritt 406 dargestellt.
  • Speziell erzeugt die Verschlüsselungsvorrichtung eine zufällige Bitfolge (Schritt 403).
  • Bezug nehmend auf die 3, kann dies durch ein kryptografisch sicheres Zufallszahlgeneratormodul 301, das die zufällige Bitfolge 302 erzeugt, erreicht werden. In einem Ausführungsbeispiel ist die zufällige Bitfolge 8 Byte oder 64 Bits lang.
  • Als Nächstes wird die zufällige Bitfolge 302 in ein Seed eingefügt, um ein Zufalls-Seed zu erzeugen (Schritt 404). In der Beschreibung und in den Patentansprüchen ist ein Zufalls-Seed als eine Bitfolge, die verwendet wird, um eine sichere Schlüsselbitfolge zu erzeugen, und das eine zufällige Bitfolge enthält, definiert. Bezug nehmend auf die 3, kann die zufällige Bitfolge 302 mit einer weiteren Bitfolge 303, die durch ein anderes Bitfolgegeneratormodul 304 erzeugt wird, kombiniert werden, um ein Zufalls-Seed 305 zu bilden. In einem Ausführungsbeispiel ist die andere Bitfolge 303 vier Bytes und stellt die aktuelle UTC-Zeit (Universal Time Coordinated) in Sekunden seit Beginn der UNIX-Epoche dar. Die UNIX-Epoche begann genau um Mitternacht, am Morgen des 1. Januars 1970. Die Vier-Byte-UTC-Zeit bildet kombiniert mit der zufälligen Bitfolge von achte Bytes ein Zufalls-seed von 12 Bytes oder 96 Bits.
  • Das Zufalls-Seed und das Master-Geheimnis werden dann in ein Schlüsselerzeugungsmodul eingegeben (Schritt 405), das einen Schlüssel erzeugt (Schritt 406). Bezug auf die 3 nehmend, werden das Zufalls-Seed 305 und das Master-Geheimnis 306 in ein Schlüsselerzeugungsmodul 307 eingegeben, um die Schlüsselbitfolge 308 zu erzeugen. Das Master-Geheimnis 306 wurde in dem Schritt 401 durch das erste und das zweite Computersystem ausgehandelt. Die Identität des Schlüsselerzeugungsmoduls 307 kann ebenso während derselben Anfangssitzung, in der das Master-Geheimnis ausgehandelt wird, ausgehandelt werden. Das Schlüsselerzeugungsmodul 307 kann jedes Modul sein, das fähig ist, einen kryptografisch sicheren Schlüssel, der ein Seed und ein Master-Geheimnis verwendet, zu erzeugen.
  • Ein Beispiel eines solches Moduls oder einer solchen Funktion ist die Pseudozufallsfunktion, die in dem TLS-Protokoll beschrieben wird. Spezieller nimmt die als „PRF" bezeichnete Zufallsfunktion des TLS-Protokolls als seine Eingabe das Master-Geheimnis (auch einfach als „Geheimnis" bezeichnet), ein Seed (d. h., das Zufalls-Seed, wenn die vorliegende Erfindung angewendet wird) und ein Kennzeichnungslabel. Basierend auf diesen Eingaben erzeugt die PRF eine Ausgabe arbiträrer Länge. Für zusätzliche Sicherheit verwendet die PRF des TLS-Protokolls zwei Hash-Algorithmen in einer Art und Weise, die seine Sicherheit garantieren muss, sofern beide Algorithmen sicher bleiben.
  • Da die Pseudozufallsfunktion, die in dem TLS-Protokoll beschrieben wird, unter einer Funktion HMAC definiert ist, wird hierin zuerst die Funktion HMAC beschrieben. HMAC wird ebenso als RFC 2104 beschrieben. HMAC kann mit einer Vielzahl verschiedener Hash-Algorithmen, einschließlich der wohlbekannten MD5- und SHA-1-Hash-Algorithmen, verwendet werden. Wenn der MD5-Hash-Algorithmus verwendet wird, wird die Funktion HMAC als HMAC_MD5(secret, text) gekennzeichnet. Wenn der SHA-1-Algorithmus verwendet wird, wird die Funktion HMAC als HMAC_SHA(secret, text) bezeichnet. Der Algorithmus empfängt als seine erste Eingabe „secret", das in der vorliegenden Erfindung das Master-Geheimnis sein kann. Der Algorithmus empfängt als seine zweite Eingabe einige Bitfolgen „text".
  • Diese Hash-Algorithmen arbeiten durch das Iterieren einer Grundkompressionsfunktion an Datenblöcken. Die Bytelänge solcher Blocks wird hierin als „B" bezeichnet, wobei B sowohl für MD5 als auch SHA-1 64 ist. Die Bytelänge der Hash-Ausgaben wird hierin als „L" bezeichnet, wobei L für den MD5-Hash-Algorithmus gleich 16 ist und L für den SHA-1-Algorithmus gleich 20 ist.
  • Das Master-Geheimnis oder „secret" kann jeder Länge bis zu B Bytes, der Blocklänge der Hash-Funktion, sein. Aus Gründen der Übersichtlichkeit beim Definieren von HMAC werden zwei feststehende und verschiedene Strings, ipad und opad, wie folgt definiert (das „i" und das „o" sind mnemonische Zeichen für innerer und äußerer):
    ipad = das Byte 0x36 B mal wiederholt und
    opad = das Byte 0x5C B mal wiederholt.
  • Um HMAC über die zweite Eingabe „text" zu errechnen, werden die folgenden sieben Schritte ausgeführt:
    Schritt (1): An das Ende der ersten Eingabe „secret" werden Nullen angehängt, um einen B-Bytestring zu erzeugen. Wenn beispielsweise das Master-Geheimnis von einer Länge von 20 Bytes ist und B gleich 64 ist, dann werden an das Master-Geheimnis 44 Nullen Bytes 0x00 angehängt, um einen 64-Bytestring zu erzeugen.
    Schritt (2): XOR (bitweise exklusive-OR) des in Schritt (1) errechneten B-Bytestrings mit ipad.
    Schritt (3): Anhängen der zweiten Eingabe „text" an den sich aus Schritt (2) ergebenden B-Bytestring.
    Schritt (4): Anwenden des adäquaten Hash-Algorithmus auf den in Schritt (3) generierten Strom.
    Beispielsweise wird der Strom für die Funktion HMAC_MD5(secret, text) unter Verwendung des wohlbekannten MD5-Hash-Algorithmus gehasht.
    Schritt (5): XOR (bitweise exclusives-OR) den in Schritt (1) errechneten B-Bytestring mit opad.
    Schritt (6): Anhängen des gehashten Ergebnisses aus Schritt (4) an den sich aus
    Schritt (5) ergebenden B-Bytestring.
    Schritt (7): Anwenden des adäquaten Hash-Algorithmus auf den in Schritt (6) erzeugten Strom und Ausgeben des Ergebnisses.
  • Nachdem HMCA beschrieben wurde, wird eine Datenenrweiterungsfunktion P_hash(secret, data) definiert. Die Datenerweiterungsfunktion P_hash(secret, data) verwendet eine einzelne Hash-Funktion, um ein Geheimnis und ein Seed in eine arbiträre Ausgabemenge zu erweitern. Diese Funktion wird wie folgt definiert:
    P_hash(secret, seed) =
    HMAC_hash(secret, A(1) + seed) +
    HMAC_hash(secret, A(2) + seed) +
    HMAC_hash(secret, A(3) + seed) +
    usw., bis die erwünschte Ausgabelänge erreicht ist.
  • In dieser Definition zeigt das Additionszeichen „+" Konkatenation an. Infolgedessen ist die Ausgabe der Funktion P_hash(secret, seed) eine Konkatenation von Ausgaben der Funktion HMAC_hash. In dieser Definition ist A(i) als gleich HMAC_hash(secret, A(i–l)) definiert, wobei A(0) dem Seed gleich ist. Wenn beispielsweise P_SHA-1 (unten beschrieben) verwendet wurde, um 64 Datenbytes zu erzeugen, so würden diese viermal iteriert werden (durch A(4)), um 80 Bytes Ausgabedaten zu erzeugen. Die restlichen 16 Bytes der letzten Iteration würden verworfen werden, so dass 64 Bytes Ausgabedaten übrig bleiben.
  • Die Pseudozufallsfunktion in dem TLS-Protokoll wird durch das Zerlegen des Master-Geheimnisses in zwei Hälften und das Verwenden der einen Hälfte (hierin „S1" genannt), um Daten mit P-MD5 zu erzeugen (d. h. P-hash, wobei HMAC_hash HMAC_MD5 ist) und Verwenden der anderen Hälfte (hierin „S2" genannt), um Daten mit P_SHA-1 zu erzeugen (d. h. P_hash, wobei HMAC_hash HMAC_SHA ist), erzeugt. Die Ergebnisse von P-MD5 und P_SHA werden bitweise ge-x-odert.
  • S1 und S2 sind die beiden Hälften des Master-Geheimnisses, und jede hat die gleiche Länge. S1 wird von der ersten Hälfte des Geheimnisses, S2 von der zweiten Hälfte genommen. Ihre Länge wird durch Rundung der halben Gesamtlänge des Geheimnisses berechnet; folglich ist, wenn das ursprüngliche Geheimnis eine ungerade Anzahl von Bytes lang ist, das letzte Byte von S1 gleich dem ersten von S2. Wenn beispielsweise L-S die Gesamtlänge des Geheimnisses in Bytes ist, dann ist die Länge der ersten Hälfte L-S1 gleich der Länge der zweiten Hälfte L_S2, die beide gleich L_S/2 aufgerundet sind. S1 wird durch Berücksichtigung der ersten L-S1-Bytes des Geheimnisses erhalten und S2 wird durch Berücksichtigung der letzten L_S2-Bytes des Geheimnisses erhalten.
  • Die Pseudozufallsfunktion, die in der TLS-Spezifikation beschrieben ist, empfängt als Eingaben das Master-Geheimnis, ein Label und ein Seed. Diese Pseudozufallsfunktion PRF(secret5, label, sed) wird wie folgt definiert.
    PRF(secret, label, seed) =
    P_MD5(S1, label + seed)XOR
    P_SHA-1(S2, label + seed).
  • Das Label ist ein ASCII-String. Er muss in genau dieser Form übernommen werden, ohne Längenbyte oder angehängte Nullzeichen. Das Label "slithy toves" würde beispielsweise durch Hashen der folgenden Bytes, hexadezimal dargestellt, verarbeitet werden:
    73 6C 69 74 68 79 20 74 6F 76 65 73
  • Man beachte: Weil MD5 16 Bytes Ausgabe erzeugt und SHA_1 20 Bytes Ausgaben erzeugt, stimmen die Grenzen der internen Iteration nicht überein. Um eine 80-Byte-Ausgabe zu erzeugen, muss P_MD5 bis A(5) iteriert werden, P_SHA-1 jedoch nur bis A(4) iteriert werden.
  • Oben wurde eine Pseudozufallsfunktion gemäß dem TLS-Protokoll beschrieben, die durch das Schlüsselerzeugungsmodul 307 angewendet werden kann. In einem anderen Beispiel kann das Schlüsselerzeugungsmodul die Pseudozufallsfunktion, die in dem WTLS-Protokoll beschrieben ist, anwenden. Das WTLS unterschiedet sich von dem TLS dahingehend, dass bei dem TLS-Standard zwei Hash-Algorithmen (zum Beispiel MD5 und SHA-1) verwendet wurden, um die Pseudozufallsfunktion so sicher wie möglich zu machen. Um Ressourcen einzusparen, verwendet die Pseudozufallsfunktion des WLS nur einen Hash-Algorithmus, der anfänglich, wenn das Master-Geheimnis ausgehandelt wird, ausgehandelt wird. Die Pseudozufallsfunktion PRF des WTLS wird wie folgt definiert:
    PRF(secret, label, seed) = P_hash(secret, label, seed),
    wobei das Additionszeichen „+" Konkatenation anzeigt,
    wobei P-hash P-MD5 ist, wenn der MD5-Hash-Algorithmus verwendet wird, und
    wobei P-hash P_SHA-1 ist, wenn der SHA-1-Algorithmus verwendet wird.
  • Es ist zu beachten, dass anstelle des Teilens des Master-Geheimnisses in zwei Hälften das gesamte Master-Geheimnis in die P-hash-Funktion eingeht.
  • Nachdem der Schlüssel erzeugt ist (Schritt 406), wird der erzeugte Schlüsse 308 an ein Verschlüsselungsmodul 309 bereitgestellt, das den Schlüssel verwendet, um den Klartext 203 zu verschlüsseln und dadurch den Ciphertext 310 zu bilden (Schritt 407). Die Identifizierung des Verschlüsselungsmoduls und des Entschlüsselungsmoduls kann ebenso während der Anfangssitzung, in der das Master-Geheimnis ausgehandelt wird, ausgehandelt werden.
  • Als Nächstes werden die verschlüsselten Daten (d. h. der Ciphertext 310) und das Zufalls-Seed 305 in das verschlüsselte Datenpaket 204 eingefügt (Schritt 408). Spezieller wird der Ciphertext 310 als ein Teil eines verschlüsselten Nutzdatenfeldes 311 eingefügt. Ein sicherer Parameter-Index (SPI) ist eine Bitfolge von 96 Bit (12 Bytes, die für das zweite Computersystem unikal ist. Der SPI kann eingefügt werden, um die Kompatibilität mit dem ESP-Protokoll (Encapsulation Security Payload Protocol) des IPSec-Protokolls (Internet Protocol Security Protocol) sicherzustellen, obgleich ein solcher Index, wenn andere Datenpaketformate verwendet werden, nicht erforderlich ist.
  • Anschließend wird das Datenpaket 204 zu dem zweiten Computersystem übertragen (Schritt 409), um durch die Entschlüsselungsvorrichtung 202 entschlüsselt zu werden. Die Funktionen und der Datenfluss der Verschlüsselungsvorrichtung werden in der 5 schematisch gezeigt, wohingegen in der 6 ein entsprechendes Ablaufdiagramm, das die Entschlüsselung beschreibt, dargestellt wird. Beim Beschreiben des Entschlüsselungsvorganges wird sowohl auf die 5 als auch auf die 6 Bezug genommen.
  • Zuerst empfängt die Entschlüsselungsvorrichtung 202 das verschlüsselte Datenpaket 204 (Schritt 601) und liest das Klartext-Zufalls-Seed 305 aus dem Datenpaket 204 (Schritt 602. Sowohl das ausgehandelte Master-Geheimnis 306 als auch das Zufalls-Seed 305 werden in das Schlüsselerzeugungsmodul 607 eingegeben (Schritt 603). Das Schlüsselerzeugungsmodul 607 in der Entschlüsselungsvorrichtung 202 fürht dann den selben Schlüsselerzeugungsalgorithmus aus, der durch das Schlüsselerzeugungsmodul 307 in der Verschlüsselungsvorrichtung 201 ausgeführt wurde. Da die Schlüsselerzeugungsfunktion identisch ist und die Eingaben in diese Funktion identisch mit jenen sind, die in der Verschlüsselungsvorrichtung 201 verwendet wurden, erzeugt das Schlüsselerzeugungsmodul 607 dieselbe Schlüsselbitfolge 308, die verwendet wurde, um das Datenpaket zu verschlüsseln (Schritt 604). Der Schlüssel wird dann an das Entschlüsselungsmodul 609 bereitgestellt. Da das Entschlüsselungsmodul 609 kryptografisch symmetrisch mit dem Verschlüsselungsmodul 309 ist, wird der Schlüssel anschließend verwendet, um den Ciphertext 310 aus dem Datenpaket 204 zu entschlüsseln (Schritt 605), um dadurch den Klartext 203, der anfänglich durch die Verschlüsselungsvorrichtung 201 verschlüsselt wurde, zu regenerieren.
  • Ein Vorteil der vorliegenden Erfindung ist, dass das Seed, das verwendet wird, um den Schlüssel zu erzuegen, eine zufällige Bitfolge enthält. Dies macht es für einen Angreifer schwieriger den Verschlüsselungsschlüssel oder Master-Geheimnis zu identifizieren, um so zur Entschlüsselung in der Lage zu sein und die Nachricht abzufangen.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung wird für jedes Datenpaket, das von einem ersten Computersystem zu einem zweiten Computersystem übertragen wird, eine neu zufällige Bitfolge erzeugt. Dies bedeutet, dass das Zufalls-Seed und infolgedessen der Verschlüsselungspaket für jedes Datenpaket verschieden sein werden. Infolgedessen ist ein Angreifer, der einen Verschlüsselungsschlüssel für ein Datenpaket identifiziert, nicht automatisch in der Lage, weitere Datenpakete abzufangen, ohne einen weiteren Entschlüsselungsschlüssel zu brechen. Folglich machen es die Prinzipien der vorliegenden Erfindung nicht nur schwieriger den Schlüssel zu brechen, sondern verringern außerdem die Belohnung dafür einen Schlüssel gebrochen zu haben.
  • Das Master-Geheimnis ist schwieriger zu brechen als jeder Einzelschlüssel. Dennoch könnte der Angreifer, wenn er irgendwie fähig wäre, das Master-Geheimnis zu identifizieren, nur die Datenpakete entschlüsseln, die unter Verwendung eines Schlüssels der auf dem Master-Geheimnis basiert verschlüsselt wurden. Um das Risiko des Schadens durch die Entdeckung des Master-Geheimnisses zu verringern, können das erste und das zweite Computersystem anfänglich einen Parameter, der das Ablaufdatum der gültigen Lebensdauer des Master-Geheimnisses identifiziert, aushandeln. Sobald die Lebensdauer des Master-Geheimnisses abgelaufen ist, würden das erste und das zweite Computersystem dann sicher ein weiteres Master-Geheimnis neu aushandeln.
  • Die vorliegende Erfindung kann in anderen speziellen Formen ausgeführt werden. Die beschriebenen Ausführungsbeispiele sind in jeder Hinsicht als beispielhaft und nicht als einschränkend zu betrachten. Der Schutzumfang der vorliegenden Erfindung wird nicht in der vorstehenden Beschreibung, sondern in den angehängten Patentansprüchen dargestellt. Der Schutzanspruch umfasst alle Änderungen, die innerhalb des Begriffsinhalt und innerhalb äquivalenter Bereiche der Patentansprüche liegen.

Claims (27)

  1. Verfahren in einem Netzwerksystem welches ein erstes Computersystem beinhaltet, das mit einem zweiten Computersystem verbunden werden kann, wobei das erste Computersystem fähig ist Daten zu verschlüsseln und wobei das Verfahren von dem ersten Computersystem ist und Daten verschlüsselt, so dass sie gegen Abhören und Brute-Force-Angriffe geschützt sind, wobei das Verfahren umfasst: einen Vorgang des sicheren Aushandelns (401) eines Master-Geheimnisses mit dem zweiten Computersystem; einen Vorgang des Erzeugens (403) einer zufälligen Bitfolge; einen Vorgang des Hinzufügens (404) der zufälligen Bitfolge in einen Seed um einen zufälligen Seed zu erzeugen, der die zufällige Bitfolge und eine oder mehrere Nicht-Zufallsbitfolgen enthält; einen Vorgang des Eingebens (405) des Master-Geheimnisses und des Zufalls-Seeds in ein Schlüsselerzeugungsmodul, um einen Schlüssel zu erzeugen; einen Vorgang des Benutzens (407) des Schlüssels um Daten zu verschlüsseln; und einen Vorgang des Einfügens (408) der verschlüsselten Daten und des Zufalls-Seeds in eine Datenstruktur.
  2. Verfahren gemäß Anspruch 1, wobei die Datenstruktur ein Datenpaket ist und das Verfahren des weiteren einen Vorgang des Übertragens (409) des Datenpaketes gemäß eines Protokolls umfasst.
  3. Verfahren gemäß Anspruch 2, wobei das Datenpaket einen Sicherheitsparameterindex gemäß eines ESP-Protokolls (Encapsulating Security Payload Protokoll) enthält.
  4. Verfahren gemäß Anspruch 2, wobei die Vorgänge des Erzeugens (403) einer Zufallsbitsequenz, des Hinzufügens (404) der Zufallsbitsequenz in einen Seed, des Eingebens (405) des Master-Geheimnisses und des Zufalls-Seeds, des Benutzens (407) eines Schlüssels zum Verschlüsseln von Daten, des Einfügens (408) der verschlüsselten Daten und des Zufalls-Seeds in eine Datenstruktur und des Übertragens (409) des Datenpakets für jedes aus einer Vielzahl von Datenpaketen ausgeführt werden, wobei die Zufallszahl für jedes Datenpaket zufällig erzeugt wird.
  5. Verfahren gemäß Anspruch 2, wobei das Protokoll ein unbestätigtes Push-Protokoll umfasst.
  6. Verfahren gemäß Anspruch 5, wobei das unbestätigte Push-Protokoll ein UDP-Protokoll (User Datagram Protocol) umfasst.
  7. Verfahren gemäß Anspruch 1, welches des weiteren einen Vorgang des Aushandelns eines Parameterablaufs mit dem zweiten Computersystem umfasst, wobei der Parameterablauf die Gültigkeitsdauer des Master-Geheimnisses anzeigt.
  8. Verfahren gemäß Anspruch 7, wobei nach Ablauf der Gültigkeitsdauer des Master-Geheimnisses ein Vorgang des sicheren erneuten Aushandelns eines Master-Geheimnisses mit dem zweiten Computersystem ausgeführt wird.
  9. Verfahren gemäß Anspruch 1, wobei das zweite Computersystem ein drahtloses Gerät umfasst.
  10. Verfahren gemäß Anspruch 1, wobei der Vorgang des Erzeugens (403) einer Zufallsbitfolge von einem kryptografisch sicheren Zufallszahlengenerator ausgeführt wird.
  11. Verfahren gemäß Anspruch 1, welches des weiteren einen Vorgang des Hinzufügens, zu dem Zufalls-Seed, einer Bitfolge umfasst, die die gegenwärtige Zeit repräsentiert.
  12. Verfahren gemäß Anspruch 1, wobei der Zufalls-Seed mindestens 96 Bits hat.
  13. Computerprogrammerzeugnis zur Benutzung in einem Netzwerksystem (200) welches ein erstes Computersystem beinhaltet, das mit einem zweiten Computersystem verbunden werden kann, wobei das Computerprogrammerzeugnis zum Implementieren eines Verfahrens des ersten Computersystems zum Verschlüsseln von Daten ist, um gegen Abhören und Brute-Force-Angriffe zu schützen, wobei das Computerprogrammerzeugnis ein computerlesbares Medium umfasst, welches darauf gespeichert hat: computerausführbare Instruktionen zum Ausführen eines Vorgangs des sicheren Aushandelns eines Master-Geheimnisses mit dem zweiten Computersystem; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Erzeugens einer Zufallsbitfolge; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Einfügens der Zufallsbitfolge in einen Seed um einen Zufalls-Seed zu erzeugen, der die Zufallsbitsequenz und eine oder mehrere Nicht-Zufallsbitsequenzen enthält; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Eingebens des Master-Geheimnisses und des Zufalls-Seeds in ein Schlüsselerzeugungsmodul, um einen Schlüssel zu erzeugen; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Benutzens des Schlüssels um Daten zu verschlüsseln; und computerausführbare Instruktionen zum Ausführen eines Vorgangs des Einfügens der verschlüsselten Daten und des Zufalls-Seeds in eine Datenstruktur.
  14. Computerprogrammerzeugnis gemäß Anspruch 13, wobei das computerlesbare Medium ein physikalisches Speichermedium ist.
  15. Verfahren in einem Netzwerksystem welches ein erstes Computersystem beinhaltet, das mit einem zweiten Computersystem verbunden werden kann, wobei das Verfahren für das zweite Computersystem und zum Entschlüsseln eines Datenpakets ist, welches von dem ersten Computersystem zu dem zweiten Computersystem übertragen wurde, wobei das Datenpaket verschlüsselt ist, um gegen Abhören und Brute-Force-Angriffe zu schützen, wobei das Verfahren umfasst: einen Vorgang des sicheren Aushandelns (401) eines Master-Geheimnisses mit dem ersten Computersystem; einen Vorgang des Empfangens (601) eines Datenpakets von dem ersten Computersystem; einen Vorgang des Lesens (602) eines Zufalls-Seeds von dem Datenpaket, das von dem ersten Computersystem empfangen wurde, wobei der Zufalls-Seed eine von einem Zufallszahlengenerator erzeugte Zufallsbitfolge und eine oder mehrere Nicht Zufallsbitfolgen enthält; einen Vorgang des Eingebens (603) des Master-Geheimnisses und des Zufalls-Seeds in ein Schlüsselerzeugungsmodul, um einen Schlüssel zu erzeugen; und einen Vorgang des Benutzens (605) des Schlüssels um das Datenpaket zu entschlüsseln.
  16. Verfahren gemäß Anspruch 15, wobei das Datenpaket einen Sicherheitsparameterindex gemäß des ESP-Protokolls (Encapsulating Security Payload Protocol) beinhaltet.
  17. Verfahren gemäß Anspruch 15, wobei die Vorgänge des Empfangens (601) eines Datenpakets, des Lesens (602) eines Zufalls-Seeds von dem Datenpaket, des Eingebens (603) des Master-Geheimnisses und des Zufalls-Seeds in ein Schlüsselerzeugungsmodul um einen Schlüssel zu erzeugen und des Benutzens (605) des Schlüssels um das Datenpaket zu entschlüsseln für jedes aus einer Vielzahl von Datenpaketen ausgeführt wird, wobei der Zufalls-Seed für jedes Datenpaket eine unterschiedliche Zufallsbitfolge enthält.
  18. Verfahren gemäß Anspruch 15, wobei das Datenpaket unter Benutzung eines unbestätigtem Push-Protokolls empfangen wird.
  19. Verfahren gemäß Anspruch 18, wobei das unbestätigte Push-Protokoll ein UDP-Protokoll (User Datagram Protocol) umfasst.
  20. Verfahren gemäß Anspruch 15, welches des Weiteren einen Vorgang des Aushandelns eines Parameterablaufs mit dem ersten Computersystem umfasst, wobei der Parameterablauf die Gültigkeitsdauer des Master-Geheimnisses anzeigt.
  21. Verfahren gemäß Anspruch 20, wobei nach Ablauf der Gültigkeitsdauer des Master-Geheimnisses ein Vorgang des sicheren neuen Aushandelns eines Master-Geheimnisses mit dem ersten Computersystem ausgeführt wird.
  22. Verfahren gemäß Anspruch 21, wobei das zweite Computersystem ein drahtloses Gerät umfasst.
  23. Verfahren gemäß Anspruch 15, wobei der Zufalls-Seed eine Bitfolge beinhaltet, die die gegenwärtige Zeit repräsentiert.
  24. Verfahren gemäß Anspruch 15, wobei der Zufalls-Seed mindestens 96 Bit hat.
  25. Computerprogrammerzeugnis zur Benutzung in einem Netzwerksystem (200) welches ein erstes Computersystem beinhaltet, das mit einem zweiten Computersystem verbunden werden kann, wobei das Computerprogrammerzeugnis zum Implementieren eines Verfahrens des zweiten Computersystems zum Entschlüsseln eines Datenpakets ist, das von dem ersten Computersystem zu dem zweiten Computersystem übertragen wurde, wobei das Datenpaket verschlüsselt ist, um gegen Abhören und Brute-Force-Angriffe zu schützen, wobei das Computerprogrammerzeugnis ein computerlesbares Medium umfasst, welches darauf gespeichert hat: computerausführbare Instruktionen zum Ausführen eines Vorgangs des sicheren Aushandelns eines Master-Geheimnisses mit dem ersten Computersystem; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Erkennens des Empfangs eines Datenpakets von dem ersten Computersystem; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Lesens eines Zufalls-Seeds aus dem Datenpaket, welcher von dem ersten Computersystem empfangen wurde, wobei der Zufalls-Seed eine von einem Zufallszahlengenerator erzeugte Zufallsbitfolge und eine oder mehrere Nicht-Zufallsbitfolgen beinhaltet; computerausführbare Instruktionen zum Ausführen eines Vorgangs des Eingebens des Master-Geheimnisses und des Zufalls-Seeds in ein Schlüsselerzeugungsmodul, um einen Schlüssel zu erzeugen; und computerausführbare Instruktionen zum Ausführen eines Vorgangs des Benutzens des Schlüssels zum Entschlüsseln des Datenpakets.
  26. Computerprogrammerzeugnis gemäß Anspruch 25, wobei das computerlesbare Medium ein physikalisches Speichermedium ist.
  27. Netzwerksystem (200), welches eine Vielzahl von Servercomputersystemen umfasst, die über ein Netzwerk (205) mit einer Vielzahl von Client-Computersystemen verbunden werden können, wobei das Netzwerksystem umfasst: ein Servercomputersystem (201) das eingerichtet ist, ein Master-Geheimnis und einen Zufalls-Seed in ein serverseitiges Schlüsselerzeugungsmodul (307) einzugeben, um einen Schlüssel zu erzeugen, den Schlüssel zum Verschlüsseln eines Datenpakets zu benutzen und das Datenpaket zu dem Client-Computersystem zu übertragen; und das Client-Computersystem (202), wobei das Client-Computersystem des Weiteren eingerichtet ist das Datenpaket von dem Servercomputersystem zu empfangen, den Zufalls-Seed in dem Datenpaket zu lesen, das Master-Geheimnis und den Zufalls-Seed in ein clientseitiges Schlüsselerzeugungsmodul (607) einzugeben, um einen Schlüssel zu erzeugen und das Datenpaket zu entschlüsseln; dadurch gekennzeichnet, dass das Servercomputersystem des Weiteren eingerichtet ist, das Master-Geheimnis mit einem Client-Computersystem sicher auszuhandeln, eine Zufallsbitfolge zu erzeugen und in einen Seed einzufügen, um einen Zufalls-Seed zu erzeugen, wobei der Zufalls-Seed die Zufallsbitfolge und einen oder mehrere Nicht-Zufallsbitfolgen enthält.
DE60206809T 2001-01-16 2002-01-15 Verfahren und Systeme zum Erzeugen von Chiffrierschlüsseln unter Verwendung von Zufallsbitfolgen Expired - Lifetime DE60206809T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US761373 2001-01-16
US09/761,373 US6931128B2 (en) 2001-01-16 2001-01-16 Methods and systems for generating encryption keys using random bit generators

Publications (2)

Publication Number Publication Date
DE60206809D1 DE60206809D1 (de) 2005-12-01
DE60206809T2 true DE60206809T2 (de) 2006-04-20

Family

ID=25061997

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60206809T Expired - Lifetime DE60206809T2 (de) 2001-01-16 2002-01-15 Verfahren und Systeme zum Erzeugen von Chiffrierschlüsseln unter Verwendung von Zufallsbitfolgen

Country Status (4)

Country Link
US (2) US6931128B2 (de)
EP (1) EP1223705B1 (de)
AT (1) ATE308176T1 (de)
DE (1) DE60206809T2 (de)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1075108A1 (de) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Kryptographische Datenverteilung
US7593529B1 (en) * 2000-01-27 2009-09-22 Agere Systems Inc. Scramble methods and apparatus for packetized digital video signal in conditional access system
US6931128B2 (en) * 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7353380B2 (en) * 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7360075B2 (en) * 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7269736B2 (en) * 2001-02-28 2007-09-11 Microsoft Corporation Distributed cryptographic methods and arrangements
US20060072747A1 (en) * 2001-03-30 2006-04-06 Wood Matthew D Enhancing entropy in pseudo-random number generators using remote sources
US20090245516A1 (en) * 2008-02-26 2009-10-01 Pasupuleti Sureshbabu Ravikiran Method and system for high entropy encryption using an unpredictable seed based on user regisration time
US8117450B2 (en) * 2001-10-11 2012-02-14 Hewlett-Packard Development Company, L.P. System and method for secure data transmission
US20030095663A1 (en) * 2001-11-21 2003-05-22 Nelson David B. System and method to provide enhanced security in a wireless local area network system
WO2003058865A1 (en) * 2001-12-21 2003-07-17 Magiq Technologies, Inc. Decoupling error correction from privacy amplification in quantum key distribution
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US20060031936A1 (en) * 2002-04-04 2006-02-09 Enterasys Networks, Inc. Encryption security in a network system
US7346167B2 (en) * 2002-05-10 2008-03-18 Harris Corporation Secure mobile ad-hoc network and related methods
US7352867B2 (en) * 2002-07-10 2008-04-01 General Instrument Corporation Method of preventing unauthorized distribution and use of electronic keys using a key seed
US7293289B1 (en) * 2002-09-10 2007-11-06 Marvell International Ltd. Apparatus, method and computer program product for detection of a security breach in a network
US7424115B2 (en) * 2003-01-30 2008-09-09 Nokia Corporation Generating asymmetric keys in a telecommunications system
DE602004007116T2 (de) * 2003-03-14 2008-02-28 Koninklijke Philips Electronics N.V. Geschützter rückkanal vom digitalen rechte verwaltenden dongle
KR20060025159A (ko) * 2003-06-05 2006-03-20 마쯔시다덴기산교 가부시키가이샤 라이센스 수신용 사용자 단말
US7466824B2 (en) * 2003-10-09 2008-12-16 Nortel Networks Limited Method and system for encryption of streamed data
EP1690365A1 (de) * 2003-10-16 2006-08-16 Matsushita Electric Industrial Co., Ltd. System zur verschlüsselten kommunikation und kommunikationseinrichtung
US20050135622A1 (en) * 2003-12-18 2005-06-23 Fors Chad M. Upper layer security based on lower layer keying
US7822017B2 (en) * 2004-11-18 2010-10-26 Alcatel Lucent Secure voice signaling gateway
CN101088246A (zh) * 2004-12-14 2007-12-12 皇家飞利浦电子股份有限公司 用于传送消息的系统、终端、方法、和软件
US7688976B2 (en) 2005-07-14 2010-03-30 Tara Chand Singhal Random wave envelope derived random numbers and their use in generating transient keys in communication security application part I
WO2008021041A2 (en) * 2006-08-07 2008-02-21 Id Rank Security, Inc. Systems and methods for conducting secure wired and wireless networked telephony
WO2008036633A2 (en) * 2006-09-18 2008-03-27 Georgia Tech Research Corporation Systems and methods for providing opportunistic security for physical communication channels
US8127135B2 (en) * 2006-09-28 2012-02-28 Hewlett-Packard Development Company, L.P. Changing of shared encryption key
KR100891112B1 (ko) * 2006-11-16 2009-03-30 삼성전자주식회사 Drm이 적용된 콘텐츠의 공유 방법
US7936873B2 (en) * 2007-05-07 2011-05-03 Apple Inc. Secure distribution of content using decryption keys
US20090172187A1 (en) * 2007-12-31 2009-07-02 Eetay Natan Techniques to enable firewall bypass for open mobile alliance device management server-initiated notifications in wireless networks
JP2009188751A (ja) * 2008-02-06 2009-08-20 Fujitsu Ltd 無線通信システムにおける暗号化及び復号化方法並びに送信装置及び受信装置
CN101981864B (zh) * 2008-04-04 2015-07-22 三星电子株式会社 通信系统中用于使用加密密钥提供广播服务的方法和装置
US8538014B2 (en) * 2008-05-12 2013-09-17 Oracle America, Inc. Fast computation of one-way hash sequences
US8335933B2 (en) * 2009-02-13 2012-12-18 Microsoft Corporation Two-party storage of encrypted sensitive information
US9792384B2 (en) * 2009-02-26 2017-10-17 Red Hat, Inc. Remote retreival of data files
DE102009022233A1 (de) * 2009-05-20 2010-11-25 Feustel, Dietmar Verwendung einer Zeichenkette in Sytemen der Kryptographie, der Statistik, der Simulation, der Randomisierung, von Spielautomaten und dgl.
US8862896B2 (en) * 2010-12-06 2014-10-14 Apple Inc. Data protection using key translation
US9232268B2 (en) * 2011-02-23 2016-01-05 Broadcom Corporation Unified video delivery system for supporting IP video streaming service
US9438415B2 (en) 2011-02-23 2016-09-06 Broadcom Corporation Method and system for securing communication on a home gateway in an IP content streaming system
US8984295B2 (en) * 2011-03-31 2015-03-17 Echostar Technologies L.L.C. Secure access to electronic devices
IL213497A0 (en) * 2011-06-12 2011-08-31 Eliphaz Hibshoosh Light public key cryptography
US8855304B2 (en) * 2011-06-23 2014-10-07 Infosys Limited System and method for generating session keys
US8707454B1 (en) 2012-07-16 2014-04-22 Wickr Inc. Multi party messaging
US8745415B2 (en) * 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) * 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US10623386B1 (en) * 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US10386827B2 (en) 2013-03-04 2019-08-20 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics platform
US9397836B2 (en) * 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US10678225B2 (en) 2013-03-04 2020-06-09 Fisher-Rosemount Systems, Inc. Data analytic services for distributed industrial performance monitoring
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9665088B2 (en) 2014-01-31 2017-05-30 Fisher-Rosemount Systems, Inc. Managing big data in process control systems
US9558220B2 (en) 2013-03-04 2017-01-31 Fisher-Rosemount Systems, Inc. Big data in process control systems
US10223327B2 (en) 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
US10282676B2 (en) 2014-10-06 2019-05-07 Fisher-Rosemount Systems, Inc. Automatic signal processing-based learning in a process plant
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US10649449B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US10152031B2 (en) 2013-03-15 2018-12-11 Fisher-Rosemount Systems, Inc. Generating checklists in a process control environment
US10296668B2 (en) 2013-03-15 2019-05-21 Fisher-Rosemount Systems, Inc. Data modeling studio
US9990246B2 (en) 2013-03-15 2018-06-05 Intel Corporation Memory system
US10567349B2 (en) 2013-06-25 2020-02-18 Wickr Inc. Secure time-to-live
US9830089B1 (en) 2013-06-25 2017-11-28 Wickr Inc. Digital data sanitization
US9866591B1 (en) 2013-06-25 2018-01-09 Wickr Inc. Enterprise messaging platform
US10129260B1 (en) 2013-06-25 2018-11-13 Wickr Inc. Mutual privacy management
US10403173B2 (en) 2013-08-13 2019-09-03 Fiske Software, Llc NADO cryptography using one-way functions
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
US9698976B1 (en) 2014-02-24 2017-07-04 Wickr Inc. Key management and dynamic perfect forward secrecy
US9584530B1 (en) 2014-06-27 2017-02-28 Wickr Inc. In-band identity verification and man-in-the-middle defense
US10168691B2 (en) 2014-10-06 2019-01-01 Fisher-Rosemount Systems, Inc. Data pipeline for process control system analytics
SE538304C2 (sv) * 2014-10-09 2016-05-03 Kelisec Ab Improved installation of a terminal in a secure system
SE542460C2 (en) 2014-10-09 2020-05-12 Kelisec Ab Improved security through authenticaton tokens
CN104284330A (zh) * 2014-10-24 2015-01-14 北京邮电大学 一种基于不可靠无线信道的物理层加密技术
US9654288B1 (en) 2014-12-11 2017-05-16 Wickr Inc. Securing group communications
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
US10158487B2 (en) * 2015-07-16 2018-12-18 Cisco Technology, Inc. Dynamic second factor authentication for cookie-based authentication
US9960911B2 (en) * 2015-09-11 2018-05-01 Signalchip Innovations Private Limited System and method for securing wireless communication through physical layer control and data channel
US11070532B1 (en) * 2015-10-05 2021-07-20 National Technology & Engineering Solutions Of Sandia, Llc Methods for communicating data utilizing sessionless dynamic encryption
US9584493B1 (en) 2015-12-18 2017-02-28 Wickr Inc. Decentralized authoritative messaging
US10291607B1 (en) 2016-02-02 2019-05-14 Wickr Inc. Providing real-time events to applications
US10503483B2 (en) 2016-02-12 2019-12-10 Fisher-Rosemount Systems, Inc. Rule builder in a process control network
US10129022B1 (en) * 2016-02-22 2018-11-13 The Regents Of The University Of California Secret key for wireless communication in cyber-physical automotive systems
US9596079B1 (en) 2016-04-14 2017-03-14 Wickr Inc. Secure telecommunications
US9602477B1 (en) 2016-04-14 2017-03-21 Wickr Inc. Secure file transfer
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
CN107196760B (zh) * 2017-04-17 2020-04-14 徐智能 具有可调整性的伴随式随机重构密钥的序列加密方法
CN109101116B (zh) * 2018-07-24 2021-10-08 紫金财产保险股份有限公司 iOS终端设备安全键盘及其实现方法
US10402172B1 (en) 2019-02-28 2019-09-03 Qrypt, Inc. Multi-source entropy and randomness aggregation and distribution network
CN112598138B (zh) * 2020-12-22 2023-07-21 百度在线网络技术(北京)有限公司 数据处理方法、装置、联邦学习系统和电子设备
US11770410B1 (en) * 2022-03-22 2023-09-26 Uab 360 It Enhancing network security

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
US4369332A (en) * 1979-09-26 1983-01-18 Burroughs Corporation Key variable generator for an encryption/decryption device
US5428686A (en) 1981-09-28 1995-06-27 The United States Of America As Represented By The Direrctor Of The National Security Agency Secure communication system having long-term keying variable
US4791669A (en) * 1985-11-30 1988-12-13 Nec Corporation Encryption/decryption system
US4809327A (en) * 1986-09-02 1989-02-28 Unisys Corporation Encrtption of messages employing unique control words and randomly chosen encryption keys
JPH0294836A (ja) * 1988-09-30 1990-04-05 Aisin Seiki Co Ltd 秘匿通信制御装置
US5412730A (en) * 1989-10-06 1995-05-02 Telequip Corporation Encrypted data transmission system employing means for randomly altering the encryption keys
US6166650A (en) 1991-05-29 2000-12-26 Microchip Technology, Inc. Secure self learning system
US5644354A (en) * 1992-10-09 1997-07-01 Prevue Interactive, Inc. Interactive video system
US5381481A (en) * 1993-08-04 1995-01-10 Scientific-Atlanta, Inc. Method and apparatus for uniquely encrypting a plurality of services at a transmission site
US6240183B1 (en) * 1997-06-19 2001-05-29 Brian E. Marchant Security apparatus for data transmission with dynamic random encryption
US20020159598A1 (en) * 1997-10-31 2002-10-31 Keygen Corporation System and method of dynamic key generation for digital communications
US6327660B1 (en) * 1998-09-18 2001-12-04 Intel Corporation Method for securing communications in a pre-boot environment
US6931128B2 (en) * 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators

Also Published As

Publication number Publication date
US6931128B2 (en) 2005-08-16
ATE308176T1 (de) 2005-11-15
EP1223705A2 (de) 2002-07-17
US7120249B2 (en) 2006-10-10
DE60206809D1 (de) 2005-12-01
EP1223705B1 (de) 2005-10-26
US20060005040A1 (en) 2006-01-05
EP1223705A3 (de) 2003-06-11
US20020094085A1 (en) 2002-07-18

Similar Documents

Publication Publication Date Title
DE60206809T2 (de) Verfahren und Systeme zum Erzeugen von Chiffrierschlüsseln unter Verwendung von Zufallsbitfolgen
DE60302276T2 (de) Verfahren zur ferngesteuerten Änderung eines Kommunikationspasswortes
DE102009061045B4 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
DE60209475T2 (de) Datensicherungs-kommunikationsvorrichtung und -verfahren
DE60314402T2 (de) System und methode zum speichern sowie abrufen kryptographischer geheimnisse von unterschiedlichen kundenendgeräten in einem netzwerk
DE60028900T2 (de) Automatische Neusynchronisation einer Geiheimsynchronisationsinformation
US20020120838A1 (en) Data encryption using stateless confusion generators
EP0903026A1 (de) Verfahren zum kryptographischen schlüsselmanagement zwischen einer ersten computereinheit und einer zweiten computereinheit
DE102005024725A1 (de) System und Verfahren für Chaotische Digitale Signatur, Verschlüsselung und Authentifizierung
EP2929648A1 (de) Verfahren zum aufbau einer sicheren verbindung zwischen clients
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
EP0923826B1 (de) Anordnung und verfahren zur kryptographischen bearbeitung eines digitalen datenstroms, der eine beliebige anzahl von daten aufweist
EP3059895A1 (de) Einmalverschlüsselung von zählerdaten
EP3506144A1 (de) Verfahren und system zum überprüfen einer integrität einer kommunikation
DE202023104060U1 (de) Eine mehrstufige randomisierte SALT-Technik für Vertraulichkeit in IoT-Geräten
DE60133140T2 (de) System und verfahren für symmetrische kryptographie
EP4099611B1 (de) Erzeugung quantensicherer schlüssel in einem netzwerk
EP2288073B1 (de) Vorrichtung zur Verschlüsselung von Daten
WO2011035899A1 (de) Verfahren zum aufbauen eines gesicherten kommunikationskanals
DE10046642A1 (de) System und Verfahren zur Geheimcode-Emulation zwischen zwei Hardwaremodulen
DE102006009725A1 (de) Verfahren und Vorrichtung zum Authentifizieren eines öffentlichen Schlüssels
EP3515033A1 (de) Verfahren und vorrichtung zum übertragen eines datensatzes von einer ersten an eine zweite einrichtung
DE102022203725A1 (de) Verfahren zum Austausch kryptographischer Schlüssel zwischen Kommunikationsteilnehmern
EP1387520B1 (de) Verfahren zum Erzeugen eines Geheimschlüssels

Legal Events

Date Code Title Description
8364 No opposition during term of opposition