[go: up one dir, main page]

DE60301147T2 - RC4 Verfahren zur Verschlüsselung von Paketen - Google Patents

RC4 Verfahren zur Verschlüsselung von Paketen Download PDF

Info

Publication number
DE60301147T2
DE60301147T2 DE60301147T DE60301147T DE60301147T2 DE 60301147 T2 DE60301147 T2 DE 60301147T2 DE 60301147 T DE60301147 T DE 60301147T DE 60301147 T DE60301147 T DE 60301147T DE 60301147 T2 DE60301147 T2 DE 60301147T2
Authority
DE
Germany
Prior art keywords
packet
vector
byte
variable
bytes
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
DE60301147T
Other languages
English (en)
Other versions
DE60301147D1 (de
Inventor
Mark Mississauga Garstin
Robert R. Broomfield Gilman
Mark Drummoye Wutzke
Richard L. Broomfield Robinson
Anwar New York Siddiqui
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.)
Avaya Technology LLC
Original Assignee
Avaya Technology LLC
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 Avaya Technology LLC filed Critical Avaya Technology LLC
Publication of DE60301147D1 publication Critical patent/DE60301147D1/de
Application granted granted Critical
Publication of DE60301147T2 publication Critical patent/DE60301147T2/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft die Telekommunikationsübertragung und insbesondere ein recheneffizientes Paketverschlüsselungsverfahren für Ströme von Paketen, bei denen während der Übertragung Verluste und/oder eine Auslieferung in falscher Reihenfolge auftreten.
  • Problem
  • Ein Problem auf dem Gebiet der Paketübertragung besteht darin, die Verschlüsselungssicherheit zu erhöhen, um zu verhindern, dass nichtautorisierte Geräte die übertragenen Pakete abfangen und entschlüsseln, und gleichzeitig ein Paketverschlüsselungsverfahren zur Verfügung zu stellen, welches die Rechenzeit zur Verschlüsselung und Entschlüsselung des Klartextstroms nicht erhöht. Ein zweites Problem auf dem Gebiet der Paketübertragung besteht darin, die Sequenz aus den Paketen am Bestimmungsort wieder zusammenzusetzen und gleichzeitig ein Paketverschlüsselungsverfahren zur Verfügung zu stellen, bei welchem der Empfänger nicht zu viel Zeit braucht, um den Paketstrom zu entschlüsseln und wieder zusammenzusetzen. Ein drittes Problem besteht darin, die Entschlüsselung von empfangenen Paketen beim Auftreten eines Verlustes oder von Paketen in falscher Reihenfolge zu synchronisieren.
  • Bei der Paketvermittlung werden, sowohl drahtgebunden als auch drahtlos, Pakete von Klartext von einer Quelle zu einem Bestimmungsort durch das Netz gesendet. Die Pakete werden von Paket-Assemblern/Disassemblern aus einzelnen Klartextpaketen zusammengefügt und in diese zerlegt. Jedes Paket weist eine eindeutige Kennung, eine Sequenznummer, auf, und jedes Paket umfasst drei Grundelemente, einen Kopf (Header), eine Nutzlast. und, optional, einen Nachspann. Der Kopf enthält Steuerinformationen wie etwa die Sequenznummer, Synchronisationsbits, die Adresse des Bestimmungsorts, die Adresse der Quelle, die Länge des Paketes und so weiter. Die Nutzlast stellt den Klartext dar, welcher gesendet wird, und der Nachspann enthält eine Markierung für das Paketende sowie Fehlererkennungs- und Korrekturbits.
  • Zur Übertragung in einem Paketvermittlungsnetz wird ein Medienstrom in "Pakete" zerlegt. Jedes Paket läuft durch das Netz zu dem Bestimmungsort durch verfügbare Knoten hindurch und wird von Koten zu Knoten so übermittelt, wie Bandbreite für die Übertragung verfügbar wird. Am Bestimmungsknoten wird ein Versuch unternommen, die Pakete zu dem ursprünglichen fortlaufenden Strom zusammenzusetzen. Da die Pakete durch das Netz laufen, indem sie unterschiedlichen Routen folgen, kommen die Pakete am Bestimmungsort oft in falscher Reihenfolge an. Andere Pakete können im Netz verloren gehen. Zusätzliche Verarbeitungszeit ist an dem Bestimmungsort erforderlich, um eine erneute Übertragung verlorener Pakete und/oder von Paketen, die in falscher Reihenfolge empfangen wurden, anzufordern und um die Pakete zu der ursprünglichen fortlaufenden Nachricht zusammenzusetzen.
  • Auf dem Gebiet der Paketübertragung werden üblicherweise zwei Verschlüsselungsverfahren genutzt, RC4 und Wired Equivalency Privacy (WEP). RC4 stellt ein Verschlüsselungsverfahren dar, das bei zellulären digitalen Paketdaten (CDPD) unterstützt wird, und WEP stellt ein Verschlüsselungsverfahren dar, das durch den Standard IEEE 802.11 unterstützt wird. Der Verein der Elektrotechniker und Elektroniker (IEEE) ist die normschaffende Körperschaft, die für viele Telekommunikations- und Computernormen verantwortlich zeichnet, darunter jene, die bei lokalen Netzen (LANs) genutzt werden, die Normen-Serie 802. IEEE 802 Teil 11b (802.11b) wird üblicherweise für die zunehmend populären drahtlosen Netze beim Aufbau von LANs genutzt.
  • WEP und RC4 sind "Strom"-Chiffrierer, an der Quelle erzeugen sie einen Strang von Zufallsverschlüsselungsbytes, die alle mit den Klartextbytes exklusiv-ODER-verknüpft werden, um den Chiffretext zu bilden. Umgekehrt kann der Chiffretext mit dem gleichen Verschlüsselungsstrom exklusiv-ODER-verknüpft werden, um am Bestimmungsort wieder den Klartext herzustellen.
  • Verschlüsselungsverfahren RC4
  • RC4 läuft von Anfang bis Ende als ein Generator für einen einzelnen Strom, ein Generator für einen sehr langen Strom. RC4 nutzt nicht die Paketsequenznummer in dem Verschlüsselungsverfahren, stattdessen wird die Sequenz der nächsten Bytes des Nutzlast-Klartextes genutzt. Anders ausgedrückt hängt die Verschlüsselung/Entschlüsselung jedes Bytes von der Byteposition in dem Gesamtstrom ab. RC4 nutzt einen Schlüssel von bis zu 256 Bytes, um einen S-Vektor mit 256 Bytes zu generieren, der genutzt wird, um jedes der aufeinanderfolgenden Bytes des Nutzlast-Klartextes nacheinander zu verschlüsseln. Der S-Vektor-Algorithmus nutzt zwei Variablen, und der S-Vektor wird permutiert, nachdem ein jeweiliges Byte verschlüsselt ist, somit hängt jeder Verschlüsselungsstromwert von der Anzahl der Nutzlastbytes ab, die bereits verschlüsselt oder entschlüsselt sind. Somit entwickelt sich der S-Vektor im Zeitverlauf weiter, sodass er unpraktisch dafür wird, RC4 zu resynchronisieren.
  • Wenn alle Bytes des Nutzlast-Klartextes verschlüsselt worden sind, wird der Chiffretext zu Pakten zusammengesetzt und an jedes Paket werden zur Übertragung ein Kopf und ein Nachspann angefügt. Ein Problem entsteht, wenn ein Datenpaket während der Übertragung verloren geht. Der Bestimmungsort weiß, dass ein Paket verloren gegangen ist (noch nicht empfangen worden ist), weil jeder Header eine Sequenznummer enthält. Wenn das zweite Paket am Bestimmungsort nicht ankommt, ist der Bestimmungsort in der Lage, die Bytes des Nutzlast-Chiffretextes in dem ersten Paket zu dechiffrieren. Der Bestimmungsort kann jedoch nicht das dritte Paket entschlüsseln, welches empfangen wird, da der Bestimmungsort nicht weiß, wie viele Bytes an Nutzlast-Chiffretext in dem fehlenden zweiten Paket gesendet wurden, sodass der Bestimmungsort die erneute Übertragung aller nicht empfangenen Pakete anfordern muss. Dies ist für Echtzeit-Medienströme unpraktikabel. Da alle Klartext-Bytes nacheinander in Chiffretext umgewandelt worden sind, müssen die Chiffretext-Bytes zur Entschlüsselung in der gleichen Reihenfolge verarbeitet werden.
  • Das gerade beschriebene Verschlüsselungsverfahren RC4 ist nicht in der Lange, ein Verfahren zum Entschlüsseln von nacheinander empfangenen Paketen für den Fall, dass ein Paket während der Übertragung nicht wiederherstellbar verloren geht, zur Verfügung zu stellen.
  • Verschlüsselungsverfahren Wired Equivalency Privacy (WEP)
  • IEEE 802.11b wendet das Verfahren Wired Equivalency Privacy (WEP) (zu Deutsch in etwa "drahtgebundener äquivalenter Datenschutz") an. Die Ähnlichkeit zwischen RC4 und WEP besteht darin, dass WEP RC4 nutzt, indem das Verfahren für jedes Paket neu initialisiert wird, wobei die Sequenznummer als ein Teil des Schlüssels verwendet wird. Das Verschlüsselungsverfahren WEP wird neu initialisiert durch neue Schlüsselbildung (Auswahl eines neuen Schlüssels) und Erzeugung eines neuen S-Vektors unter Verwendung des neuen Schlüssels.
  • Um das Problem zu lösen, das bei der Verwendung von RC4 entsteht, nutzt WEP RC4 mit der Ausnahme, dass WEP den gleichen inkrementierten S-Vektor für jedes Paket nutzt, wogegen RC4 den inkrementierten S-Vektor für jedes Byte der Nutzlast nutzt. Durch Erzeugung eines neuen S-Vektors für jedes Paket ist der Bestimmungsort in der Lage, jedes Paket in jeder beliebigen empfangenen Reihenfolge, und auch wenn Pakete verloren gegangen sind, zu entschlüsseln. Anders ausgedrückt läuft WEP von Anfang bis Ende eines Paketes, wogegen RC4 von Anfang bis Ende jedes Nutzlaststroms läuft, ungeachtet der Anzahl von Paketen, die für den Nutzlaststrom übertragen werden. Dadurch wird WEP für kleine Pakete wie etwa Audiokommunikation ineffizient, da für jedes Paket ein neuer S-Vektor berechnet werden muss.
  • Obgleich das Problem, dass verlorene Pakete die Entschlüsselung am Bestimmungsort verhindern, gelöst wird, ist die wiederholte Schlüsselbildung und wiederholte Initialisierung des Verfahrens für jedes Paket rechenaufwendig, und es ist gezeigt worden, dass das Verfahren unsicher ist. Es ist demonstriert worden, dass es bei WEP Sicherheitsmängel gibt. Man vergleiche Stubblefield, et al., "Using the Fluhrer, Martin, and Shamir attack to break WEP", http://www.cs.rice.edu/~astubble/wep/wep attack.html und "Weaknesses in the Key Scheduling Method of RC4", http://www.eyetap.org/~rguerra/toronto2001/rc4_ksaproc.pdf. Einige PC-Karten setzten die Paket-Sequenznummer jedes Mal auf Null zurück, wenn sie initialisiert werden, und inkrementieren dann für jede Nutzung um eins. Obgleich dieses Verfahren die Verarbeitungszeit reduziert, führt es dazu, dass mit großer Wahrscheinlichkeit Schlüsselströme erneut genutzt werden, was zu einfachen kryptoanalytischen Attacken gegen den Chiffretext und zur Entschlüsselung des Nachrichtenverkehrs führt. Wenn ein Hacker in der Lage ist, den Verschlüsselungscode für ein Paket zu knacken, kann der Hacker alle Pakete entschlüsseln. Ein weiteres Problem bei WEP besteht darin, dass es rechenaufwendig ist. Die S-Vektor-Schleife erfordert 256 Schritte (für einen 256-Byte-Vektor), und für jedes Paket wird der S-Vektor neu berechnet.
  • RC4 inkrementiert den S-Vektor für jedes Byte in dem Nutzlast-Klartextstrom, wodurch das Verschlüsselungsverfahren RC4 weniger rechenintensiv wird, und zwar zu Lasten der Fähigkeit zur schnellen Fehlerkorrektur, wenn ein Paket in dem Netz verloren geht. WEP löst das Problem, indem ein weniger sicheres Verschlüsselungsverfahren bereitgestellt wird, welches rechenintensiv ist, sodass der Overhead größer wird und die Zeit, die zum Verschlüsseln des Klartextstroms und zum Entschlüsseln des Chiffretextstroms erforderlich ist, ansteigt.
  • Die gerade beschriebenen Verschlüsselungsverfahren sind nicht in der Lage, ein Verfahren zum effizienten Verschlüsseln eines Stroms an Nutzlast-Klartext zur Verfügung zu stellen, das gleichzeitig dem Bestimmungsort gestattet, die empfangenen Pakete zu entschlüsseln, falls ein Paket während der Übertragung verloren geht.
  • Aus diesen Gründen besteht ein Bedarf an einem effizienten Paketverschlüsselungsverfahren, durch welches die zur Verschlüsselung des Nutzlast-Klartexts und zur Entschlüsselung des Nutzlast-Chiffretextes erforderliche Zeit nicht erhöht wird und welches nach dem Verlust eines Paketes oder wenn Pakete in falscher Reihenfolge ankommen zur Fehlerbehebung in der Lage ist.
  • Bei Kundarewich, P.D. et al.: "A CPLD-based RC4 Cracking System", Electrical and Computer Engineering, 1999, kanadische IEEE-Konferenz, Edmonton, Alta., Kanada 9.–12. Mai 1999, Piscataway, NJ, USA, IEEE, US, 9. Mai 1999 (1999-05-09), Seiten 397–402, XP010359792 ISBN: 0-7803-5579-2 ist eine Beschreibung einer bekannten Klartext-Attacke gegen das standardmäßige RC4 offenbart. An dieser Stelle ist die Gestaltung einer Hardware-Implementierung des Systems zum Knacken von RC4 beschrieben.
  • Lösung
  • Entsprechend der vorliegenden Erfindung wird ein Verfahren gemäß Anspruch 1 zur Verfügung gestellt.
  • Das vorliegende effiziente Paketverschlüsselungsverfahren behebt die zuvor angeführten Probleme und stellt einen Fortschritt im Fachgebiet dar, indem es ein Verfahren bereitstellt, welches den S-Vektor nicht für jedes Paket neu berechnet, sodass die Zeit reduziert wird, die zum Verschlüsseln des Nutzlast-Klartextes und zum Entschlüsseln des Nutzlast-Chiffretextes erforderlich ist. Das vorliegende effiziente Paketverschlüsselungsverfahren behebt außerdem das Problem bei verloren gehenden oder in falscher Reihenfolge ankommenden Paketen, indem ein Verfahren zur Verfügung gestellt wird, welches die Paket-Sequenznummer nutzt, um zwei Variablen in dem Verschlüsselungsverfahren zu initialisieren. Eine dritte und eine vierte Variable werden in die Berechnung eingeführt, um die Vorhersagbarkeit der in den Verschlüsselungsberechnungen verwendeten Werte zu minimieren und um die Häufigkeit, mit welcher sich der Verschlüsselungsstrom wiederholt, zu vermindern.
  • Das vorliegende effiziente Paketverschlüsselungsverfahren nutzt das standardmäßige RC4-Verfahren, um unter Verwendung eines geheimen Schlüssels einen anfänglichen S-Vektor zu generieren. Im Gegensatz zu WEP, welches für jedes aufeinanderfolgende Paket einen neuen S-Vektor generiert, wird der S-Vektor einmal zum Verschlüsseln des gesamten Klartextstroms generiert, sodass die Zeit, die zum Generieren eines neuen S-Vektors für jedes aufeinanderfolgende Paket erforderlich ist, wegfällt.
  • Variablenberechnung
  • Zwei Variablen, i und j, werden genutzt, um einen Verschlüsselungsstrom zu erzeugen, der mit jedem Byte des Klartextes in einem Paket exklusiv-ODER-verknüpft wird. Für aufeinanderfolgende Klartextbytes in einem Paket werden neue Werte für die Variablen i und j berechnet. Im Gegensatz zu RC4, wo die Variablen i und j anfänglich auf Null gesetzt werden und für nachfolgende Klartextbytes in der Nutzlast inkrementiert werden, wird, nachdem der anfängliche S-Vektor generiert ist, für das erste Paket eine Start-Sequenznummer generiert. Ein erster Teil der Sequenznummer stellt die Variable j dar, und ein zweiter Teil der Sequenznummer wird genutzt, um die Variable i zu berechnen.
  • Bei einer Ausführungsform wird die Variable i durch Exklusiv-ODER-Verknüpfung des zweiten Teils der Sequenznummer mit dem Wert von S[j] berechnet, wobei S[j] von dem S-Vektor abgeleitet wird. Das Einführen einer dritten Variablen, S[j], in die Berechnung des Startwertes der Variablen i beseitigt die Vorhersagbarkeit der Variablen i, sodass das vorliegende effiziente Paketverschlüsselungsverfahren sicherer gegenüber bekannten Klartext-Attacken wird. Für jedes nachfolgende Paket werden neue Startwerte für die Variablen i und j berechnet. Die Verwendung der Sequenznummer zur Generierung des Verschlüsselungsstroms liefert ein Verfahren zur Dechiffrierung von Paketen am Bestimmungsort unabhängig von der Reihenfolge, in welcher diese empfangen werden. Es bietet außerdem ein Verfahren zum Dechiffrieren der aufeinanderfolgenden Pakete, die empfangen werden, nachdem ein Paket verloren gegangen ist, sodass die Zeit zum Verschlüsseln, Übertragen und Dechiffrieren aufeinanderfolgender Pakete an Klartext reduziert wird.
  • Berechnung aufeinanderfolgender Verschlüsselungs- und Chiffretext-Bytes
  • Wenn das nächstfolgende Byte in dem Paket noch nicht verschlüsselt ist, werden die Variablen i und j für jedes nachfolgende Byte in dem Paket neu berechnet. Die zweite Variable i wird neu berechnet als Summe der zweiten Variablen i aus der vorhergehenden Iteration und einer vierten Variablen k, wobei k die Byte-Sequenznummer in der Paket-Nutzlast ist. Am Beginn jedes Paketes wird k zurückgesetzt, und für jedes nachfolgende Byte an Klartext in dem Paket wird k inkrementiert. Die vierte Variable k wird bei der Berechnung der zweiten Variablen i genutzt, um die Wahrscheinlichkeit zu reduzieren, dass Teile des gleichen Verschlüsselungsstroms in unterschiedlichen Paketen erneut genutzt werden, wenn das vorliegende effiziente Paketverschlüsselungsverfahren genutzt wird, um große Nutzlasten an Klartext zu verschlüsseln. Die erste Variable j wird neu berechnet als Summe der ersten Variablen j aus der vorhergehenden Iteration und der dritten und vierten Variablen, S[i] bzw. S[r], wobei S[i] und S[r] von dem S-Vektor abgeleitet sind.
  • Das Einbringen von S[r] in das Verschlüsselungsverfahren erzeugt einen Verschlüsselungsstrom, der sich über eine lange Sequenz von Paketen nicht wiederholt. Ohne Einbringen von S[r] würde sich der Verschlüsselungsstrom bei 100 Paketen pro Sekunde etwa alle elf Minuten wiederholen. Das Einbringen von S[r] in die Berechnung erzeugt einen Verschlüsselungsstrom, der sich alle vierundsechzig Stunden wiederholen würde, sodass das vorliegende effiziente Paketverschlüsselungsverfahren sicherer gemacht wird.
  • Bei einer anderen Ausführungsform wird der S-Vektor während der Verschlüsselung jedes aufeinanderfolgenden Paketes permutiert. Bei dieser Ausführungsform wird, wenn der S-Vektor erstmals berechnet wird, eine Kopie des S-Vektors gespeichert. Für jedes nachfolgende Byte an verschlüsseltem Klartext werden die Werte in dem S-Vektor, auf welche die erste Variable j und die zweite Variable i zeigen, einer Swapping-Routine unterworfen, d.h. vertauscht. Durch Vertauschen der Werte in dem S-Vektor für jedes nachfolgende Byte von Klartext wird der S-Vektor im Zeitverlauf derart permutiert, dass es weniger wahrscheinlich ist, dass sich der erzeugte Verschlüsselungsstrom für lange Klartext-Nutzlasten in einem Paket wiederholt. Wenn alle Bytes an Klartext in dem Paket verschlüsselt worden sind, wird der anfängliche S-Vektor wieder hergestellt, und zwar zur Verwendung bei der Verschlüsselung oder Entschlüsselung des nächsten Paketes.
  • Berechnung des ersten Verschlüsselungs- und Chiffretext-Bytes
  • Das erste Byte des Verschlüsselungsstroms wird von dem S-Vektor unter Nutzung der Formel E = S [S[i] + S[j]] abgeleitet. Die Stelle in dem S-Vektor, auf welche die Summe aus S[i] und S[j] zeigt, enthält das nächste Byte des Verschlüsselungsstroms. Am Sender wird das nächste Byte des Verschlüsselungsstroms genutzt, um das nächste Byte des Chiffrestroms zu berechnen. Das nächste Byte in dem Verschlüsselungsstrom wird mit dem nächsten Klartext-Byte in der Paket-Nutzlast exklusiv-ODER-verknüpft (XOR-verknüft), um das nächste Chiffretext-Byte zu erzeugen.
  • Am Empfänger wird das empfangene nächste Chiffretext-Byte durch XOR-Verknüpfung des nächsten empfangenen Chiffretext-Bytes mit dem nächsten berechneten Verschlüsselungsbyte dechiffriert, um das nächste Klartext-Byte wieder herzustellen. Der nächste Schritt in dem vorliegenden effizienten Paketverschlüsselungsverfahren besteht darin zu bestimmen, ob das letzte Klartext-Byte in der Nutzlast des ersten Pakets verschlüsselt worden ist.
  • Wenn alle aufeinanderfolgenden Klartext-Bytes in dem nächsten Paket verschlüsselt worden sind, wird die Paket-Sequenznummer inkrementiert und das Verfahren springt in einer Schleife zurück, um neue Werte für die Variablen i und j aus der nächstfolgenden Paket-Sequenznummer zu berechnen. Der anfänglich erzeugte S-Vektor wird für alle aufeinanderfolgenden Pakete genutzt.
  • Ein erster Vorteil des vorliegenden effizienten Paketverschlüsselungsverfahrens besteht in einer Reduzierung der Verarbeitungszeit pro Paket. Durch Nutzung des gleichen S-Vektors für aufeinanderfolgende Pakete wird die Verarbeitungszeit pro Paket zum Verschlüsseln des Klartextstroms oder zum Entschlüsseln des Chiffretextstroms reduziert, wodurch das vorliegende effiziente Paketverschlüsselungsverfahren effizienter als frühere Verschlüsselungsverfahren wie etwa das zuvor diskutierte WEP-Verfahren wird. Ein zweiter Vorteil des vorliegenden effizienten Paketverschlüsselungsverfahrens besteht darin, dass es nicht dem gleichen Angriff ausgesetzt ist, durch welchen WEP unsicher wird.
  • Ein dritter Vorteil des vorliegenden effizienten Paketverschlüsselungsverfahrens besteht darin, dass es im Hinblick auf eine einfache Resynchronisation auf die Pakete bei Auftreten eines Paketverlustes und/oder eines Paketempfangs in falscher Reihenfolge entworfen ist. Das vorliegende effiziente Paketverschlüsselungsverfahren nutzt jede Paket-Sequenznummer, um den Anfangswert der Variablen i und j zu wählen, und inkrementiert die Paket-Sequenznummer für aufeinanderfolgende Pakete. RC4 nutzt keine Paket-Sequenznummern, und der Empfänger muss daher die Bytes vom Anfang des Chiffrestroms zählen, ein Prozess, der zeitaufwendig ist und der bei Verlust eines Paketes keine Fehlerkorrektur ermöglicht.
  • Durch Nutzung der Sequenznummer zur Initialisierung der Variablen i und j wird der nächste Wert von i und j vorhersagbar. Das Einbringen einer dritten Variablen S[j] bei der Berechnung des Anfangswertes der Variablen i beseitigt die Vorhersagbarkeit der Bestimmung der Werte der Variablen i und j, wodurch das vorliegende effiziente Paketverschlüsselungsverfahren sicherer wird. Durch Einbringen von S[r] in die Berechnung wird ein Verschlüsselungsstrom generiert, bei welchem sich der Paketverschlüsselungsstrom nicht so häufig wiederholt, was eine zusätzliche Sicherheit gegenüber Hackern bietet. Analog wird die Byte-Sequenznummer k eingebracht, um die Wahrscheinlichkeit zu reduzieren, dass ein Bruchteil des Verschlüsselungsstroms sich irgendwo in einer langen Sequenz von Paketen wiederholt.
  • Kurze Beschreibung der Zeichnungen
  • 1 stellt eine Sequenz von Nutzlast-Klartext zur Übertragung über ein Paketvermittlungsnetz dar;
  • 2 stellt ein Ablaufdiagramm eines RC4-Verfahrens nach dem Stand der Technik zum Erzeugen eines standardmäßigen S-Vektors dar; und
  • 3 stellt ein Ablaufdiagramm für das vorliegende effiziente Paketverschlüsselungsverfahren dar.
  • Detaillierte Beschreibung
  • Das vorstehend zusammengefasste und durch die aufgezählten Ansprüche definierte effiziente Paketverschlüsselungsverfahren kann unter Bezugnahme auf die folgende detaillierte Beschreibung, welche in Verbindung mit den beigefügten Zeichnungen gelesen werden sollte, besser verstanden werden. Mit dieser detaillierten Beschreibung der bevorzugten Ausführungsform wird nicht beabsichtigt, die aufgezählten Ansprüche einzuschränken, sondern sie soll als ein spezielles Beispiel für diese dienen. Auch die vorliegend verwendete Ausdrucksweise und Terminologie dient dem Zwecke der Beschreibung der bevorzugten Ausführungsform.
  • Bei der Paketvermittlung werden, sowohl drahtgebunden als auch drahtlos, Pakete von Klartext von einer Quelle zu einem Bestimmungsort durch das Netz gesendet. Die Pakete werden von Paket-Assemblern/Disassemblern aus einzelnen Klartextpaketen zusammengefügt und in diese zerlegt. Jedes Paket weist eine eindeutige Kennung, eine Sequenznummer, auf, und jedes Paket umfasst drei Grundelemente, einen Header, eine Nutzlast und, optional, einen Nachspann. Der Header enthält Steuerinformationen wie etwa die Sequenznummer, Synchronisationsbits, die Adresse des Bestimmungsorts, die Adresse der Quelle, die Länge des Paketes und so weiter. Die Nutzlast stellt den Klartext dar, welcher gesendet wird, und der Nachspann enthält eine Markierung für das Paketende sowie Fehlererkennungs- und Korrekturbits.
  • Paketvermittlung 1:
  • Nehmen wir auf 1 Bezug, so wird zur Übertragung in einem Paketvermittlungsnetz 100 eine einzelne Nachricht oder ein Datenstrom 110 in "Pakete" zerlegt. Jedes Paket 112, 114, 116 und 118, jeweils mit 1 bis 4 markiert, läuft durch das Netz 100 zu dem Bestimmungsort durch verfügbare Knoten 120, 122, 124, 126, 128 und 130 hindurch und wird von Knoten zu Knoten in dem Maße übertragen, wie Bandbreite für die Übertragung verfügbar wird. An dem Bestimmungsknoten 130 werden die Pakete 112, 114, 116 und 118 wieder zu der ursprünglichen fortlaufenden Nachricht oder dem ursprünglichen fortlaufenden Strom zusammengesetzt. Da die Pakete durch das Netz 100 laufen, indem sie unterschiedlichen Routen folgen, kommen die Pakte an dem Bestimmungsort 130 oft in falscher Reihenfolge an. Andere Pakete können in dem Netz verloren gehen. Am Bestimmungsort ist zusätzliche Verarbeitungszeit erforderlich, um eine Übertragung von verlorenen Paketen anzufordern und um die Pakete wieder zu der ursprünglichen fortlaufenden Nachricht zusammenzusetzen. In vielen Fällen kann eine erneute Übertragung der verlorenen Pakete nicht pünktlich erfolgen, daher ist das verlorene Paket nicht wieder herstellbar.
  • Ein Hauptmerkmal der Paketvermittlung ist die Art und Weise, in welcher die Übertragungsleitungen gemeinsam auf. Grundlage des jeweiligen Bedarfs genutzt werden. Ein jeweiliges Paket wird übertragen, sobald die geeignete Verbindung verfügbar ist, und keine Verbindung wird von einer Quelle belegt, die nichts zu senden hat. Nachdem der Quellenknoten 120 das erste Paket 112 gesendet hat, muss er den gleichen Prozess verfolgen, um die restlichen Pakete zu senden. Jedes Paket kann auf einer unterschiedlichen Route zwischen dem Quellenknoten 120 und dem Bestimmungsknoten 130 laufen und jedes Paket weist eine Sequenznummer auf. Die Sequenznummern, im vorliegenden Beispiel 1–4, werden am Bestimmungsknoten 130 genutzt, um die Pakete wieder zu der ursprünglichen fortlaufenden Nachricht 110 zusammenzusetzen. Beispielsweise läuft das erste Paket 112 von dem Quellenknoten 120 zu dem ersten Knoten 122. Das zweite Paket 114 verlässt den Quellenknoten 120 und läuft zu dem ersten Knoten 122, während das erste Paket 112 weiter zu dem Bestimmungsknoten 130 läuft, wobei es an dem Bestimmungsknoten 130 als erstes und in richtiger Reihenfolge ankommt. Wenn das dritte Paket 116 von dem ersten Knoten 122 zu dem Bestimmungsknoten 130 läuft, verlässt das dritte Paket 116 den Quellenknoten 120 und läuft zu dem dritten Knoten 126. Das letzte Paket 118 läuft von dem Quellenknoten 120 zu dem ersten Knoten 122, während das dritte Paket 116 zu dem Bestimmungsknoten 130 läuft. Da die Route, über die das dritte Paket 116 läuft, länger als die Route ist, über die das letzte Paket 118 läuft, kann es passieren, dass das letzte Paket 118 und das dritte Paket 116 an dem Bestimmungsknoten 130 in falscher Abfolge ankommen.
  • Ähnlich kann es vorkommen, dass, wenn ein anderer Knoten in dem Netz außer der Reihe ein Paket sendet, das Paket mit einem der Pakete kollidiert, die von dem Quellenknoten 120 gesendet werden, was dazu führt, dass ein Paket verloren geht. Somit empfängt der Bestimmungsknoten 130 drei der vier Pakete. Wenn der Prozessor an dem Bestimmungsknoten 130 die Pakete wieder zusammensetzt, stellt er fest, dass ein Paket fehlt. Bei Verwendung der zuvor beschriebenen Verschlüsselungsverfahren RC4 und WEP wäre der Bestimmungsknoten 130 nicht in der Lange, Pakete zu entschlüsseln, die in fehlerhafter Abfolge ankommen, oder etwaige Pakete, die nach einem verlorenen Paket ankommen.
  • Verschlüsselungsmethoden lassen sich in zwei allgemeine Kategorien einteilen: symmetrische Verschlüsselungssysteme und asymmetrische Verschlüsselungssysteme. Bei symmetrischen Verschlüsselungssystemen wie etwa denjenigen, die dem Datenverschlüsselungsstandard (DES) entsprechen, wird der gleiche Schlüssel von dem Urheber zum Verschlüsseln der Daten (d.h. zum Konvertieren des Klartextes in Chiffretext) und von dem Empfänger zum Entschlüsseln der gleichen Daten (d.h. zum Konvertieren von Chiffretext zurück in Klartext) genutzt. Das vorliegende effiziente Paketverschlüsselungsverfahren ist symmetrisch.
  • Erzeugung des S-Vektors 2:
  • Das vorliegende effiziente Paketverschlüsselungsverfahren nutzt das standardmäßige RC4-Verfahren, um einen anfänglichen S-Vektor zu generieren. Bezug nehmend auf 2 einigen sich der Sender und der Empfänger auf einen geheimen Schlüssel, der für die Ver-/Entschlüsselung des Klartextes genutzt werden soll, und zwar in Block 210. Der Sender kann zufallsmäßig einen geheimen Schlüssel erzeugen und den geheimen Schlüssel in dem Header des ersten Paketes an den Empfänger senden, oder die beiden Vorrichtungen können sich während des Verbindungsaufbaus darauf einigen, einen spezifischen Schlüssel zu nutzen. Zum Zwecke der Veranschaulichung wird das vorliegende effiziente Verschlüsselungsverfahren mit einem 256-Elemente-Vektor beschrieben und dargestellt, obgleich stattdessen auch Vektoren mit anderer Länge genutzt werden könnten.
  • In Block 220 wird der geheime Schlüssel nötigenfalls wiederholt, um nacheinander einen aus 256 Elementen bestehenden K-Vektor mit Bytes des geheimen Schlüssels zu füllen. Der Wert jedes Bytes in dem 256-Elemente-K-Vektor ist kleiner als 256. In Block 230 wird ein 256-Elemente-S-Vektor derart initialisiert, dass S[i] gleich i für alle i zwischen 0 und 255 ist. Unter Nutzung des standardmäßigen RC4-Verfahrens wird der anfängliche S-Vektor in Block 240 unter Verwendung des K-Vektors verwürfelt. Alle arithmetischen Operationen werden gemäß Modulo 256 ausgeführt.
    Schritt 1 Empfange geheimen Schlüssel und erzeuge K-Vektor unter Nutzung des geheimen Schlüssels.
    Initialisiere einen S-Vektor nach dem standardmäßigen Verschlüsselungsverfahren, sodass S[i] = i für alle 0 ≤ i < 255.
    Verwürfele den anfänglichen S-Vektor unter
    Verwendung des K-Vektors, wobei
    j = 0 für i = 0 bis 255, j = j + S [i] + K[i]Vertausche S[i] und S[j],
    wobei die Werte von S[i], S[j] und K[i] von dem S-Vektor und dem K-Vektor abgeleitet sind. Nachdem der anfängliche S-Vektor generiert ist, werden Variablen zur Verschlüsselung von Klartextpaketen berechnet.
  • Variablenberechnung 3:
  • Die Variablen, die zum Verschlüsseln des Paket-Klartextes genutzt werden, sind i und j. Im Gegensatz zu RC4, bei dem i und j anfangs auf Null gesetzt werden und für nachfolgende Klartext-Bytes in dem Klartextstrom bei der Verschlüsselungsberechnung inkrementiert werden, oder dem WEP-Verfahren, für welches RC4 am Beginn jedes Paketes neu initialisiert wird, nutzt das vorliegende effiziente Paketverschlüsselungsverfahren die Sequenznummer, um den Verschlüsselungsprozess für jedes Paket zu starten. Die anfängliche Sequenznummer kann eine zufallsgenerierte Sequenznummer sein. Die Sequenznummer wird inkrementiert und die nächste Sequenznummer wird genutzt, um ein jeweiliges nächstes Paket zu verschlüsseln, Nehmen wir Bezug auf das Ablaufdiagramm in 3, so wird der Überlaufzähler r anfänglich, in Block 310, auf Null zurückgesetzt, und die anfängliche Sequenznummer wird in Block 320 für das erste Paket zufallsgeneriert.
    Schritt 2 Setze anfängliche Sequenznummer (inkrementiere Sequenznummer für nachfolgende Pakete)
    Setze anfänglichen Überlaufzähler r = 0 (inkrementiere r gemäß Modulo 256, wenn Sequenznummer = 0)
    Setze Byte-Sequenznummer zurück, k = 0
  • Der Wert des Überlaufzählers r wird genutzt, wenn eine Variable j berechnet wird, die zum Generieren des Verschlüsselungsstroms genutzt wird. Analog wird, um zwischen den Paketen eine gleiche Verschlüsselungssequenz zu verhindern, die Byte-Sequenznummer k genutzt, um die Variable i zu berechnen, die beim Generieren des Verschlüsselungsstroms genutzt wird.
  • Die Sequenznummer umfasst mindestens zwei Bytes, ein niederwertiges Byte und ein nächst höherwertiges Byte. Wenn die Sequenznummer aus mehr als zwei Bytes besteht, wird der überschüssige höchstwertige Teil gemäß Modulo 256 als der Überlaufzähler r genutzt. Die Variable j wird derart initialisiert, dass sie gleich dem höherwertigen Byte der Sequenznummer in Block 330 ist. Die Variable i wird in Block 330 als Exklusiv-ODER-Verknüpfung des niederwertigen der Bytes der Sequenznummer mit S[j] berechnet.
    Schritt 3 Setze die Variablen i und j j = höherwertiger Teil der Sequenznummer i = (niederwertiger Teil der Sequ.nummer) ⊕ S[j],wobei S[j] von dem zuvor generierten S-Vektor abgeleitet wird. Das Festsetzten des Anfangswertes der Variablen i und j unter Nutzung der Sequenznummer bietet ein Verfahren zum Wiederzusammensetzen oder Synchronisieren der Entschlüsselung der Pakete an dem Empfänger unabhängig von der Reihenfolge, in welcher die Pakete empfangen werden.
  • Die Nutzung allein einer Sequenznummer bei der Verschlüsselung von Klartextpaketen macht den nächsten Wert der Variablen i und j vorhersagbar, daher ist das Verschlüsselungsverfahren unsicher. Bei Verwendung einer bekannten Klartext-Attacke ist ein Angreifer, sobald einmal mehrere Pakete erfolgreich entschlüsselt sind, in der Lage, Informationen über Elemente des S-Vektors abzuleiten. Sobald genügend Informationen über die Elemente des S-Vektors unter Verwendung dieses Angriffs abgeleitet sind, ist es möglich, den Rest des S-Vektors zu bestimmen und den Chiffretext zu entschlüsseln. Das Einführen der Variablen S[j] in die Berechnung des Anfangswertes für die Variable i in Block 330 vermindert die Vorhersagbarkeit der Variablen i, da der Wert von S[j] von dem S-Vektor abgeleitet wird, sodass eine bestimmte bekannte Klartext-Attacke gegen den S-Vektor verhindert wird. Eine Exklusiv-ODER-Verknüpfung des niederwertigen Teils der Sequenznummer mit S[j] stellt sicher, dass jeglicher Zusammenhang, der aus dem bekannten Klartext-Angriff gewonnen wird, nicht linear ist. Somit ist das vorliegende effiziente Paketverschlüsselungsverfahren sicherer vor bekannten Klartext-Angriffen.
  • Berechnung von Variablen für aufeinanderfolgende Pakete
  • Um die Sicherheit des vorliegenden effizienten Paketverschlüsselungsverfahrens weiter zu erhöhen, werden in Block 340 die Variablen i und j für jedes nachfolgende Byte an Klartext unter Nutzung einer zweiten Berechnung weiter berechnet.
    Schritt 4 Berechne Variablen i und j unter Nutzung von i = i + k j = j + S [i] + S [r],wobei r der Wert des Überlaufzählers ist und S[i] und S[r] von dem S-Vektor abgeleitet sind, und wobei k die Byte-Sequenznummer in dem Paket ist. Wie zuvor erörtert, wird bei einer Ausführungsform, wenn das Verschlüsselungsverfahren initialisiert wird, der Überlaufzähler in Block 310 auf Null gesetzt. Der Überlaufzähler wird bei dieser Ausführungsform inkrementiert, wenn die Sequenznummer von lauter Einsen auf Null inkrementiert wird. Die Sequenznummer kann den Überlaufzähler ersetzen, wenn das Verschlüsselungsverfahren initialisiert wird, und kann wie zuvor beschrieben inkrementiert werden, um den Überlaufzähler zu inkrementieren.
  • Bei einer Ausführungsform wird die zweite Variable i neu berechnet als die Summe der zweiten Variablen i aus der vorhergehenden Iteration plus einer vierten Variablen k, wobei k die Byte-Sequenznummer der Paket-Nutzlast ist. Am Anfang jedes Paketes wird k zurückgesetzt, und für jedes nachfolgende Byte von Klartext in dem Paket wird k inkrementiert. Die vierte Variable k wird bei der Berechnung der zweiten Variablen i genutzt, um die Wahrscheinlichkeit dafür zu reduzieren, dass ein Teil des Verschlüsselungsstroms in anderen Paketen erneut verwendet wird, wenn das vorliegende effiziente Paketverschlüsselungsverfahren genutzt wird. Die erste Variable j wird neu berechnet als Summe der ersten Variablen j aus der vorhergehenden Iteration plus der dritten Variablen S[i] plus der vierten Variablen S[r], wobei S[i] und S[r] von dem S-Vektor abgeleitet sind. Obgleich die zweite Variable i für jedes nachfolgende Klartextbyte in dem Paket lediglich um eins inkrementiert werden könnte, würde ein Teil des Verschlüsselungsstroms, der für ein Paket genutzt wird, für einige andere Pakete erneut verwendet werden, Also verhindert das Verwenden der Byte-Sequenznummer k zur Neuberechnung der Variablen i für aufeinanderfolgende Bytes von Klartext in dem Paket eine Wiederholung für Nutzlasten, die nicht länger als 2256 Bytes sind und bringt somit eine zusätzliche Sicherheit für das vorliegende effiziente Paketverschlüsselungsverfahren mit sich.
  • Das Einbringen von S[r] in die Verschlüsselungsberechnung in Block 340 und das Inkrementieren des Wertes von r in Block 320, wie für aufeinanderfolgende Pakete notwendig, vermindert die Häufigkeit, mit welcher sich der Verschlüsselungsstrom wiederholt. Ohne die Nutzung von S[r] bei der Berechnung aufeinanderfolgender Variablen j würde ein Verschlüsseln von 100 Paketen pro Sekunde bewirken, dass sich der Verschlüsselungsstrom alle elf Minuten wiederholt, was eine Entschlüsselung durch einen Hacker erleichtert. Durch das Einbringen von S[r] in die Berechnung der Variablen j für jedes Byte in dem Paket und gegebenenfalls das Inkrementieren von r für jedes nächste Paket wiederholt sich der Verschlüsselungsstrom etwa alle vierundsechzig Stunden. Somit bietet das Einbringen der zusätzlichen Variablen r des Überlaufzählers in das vorliegende effiziente Paketverschlüsselungsverfahren zusätzliche Sicherheit gegenüber Hackern.
  • Obgleich die Berechnung der Variablen i und j unter Verwendung einer Variablen r von einem Überlaufzähler oder der Sequenznummer direkt beschrieben worden ist, könnten stattdessen andere Verfahren zum Setzen des r-Wertes genutzt werden. Andere bekannte Verfahren zum Erzeugen eines r-Wertes beinhalten das zufällige Auswählen eines Startwertes für r und das Verteilen des r-Wertes als Teil des Headers, oder der Wert für r könnte aus einem anderen Protokoll als RTP abgeleitet werden. Ähnlich könnten alternative Verfahren zum Aktualisieren des Zählers genutzt werden, anstatt den Zähler zu inkrementieren, wenn die Sequenznummer von einer Reihe aus lauter Einsen zu einer Reihe aus lauter Nullen weitergesetzt wird. Unter Verwendung der in Block 340 generierten Variablen i und j wird in Block 350 ein Verschlüsselungsbyte berechnet.
  • Berechnung des ersten Verschlüsselungs- und Chiffretext-Bytes
  • Das erste Byte des Verschlüsselungsstroms wird in Block 350 unter Nutzung der im vorangegangenen Schritt 4 berechneten Werte für die Variablen i und j berechnet.
    Schritt 5 Berechne nächstes Byte in dem Paketverschlüsselungsstrom unter Verwendung von E[k] = S[S[i] + S[j]],wobei der Binärwert von S[i] und S[j] aus dem S-Vektor abgeleitet wird. Die Stelle in dem S-Vektor, auf den die Summe aus S[i] und S[j] zeigt, enthält das nächste Byte des Verschlüsselungsstroms. Unter Nutzung des nächsten Bytes des Verschlüsselungsstroms wird in Block 360 das nächste Byte des Chiffrestroms berechnet.
  • Bei einer optionalen Ausführungsform wird während der Verschlüsselung eines jeweils nachfolgenden Paketes der S-Vektor permutiert, oder verwürfelt, und zwar in Block 380. Bei dieser Ausführungsform wird vor dem Verschlüsseln des ersten Klartextbytes in dem Paket eine Kopie des S-Vektors gespeichert. Für jedes darauf folgende Byte an Klartext wird der Wert in dem S-Vektor, auf den die erste Variable j und die zweite Variable i zeigt, ausgetauscht. Durch Vertauschen der Werte in dem S-Vektor für jedes aufeinanderfolgende Byte an Klartext wird der S-Vektor im Laufe der Zeit permutiert, sodass es weniger wahrscheinlich wird, dass sich der Verschlüsselungsstrom, der für lange Klartext-Nutzlasten generiert wird, in einem Paket wiederholt. Wenn alle Bytes an Klartext in dem Paket verschlüsselt worden sind, wird der ursprüngliche S-Vektor wieder hergestellt, und zwar zur Verwendung bei der Verschlüsselung oder Entschlüsselung des nächsten Paketes.
  • Sowohl der Sender als auch der Empfänger folgen den Schritten 1 bis 5, um den gleichen Verschlüsselungsstrom zu generieren. An dem Sender wird der Verschlüsselungsstrom genutzt, um einen Chiffretextstrom zu erzeugen. An dem Empfänger wird der Strom von Chiffretext empfangen und der Verschlüsselungsstrom wird genutzt, um den Chiffretext zu dechiffrieren, um den Klartext wiederzugewinnen.
    Schritt 6 Sender: Berechne nächstes Byte des Chiffretextstroms unter Verwendung von C[k] = E ⊕ P[k], wobei P[k] = k-tes Byte des Klartextes ist.
    Empfänger: Berechne nächstes Byte des Klartextstroms unter Verwendung von P[k] = E ⊕ C[k],wobei P[k] das nächste Byte des Klartextes in der Paket-Nutzlast ist. In Schritt 6 wird an dem Sender das nächste Byte in dem Verschlüsselungsstrom mit dem nächsten Klartext-Byte in der Paket-Nutzlast XOR-verknüpft, um ein nächstes Chiffretext-Byte zu erzeugen.
    Schritt 7 Inkrementiere Bytesequenz k = k + 1 Nachdem das nächste Byte an Klartext in Block 360 in Chiffretext umgesetzt worden ist, wird in Block 390 die Bytesequenz k um eins inkrementiert. Der nächste Schritt in dem vorliegenden effizienten Paketverschlüsselungsverfahren besteht darin, in Entscheidungsblock 370 festzustellen, ob das letzte Klartextbyte in der Nutzlast des ersten Pakets verschlüsselt worden ist. Wenn das nächste Byte des Klartextes in der Paket-Nutzlast noch nicht verschlüsselt ist, wiederholt das Verfahren die Schritte 3 bis 6 für jedes aufeinanderfolgende Byte der Nutzlast. Wenn alle Bytes in dem Nutzlast-Klartextstrom verschlüsselt/entschlüsselt sind, kehrt das Verfahren zu Schritt 2 zurück, für das nächste Paket.
  • Der in den Blöcken 230 und 240 erzeugte S-Vektor wird genutzt, um alle Variablen in den Blöcken 330 bis 350 für jede Klartext-Nutzlast, die gesendet werden soll, zu berechnen. Im Gegensatz zu WEP, bei dem der S-Vektor für jedes Paket neu berechnet wird, wird bei dem vorliegenden effizienten Paketverschlüsselungsverfahren der S-Vektor für den vorhandenen Strom an Nutzlast-Klartext nicht reinitialisiert, er kann wieder hergestellt werden, wenn das optionale Vertauschen von S-Vektor-Elementen realisiert wird. Der S-Vektor wird erst neu berechnet, wenn der Sender bereit ist, einen neuen Strom an Nutzlast-Klartext zu senden.
  • Die Verwendung des vorliegenden effizienten Paketverschlüsselungsverfahrens bietet einen erhöhten Grad an Sicherheit, während die Rechenzeit zum erfolgreichen Übertragen eines vollständigen Stromes an Nutzlast-Klartext reduziert wird. Durch Wegfall der Neuberechnung eines S-Vektors für jedes Paket fallen die Rechenschritte zum Generieren eines neuen S-Vektors für jedes Paket weg.
  • Bei Verwendung des vorliegenden effizienten Paketverschlüsselungsverfahrens wird keine Sicherheit geopfert, um Zeit zu sparen. Stattdessen wird durch Einführen einer zusätzlichen Variablen in die Berechnung der Variablen i die Sicherheit erhöht. Gleichfalls wird durch Integration des Zählers, der zur Berechnung der Variablen j verwendet wird, die Sicherheit des vorliegenden effizienten Paketverschlüsselungsverfahrens weiter erhöht, indem ein Verschlüsselungsstrom generiert wird, der sich weniger häufig wiederholt.
  • Was alternative Ausführungsformen betrifft, so werden Fachleute auf dem Gebiet erkennen, dass das vorliegende effiziente Paketverschlüsselungsverfahren unter Verwendung einer Reihe von Verfahren zum Generieren der anfänglichen Sequenznummer und des Anfangswertes für die Variable r ausgeführt werden kann. Obgleich das vorliegende effiziente Paketverschlüsselungsverfahren mit dem Generieren einer ersten zufälligen Sequenznummer und dem Setzten des Überlaufzählers r auf Null beschrieben und dargestellt worden ist, können alternative Verfahren genutzt werden. Ähnlich können, obgleich das vorliegende effiziente Paketverschlüsselungsverfahren mit einem 256-Elemente-Vektor dargestellt und beschrieben worden ist, Fachleute auf dem Gebiet erkennen, dass stattdessen ein Vektor mit einer anderen Anzahl an Elementen genutzt werden kann.
  • Es ist offensichtlich, dass vorliegend ein effizientes Paketverschlüsselungsverfahren beschrieben worden ist, welches vollständig den zuvor angegebenen Aufgaben, Zielen und Vorteilen gerecht wird. Obgleich das effiziente Paketverschlüsselungsverfahren in Verbindung mit spezifischen Ausführungsformen desselben beschrieben worden ist, ist es offensichtlich, dass von Fachleuten auf dem Gebiet anhand der vorstehenden Beschreibung viele Alternativen, Modifikationen und/oder Varianten ins Auge gefasst werden können. Dementsprechend ist mit der Beschreibung beabsichtigt, alle diese Alternativen, Modifikationen und Varianten, sofern sie in den Schutzumfang der anhängenden Ansprüche fallen, zu umschließen.

Claims (3)

  1. Verfahren zur Umwandlung eines oder mehrerer Pakete mit einer Mehrzahl von Bytes von Klartext P in eine oder mehrere Pakete mit einer Mehrzahl von verschlüsselten Bytes C, mit folgenden Schritten: Erhalten (210) eines geheimen Schlüssels; Berechnen (230) eines S-Vektors mit einer Mehrzahl von S-Vektorbytes unter Verwendung des geheimen Schlüssels; zufälliges Festsetzen einer Sequenzzahl mit einem ersten Teil und einem zweiten Teil; für jedes aufeinanderfolgende Paket oder für mehrere Pakete wird die Sequenzzahl vergrößert; Festsetzen (330) einer ersten Variablen j gemäß j = erster Teil der Sequenzzahl; Berechnen (330) einer zweiten Variablen i gemäß i = zweiter Teil der Sequenzzahl; für jedes aufeinanderfolgende Byte der Mehrzahl von Bytes des Klartextes P wird ein nächstfolgendes verschlüsseltes Byte C berechnet, wobei die Berechnung umfaßt: Festsetzen eines Zählers r, weiter Berechnen (340) der ersten Variablen j gemäß j = j + S[i] + S[r], für jedes aufeinanderfolgende Paket oder für mehrere Pakete wird der Wert des Zählers r erhöht, Festsetzen (340) einer dritten Variablen k, weiter Berechnen (340) der zweiten Variablen i gemäß i = i + k,Feststellen (350) des nächstfolgenden verschlüsselten Bytes E innerhalb des S-Vektors gemäß E = S[S[i] + S[j]]; und Umwandeln (360) des nächstfolgenden verschlüsselten Bytes E in einen nächstfolgenden verschlüsselten Byte C gemäß C = E ⊕ P; und wenn das letzte Byte der Mehrzahl von Bytes des Klartextes P in dem verschlüsselten Byte C hinsichtlich des nächsten Pakets des einen oder mehrere Pakete (370) umgewandelt worden ist, Senden über ein Kommunikationsnetzwerk des nächstfolgenden Pakets des einen oder mehrere Pakete an einen Empfänger.
  2. Verfahren nach Anspruch 1, worin der Schritt des Berechnens (330) einer zweiten Variablen i weiterhin umfaßt: die Sequenzzahl niedriger Ordnung und der Wert innerhalb des S-Vektors, der von der ersten Variablen gemäß i = (niedrigere Ordnung der Sequenzziffer) ⊕ S[j] wird einer Exklusiv-Oder-Operation unterworfen.
  3. Verfahren nach Anspruch 1, worin die Berechnung eines nächstfolgenden Verschlüsselten Bytes E weiterhin umfaßt: Permutieren des S-Vektors, wobei die Permutation umfaßt: Bewahren einer Kopie. des S-Vektors, das Byte der Mehrzahl der S-Vektor Bytes, auf das die erste Variable j zeigt, und das Byte der Mehrzahl von S-Vektor Bytes, auf das die zweite Variable i zeigt, wird einer Swapping-Routine unterworfen, und wenn das letzte Byte der Mehrzahl von Bytes des Klartextes P in die Mehrzahl der verschlüsselten Bytes C hinsichtlich des nächsten Paketes des einen oder mehreren Pakete umgewandelt worden ist, wird der bewahrte S-Vektor wieder hergestellt.
DE60301147T 2002-01-04 2003-01-03 RC4 Verfahren zur Verschlüsselung von Paketen Expired - Lifetime DE60301147T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38295 2002-01-04
US10/038,295 US7006628B2 (en) 2002-01-04 2002-01-04 Efficient packet encryption method

Publications (2)

Publication Number Publication Date
DE60301147D1 DE60301147D1 (de) 2005-09-08
DE60301147T2 true DE60301147T2 (de) 2006-06-08

Family

ID=21899121

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301147T Expired - Lifetime DE60301147T2 (de) 2002-01-04 2003-01-03 RC4 Verfahren zur Verschlüsselung von Paketen

Country Status (5)

Country Link
US (1) US7006628B2 (de)
EP (1) EP1326367B1 (de)
JP (2) JP4020197B2 (de)
CA (1) CA2415508A1 (de)
DE (1) DE60301147T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167476B1 (en) * 2002-04-12 2007-01-23 Juniper Networks, Inc. Systems and methods for routing data in a network device
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
JP3821086B2 (ja) * 2002-11-01 2006-09-13 ソニー株式会社 ストリーミングシステム及びストリーミング方法、クライアント端末及びデータ復号方法、並びにプログラム
US7457954B2 (en) * 2003-06-18 2008-11-25 Denso Corporation Communications system and packet structure
US7698549B2 (en) * 2003-08-15 2010-04-13 Venafi, Inc. Program product for unified certificate requests from certificate authorities
US7831825B2 (en) * 2004-03-19 2010-11-09 Verizon Corporate Services Group Inc. Packet-based and pseudo-packet based cryptographic communications systems and methods
US8437475B2 (en) * 2004-03-19 2013-05-07 Verizon Corporate Services Group Inc. Packet-based and pseudo-packet-based cryptographic synchronization systems and methods
US7406595B1 (en) 2004-05-05 2008-07-29 The United States Of America As Represented By The Director, National Security Agency Method of packet encryption that allows for pipelining
US20050273853A1 (en) * 2004-05-24 2005-12-08 Toshiba America Research, Inc. Quarantine networking
US7620181B2 (en) * 2005-04-20 2009-11-17 Harris Corporation Communications system with minimum error cryptographic resynchronization
US8228917B2 (en) * 2005-04-26 2012-07-24 Qualcomm Incorporated Method and apparatus for ciphering and re-ordering packets in a wireless communication system
US8447968B2 (en) 2005-10-28 2013-05-21 Alcatel Lucent Air-interface application layer security for wireless networks
US8842834B2 (en) * 2007-03-19 2014-09-23 Harris Corporation Robust delivery of packet based secure voice
US8848924B2 (en) * 2008-06-27 2014-09-30 University Of Washington Privacy-preserving location tracking for devices
US8724548B2 (en) * 2010-04-22 2014-05-13 Qualcomm Incorporated Counter check procedure for packet data transmission
US10708246B1 (en) * 2017-12-08 2020-07-07 Amazon Technologies, Inc. Extending cryptographic-key lifespan in network encryption protocols
CN108377182A (zh) * 2018-01-12 2018-08-07 电子科技大学 一种安全性强的rc4流密码生成装置及方法
US12132699B2 (en) * 2018-07-26 2024-10-29 Secturion Systems, Inc. In-line transmission control protocol processing engine using a systolic array
US12058241B2 (en) * 2021-06-07 2024-08-06 Microsoft Technology Licensing, Llc Securely and reliably transmitting messages between network devices
CN116455587A (zh) * 2022-01-05 2023-07-18 西安西电捷通无线网络通信股份有限公司 一种数据安全传输的方法和装置及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3384434B2 (ja) * 1995-12-08 2003-03-10 日本電信電話株式会社 スクランブル通信方法及びシステム
US6490354B2 (en) * 1998-06-23 2002-12-03 Microsoft Corporation Lightweight word-oriented technique for generating a pseudo-random sequence for use in a keystream of a stream cipher
US6549622B1 (en) * 1998-11-23 2003-04-15 Compaq Computer Corporation System and method for a fast hardware implementation of RC4
JP2000315997A (ja) * 1999-04-30 2000-11-14 Toshiba Corp 暗号通信方法及びノード装置
US20020044651A1 (en) * 2000-05-16 2002-04-18 Tuvell Walter E. Method and apparatus for improving the security of cryptographic ciphers
US7277542B2 (en) * 2000-09-25 2007-10-02 Broadcom Corporation Stream cipher encryption application accelerator and methods thereof
US6862354B1 (en) * 2000-09-29 2005-03-01 Cisco Technology, Inc. Stream cipher encryption method and apparatus that can efficiently seek to arbitrary locations in a key stream
US6990199B2 (en) * 2001-06-12 2006-01-24 Corrent Corporation Apparatus and method for cipher processing system using multiple port memory and parallel read/write operations

Also Published As

Publication number Publication date
DE60301147D1 (de) 2005-09-08
CA2415508A1 (en) 2003-07-04
JP2007140566A (ja) 2007-06-07
JP4020197B2 (ja) 2007-12-12
US7006628B2 (en) 2006-02-28
EP1326367A1 (de) 2003-07-09
JP2003234732A (ja) 2003-08-22
US20030131233A1 (en) 2003-07-10
EP1326367B1 (de) 2005-08-03

Similar Documents

Publication Publication Date Title
DE60301147T2 (de) RC4 Verfahren zur Verschlüsselung von Paketen
DE69330070T2 (de) Verfahren und einrichtung zur erzeugung einer chiffriersequenz
DE69823834T2 (de) Sicherheitsverfahren und -system für übertragungen in fernmeldenetzen
US8867745B2 (en) Efficient transmission of cryptographic information in secure real time protocol
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE69937007T2 (de) Verfahren und vorrichtung zur verschlüsselung und entschlüsselung von daten
DE10129285C2 (de) Verschlüsselungsverfahren mit beliebig wählbaren Einmalschlüsseln
DE102008013785A1 (de) Vorberechneter Verschlüsselungsschlüssel
DE3237489A1 (de) Stromchiffrierung unter verwendung einer chiffrieranlage mit oeffentlichem schluessel
US7236592B2 (en) Efficient stream cipher system and method
JPH06266284A (ja) 暗号化装置
EP3607694A1 (de) Verfahren und systeme zur verbesserten authentifizierten verschlüsselung in zählergestützten verschlüsselungssystemen
DE102022203725A1 (de) Verfahren zum Austausch kryptographischer Schlüssel zwischen Kommunikationsteilnehmern
KR102172181B1 (ko) 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
EP3304802B1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
DE102011009008A1 (de) Authentifizierung von verschlüsselten Datenblöcken
DE69724907T2 (de) Entschlusselung von wiederholten daten in einem verschlusselten kommunikationssystem
CN110071943A (zh) 密钥真随机变化的复合型高安全ip保密通信方法
DE60027006T2 (de) Verfahren und vorrichtung zur sicheren übertragung verteilter authentisierungsabfragewerte (rand) zur anwendung bei der authentifizierung einer mobilstation
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
DE60133140T2 (de) System und verfahren für symmetrische kryptographie
DE69836185T2 (de) Vorrichtung und verfahren für dazu passender multi-iteration cmea entschlüsselung und verschlüsselung um die sicherheit von drahtlosen fernsprechnachrichten zu verbessern
Nakahara Jr et al. Linear cryptanalysis of reduced-round versions of the SAFER block cipher family
DE69329932T2 (de) Verfahren zur blockweisen Verschlüsselung/Entschlüsselung unter Verwendung von algebraischen linearen Codes
US7688977B2 (en) Method for encrypting video data

Legal Events

Date Code Title Description
8364 No opposition during term of opposition