[go: up one dir, main page]

DE69125756T2 - Method and device for decrypting an information package with a modifiable format - Google Patents

Method and device for decrypting an information package with a modifiable format

Info

Publication number
DE69125756T2
DE69125756T2 DE69125756T DE69125756T DE69125756T2 DE 69125756 T2 DE69125756 T2 DE 69125756T2 DE 69125756 T DE69125756 T DE 69125756T DE 69125756 T DE69125756 T DE 69125756T DE 69125756 T2 DE69125756 T2 DE 69125756T2
Authority
DE
Germany
Prior art keywords
packet
decryption
data
encryption
information
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
DE69125756T
Other languages
German (de)
Other versions
DE69125756D1 (en
Inventor
Amar Gupta
William R Hawe
Butler W Lampson
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69125756D1 publication Critical patent/DE69125756D1/en
Application granted granted Critical
Publication of DE69125756T2 publication Critical patent/DE69125756T2/en
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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/162Implementing security features at a particular protocol layer at the data link layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Diese Erfindung bezieht sich allgemein auf Computernetze und genauer auf Techniken zum Verschlüsseln und Entschlüsseln von Nachrichten, die über Netze übertragen werden. Das folgende Hintergrundmaterial unter den Unterüberschriften "Computernetz-Hintergrund" und "Kryptographie-Hintergrund" führt verschiedene Computernetze und Kryptographiekonzepte und Definitionen ein. Die mit Computernetzen und der Kryptographie vertrauten Personen könnten diese beiden Abschnitte überspringen wollen.This invention relates generally to computer networks, and more specifically to techniques for encrypting and decrypting messages transmitted over networks. The following background material under the subheadings "Computer Network Background" and "Cryptography Background" introduces various computer network and cryptography concepts and definitions. Those familiar with computer networking and cryptography may wish to skip these two sections.

Computernetz-Hintergrund:Computer Network Background:

Ein Computernetz ist einfach eine Ansammlung von selbständigen Computern, die miteinander verbunden sind, um Hardware- und Software-Betriebsmittel gemeinsam zu nutzen und um die Gesamtzuverlässigkeit zu erhöhen. Der Ausdruck "lokales Netz" ("Local Area Network", LAN) wird gewöhnlich auf Computernetze angewendet, in denen sich die Computer in einem einzigen Gebäude oder in benachbarten Gebäuden befinden, etwa ein Universitäts-Campus oder ein einzelner Firmensitz. Wenn die Computer weiter voneinander entfernt sind, werden die Ausdrücke "Weitverkehrsnetz" ("wide Area Network") oder "Fernnetz" ("Long Haul Network") verwendet, die Unterscheidung ist jedoch gradueh und die Definitionen überlappen gelegentlich.A computer network is simply a collection of self-contained computers connected together to share hardware and software resources and to increase overall reliability. The term "local area network" (LAN) is usually applied to computer networks in which the computers are located in a single building or in adjacent buildings, such as a university campus or a single corporate office. When the computers are farther apart, the terms "wide area network" or "long haul network" are used, but the distinction is gradual and the definitions occasionally overlap.

Eine Brücke ist eine Vorrichtung, die mit wenigstens zwei LANs verbunden ist und dazu dient, Nachrichtenrahmen zwischen LANs zu leiten, so daß eine Quellstation eines LAN Daten an eine Zielstation eines weiteren LAN unabhängig vom Zielort übertragen kann. Brücken sind nützliche und notwendige Netzkomponenten, hauptsächlich deswegen, weil die Gesamtzahl der Stationen in einem einzelnen LAN begrenzt ist. Brücken können in der Weise implementiert sein, daß sie in einer ausgewählten Protokollschicht des Netzes arbeiten. Für das Verständnis dieser Erfindung ist eine genaue Kenntnis der Netzarchitektur nicht erforderlich, für einen weiteren Hintergrund wird jedoch im folgenden eine Kurzbeschreibung gegeben.A bridge is a device connected to at least two LANs and used to route message frames between LANs so that a source station of one LAN can send data to a destination station of another LAN independently from the destination. Bridges are useful and necessary network components, primarily because the total number of stations in a single LAN is limited. Bridges can be implemented to operate at a selected protocol layer of the network. A detailed knowledge of network architecture is not required to understand this invention, but a brief description is given below for further background.

Bei der Entwicklung von Computernetzen sind hinsichtlich der Wahl des Kommunikationsmediums, der Netztopologie, des Nachrichtenformats, der Protokolle für Kanalzugriffe usw. verschiedene Annäherungsversuche unternommen worden. Einige dieser Annäherungsversuche sind zu de-facto-Standards geworden. Es sind mehrere verschiedene Modelle für Netzarchitekturen vorgeschlagen und in großem Umfang übernommen worden. Das im größten Umfang übernommene Modell ist das Referenzmodell der Kommunikation offener Systeme (OSI) der International Standard Organisation (ISO). Das OSI-Referenzmodell ist nicht selbst eine Netzarchitektur. Statt dessen spezifiziert es eine Hierarchie der Protokollschichten und definiert die Funktion jeder Schicht im Netz. Jede Schicht in einem Computer des Netzes führt eine Unterhaltung mit der entsprechenden Schicht in einem weiteren Computer, mit dem der Nachrichtenaustausch erfolgt, in Übereinstimmung mit einem die Regeln dieses Nachrichtenaustausches definierenden Protokoll. In Wirklichkeit werden die Informationen in einem Computer von Schicht zu Schicht nach unten und dann durch das Kanalmedium und im anderen Computer über die aufeinanderfolgenden Schichten nach oben übertragen. Für den Entwurf der verschiedenen Schichten und für das Verständnis ihrer Funktionen ist es jedoch einfacher, jede der Schichten als mit ihrem Gegenstück auf der gleichen Ebene in einer "horizontalen" Richtung kommunizierend anzuse hen.In the development of computer networks, various approaches have been made to the choice of communication medium, network topology, message format, channel access protocols, and so on. Some of these approaches have become de facto standards. Several different models of network architecture have been proposed and widely adopted. The model most widely adopted is the International Standards Organization (ISO) Open Systems Intercommunications Reference Model (OSI). The OSI Reference Model is not itself a network architecture. Instead, it specifies a hierarchy of protocol layers and defines the function of each layer in the network. Each layer in one computer in the network carries on a conversation with the corresponding layer in another computer with which the message exchange takes place, in accordance with a protocol defining the rules of that message exchange. In reality, information is passed down from layer to layer in one computer and then through the channel medium, and up through successive layers in the other computer. However, for the design of the different layers and for understanding their functions, it is easier to compare each of the layers as its counterpart on the same level to be viewed as communicating in a "horizontal" direction.

Die von dem OSI-Modell definierte unterste Schicht wird physische Schicht genannt und betrifft die Übertragung von Rohdatenbits über den Kommunikationskanal, sowie die Sicherstellung, daß die Datenbits ohne Fehler empfangen werden. Der Entwurf der physischen Schicht betrifft in Abhängigkeit von dem für den Kommunikationskanal verwendeten Medium Bereiche der elektrischen, der mechanischen oder der optischen Technik. Die Schicht nach der physischen Schicht wird Sicherungsschicht genannt. Die Hauptaufgabe der Sicherungsschicht ist die Transformation der physischen Schicht, die direkt mit dem Kanalmedium eine Schnittstelle bildet, in eine Kommunikationsverbindung mit der nächsten Schicht darüber, die als Vermittlungsschicht bekannt ist. Dieser Kanal kann ganze Pakete verlieren, er verfälscht jedoch Daten in keiner anderen Weise. Die Sicherungsschicht führt Funktionen wie etwa die Strukturierung der Daten in Pakete oder Rahmen und die Hinzufügung von Steuerinformationen zu den Paketen oder Rahmen wie etwa Prüfsummen für die Fehlererfassung und die Paketanzahl aus.The lowest layer defined by the OSI model is called the physical layer and is concerned with the transmission of raw data bits over the communication channel and ensuring that the data bits are received without errors. The design of the physical layer involves areas of electrical, mechanical or optical engineering, depending on the medium used for the communication channel. The layer after the physical layer is called the data link layer. The main task of the data link layer is to transform the physical layer, which interfaces directly with the channel medium, into a communication link with the next layer above, known as the network layer. This channel can lose entire packets, but it does not corrupt data in any other way. The data link layer performs functions such as structuring the data into packets or frames and adding control information to the packets or frames, such as checksums for error detection and packet count.

Obwohl die Sicherungsschicht im wesentlichen von der Art des physischen Übertragungsmediums unabhängig ist, hängen bestimmte Aspekte der Sicherungsschichtfunktion stärker vom Übertragungsmedium ab. Deswegen wird die Sicherungsschicht in einigen Netzarchitekturen in zwei Unterschichten unterteilt: eine Unterschicht für die Logiksteuerung (LLC-Schicht), die sämtliche mediumunabhängigen Funktionen der Sicherungsschicht ausführt, und eine Unterschicht für die Medienzugriffssteuerung (MAC-Unterschicht). Die MAC-Unterschicht bestimmt, welche Station Zugriff auf den Kommunikationskanal erhalten sollte, wenn konfligierende Zugriffsanforderungen vorliegen. Die Funktionen der MAC- Unterschicht hängen mit größerer Wahrscheinlichkeit von der Art des Übertragungsmediums ab.Although the data link layer is essentially independent of the type of physical transmission medium, certain aspects of the data link layer function are more dependent on the transmission medium. Therefore, in some network architectures, the data link layer is divided into two sublayers: a logic control sublayer (LLC layer), which performs all medium-independent functions of the data link layer, and a media access control sublayer (MAC sublayer). The MAC sublayer determines which station should be granted access to the communication channel when there are conflicting access requests. The functions of the MAC Lower layers are more likely to depend on the type of transmission medium.

Brücken können so entworfen sein, daß sie in der MAC- Unterschicht arbeiten. Weitere Einzelheiten finden sich in "MAC Bridges", P802.1D/D6, September 1988 (und spätere Versionen), eine Vorabveröffentlichung des IEEE Project 802 über Normen bezüglich lokaler und großstädtischer Netze.Bridges can be designed to operate in the MAC sublayer. For more details, see "MAC Bridges," P802.1D/D6, September 1988 (and later versions), a pre-publication of IEEE Project 802 on standards related to local and metropolitan area networks.

Die Grundfunktion einer Brücke besteht darin, den Nachrichtenverkehr "unterschiedslos", d. h. komplett in sämtlichen LANS, an die sie angeschlossen ist, abzuhören und einige der Nachrichten, die sie hört, auf LANs zu schicken, die von dem einen verschieden sind, von dem sie die Nachricht gehört hat. Brücken halten außerdem eine Datenbank von Stationsorten, die aus dem Inhalt der weitergeleiteten Nachrichten abgeleitet werden. Brücken sind an LANS über als "Verbindungen" bekannte Wege angeschlossen. Nachdem eine Brücke für einige Zeit in Betrieb gewesen ist, kann sie praktisch jeder Station eine besondere Verbindung zuordnen, die die Brücke mit dem LAN verbindet, und kann dann Nachrichten effizienter weiterleiten, wobei die Übertragung nur über die geeignete Verbindung erfolgt. Die Brücke kann außerdem eine Nachricht erkennen, die nicht weitergeleitet werden soll, weil die Quell- und die Zielstationen über die gleiche Verbindung erreicht werden. Mit Ausnahme ihrer Funktion des "Lernens" von Stationsorten oder wenigstens der Stationsrichtungen arbeitet die Brücke grundsätzlich als Nachrichtenverstärker und leitet Nachrichten von einem LAN zu einem anderen weiter, bis sie ihre Ziele erreicht haben. Für die Verbindung der LANs untereinander werden auch andere Vorrichtungen, die als Router bekannt sind, verwendet.The basic function of a bridge is to listen to message traffic "indiscriminately," that is, completely on all LANS to which it is connected, and to send some of the messages it hears to LANs other than the one from which it heard the message. Bridges also maintain a database of station locations derived from the content of the messages it forwards. Bridges are connected to LANS by paths known as "links." After a bridge has been in operation for some time, it can assign virtually every station a special link connecting the bridge to the LAN, and can then forward messages more efficiently, transmitting only over the appropriate link. The bridge can also recognize a message that should not be forwarded because the source and destination stations are reached over the same link. Except for its function of "learning" station locations or at least station directions, the bridge basically works as a message repeater, passing messages from one LAN to another until they reach their destinations. Other devices known as routers are also used to connect the LANs to each other.

Ein Router ist wie eine Brücke eine Vorrichtung, die an zwei oder mehr LANs angeschlossen ist. Im Gegensatz zu einer Brücke arbeitet ein Router jedoch auf der Ebene der Vermittlungsschicht und nicht auf Höhe der sicherungsschicht. Die Adressierung der Vermittlungsschichtebene macht Gebrauch von einem großen Adressenfeld (z. B. 20 Bytes) für jeden Host-Computer, das einen eindeutigen Netzidentifizierer und einen Host-Identifizierer innerhalb des Netzes enthält. Router machen vom Zielnetzidentifizierer in einer Nachricht Gebrauch, um einen optimalen Weg vom Quellnetz zum Zielnetz zu bestimmen. Von den Routern können verschiedene Leitweg-Algorithmen verwendet werden, um die optimalen Wege zu bestimmen. Typischerweise tauschen Router Informationen bezüglich der Identitäten der Netze aus, an die sie angeschlossen sind.A router, like a bridge, is a device that is connected to two or more LANs. Unlike a bridge, however, a router operates at the network layer level rather than the data link layer level. Network layer addressing makes use of a large address field (e.g., 20 bytes) for each host computer that contains a unique network identifier and a host identifier within the network. Routers use the destination network identifier in a message to determine an optimal path from the source network to the destination network. Routers can use various routing algorithms to determine the optimal paths. Typically, routers exchange information regarding the identities of the networks to which they are connected.

Das Dokument EP-A-0 289 248 offenbart eine programmierbare Protokollmaschine, um zwischen Netzen, die unterschiedliche Protokolle verwenden, eine effektivere Kommunikation zu schaffen. Sie enthält einen Kern-Zentralprozessor, der mehrere programmierbare Finite-State-Maschinen besitzt, die konkurrent arbeiten und miteinander in Wechselwirkung sind. Satellitenverarbeitungseinheiten, die über Schnittstellen mit dem Kern-Zentralprozessor verbunden sind, führen Operationen aus, die das Format der ankommenden und abgehenden Nachrichten betreffen. Die Programmierbarkeit wird durch Verwirklichen der Satelliteneinheiten durch Kombinationen aus einer Verarbeitungseinheit und einer Befehle speichernden Speichereinheit erzielt. Die auszuführende Befehlssequenz ist an Tasks angepaßt, die mit Protokollimplementierungen in Beziehung stehen. Notwendige Befehle werden über Ports geladen, wodurch ein gewähltes Protokoll implementiert wird.Document EP-A-0 289 248 discloses a programmable protocol engine to provide more effective communication between networks using different protocols. It includes a core central processor having several programmable finite state machines that operate concurrently and interact with each other. Satellite processing units, connected via interfaces to the core central processor, perform operations concerning the format of incoming and outgoing messages. Programmability is achieved by realizing the satellite units by combinations of a processing unit and a memory unit storing instructions. The sequence of instructions to be executed is adapted to tasks related to protocol implementations. Necessary instructions are loaded via ports, thereby implementing a chosen protocol.

Wenn die Kryptographie verwendet wird, um über ein Computernetz übertragene Daten zu schützen, können einige Netzvorrichtungen wie etwa Brücken und Router eine spezielle Verarbeitung erfordern. Beispielsweise sollte eine verschlüsselte Nachricht im allgemeinen nicht von einem Router entschlüsselt werden, der lediglich die Nachricht an ein angrenzendes LAN weiterleitet Wie in dieser Beschreibung später ebenfalls deutlich wird, stellt die Kryptographie bei ihrer Anwendung auf Netze einige Probleme, die in einer eher herkömmlichen Anwendung der Kryptographie in einer Punkt-zu-Punkt-Kommunikation nicht auftreten. Wenn sich eine Nachricht durch die verschiedenen Protokollschichten der Sendestation nach unten bewegt, addiert jede Schicht ihren eigenen Kopfsatz pro Nachricht, die in Datenrahmen mit Standardgröße segmentiert werden kann. Die Kopfsätze, die auf den verschiedenen Protokollebenen addiert werden, enthalten Adressierungsinformationen und andere Informationen, die für die Lenkung eines Nachrichtenrahmens an sein beabsichtigtes Ziel und für die Wiederherstellung der Nachricht am Ziel verwendet werden. Die Verschlüsselung wird gewöhnlich nur auf den Nachrichteninhalt und nicht auf die verschiedenen Nachrichtenkopfsätze angewendet. Obwohl dies kein schwieriges Konzept ist, entstehen in der Praxis Komplexitäten, weil auf jeder beliebigen Protokollebene unterschiedliche Netzprotokolle verwendet werden können. Daher muß ein hardwaremäßig implementiertes Kryptographiesystem für Netze Nachrichtenrahmen handhaben können, die von diesen verschiedenen Protokollen stammen und notwendigerweise unterschiedliche Rahmenformate besitzen. Weiterhin kann jeder dieser Rahmen in kleinere Rahmen segmentiert werden, wenn er sich durch die verschiedenen Zwischennetzverbindungen bewegt.When cryptography is used to protect data transmitted over a computer network, some Network devices such as bridges and routers require special processing. For example, an encrypted message should not generally be decrypted by a router that simply forwards the message to an adjacent LAN. As will also become clear later in this description, cryptography as applied to networks presents some problems that are not encountered in a more conventional application of cryptography in point-to-point communication. As a message moves down through the various protocol layers of the sending station, each layer adds its own header per message, which can be segmented into standard-sized data frames. The headers added at the various protocol layers contain addressing information and other information used for directing a message frame to its intended destination and for reconstructing the message at the destination. Encryption is usually applied only to the message content, not to the various message headers. Although this is not a difficult concept, in practice complexities arise because different network protocols may be used at any given protocol layer. Therefore, a hardware-implemented network cryptography system must be able to handle message frames originating from these different protocols, which necessarily have different frame formats. Furthermore, each of these frames can be segmented into smaller frames as it moves through the various inter-network links.

Kryptographie-Hintergrund:Cryptography background:

Das Hauptziel der Verschlüsselung besteht darin, die ausgetauschten Daten vor einem unbefugten Abhören zu schützen. Dies wird im allgemeinen als "Geheimhaltungs"- oder "Vertraulichkeits"-Forderung der Kryptographiesysterne bezeichnet. Eine verwandte Forderung ist die "Echtheits"- oder "Integritäts"-Forderung, die sicherstellt, daß die ausgetauschten Informationeh echt sind, d. h. nicht absichtlich oder unabsichtlich verfälscht wurden. Für eine weitere Diskussion sind einige Definitionen erforderlich.The main purpose of encryption is to protect the exchanged data from unauthorized interception. This is generally referred to as the "secrecy" or "confidentiality" requirement of cryptographic systems. A related requirement is the "authenticity" or "integrity" requirement, which ensures that the information exchanged is genuine, ie has not been falsified intentionally or inadvertently. For further discussion, some definitions are necessary.

"Klartext" wird dazu verwendet, eine Nachricht vor der Verschlüsselung und nach der Entschlüsselung durch ein Kryptographiesystem zu bezeichnen. "Schlüsseltext" ist die Form, die der verschlüsselte Teil der Nachricht während der Übertragung über einen Kommunikationskanal annimmt. "Verschlüsselung" ist der Prozeß der Umwandlung vom Klartext in den Schlüsseltext. "Entschlüsselung" ist der Prozeß der Umwandlung vom Schlüsseltext in den Klartext. Sowohl die Verschlüsselung als auch die Entschlüsselung werden durch einen oder mehrere "Verschlüsselungscodes" gesteuert. Ohne Kenntnis des Verschlüsselungscodes kann eine Nachricht nicht verschlüsselt werden, selbst wenn der Verschlüsselungsprozeß bekannt ist. Ebenso kann die Nachricht ohne Kenntnis des Entschlüsselungscodes nicht entschlüsselt werden, selbst wenn der Entschlüsselungsprozeß bekannt ist."Plaintext" is used to refer to a message before encryption and after decryption by a cryptographic system. "Ciphertext" is the form that the encrypted part of the message takes during transmission over a communication channel. "Encryption" is the process of converting plaintext into ciphertext. "Decryption" is the process of converting ciphertext into plaintext. Both encryption and decryption are controlled by one or more "encryption codes". Without knowledge of the encryption code, a message cannot be encrypted, even if the encryption process is known. Likewise, without knowledge of the decryption code, the message cannot be decrypted, even if the decryption process is known.

Genauer kann ein Kryptographiesystem so vorgestellt werden, daß es eine Verschlüsselungstransformation Ek, die durch einen Verschlüsselungsalgorithmus E definiert ist, der in sämtlichen Verschlüsselungsoperationen verwendet wird, und einen Schlüssel K, der Ek von anderen den Algorithmus E verwendenden Operationen unterscheidet, besitzt. Die Transformation Ek verschlüsselt eine Klartextnachricht M in eine verschlüsselte Nachricht oder in einen Schlüsseltext C. Ebenso wird die Entschlüsselung durch eine Transformation Dk ausgeführt, die durch einen Entschlüsselungsalgorithmus D und durch einen Schlüssel K definiert ist.More precisely, a cryptographic system can be imagined as having an encryption transformation Ek defined by an encryption algorithm E used in all encryption operations and a key K that distinguishes Ek from other operations using the algorithm E. The transformation Ek encrypts a plaintext message M into an encrypted message or ciphertext C. Similarly, decryption is performed by a transformation Dk defined by a Decryption algorithm D and defined by a key K.

Dorothy E. R. Denning schlägt in "Cryptography and Data Security", Addison-Wesley Publishing Co. 1983, vor, daß für eine vollkommene Geheimhaltung der übertragenen Nachricht zwei Forderungen erfüllt werden müssen. Die erste besteht darin, daß es für niemanden möglich sein sollte, die Entschlüsselungstransformation Dk aus dem aufgefangenen Schlüsseltext C rechnerisch systematisch zu bestimmen, selbst wenn der entsprechende Klartext M bekannt ist. Die zweite besteht darin, daß es rechnerisch unmöglich sein sollte, den Klartext M aus dem aufgefangenen Schlüsseltext C systematisch zu bestimmen. Die Echtheitsforderung ist erfüllt, wenn niemand ohne Erfassung den Schlüsseltext C durch einen falschen Schlüsseltext C' ersetzen kann.Dorothy E. R. Denning suggests in "Cryptography and Data Security", Addison-Wesley Publishing Co. 1983, that for complete secrecy of the transmitted message, two requirements must be met. The first is that it should not be possible for anyone to systematically determine the decryption transformation Dk from the intercepted ciphertext C, even if the corresponding plaintext M is known. The second is that it should be systematically impossible to systematically determine the plaintext M from the intercepted ciphertext C. The authenticity requirement is met if no one can replace the ciphertext C with a false ciphertext C' without detection.

In Erweiterung des Hintergrundes können Kryptographiesysteme entweder als "symmetrisch" oder als "asymmetrisch" klassifiziert werden. In symmetrischen Systemen sind die Verschlüsselungs- und Entschlüsselungscodes entweder gleich oder können leicht auseinander bestimmt werden. Wenn zwei Parteien über ein symmetrisches Kryptographiesystem kommunizieren möchten, müssen sie sich zunächst auf einen Schlüssel einigen, dann muß der Schlüssel von einer Partei durch irgendeine sichere Einrichtung an die andere übertragen werden. Hierzu ist es gewöhnlich notwendig, daß im voraus über die Schlüssel eine Übereinstimmung erzielt wird, wobei die Schlüssel in einer abgestimmten Zeittabelle geändert werden, und daß sie per Post oder durch irgendein anderes sicheres Verfahren gesendet werden. Sobald die Schlüssel den beiden Parteien bekannt sind, kann der Austausch der Nachrichten über das Kryptographiesystem beginnen.To expand on the background, cryptography systems can be classified as either "symmetric" or "asymmetric". In symmetric systems, the encryption and decryption keys are either the same or can be easily determined from one another. If two parties wish to communicate using a symmetric cryptography system, they must first agree on a key, then the key must be transmitted from one party to the other by some secure means. This usually requires that the keys be agreed upon in advance, the keys be changed in an agreed time table, and that they be sent by mail or some other secure method. Once the keys are known to both parties, the exchange of messages using the cryptographic system can begin.

Ein asymmetrisches Kryptographiesystem ist ein System, in dem sich die Verschlüsselungs- und die Entschlüsselungscodes in der Weise unterscheiden, daß wenigstens ein Schlüssel rechnerisch nicht aus dem anderen bestimmt werden kann. Somit kann eine der Transformationen Ek oder Dk offengelegt werden, ohne die anderen zu gefährden.An asymmetric cryptography system is a system in which the encryption and decryption keys differ in such a way that at least one key cannot be computationally determined from the other. Thus, one of the transformations Ek or Dk can be revealed without compromising the others.

Mitte der siebziger Jahre ist das Konzept eines Kryptographiesystems mit "öffentlichem Schlüssel" eingeführt worden. In einem System mit öffentlichem Schlüssel besitzt jeder Benutzer einen öffentlichen Schlüssel und einen privaten Schlüssel, wobei zwei Benutzer miteinander kommunizieren können, wenn sie lediglich die öffentlichen Schlüssel des anderen kennen. Dadurch kann zwischen den beiden Benutzern ein gesicherter Kommunikationskanal geschaffen werden, ohne daß die beiden Benutzer "geheime" Schlüssel austauschen müssen, bevor die Kommunikation beginnen kann.In the mid-1970s, the concept of a "public key" cryptographic system was introduced. In a public key system, each user has a public key and a private key, and two users can communicate with each other if they only know each other's public keys. This allows a secure communication channel to be created between the two users without the two users having to exchange "secret" keys before communication can begin.

Im allgemeinen erfordern asymmetrische Kryptographiesysterne für die Verschlüsselung und für die Entschlüsselung mehr "Rechenaufwand" als symmetrische Systeme. Daher ist eine geläufige Entwicklung ein Hybridsystem gewesen, in dem ein asymmetrisches System wie etwa ein System mit öffentlichem Schlüssel zunächst verwendet wird, um einen "Sitzungsschlüssel" zu schaffen, der zwischen den beiden Parteien, die kommunizieren möchten, verwendet wird. Dann wird dieser gemeinsame Sitzungsschlüssel in einem herkömmlichen symmetrischen Kryptographiesystem für die Übertragung von Nachrichten von einem Benutzer zum anderen verwendet.In general, asymmetric cryptographic systems require more "computational effort" for both encryption and decryption than symmetric systems. Therefore, a common development has been a hybrid system in which an asymmetric system such as a public key system is first used to create a "session key" to be used between the two parties wishing to communicate. Then, this shared session key is used in a conventional symmetric cryptographic system to transmit messages from one user to the other.

Kryptographie in Netzen:Cryptography in networks:

Obwohl die kryptographischen Prinzipien einfach konzipiert sein können, wenn Punkt-zu-Punkt-Kommunikationen betroffen sind, entstehen zusätzliche Probleme, wenn die Kommunikation über ein komplexes Computernetz erfolgt. Eine einzelne Nachricht, die zwischen einer Station und einer weiteren ausgetauscht wird, kann durch viele Stationen und durch viele LANs laufen, bevor sie ihr Endziel erreicht. Eine grundlegende Entwurfsfrage ist, ob die Verschlüsselung eine "Ende-zu-Ende"-Verschlüsselung, d. h. mit einem Verschlüsselungsprozeß bei der Quellstation und einem Entschlüsselungsprozeß bei der endgültigen Zielstation, oder eine "Verbindungs"-Verschlüsselung, d. h. mit Verschlüsselung und Entschlüsselung, die vor und nach dem Übertragungs-"Sprung" über jede Zwischenkommunikationsverbindung, durch die die Nachricht läuft, stattfindet, sein sollte. Es sind verschiedene Kombinationen aus einer Ende-zu-Ende-Verschlüsselung und einer Verbindungs-Verschlüsselung möglich. Die Standardisierung im Gebiet der Kryptographieverarbeitung für Netze ist noch immer in Entwicklung. Ein auf die Standardisierung gerichtetes Unterfangen ist der Standard für Interoperable LAN Security (SILS), ein fortdauerndes Unterfangen eines IEEE 802.10-Unterkomitees, das auf die Standardisierung der "Sicherungsschicht"-Verschlüsselung für ein LAN zielt.Although cryptographic principles may be designed simply when point-to-point communications are concerned, additional problems arise when the communication takes place over a complex computer network. A single message exchanged between one station and another may pass through many stations and through many LANs before reaching its final destination. A fundamental design question is whether the encryption should be "end-to-end" encryption, that is, with an encryption process at the source station and a decryption process at the final destination station, or "link" encryption, that is, with encryption and decryption taking place before and after the transmission "hop" over each intermediate communication link over which the message passes. Various combinations of end-to-end encryption and link encryption are possible. Standardization in the area of network cryptography is still under development. One effort aimed at standardization is the Standard for Interoperable LAN Security (SILS), an ongoing effort of an IEEE 802.10 subcommittee aimed at standardizing "data link layer" encryption for a LAN.

Im allgemeinen wird die Ende-zu-Ende-Verschlüsselung bevorzugt, weil sie einen höheren Grad an Datensicherheit und -echtheit schafft, da Nachrichten so lange nicht entschlüsselt werden, bis sie ihre Endziele erreichen. Jegliche Adressierungsinformationen oder die frühen Teile des Rahmens, die die Netzadressen enthalten, dürfen jedoch in einer Ende-zu-Ende-Verschlüsselung nicht verschlüsselt werden, weil Zwischenstationen oder Knoten diese für die Nachrichtenweiterleitung benötigen. Eine der praktischen Schwierigkeiten bei der Verwendung der Kryptographie in Computernetzen besteht darin, daß ein empfangenes Nachrichtenpaket sowohl Klarschriftdaten wie etwa Rahmenkopfsätze, die von den verschiedenen Schichten des Netzprotokolls hinzugefügt werden, und verschlüsselte Daten, die gewöhnlich den größten Teil des Pakets ausmachen, enthält. Eine weitere Komplikation ist das mögliche Vorhandensein mehrerer Protokolle auf der gleichen Ebene. Im Idealfall muß ein Netzkryptographiesystem diese verschiedenen Protokolle ohne Modifikation der Hardware oder der Software, die die Verschlüsselungs- oder Entschlüsselungsoperationen ausführt, handhaben können.In general, end-to-end encryption is preferred because it provides a higher level of data security and authenticity, since messages are not decrypted until they reach their final destinations. However, any addressing information or the early parts of the frame containing the network addresses must not be encrypted in end-to-end encryption, because intermediate stations or nodes need them for message forwarding. One of the practical difficulties in using cryptography in computer networks is that a received message packet may contain both plaintext data and such as frame headers added by the various layers of the network protocol, and encrypted data, which usually makes up the bulk of the packet. A further complication is the possible presence of multiple protocols at the same level. Ideally, a network cryptography system must be able to handle these different protocols without modifying the hardware or the software that performs the encryption or decryption operations.

Ein verwandtes Problem besteht darin, daß die Netzprotokolle der oberen Schichten einer gelegentlichen Revision durch die Hersteller oder durch Industrienormungskomitees unterworfen werden. Daher ist ein ideales Netzkryptographiesystem ein System, das gegenüber Veränderungen in den oberen Schichtprotokollen, genauer in der Vermittlungsschicht oder darüber, immun ist.A related problem is that the upper layer network protocols are subject to occasional revision by manufacturers or by industry standards committees. Therefore, an ideal network cryptography system is one that is immune to changes in the upper layer protocols, specifically in the network layer or above.

Eine weitere Schwierigkeit besteht darin, daß Netzarchitekturen ohne Kryptographie bereits gut eingeführt sind. Die Hinzufügung der Kryptographiefunktionen muß im Idealfall ohne Beeinträchtigung der fortgesetzten Operation dieser vorhandenen Architekturen erfolgen. Mit anderen Worten, die Kryptographie sollte als einfache Hardwarelösung implementiert werden, die zu momentanen Architekturen bei geringstmöglichen Änderungen paßt.Another difficulty is that network architectures without cryptography are already well established. The addition of cryptographic functions must ideally be done without affecting the continued operation of these existing architectures. In other words, cryptography should be implemented as a simple hardware solution that fits current architectures with the least possible changes.

In der Vergangenheit ist die Kryptographieverarbeitung in der Netzumgebung in einer Weise ausgeführt worden, die am besten als "Speichern-Verarbeiten-Weiterleiten" gekennzeichnet werden kann. Ein zu verschlüsselndes oder zu entschlüsselndes Datenpaket wird in einem Paketpuffer gespeichert, anschließend für die Kryptographieverarbeitung ausgelesen und schließlich nach der Verarbeitung weitergeleitet. In einigen Entwürfen besitzt der Paketpuffer viele Anschlüsse, damit viele ankommende Daten gespeichert werden können, während andere Daten im Puffer durch die Verschlüsselungs-/Entschlüsselungssoftware in einem Host-Computersystem verarbeitet werden. In anderen Entwürfen sind zwei Paketpuffer vorhanden, wovon einer mit ankommenden Daten gefüllt wird, während der andere geleert wird und kryptographisch verarbeitet wird. Diese Forderungen nach mehreren Puffern oder vergrößerten Paketpuffern führen notwendig Kosten- und Leistungsbeschränkungen für den Host-Prozessor ein. Weiterhin tritt in der Verarbeitung jedes Pakets sowohl am sendenden als auch am empfangenden Ende eine notwendige Verzögerung auf.In the past, cryptographic processing in the network environment has been performed in a manner best described as "store-process-forward." A data packet to be encrypted or decrypted is stored in a packet buffer, then read out for cryptographic processing, and finally forwarded after processing. In some designs, the packet buffer has many ports to accommodate a large amount of incoming data. can be stored while other data in the buffer is processed by encryption/decryption software in a host computer system. In other designs, two packet buffers are present, one of which is filled with incoming data while the other is emptied and processed cryptographically. These requirements for multiple buffers or increased packet buffer size necessarily impose cost and performance constraints on the host processor. Furthermore, there is a necessary delay in processing each packet at both the sending and receiving ends.

Im vorliegenden Dokument wird der Ausdruck Verschlüsselung so verwendet, daß er die Kryptographieverarbeitung umfaßt, die entweder einen "Vertraulichkeits- und Integritäts"- oder nur einen Integritäts"-Schutz der Daten schafft. Im ersteren Fall werden die Nachricht und die Prüf summe verschlüsselt, bevor Netz- und MAC-Kopfsätze angefügt werden. Im letzteren Fall liegt die Nachricht im Klartext vor, an die Nachricht wird jedoch eine verschlüsselte Prüfsumme angehängt. In ähnlicher Weise wird der Ausdruck Entschlüsselung für eine Kryptographieverarbeitung verwendet, die sowohl die Wiederherstellung des Klartexts anhand der Wiederherstellung und Verifikation einer Prüfsumme aus verschlüsselten Daten als auch die Verifikation der Integrität einer lediglich "integritäts"-geschützten Nachricht umfaßt.In this document, the term encryption is used to encompass cryptographic processing that provides either "confidentiality and integrity" or "integrity only" protection of the data. In the former case, the message and checksum are encrypted before network and MAC headers are appended. In the latter case, the message is in plaintext but an encrypted checksum is appended to the message. Similarly, the term decryption is used to encompass cryptographic processing that includes both the recovery of plaintext by recovering and verifying a checksum from encrypted data and the verification of the integrity of a message that is only "integrity" protected.

Aus dem Vorangehenden geht hervor, daß noch immer ein Bedarf an einer Verbesserung der Kryptographieverarbeitung für Computernetze besteht. Im Idealfall sollte die Kryptographieverarbeitung keine speziellen Anforderungen an den Paketspeicher bei einer Station stellen, keine wesentliche Verzögerung oder Latenzzeit in die Verarbeitung jedes Pakets einführen und bequem zu vorhandenen Netzarchitekturen hinzugefügt werden können, die keine Kryptographieverarbeitung aufweisen. Die vorliegenden Erfindung ist auf diese Ziele gerichtet.From the foregoing, it is clear that there is still a need to improve cryptographic processing for computer networks. Ideally, cryptographic processing should not place special demands on packet storage at a station, should not introduce significant delay or latency into the processing of each packet, and should be convenient to existing network architectures that do not include cryptographic processing. The present invention is directed to these goals.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Die vorliegende Erfindung ist in den Ansprüchen 1 und 4 offenbart. Die Ansprüche 2, 3 und 5 offenbaren weitere Ausführungsformen der Erfindung.The present invention is disclosed in claims 1 and 4. Claims 2, 3 and 5 disclose further embodiments of the invention.

Die vorliegende Erfindung besteht in einem Verfahren und einer entsprechenden Vorrichtung für die Verarbeitung der Entschlüsselung von Informationspaketen, die mit einem Format in Übereinstimmung sind, das modifiziert werden kann, wenn Protokolinamen künftig modifiziert werden. Gemäß der Erfindung enthält ein Verschlüsselungsprozessor eine programmierbare Registereinrichtung zum Speichern von Schlüsselparametern eines Formats für verschlüsselte Pakete, das Änderungen unterworfen worden ist.The present invention is a method and apparatus for processing the decryption of information packets conforming to a format that may be modified if protocol names are modified in the future. According to the invention, an encryption processor includes programmable register means for storing key parameters of an encrypted packet format that has been subject to change.

Die Erfindung betrifft im weiten Sinn ein Verfahren und eine Vorrichtung für die Pipeline-Entschlüsselung eines empfangenen Informationspakets, das ein modifizierbares Format besitzt, wobei die Vorrichtung gekennzeichnet ist durch: eine programmierbare Registereinrichtung, die Informationen, die ermöglichen, daß ein empfangenes Informationspaket als Informationspaket eines besonderen Protokolltyps, der eine Entschlüsselung erfordert, identifiziert wird, sowie weitere Informationen enthält, die den Ort eines verschlüsselten Datenfeldes im Paket angeben; eine Einrichtung zum Analysieren jedes ankommenden Pakets auf der Grundlage der in der programmierbaren Registereinrichtung gespeicherten Informationen, um Pakete des besonderen Protokolltyps, der eine Entschlüsselung erfordert, zu identifizieren; und eine Einrichtung zum Entschlüsseln von Datenfeldern der ankommenden Pakete, die als Pakete eines besonderen Protokolltyps identifiziert worden sind, wobei die Entschlüsselung an einem Ort begonnen wird, der durch die in der programmierbaren Registereinrichtung gespeicherten Informationen spezifiziert ist.The invention relates in a broad sense to a method and apparatus for pipeline decryption of a received information packet having a modifiable format, the apparatus being characterized by: programmable register means containing information enabling a received information packet to be identified as an information packet of a particular protocol type requiring decryption, and further information indicating the location of an encrypted data field in the packet; means for analyzing each incoming packet on the basis of the information stored in the programmable register means to identify packets of the particular protocol type requiring decryption; and means for decrypting data fields of the incoming packets identified as Packets of a particular protocol type have been identified, with decryption being started at a location specified by the information stored in the programmable register device.

Wie hier beschrieben, enthält der Analyseschritt die Lokalisierung eines Kryptographieidentifiziererfeldes im empfangenen Paket mittels eines in der programmierbaren Registereinrichtung gespeicherten Identifizierer-Offsetwerts; das Vergleichen eines im Kryptographieidentifiziererfeld des Pakets enthaltenen Werts mit einem in der programmierbaren Registereinrichtung gespeicherten Kryptographieidentifiziererwert, um festzustellen, ob das Paket ein besonderer Protokolltyp ist, der die Entschlüsselung erfordert; und, wenn der Vergleichschritt eine Übereinstimmung ergibt, Überspringen eines Abschnitts des Pakets, der durch einen in der programmierbaren Registereinrichtung gespeicherten zweiten Offsetwert angegeben wird, um die Entschlüsselung eines Datenfeldes beginnend an der richtigen Stelle auszuführen.As described herein, the analyzing step includes locating a cryptographic identifier field in the received packet using an identifier offset value stored in the programmable register means; comparing a value contained in the cryptographic identifier field of the packet with a cryptographic identifier value stored in the programmable register means to determine if the packet is a particular protocol type requiring decryption; and, if the comparing step results in a match, skipping a portion of the packet indicated by a second offset value stored in the programmable register means to perform decryption of a data field starting at the correct location.

In bezug auf die Vorrichtung enthält die Erfindung eine programmierbare Registereinrichtung, die Informationen, die die Identifizierung eines empfangenen Informationspakets eines eine Entschlüsselung erfordernden besonderen Protokolltyps ermöglichen, und andere Informationen, die die Stelle eines verschlüsselten Datenfeldes im Paket angeben, umfaßt; eine Einrichtung zum Analysieren jedes ankommenden Pakets auf der Grundlage der in der programmierbaren Registereinrichtung gespeicherten Informationen, um Pakete des eine Entschlüsselung erfordernden besonderen Protokolltyps zu identifizieren; und eine Einrichtung zum Entschlüsseln von Datenfeldern von ankommenden Paketen, die als den besonderen Protokolltyp aufweisend identifiziert worden sind, wobei mit der Entschlüsselung an einer Stelle begonnen wird, die durch die in der programmierbaren Registereinrichtung gespeicherten Informationen spezifiziert ist.In relation to the apparatus, the invention includes programmable register means comprising information enabling identification of a received information packet of a particular protocol type requiring decryption and other information indicating the location of an encrypted data field in the packet; means for analyzing each incoming packet on the basis of the information stored in the programmable register means to identify packets of the particular protocol type requiring decryption; and means for decrypting data fields of incoming packets identified as having the particular protocol type, the decryption starting at a location specified by the information stored in the programmable register device.

Eine programmierbare Registereinrichtung enthält eine Einrichtung zum Speichern (i) einer Verschiebung von einem Referenzfeld, die im Paket den Ort eines Identifiziererfeldes angibt, das einen Schlüssel-Identifizierer enthalten sollte, (ii) eines Identifiziererwerts, der im Identifiziererfeld gefunden werden sollte, um anzugeben, daß das Paket ein Paket mit besonderem Protokoll ist, das eine Entschlüsselung erfordert, und (iii) eines zweiten Verschiebungswerts, der den Beginn der verschlüsselten Daten im Paket angibt. Die programmierbare Registereinrichtung enthält ein erstes Register zum Speichern einer Verschiebung, die im Paket den Ort eines Identifiziererfeldes angibt, das einen Schlüssel-Identifizierer enthalten sollte; ein zweites Register zum Speichern eines Identifiziererwerts, der im Identifiziererfeld gefunden werden sollte, um anzugeben, daß das Paket ein Paket mit einem besonderen Protokoll ist, das eine Entschlüsselung erfordert; und ein drittes Register zum Speichern eines zweiten Verschiebungswerts, der den Beginn der verschlüsselten Daten im Paket angibt.A programmable register means includes means for storing (i) an offset from a reference field indicating the location in the packet of an identifier field that should contain a key identifier, (ii) an identifier value that should be found in the identifier field to indicate that the packet is a special protocol packet requiring decryption, and (iii) a second offset value indicating the start of encrypted data in the packet. The programmable register means includes a first register for storing an offset indicating the location in the packet of an identifier field that should contain a key identifier; a second register for storing an identifier value that should be found in the identifier field to indicate that the packet is a special protocol packet requiring decryption; and a third register for storing a second offset value indicating the beginning of the encrypted data in the packet.

Aus dem vorangehenden wird deutlich, daß die vorliegende Erfindung einen erheblichen Fortschritt im Gebiet der Kryptographieverarbeitung für Kommunikationsnetze darstellt. Insbesondere erleichtert die Erfindung die Entschlüsselungsverarbeitung von Informationspaketen mit einem Format, das wegen der sich entwickelnden Protokollnormen in der Kommunikationsindustrie modifiziert werden kann. Die Verwendung programmierbarer Register zum Speichern von Codepaketforrnat-Parametern und Identifizierern vereinfacht bzw. vermeidet einen Neuentwurf des Kryptographieprozessors, wenn im Paketformat oder im Kryptographieidentifizierer eine Änderung vorgenommen wird.From the foregoing, it will be apparent that the present invention represents a significant advance in the field of cryptographic processing for communications networks. In particular, the invention facilitates decryption processing of information packets having a format that can be modified as protocol standards in the communications industry evolve. The use of programmable registers to store code packet format parameters and identifiers simplifies or eliminates redesign of the cryptographic processor, if a change is made in the packet format or the cryptographic identifier.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Ein genaueres Verständnis der Erfindung kann aus der folgenden Beschreibung einer bevorzugten Ausführungsform erhalten werden, die lediglich beispielhaft gegeben wird und in Verbindung mit den beigefügten Zeichnungen zu verstehen ist, in denen:A more detailed understanding of the invention can be obtained from the following description of a preferred embodiment, given by way of example only, and to be understood in conjunction with the accompanying drawings, in which:

die Fig. 1a-1c Blockschaltbilder verschiedener herkömmlicher Implementierungen einer Kryptographieverarbeitung in einer Netzumgebung sind;Figures 1a-1c are block diagrams of various conventional implementations of cryptographic processing in a network environment;

Fig. 2 ein Blockschaltbild ist, das zeigt, wie die Kryptographieverarbeitung gemäß einem Aspekt der vorliegenden Erfindung implementiert ist;Figure 2 is a block diagram showing how cryptographic processing is implemented in accordance with an aspect of the present invention;

Fig. 3 ein Blockschaltbild eines Kryptographieprozessors ist, der die beanspruchte Erfindung enthält;Fig. 3 is a block diagram of a cryptographic processor incorporating the claimed invention;

die Fig. 4, 5, 6a, 6b, 7 und 8 Flußdiagramme sind, die Funktionen zeigen, die vom Kryptographieprozessor in einer Parsing-Operation an einem empfangenen Informationspaket ausgeführt werden;Figures 4, 5, 6a, 6b, 7 and 8 are flow charts showing functions performed by the cryptographic processor in a parsing operation on a received information packet;

die Fig. 9a-9b Diagramme zweier Typen von SNAP/SAP-Paketformaten sind;Figures 9a-9b are diagrams of two types of SNAP/SAP packet formats;

Fig. 10 ein Diagramm eines ISO-Ende-zu-Ende-Paketformats ist;Fig. 10 is a diagram of an ISO end-to-end packet format ;

Fig. 11 ein Diagramm eines Paketformats ist, das auf diese Erfindung anwendbar ist und mit einem Entwurf der 802.1 SILS-Norm vom 2. Juni 1990 in Übereinstimmung ist;Fig. 11 is a diagram of a packet format applicable to this invention and conforming to a draft of the 802.1 SILS standard dated June 2, 1990;

Fig. 12 ein Diagramm ist, das genauer das Format eines Sicherheitssteuerfeldes in den Paketformaten nach den Fig. 9a-9b, 10 und 11 zeigt;Fig. 12 is a diagram showing in more detail the format of a security control field in the packet formats of Figs. 9a-9b, 10 and 11;

Fig. 13 (13a und 13b) ein Flußdiagramm ist, das Funktionen zeigt, die vom Kryptographieprozessor in einer Parsing-Operation eines abgehenden oder zurückgeschleiften Informationspakets zeigt;Fig. 13 (13a and 13b) is a flow chart showing functions performed by the cryptographic processor in a parsing operation of an outgoing or looped back information packet;

Fig. 14a-14c Diagramme dreier Typen von abgehenden oder zurückgeschleiften Paketformaten sind; undFig. 14a-14c are diagrams of three types of outgoing or loopback packet formats; and

Fig. 15 ein Flußdiagramm ist, das eine Abbruchverarbeitung gemäß einem Aspekt der Erfindung zeigt.Fig. 15 is a flowchart showing abort processing according to an aspect of the invention.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMDESCRIPTION OF THE PREFERRED EMBODIMENT

Wie in den Zeichnungen zur Erläuterung gezeigt, betrifft die vorliegende Erfindung die Kryptographieverarbeitung im Zusammenhang mit miteinander verbundenen Computernetzen, die in diesem Dokument als lokale Netze oder LANs bezeichnet werden. Es gibt viele Anwendungen von Netzen, in denen die Vertraulichkeit oder die Integrität der übertragenen Daten für die Sicherheit wichtig ist. Die Vertraulichkeit gewährleistet, daß es für eine mit dem Netz verbundene abhörende Person für alle praktischen Zwecke unmöglich ist, die übertragenen Daten aus ihrer verschlüsselten Form in ihre ursprüngliche Klartextform umzusetzen. Die "Integrität" der Daten bezieht sich auf ihren Schutz gegen unbefugte oder unbeabsichtigte Modifikation.As shown in the drawings for illustrative purposes, the present invention relates to cryptographic processing in the context of interconnected computer networks, referred to in this document as local area networks or LANs. There are many applications of networks in which the confidentiality or integrity of the transmitted data is important for security. Confidentiality ensures that it is, for all practical purposes, impossible for an eavesdropping person connected to the network to convert the transmitted data from its encrypted form to its original plaintext form. The "integrity" of the data refers to its protection against unauthorized or inadvertent modification.

Gemäß einem der in diesem Dokument beschriebenen Protokolle erfolgt die Verschlüsselung bei einem Sende- oder Queliknoten, während die Entschlüsselung bei einem Zielknoten erfolgt. Dies ist als Ende-zu-Ende-Verschlüsselung bekannt, die im Gegensatz zur Verbindungs-Verschlüsselung steht, in der bei jedem Zwischenknoten zwischen der Quelle und dem Ziel eine Entschlüsselung und eine erneute Verschlüsselung ausgeführt werden. Die Weise, in der die Verschlüsselung erfolgt, oder der Verschlüsselungsalgorithmus, hat für die vorliegende Erfindung keine besondere Bedeutung. Weiterhin ist es nicht von Bedeutung, ob Verschlüsselungs- und Entschlüsselungscodes zwischen den Sende- und Empfangsknoten im voraus ausgetauscht werden oder ob für die Herstellung der Schlüssel ein System mit öffentlichem Schlüssel verwendet wird. Wie in dieser Beschreibung später erwähnt wird, verwendet eine Implementierung der Erfindung einen Verschlüsselungsalgorithmus, der als Datenverschlüsselungsstandard (DES) bekannt ist und durch FIPS-46 (Federal Information Processing Standard - 46), veröffentlicht durch das National Institute of Standards and Technology (früher das National Bureau of Standards), definiert ist. Die Erfindung ist jedoch nicht darauf oder auf irgendeinen anderen Verschlüsselungsalgorithmus eingeschränkt.According to one of the protocols described in this document, encryption is performed at a sending or source node, while decryption is performed at a destination node This is known as end-to-end encryption, which is in contrast to link encryption, in which decryption and re-encryption are performed at each intermediate node between the source and destination. The manner in which encryption is performed, or the encryption algorithm, is of no particular importance to the present invention. Furthermore, it is not important whether encryption and decryption keys are exchanged in advance between the sending and receiving nodes, or whether a public key system is used to establish the keys. As mentioned later in this specification, one implementation of the invention uses an encryption algorithm known as the Data Encryption Standard (DES), defined by FIPS-46 (Federal Information Processing Standard - 46) published by the National Institute of Standards and Technology (formerly the National Bureau of Standards). However, the invention is not limited to this or to any other encryption algorithm.

Typische Token-Ring-Netze verwenden als Übertragungsmedium Lichtleitfasern, Koaxialkabel oder ein Kabel aus einem verdrillten Adempaar. Ein solches Netz, das das Token-Ring-Protokoll verwendet, ist als Datenschnittstelle mit verteilten Fasern (Fiber Distributed Data Interface, FDDI) bekannt. Die Beschreibung in diesem Dokument basiert auf FDDI-Schnittstellen und Rahmenformaten, sie würde jedoch bei geringfügigen Modifikationen auch auf viele verschiedene Netzschnittstellen anwendbar sein.Typical Token Ring networks use optical fiber, coaxial cable, or twisted pair cable as the transmission medium. Such a network using the Token Ring protocol is known as a Fiber Distributed Data Interface (FDDI). The description in this document is based on FDDI interfaces and frame formats, but it would be applicable to many different network interfaces with minor modifications.

Die Verschlüsselung kann wenigstens in der Theorie auf irgendeine Anzahl von Protokolischichten in einer Netzarchitektur angewendet werden. In der Praxis wird sie bequem in der Sicherungsschicht ausgeführt. Fig. 1a ist ein Blockschaltbild, das einen Datenfluß in der Sicherungsschicht zeigt. Datenpakete, die von der physischen Schicht (nicht gezeigt) ankommen, werden vom MAC-Prozessor, der mit dem Bezugszeichen 10 bezeichnet ist, verarbeitet und dann an einen Speicher-Controller 12 geschickt, der Operationen in zwei Paketpuffern 14a, 14b steuert.Encryption can, at least in theory, be applied to any number of protocol layers in a network architecture. In practice, it is conveniently carried out in the data link layer. Fig. 1a is a block diagram showing a data flow in the data link layer. Data packets arriving from the physical layer (not shown) are processed by the MAC processor, designated by the reference numeral 10, and then sent to a memory controller 12 which controls operations in two packet buffers 14a, 14b.

In einem Lösungsversuch des Standes der Technik wird die Kryptographieverarbeitung wie bei 16 gezeigt an Daten ausgeführt, die aus den Paketpuffern 14a, 14b ausgelesen werden. Für von der physischen Schicht ankommende Daten werden Datenpakete in abwechselnden Paketpuffern gespeichert, für die Entschlüsselung durch den Kryptographieprozessor 16 ausgelesen und in entschlüsselter Form an die nächsthöhere Protokollschicht weitergeleitet. Abgehende Datenrahmen werden in ähnlicher Weise in den Paketpuffern 14a, 14b gespeichert, für die Verschlüsselung durch den Kryptographieprozessor 16 ausgelesen und dann durch den Speicher-Controller 12 an den MAC-Prozessor 10 weitergeleitet.In one prior art approach, cryptographic processing as shown at 16 is performed on data read from packet buffers 14a, 14b. For data arriving from the physical layer, data packets are stored in alternating packet buffers, read for decryption by cryptographic processor 16, and forwarded in decrypted form to the next higher protocol layer. Outgoing data frames are similarly stored in packet buffers 14a, 14b, read for encryption by cryptographic processor 16, and then forwarded by memory controller 12 to MAC processor 10.

Fig. 1b zeigt eine ähnliche Anordnung, mit der Ausnahme, daß nur ein Paketpuffer 14 vorhanden ist, der groß genug sein muß, um Speicherraum für mehrere Datenpakete zu schaffen, und bei dem zwei Anschlüsse für den gleichzeitigen Zugriff durch den Kryptographieprozessor 16 und durch den MAC-Prozessor 10 erforderlich sein können. Fig. 1c zeigt eine weitere Anordnung ähnlich Fig. 1sb, mit der Ausnahme, daß der Kryptographieprozessor 16 mit den Datenwegen zu höheren Protokollschichten nicht in Serie geschaltet ist.Fig. 1b shows a similar arrangement, except that there is only one packet buffer 14, which must be large enough to provide storage space for several data packets, and where two ports may be required for simultaneous access by the cryptographic processor 16 and by the MAC processor 10. Fig. 1c shows another arrangement similar to Fig. 1sb, except that the cryptographic processor 16 is not connected in series with the data paths to higher protocol layers.

Wie beispielhaft in Fig. 2 gezeigt ist, erfolgt die Kryptographieverarbeitung in einer "Pipeline" oder "Durchschaltung" durch einen Kryptographieprozessor 16', der sich in dieser beispielhaften Ausführungsform zwischen dem MAC-Prozessor 10 und dem Speicher-Controller 12 befindet. Der Kryptographieprozessor arbeitet mit Netzgeschwindigkeiten an Daten, die vom oder zum MAC-Prozessor 10 strömen, und erfordert keine zusätzliche Paketpuffer- Bandbreite, keine zusätzlichen Paketpuffer oder zusätzlichen Verarbeitungs fähigkeiten.As shown in Fig. 2, the cryptographic processing takes place in a "pipeline"or"Circuiting" through a cryptographic processor 16', which in this exemplary embodiment is located between the MAC processor 10 and the memory controller 12. The cryptographic processor operates at network speeds on data flowing to or from the MAC processor 10 and does not require additional packet buffer bandwidth, packet buffers, or additional processing capabilities.

Kryptographieprozessor-HardwareCryptographic processor hardware

Wie in Fig. 3 gezeigt ist, schafft der Kryptographieprozessor der Erfindung einen Vollduplexweg zwischen der MAC-Unterschicht über eine MAC-Schnittstelle 20 und dem RMC-Modul (Ringspeicher-Controllermodul) über eine RMC- Schnittstelle 22. Der Empfangsdatenweg führt normalerweise über Eingangs-Empfangsdatenleitungen (mit IRPATH bezeichnet) zur MAC-Schnittstelle 20. Die MAC-Schnittstelle 20 prüft die Parität der vom MAC-Prozessor empfangenen Daten und überwacht Steuerleitungen für Datenendesignale, um die Spur der momentan verarbeiteten Pakete zu behalten. Die Verarbeitung und die Lenkung der ankommenden Daten werden in großem Ausmaß von einer Empfangssteuerung-Zustandsmaschine 24 gesteuert, deren Funktionen genauer beschrieben werden. Grundsätzlich untersucht die Empfangssteuerung-Zustandsmaschine 24 ankommende Datenpakete, wie sie von der MAC-Schnittstelle ankommen, und bestimmt, welche Aktion ausgeführt werden soll, einschließlich der Frage, ob ein ankommendes Paket entschlüsselt werden soll.As shown in Figure 3, the cryptographic processor of the invention provides a full duplex path between the MAC sublayer via a MAC interface 20 and the RMC (Ring Memory Controller) module via an RMC interface 22. The receive data path normally leads to the MAC interface 20 via input receive data lines (labeled IRPATH). The MAC interface 20 checks the parity of the data received by the MAC processor and monitors end of data control lines to keep track of the packets currently being processed. The processing and routing of the incoming data is largely controlled by a receive control state machine 24, the functions of which will be described in more detail. Basically, the receive control state machine 24 examines incoming data packets as they arrive from the MAC interface and determines what action to take, including whether to decrypt an incoming packet.

Der Empfangsdatenweg enthält außerdem ein DES-Funktionsmodul (Datenverschlüsselungsstandard-Funktionsmodul) 26 mit herkömmlicher Konstruktion, einen Multiplexer 28 am Ausgang des DES-Moduls 26, einen Empfangs-FIFO-Speicher (First-In/First-Out-Speicher) 30 und einen weiteren Multiplexer 32, dessen Ausgang an die RMC-Schnittstelle angeschlossen ist. Für Entschlüsselungsoperationen werden von der MAC-Schnittstelle 20 empfangene Datensignale in das DES-Modul 26 eingegeben, anschließend laufen die entschlüsselten Signale durch den Multiplexer 32 zur RMC- Schnittstelle 22. Der Multiplexer 32 wählt seinen Eingang entweder vom DES-Modul 26, vom Empfangs-FIFO 30 oder von einer dritten Leitung 34, über die Daten von einem zu beschreibenden Übertragungsdatenweg zur RMC-Schnittstelle 22 zurückgeschleift werden können. Zu den vom DES-Modul 26 ausgegebenen entschlüsselten Daten können Paritätsoder andere Prüfcodes, die beschrieben werden, hinzugefügt werden. Die im Empfangsdatenweg verarbeiteten Daten werden schließlich durch die RMC-Schnittstelle 22 über Ausgangsempfangsleitungen, die mit ORPATH bezeichnet sind, ausgegeben.The receive data path also includes a DES (Data Encryption Standard) function module 26 of conventional design, a multiplexer 28 at the output of the DES module 26, a receive FIFO (First-In/First-Out) memory 30 and another Multiplexer 32, the output of which is connected to the RMC interface. For decryption operations, data signals received from the MAC interface 20 are input to the DES module 26, then the decrypted signals pass through the multiplexer 32 to the RMC interface 22. The multiplexer 32 selects its input from either the DES module 26, the receive FIFO 30, or a third line 34 over which data from a transmit data path to be written can be looped back to the RMC interface 22. Parity or other check codes to be written can be added to the decrypted data output by the DES module 26. The data processed in the receive data path is finally output by the RMC interface 22 over output receive lines labeled ORPATH.

Der Übertragungsdatenweg besitzt eine ähnliche Struktur wie der Empfangsdatenweg. Datenpakete für die Übertragung werden bei der RMC-Schnittstelle über Eingangsübertragungsleitungen, die mit ITPATH bezeichnet sind, empfangen, auf Parität geprüft und an einen Übertragungs-FIFO- Speicher 40 und ein zweites DES-Funktionsmodul 42' übertragen, wobei die Ausgänge dieser beiden Wege von einem weiteren Multiplexer 44' gewählt werden, um sie an die MAC-Schnittstelle weiterzuleiten und über Ausgangsübertragungsleitungen, die mit OTPATH bezeichnet sind, auszugeben. Die Einfügung eines zyklisch redundanten Codes (CRC) erfordert die Hinzufügung eines CRC-Generator- und Prüfmoduls 46', eines weiteren Multiplexers 48' für die Wahl zwischen Daten von der RMC-Schnittstelle 22 und Daten, die über eine Leitung 50 vom Ausgang des DES- Moduls 42 zurückgeführt werden, und eines nochmals weiteren Multiplexers 54', der zwischen dem Ausgang vom CRC- Generator und den Eingangsdaten von der RMC-Schnittstelle wählt. Die Steuerung des Datenflusses im Übertragungsdatenweg wird über eine Rückschleifungs-/Übertragungssteuerung-Zustandsmaschine 60 ausgeführt. Es wird festgestellt, daß der Multiplexer 44 seinen Ausgang für drei mögliche Wege zur Verfügung stellt: zur MAC-Schnittstelle für die Übertragung eines abgehenden Datenpakets, an den Multiplexer 32 (über eine Leitung 34) für die Rückschleifung eines Datenpakets zur RMC-Schnittstelle und über eine weitere Leitung 62 an eine Knotenprozessorschnittstelle 64, um ein Datenpaket zum Knotenprozessor oder Host-Prozessor (nicht gezeigt) zurückzuschleifen.The transmit data path has a similar structure to the receive data path. Data packets for transmission are received at the RMC interface over input transmission lines labeled ITPATH, checked for parity and transmitted to a transmit FIFO memory 40 and a second DES function module 42', the outputs of these two paths being selected by another multiplexer 44' for forwarding to the MAC interface and output over output transmission lines labeled OTPATH. The inclusion of a cyclic redundant code (CRC) requires the addition of a CRC generator and check module 46', another multiplexer 48' for selecting between data from the RMC interface 22 and data returned over line 50 from the output of the DES module 42, and yet another multiplexer 54' which selects between the output from the CRC generator and the input data from the RMC interface. Controlling the data flow in the transmission data path is carried out via a loopback/transmission control state machine 60. It will be noted that the multiplexer 44 provides its output in three possible paths: to the MAC interface for transmission of an outgoing data packet, to the multiplexer 32 (via line 34) for looping a data packet back to the RMC interface, and via another line 62 to a node processor interface 64 for looping a data packet back to the node processor or host processor (not shown).

Die Grundfunktion der Empfangssteuerung-Zustandsmaschine 24 besteht darin, ein Parsing oder eine Analyse jedes von der MAC-Schnittstelle 20 empfangenen ankommenden Datenpakets vorzunehmen und zu bestimmen, wie dieses Paket verarbeitet werden soll. Die in diesem Zusammenhang wichtigste zu treffende Entscheidung ist, ob ein ankommendes Paket entschlüsselt werden soll. Auf der Grundlage ihrer Analyse der Kopfsatzinformationen in einem ankommenden Datenpaket konditioniert die Empfangssteuerung- Zustandsmaschine 24 den Empfangsdatenweg, um das ankommende Paket geeignet zu verarbeiten. Ein wichtiger Aspekt des Parsings der ankommenden Datenpakete ist, daß es ausgeführt werden muß, wenn das Paket von der MAC- Schnittstelle 20 einströmt. Zu dem Zeitpunkt, zu dem das erste Byte in möglicherweise verschlüsselter Daten ankommt, sollte bekannt sein, ob eine Entschlüsselung erforderlich ist.The basic function of the receive control state machine 24 is to parse or analyze each incoming data packet received by the MAC interface 20 and determine how that packet should be processed. The most important decision to be made in this context is whether to decrypt an incoming packet. Based on its analysis of the header information in an incoming data packet, the receive control state machine 24 conditions the receive data path to appropriately process the incoming packet. An important aspect of parsing the incoming data packets is that it must be performed as the packet flows in from the MAC interface 20. By the time the first byte of potentially encrypted data arrives, it should be known whether decryption is required.

Ein ähnlicher Prozeß findet bei der Übertragung von von der RMC-Schnittstelle 22 empfangenen Datenpaketen statt. Die Rückschleifungs-/Übertragungssteuerung-Zustandsmaschine muß anhand der Kopfsatzinformationen im übertragenen Paket entscheiden, ob eine Verschlüsselung erforderlich ist, und muß dann den Übertragungsdatenweg so konditionieren, daß die geeignete Transformation und Lenkung der Daten, die den Kopfsatzinformationen folgen, ausgeführt werden. Der Übertragungsdatenweg handhabt nicht nur Pakete, die durch die MAC-Schnittstelle 20 abgehen sollen, sondern auch Pakete, die durch den Kryptographieprozessor aus verschiedenen Gründen zurückgeschleift werden. Die Rückschleifung kann vom Knotenprozessor verwendet werden, um einen oder mehrere Schlüsselcodes vor der Verschlüsselung der Daten zu verschlüsseln oder um Daten zu verschlüsseln oder zu entschlüsseln und das transformierte Paket zum Knotenprozessor entweder direkt oder durch die RMC-Schnittstelle 22 zurückzuleiten. Eine wichtige Funktion der Rückschleifungsverarbeitung ist die Handhabung fälschliche Entschlüsselungen. Eine fälschliche Entschlüsselung liegt vor, wenn ein ankommendes Paket entschlüsselt wird, jedoch nicht hätte entschlüsselt werden sollen. Bei Entdeckung des Fehlers wird das fälschlicherweise entschlüsselte Paket zum Kryptographieprozessor zurückgeschleift, so daß die fehlerhafte Transformation der Daten rückgängig gemacht werden kann.A similar process occurs during the transmission of data packets received from the RMC interface 22. The loopback/transmission control state machine must decide whether encryption is required based on the header information in the transmitted packet and must then condition the transmission data path to provide the appropriate transformation and routing of the data following the header information. The transmit data path handles not only packets intended to go out through the MAC interface 20, but also packets that are looped back by the cryptographic processor for various reasons. Loopback may be used by the node processor to encrypt one or more key codes before encrypting the data, or to encrypt or decrypt data and return the transformed packet to the node processor either directly or through the RMC interface 22. An important function of loopback processing is to handle false decryptions. A false decryption occurs when an incoming packet is decrypted but should not have been decrypted. When the error is discovered, the falsely decrypted packet is looped back to the cryptographic processor so that the erroneous transformation of the data can be reversed.

Der Empfangsdatenweg:The receive data path:

Der Prozeß des Parsings ankommender Datenpakete ist diagrammartig in den Flußdiagrammen der Fig. 4-8 gezeigt. Es gibt viele verschiedene Paketformate, die unterschiedlichen Netzprotokollen entsprechen, die für höhere Ebenen in der Hierarchie der Netzarchitektur verwendet werden. Das Parsing eines ankommenden Pakets umfaßt die Grundschritte des Identifizierens des Protokolls, das verwendet worden war, um das Paket zu erzeugen, und des Extrahierens ausreichender Informationen aus den Paketkopfsätzen, um zu bestimmen, ob eine Entschlüsselung erforderlich ist, und, wenn dem so ist, um welchen Entschlüsselungstyp es sich handelt und wo im Paket sie beginnen soll.The process of parsing incoming data packets is shown diagrammatically in the flow charts of Figures 4-8. There are many different packet formats corresponding to different network protocols used at higher levels in the hierarchy of the network architecture. Parsing an incoming packet involves the basic steps of identifying the protocol that was used to generate the packet and extracting sufficient information from the packet headers to determine whether decryption is required and, if so, what type of decryption it is and where in the packet it should begin.

Die Identifizierung jedes denkbaren Paketformats wäre komplex und zeitaufwendig. Darüber hinaus ist die vorliegende Erfindung nicht auf eine Parsinglogik eingeschränkt, die besondere Paketformate identifizieren kann. Beispielsweise werden im Empfangsdatenweg mehrere verschiedene Typen von Formaten identifiziert. Diese Formate sind diagrammartig in den Fig. 9a-9b, 10 und 11 gezeigt. Die Fig. 9a-9b zeigen zwei Varianten des Paketformats, die als SNAP/SAP-Format, das ein durch die Digital Equipment Corporation definiertes Sicherungsverschlüsselungsformat enthält (Fig. 9a), bzw. als DOD-IP-Verschlüsselungsformat (Fig. 9b) bekannt sind. Fig. 10 zeigt das ISO-Ende-zu-Ende-Verschlüsselungspaketformat und Fig. 11 zeigt ein drittes Format, das als SILS bekannt ist und das derzeit noch immer in der Industrie definiert wird.Identifying every conceivable packet format would be complex and time consuming. Moreover, the present invention is not limited to parsing logic that can identify particular packet formats. For example, several different types of formats are identified in the receive data path. These formats are shown diagrammatically in Figures 9a-9b, 10 and 11. Figures 9a-9b show two variants of the packet format, known as the SNAP/SAP format, which includes a backup encryption format defined by Digital Equipment Corporation (Figure 9a), and the DOD-IP encryption format (Figure 9b), respectively. Figure 10 shows the ISO end-to-end encryption packet format, and Figure 11 shows a third format known as SILS, which is still currently being defined in the industry.

Sämtlichen Paketformaten ist ein MAC-Kopfsatz, ein LLC- Kopfsatz und ein Sicherheitssteuerfeld (das mit SE_CTRL bezeichnet wird) gemeinsam. Das Parsing des ankommenden Pakets umfaßt zunächst die Prüfung des MAC-Kopfsatzes, um festzustellen, ob das Paket von dem Typ ist, der entschlüsselt werden soll, dann die Prüfung des LLC-Kopfsatzes, um das Protokoll zu identifizieren, und schließlich das Überspringen des geeigneten Feldes des Pakets, um Informationen zu extrahieren, die für die Ausführung des Entschlüsselungsprozesses benötigt werden. An mehreren Punkten im Parsing-Prozeß kann die Entscheidung getroffen werden, das Paket nicht zu entschlüsseln, wobei es in diesem Fall einfach durch die RMC-Schnittstelle 22 weitergeleitet wird.All packet formats share a MAC header, an LLC header, and a security control field (denoted SE_CTRL). Parsing the incoming packet involves first examining the MAC header to determine if the packet is of the type to be decrypted, then examining the LLC header to identify the protocol, and finally skipping the appropriate field of the packet to extract information needed to perform the decryption process. At several points in the parsing process, the decision may be made not to decrypt the packet, in which case it is simply passed through the RMC interface 22.

Der erste Schritt im Parsing eines ankommenden Pakets besteht darin, den MAC-Kopfsatz zu untersuchen, wie in Fig. 4 gezeigt ist. Das Rahmensteuerfeld des MAC-Kopfsatzes enthält ein das Paket identifizierendes Feld, das vom Langadressentyp oder vom Kurzadressentyp ist. Falls Langadressen nicht spezifiziert sind (wie im Block 40 bestimmt wird), wird keine Entschlüsselung ausgeführt und das Paket wird zur RMC-Schnittstelle 22 weitergeleitet (wie im Block 42 angegeben ist). Ebenso wird, falls die im Rahmensteuerfeld identifizierte Rahmenklasse nicht als LLC identifiziert wird (Block 44), keine Entschlüsselung ausgeführt. Falls ferner entweder das MAC-Zieladressen- Mehrfachbesetzungsbit (Block 46) oder das MAC-Quelladressen-Lenkungsinformationsanzeigebit (Block 48) gesetzt ist, wird keine Entschlüsselung ausgeführt.The first step in parsing an incoming packet is to examine the MAC header, as shown in Fig. 4. The frame control field of the MAC header contains a packet identifying field that is of the long address type or the short address type. If Long addresses are not specified (as determined in block 40), no decryption is performed and the packet is forwarded to the RMC interface 22 (as indicated in block 42). Likewise, if the frame class identified in the frame control field is not identified as LLC (block 44), no decryption is performed. Furthermore, if either the MAC destination address multiplexing bit (block 46) or the MAC source address routing information indication bit (block 48) is set, no decryption is performed.

Das LLC-Parsing enthält die Untersuchung der ersten beiden Bytes des LLC-Kopfsatzes, um das Protokoll und die aus diesem Block hervorgehenden mehreren Wege zu identifizieren, wie im Block 54 (Fig. 5) angegeben ist. Im Fall des SNAP/SAP-Paketformats besitzen die ersten beiden Bytes des LLC-Kopfsatzes jeweils einen Hexadezimalwert von AA, d. h. einen binären Wert von 1010 1010. Im Fall des ISO-Ende-zu-Ende-Paketformats besitzen die ersten beiden Bytes des LLC-Kopfsatzes jeweils einen Hexadezimalwert von FE, d. h. einen Binärwert von 1111 1110. In allen Fällen muß das zweite Byte nicht notwendig geprüft werden, das dritte Byte (Steuer-Feld) muß jedoch 03 (hexadezimal) sein (unnumerierte Informationen).LLC parsing involves examining the first two bytes of the LLC header to identify the protocol and the multiple paths arising from this block, as indicated in block 54 (Fig. 5). In the case of the SNAP/SAP packet format, the first two bytes of the LLC header each have a hexadecimal value of AA, i.e. a binary value of 1010 1010. In the case of the ISO end-to-end packet format, the first two bytes of the LLC header each have a hexadecimal value of FE, i.e. a binary value of 1111 1110. In all cases, the second byte does not necessarily need to be examined, but the third byte (control field) must be 03 (hexadecimal) (unnumbered information).

Falls im Parsing des LLC-Kopfsatzes der Kryptographieprozessor kein SNAP/SAP-Paket (Block 56, fortgesetzt in Fig. 6a) oder kein ISO-Ende-zu-Ende-Paket (Block 58, fortgesetzt in Fig. 6b) oder kein SILS-Paket (Block 60, fortgesetzt in Fig. 7) erkennt, wird entschieden, daß nicht entschlüsselt wird (Block 42) so daß das Paket ohne weitere Kryptographieverarbeitung zur RMC-Schnittstelle 22 geschickt wird.If in parsing the LLC header the cryptographic processor does not detect a SNAP/SAP packet (block 56, continued in Fig. 6a) or an ISO end-to-end packet (block 58, continued in Fig. 6b) or a SILS packet (block 60, continued in Fig. 7), it is decided not to decrypt (block 42) so that the packet is sent to the RMC interface 22 without further cryptographic processing.

Was in dieser Beschreibung mit SILS-Paket bezeichnet wird, repräsentiert nicht notwendig ein Format, das das IEEE 802.10 (SILS) Normungskomitee eventuell als Norm anerkennt. Wie einfach deutlich wird, ist die offenbarte Ausführungsform ohne weiteres an die Handhabung der eventuellen SILS-Norm anpaßbar. Zum Zeitpunkt der Vorbereitung dieses Dokument gab es jedoch keine feste Norm und jeder Versuch einer Einhaltung wäre Spekulation.What is referred to as SILS packet in this description does not necessarily represent a format that IEEE 802.10 (SILS) standards committee may eventually recognize it as a standard. As will be readily apparent, the disclosed embodiment is readily adaptable to handle the eventual SILS standard. However, at the time of preparation of this document, no established standard existed and any attempt at compliance would be speculative.

Im weiteren Parsing eines SNAP/SAP-Pakets (Fig. 6a) wird die Verarbeitung mit einer Prüfung (im Block 62) der Protokollidentifizierungsbytes (PID-Bytes) fortgesetzt, um den SNAP/SAP-Pakettyp zu bestimmen. Die erkannten Pakettypen sind in der folgenden Tabelle angegeben: In further parsing of a SNAP/SAP packet (Fig. 6a), processing continues with a check (in block 62) of the protocol identification bytes (PID bytes) to determine the SNAP/SAP packet type. The detected packet types are given in the following table:

Falls der Pakettyp als Digitalsicherungstyp erkannt wird, ist das nächste zu analysierende Feld das Sicherheitssteuerfeld, wie bei 64 angegeben ist. Für einen DOD-IP- Pakettyp wird die IP-Kopfsatzlänge (anhand des nächsten Bytes im Paket) für eine künftige Verwendung als Offset gesichert, wie im Block 66 angegeben ist. Dann werden die nächsten fünf Bytes übersprungen, woraufhin ein Merker/Offset-Feld untersucht wird (Block 68). Das Merker/Offset-Feld besitzt das folgende Format:If the packet type is recognized as a digital security type, the next field to be analyzed is the security control field, as indicated at 64. For a DOD IP packet type, the IP header length (from the next byte in the packet) is saved for future use as an offset, as indicated in block 66. Then the next five bytes are skipped, after which a flag/offset field is examined (block 68). The flag/offset field has the following format:

OOOO OOOO OOOO ORDM,OOOO OOOO OOOO ORDM,

wobei O ein Offset ist,where O is an offset,

r eine reservierte Bitposition ist,r is a reserved bit position,

D die Bedeutung "nicht fragmentieren"D the meaning "do not fragment"

besitzt undowns and

M die Bedeutung "mehr Fragmente" besitzt.M means "more fragments".

Falls keine weiteren Fragmente vorhanden sind (M = 0) und der Offset Null ist (O = 0), wie im Block 70 bestimmt wird, wird die Verarbeitung fortgesetzt. Andernfalls wird eine Entschlüsselung nicht ausgeführt (Block 42). Wenn die Verarbeitung fortgesetzt wird, wird als nächstes (im Block 72) bestimmt, ob das Protokollidentifizierungsbyte, das dem Merker/Offset-Feld nach einem Byte folgt, den korrekten Protokollwert enthält. Die korrekte Protokollidentifizierung für das DOD-IP-Protokoll wird anfangs in einem Register (das als DOD_IP PID-Register bezeichnet ist), das dem Kryptographieprozessor zugeordnet ist, gespeichert. Falls die Identifizierung korrekt ist, wird die Verarbeitung mit dem Parsing von SE_CNTRL fortgesetzt (64).If there are no more fragments (M = 0) and the offset is zero (O = 0) as determined in block 70, processing continues. Otherwise, decryption is not performed (block 42). If processing continues, it is next determined (in block 72) whether the protocol identification byte following the flag/offset field by one byte contains the correct protocol value. The correct protocol identification for the DOD-IP protocol is initially stored in a register (called the DOD_IP PID register) associated with the cryptographic processor. If the identification is correct, processing continues with the parsing of SE_CNTRL (64).

Das ISO-Ende-zu-Ende-Parsing wird, wie in Fig. 6b gezeigt ist, mit der Bestätigung des ISO-IP-Formats fortgesetzt, in dem das PID-Feld auf einem erwarteten Identifizierungswert geprüft wird (Block 76). Falls keine Bestätigung gefunden wird, wird keine Entschlüsselung ausgeführt (Block 42). Falls ein ISO-Ende-zu-Ende-Paketformat bestätigt wird, wird die Netzkopfsatzlänge gesichert (Block 78), außerdem wird das Merker-Byte untersucht (Block 80). Das Merker-Byte enthält die folgenden Informationen:The ISO end-to-end parsing continues, as shown in Fig. 6b, with the confirmation of the ISO IP format, in which the PID field is checked for an expected identification value (block 76). If no confirmation is found, no decryption is performed (block 42). If an ISO end-to-end packet format is confirmed, the network header length is saved (block 78), and the flag byte is examined (block 80). The flag byte contains the following information:

SMET TTTTSMET TTTT

wobei S die Bedeutung "Segmentierung ist zugelassen" besitztwhere S means "segmentation is allowed"

M die Bedeutung "mehr Segmente folgen" besitzt,M means "more segments follow",

e einen Fehlerbericht angibt und TTTTT den Pakettyp angibt.e indicates an error report and TTTTT indicates the packet type.

Falls die Segmentierung nicht zugelassen ist (S = 0), wie im Block 82 bestimmt wird, kann eine Entschlüsselung erforderlich sein oder auch nicht. Die Segmentierung konnte nicht auftreten, so daß der Transportschicht Kopfsatz geprüft wird, um festzustellen, ob eine Ent schlüsselung geeignet ist. Der verbleibende Abschnitt des Netzkopfsatzes wird übersprungen, ferner werden eine Längenidentifizierung und eine Sicherheitsidentifizierung vom Paket mit "Fingerabdruck"-Werten (im Block 86, Fig. 8) verglichen. Falls eine Fingerabdruck-Übereinstimmung vorliegt (Block 88, Fig. 8), wird die Kryptographieverarbeitung mit dem SE_CTRL-Parsing fortgesetzt. Falls keine Fingerabdruckübereinstimmung vorliegt, was im Block 88 bestimmt wird, wird keine Entschlüsselung ausgeführt (Block 42).If segmentation is not permitted (S = 0), as determined in block 82, decryption may or may not be required. Segmentation could not occur, so the transport layer Header is checked to determine if decryption is appropriate. The remaining portion of the network header is skipped, and a length identifier and a security identifier from the packet are compared to "fingerprint" values (in block 86, Fig. 8). If there is a fingerprint match (block 88, Fig. 8), cryptographic processing continues with SE_CTRL parsing. If there is no fingerprint match, which is determined in block 88, no decryption is performed (block 42).

Falls die Segmentierung zugelassen ist (S = 1), kann eine Entschlüsselung noch immer geeignet sein. Falls keine weiteren Segmente vorhanden sind (M = 0) und der Pakettyp 1C (hexadezimal) ist, kann das momentane Paket das vollständige unfragmentierte Paket oder das letzte Fragment (oder Segment) einer Menge von Segmenten sein. Der verbleibende Abschnitt des Netzkopfsatzes wird anschließend übersprungen (Block 84), ferner wird eine Sicherheitsverarbeitung ausgeführt, die weitere Prüfungen vornimmt (Block 88). Falls mehr Segmente vorliegen (M = 1), ist das momentane Paket ein Fragment eines größeren (möglicherweise verschlüsselten) Pakets und muß nicht entschlüsselt werden.If segmentation is permitted (S = 1), decryption may still be appropriate. If there are no more segments (M = 0) and the packet type is 1C (hexadecimal), the current packet may be the entire unfragmented packet or the last fragment (or segment) of a set of segments. The remaining portion of the network header is then skipped (block 84) and security processing is performed to perform further checks (block 88). If there are more segments (M = 1), the current packet is a fragment of a larger (possibly encrypted) packet and does not need to be decrypted.

Das Parsing eines SILS-Pakets (Fig. 7) ist ein Spezialfall, weil das SILS-Format noch nicht definiert ist. Alles, was sicher bekannt ist, ist, daß ein SILS-Identifizierungscode in einem bestimmten Feld des Pakets übertragen wird und daß das Sicherheitssteuerfeld SE_CTRL an einer weiteren bezeichneten Stelle des Pakets beginnt. Um daher ein SILS-Paket zu prüfen, springt der Parsing- Prozeß zunächst (Block 100) um eine programmierte Offsetanzahl von Bytes an eine Stelle im Paket, von der bekannt ist, daß ein SILS-Identifizierungsfeld gespeichert ist.Parsing a SILS packet (Fig. 7) is a special case because the SILS format is not yet defined. All that is known for certain is that a SILS identification code is transmitted in a specific field of the packet and that the security control field SE_CTRL begins at another designated location in the packet. Therefore, to check a SILS packet, the parsing process first jumps (block 100) by a programmed offset number of bytes to a location in the packet where a SILS identification field is known to be stored.

Dieses Feld wird mit einem programmierten SILS-Fingerab druckwert verglichen (Block 102). Wenn eine Übereinstimmung vorliegt (Block 104), springt die Verarbeitung um einen programmierten Offset zum Beginn des SE_CTRL-Feldes (Block 106). Falls keine Übereinstimmung vorliegt, wird keine Entschlüsselung ausgeführt (Block 42).This field is compared to a programmed SILS fingerprint value (block 102). If there is a match (block 104), processing jumps by a programmed offset to the beginning of the SE_CTRL field (block 106). If there is no match, no decryption is performed (block 42).

Sobald das Parsing eines empfangenen Pakets den Schluß gezogen hat, daß eine Entschlüsselung erforderlich ist, wird der Parsing-Prozeß mit einer Analyse des SE_CTRL- Feldes des Pakets fortgesetzt. Wie in Fig. 8 gezeigt ist, wird zunächst der Integritätsmerker geprüft (Block 110), um sicherzustellen, daß die Kryptographieverarbeitung mit Integritätsprüfung gewählt worden ist. Andernfalls oder falls ein nicht verfügbarer Verschlüsselungsalgorithmus gewählt wird (Block 112) wird keine Entschlüsselung ausgeführt (Block 42). Falls die Prüfung im Block 112 bestanden wird, werden jedoch geeignete Merker gesetzt (Block 114), um die Kryptographievorrichtung für die Entschlüsselung zu konditionieren, woraufhin die Entschlüsselung begonnen wird (Block 116).Once parsing of a received packet has concluded that decryption is required, the parsing process continues with an analysis of the SE_CTRL field of the packet. As shown in Figure 8, the integrity flag is first checked (block 110) to ensure that integrity checking cryptographic processing has been selected. Otherwise, or if an unavailable encryption algorithm is selected (block 112), no decryption is performed (block 42). However, if the check in block 112 is passed, appropriate flags are set (block 114) to condition the cryptographic device for decryption, whereupon decryption is started (block 116).

Der Rückschleifungs-/Übertragungsdatenweg:The loopback/transmission data path:

Wie früher mit Bezug auf Fig. 3 diskutiert worden ist, kann ein von der RMC-Schnittstelle 22 empfangenes Paket entweder ein abgehendes Paket für die Übertragung durch die MAC-Schnittstelle mit oder ohne Verschlüsselung oder ein Paket sein, das nicht an die MAC-Schnittstelle übertragen wird, sondern statt dessen einer Rückschleifung für die weitere Verarbeitung durch den Knotenprozessor unterworfen wird. Obwohl diese Alternativen die Situation in gewissem Ausmaß komplizierter machen, wird die Verarbeitung im Rückschleifungs-/Übertragungsdatenweg durch das Vorhandensein eines Kryptographie-Datenanfangsetiketts in jenen Paketen, für die die Kryptographieverarbeitung erforderlich ist, vereinfacht. Einzelheiten des Kryptographie-Datenanfangsetiketts werden in einem späteren Abschnitt der Beschreibung diskutiert, momentan muß lediglich verstanden werden, daß ein Feld des Datenanfangsetiketts ein Verarbeitungsmodus-Feld enthält, wobei die Modi lauten:As discussed earlier with reference to Figure 3, a packet received by the RMC interface 22 may be either an outgoing packet for transmission through the MAC interface with or without encryption, or a packet that is not transmitted to the MAC interface but is instead subjected to a loopback for further processing by the node processor. Although these alternatives complicate the situation to some extent, the processing in the loopback/transmit data path is facilitated by the presence of a cryptographic preamble in those packets for which cryptographic processing required. Details of the cryptographic preamble will be discussed in a later section of the description, for now it is only necessary to understand that one field of the preamble contains a processing mode field, where the modes are:

000 - abgehende Übertragung,000 - outgoing transmission,

001 - Rückschleifung der Codeverschlüsselung001 - Looping back the code encryption

010 - Rückschleifung der Verschlüsselung010 - Looping back the encryption

011 - Rückschleifung der Entschlüsselung und011 - Looping back the decryption and

100 - Rückschleifung der Verschlüsselung, wobei nur100 - Looping back the encryption, whereby only

ICV zurückgeleitet wird.ICV is returned.

Fig. 13 ist ein Flußdiagramm, das die Abgangs- und Rückschleifungsverarbeitung zeigt, während die Fig. 14a-14c die Paketformate der drei möglichen Typen von von der RMC-Schnittstelle 22 empfangenen Paketen sind. Wie in Fig. 13 gezeigt ist, beginnt das Parsing eines abgehenden oder zurückgeschleiften Pakets mit zwei Vorprüfungen an Paketanforderungskopfsatzbytes am Beginn des Pakets. Falls ein FCS-Feld im Paket vorliegt (Block 120) oder ein Kryptographie-Datenanfangsetikett im Paket nicht vorliegt (Block 122), findet keine weitere Kryptographieverarbeitung statt, wobei das Paket direkt zur MAC-Schnittstelle 20 weitergeleitet wird, wie im Block 124 angegeben ist. Dann wird das Modus-Feld des Datenanfangsetiketts der Verschlüsselung untersucht (Block 126), ferner wird einer der alternativen Verarbeitungswege in Abhängigkeit vom Modus-Wert im Datenanfangsetikett gewählt. Falls der Modus keinen der erlaubten Werte besitzt, wird die Übertragung abgebrochen (Block 128).Figure 13 is a flow chart showing the outbound and loopback processing, while Figures 14a-14c are the packet formats of the three possible types of packets received by the RMC interface 22. As shown in Figure 13, parsing of an outbound or loopback packet begins with two pre-checks on packet request header bytes at the beginning of the packet. If an FCS field is present in the packet (block 120) or a cryptographic preamble is not present in the packet (block 122), no further cryptographic processing takes place and the packet is forwarded directly to the MAC interface 20 as indicated in block 124. Then the mode field of the encryption preamble is examined (block 126) and one of the alternative processing paths is chosen depending on the mode value in the preamble. If the mode does not have any of the permitted values, the transmission is aborted (block 128).

Falls der Modus-Wert 00 ist, was eine abgehende Verschlüsselung angibt, wird ein interner Merker gesetzt (TX_ENCR), um anzuzeigen, daß dieser Modus ausgeführt wird (Block 130), wird ein Offset geladen, um den Anfangspunkt der Verschlüsselung anzugeben (Block 132) und wird die Verarbeitung mit dem Parsing des SE_CTRL-Feldes fortgesetzt (Block 134). Die Verarbeitung des SE_CTRL- Feldes stimmt im wesentlichen mit der Verarbeitung dieses Feldes im Empfangsdatenweg (wie in Fig. 8 gezeigt) überein. Die einzigen Unterschiede sind, daß, falls verschiedene Validitätsprüfungen bestanden werden, Merker und Werte für die Verschlüsselung statt für die Entschlüsselung gesetzt werden (Block 114) und daß anstelle der Entschlüsselung des Codes und der Daten im Block 116 eine Verschlüsselung des Codes und der Daten erfolgt. Falls die Validitätsprüfungen nicht bestanden werden, wird anstatt der Entscheidung, daß nicht verschlüsselt wird, die Entscheidung getroffen, die Paketübertragung abzubrechen.If the mode value is 00, which indicates outgoing encryption, an internal flag is set (TX_ENCR) to indicate that this mode is being executed (block 130), an offset is loaded to The first step is to specify the starting point of encryption (block 132) and processing continues with the parsing of the SE_CTRL field (block 134). Processing of the SE_CTRL field is essentially the same as the processing of this field in the receive data path (as shown in Figure 8). The only differences are that if various validity checks are passed, flags and values are set for encryption rather than decryption (block 114) and that instead of decrypting the code and data in block 116, encryption of the code and data is performed. If the validity checks are not passed, instead of deciding not to encrypt, a decision is made to abort the packet transmission.

Falls der Modus-Wert 01 ist, was eine Rückschleifung der Codeverschlüsselung anzeigt, wird ein Merker gesetzt, der dies angibt (der LPBK_KEY-Merker), wie im Block 136 angegeben ist, werden der Offset und das SE_CTRL-Feld geladen (Block 138) und überspringt die Verarbeitung Paketfelder zu dem oder den Verschlüsselungscodes (Block 140). In diesem Verarbeitungsmodus werden die Codes (wie in Fig. 14c gezeigt) bei einem Offsetabstand nach dem Kryptographie-Datenanfangsetikett gefunden. Sie werden unter Verwendung eines vorher gespeicherten Hauptcodes verschlüsselt (Block 142). Das Kryptographie-Datenanfangsetikett wird mit den verschlüsselten Codes zurückgeschleift. Der Rückschleifungsweg entweder zur Knotenprozessorschnittstelle 64 oder zur RMC-Schnittstelle 22 wird durch ein Modusregister festgelegt, das so gesetzt ist, daß es in einem seiner Felder angibt, welcher Rückschleifungsweg verwendet werden soll.If the mode value is 01, indicating loopback of the key encryption, a flag is set to indicate this (the LPBK_KEY flag) as indicated in block 136, the offset and SE_CTRL field are loaded (block 138) and processing skips packet fields to the encryption key(s) (block 140). In this processing mode, the keys (as shown in Figure 14c) are found at an offset distance after the cryptographic preamble. They are encrypted using a previously stored master key (block 142). The cryptographic preamble is looped back with the encrypted keys. The loopback path to either the node processor interface 64 or the RMC interface 22 is determined by a mode register which is set to indicate in one of its fields which loopback path is to be used.

Falls der Moduswert 10 ist, was angibt, daß eine Rückschleifungsverschlüsselungsverarbeitung erforderlich ist, werden zwei Merker gesetzt, um dies anzugeben: ein TX_ENCRYPT-Merker und ein LPBK-Merker, wie im Block 144 angegeben ist. Es wird ein Offsetwert geladen, um den Anfangspunkt der zu verschlüsselnden Daten anzugeben (Block 146), wobei die Verarbeitung mit dem Parsing der SE_CTRL-Übertragung fortgesetzt wird (Block 134). Die Daten im Paket werden der im SE_CTRL-Feld definierten Verschlüsselungsverarbeitung unterworfen, wobei das gesamte Paket längs des bezeichneten Weges zum Knotenprozessor zurückgeschleift wird.If the mode value is 10, indicating that loopback encryption processing is required, two flags are set to indicate this: a TX_ENCRYPT flag and an LPBK flag, as indicated in block 144. An offset value is loaded to indicate the starting point of the data to be encrypted (block 146), and processing continues with the parsing of the SE_CTRL transmission (block 134). The data in the packet is subjected to the encryption processing defined in the SE_CTRL field, with the entire packet being looped back along the designated path to the node processor.

Falls der Modus-Wert 11 ist, was angibt, daß eine Rückschleifungsentschlüsselungsverarbeitung erforderlich ist, sind die gesetzten Merker ein TX_DECRYPT-Merker und der LPBK-Merker, wie im Block 148 angegeben ist. Dann wird die Verarbeitung im Block 146 fortgesetzt, wobei der Rückschleifungsprozeß ähnlich ist, mit der Ausnahme, daß die Daten anstatt der Verschlüsselung einer Entschlüsselung unterworfen werden.If the mode value is 11, indicating that loopback decryption processing is required, the flags set are a TX_DECRYPT flag and the LPBK flag, as indicated in block 148. Then, processing continues in block 146, where the loopback process is similar, except that the data is subjected to decryption instead of encryption.

Aus den Fig. 14a-14c geht hervor, daß für die von der RMC-Schnittstelle 22 empfangenen Informationen drei mögliche Paketformate vorhanden sind. Das erste (Fig. 14a) ist dasjenige eines abgehenden Pakets, für das keine Verschlüsselungsdienste erforderlich sind, wie im Paketanforderungskopfsatz am Beginn des Pakets angegeben ist. Das zweite Format (Fig. 14b) ist dasjenige eines abgehenden oder zurückgeschleiften Datenpakets, für das Verschlüsselungsdienste erforderlich sind. Das Paket enthält ein Kryptographie-Datenanfangsetikett, das für die Vereinfachung der Übertragungs-/Rückschleifungsverarbeitung verwendet wird und das aus dem Paket entnommen wird, bevor eine abgehende Übertragung erfolgt, jedoch im Paket gelassen wird, falls eine Rückschleifung aufgerufen wird. Das dritte Format (Fig. 14c) ist dasjenige, das für die Verschlüsselung eines oder mehrerer Verschlüsselungscodes verwendet wird. Sein Kryptographie- Datenanfangsetikett enthält ein Merker/Offset-Feld und ein Sicherheitssteuerfeld (SE_CTRL-Feld), jedoch keinen Übertragungscode (XMT), da für die Verschlüsselung der Codes, die im Paket folgen, ein Hauptcode verwendet wird. Da es sich hierbei um eine Rückschleifungsoperation handelt, wird das Datenanfangsetikett wiederum zusammen mit dem Paket zurückgeleitet.From Figures 14a-14c, there are three possible packet formats for the information received from the RMC interface 22. The first (Figure 14a) is that of an outgoing packet, for which no encryption services are required, as indicated in the packet request header at the beginning of the packet. The second format (Figure 14b) is that of an outgoing or loopback data packet, for which encryption services are required. The packet contains a cryptographic preamble used to simplify transmit/loopback processing, which is extracted from the packet before an outgoing transmission occurs, but left in the packet if a loopback is invoked. The third format (Figure 14c) is that used for encryption of one or more Its cryptographic preamble contains a flag/offset field and a security control field (SE_CTRL field), but no transmission code (XMT) because a master code is used to encrypt the codes that follow in the packet. Since this is a loopback operation, the preamble is again passed back along with the packet.

Hiermit ist eine Übersicht über die Funktionsweise des Kryptographieprozessors der Erfindung für die Verarbeitung von von der MAC-Schnittstelle 20 empfangenen Paketen für eine mögliche Entschlüsselung und von von der RMC- Schnittstelle 22 empfangenen Paketen entweder für eine Verschlüsselung oder für eine Übertragung oder für eine Rückschleifung zum Knotenprozessor nach der Verschlüsselung oder der Entschlüsselung abgeschlossen. In den folgenden Unterabschnitten werden spezifischere Aspekte der bevorzugten Ausführungsform(en) weiter diskutiert.This concludes an overview of the operation of the cryptographic processor of the invention for processing packets received from MAC interface 20 for possible decryption and packets received from RMC interface 22 for either encryption or transmission or loopback to the node processor after encryption or decryption. More specific aspects of the preferred embodiment(s) are further discussed in the following subsections.

Stochastische Entschlüsselung:Stochastic decryption:

Aus verschiedenen Gründen sollten nicht alle empfangenen Datenpakete im Kryptographieprozessor 16' (Fig. 2) entschlüsselt werden. Es ist möglich, aus den in den verschiedenen Protokollebenen hinzugefügten Paketkopfsätzen zu ermitteln, ob die Daten im Paket entschlüsselt werden müssen. Eine sorgfältige Analyse der Kopfsätze erhöht jedoch die Komplexität des Parsing-Algorithmus erheblich und könnte erfordern, daß der Kryptographieprozessor eine Datenbank von Protokollidentifizierern enthält. Darüber hinaus würden geringere Veränderungen in den Kopfsatznormen entsprechende Veränderungen in der Kryptographieverarbeitung erfordern, um festzustellen, ob eine Entschlüsselung erforderlich ist.For various reasons, not all received data packets should be decrypted in the cryptographic processor 16' (Fig. 2). It is possible to determine from the packet headers added at the various protocol levels whether the data in the packet needs to be decrypted. However, careful analysis of the headers significantly increases the complexity of the parsing algorithm and may require the cryptographic processor to include a database of protocol identifiers. In addition, minor changes in the header standards would require corresponding changes in the cryptographic processing to determine whether decryption is required.

Um eine erschöpfende Kopfsatzanalyse oder Parsingzeit zu vermeiden und um den Bedarf einer kontinuierlichen Aktualisierung des Kryptographieprozessors zu minimieren, entscheidet der Prozessor auf stochastischer Basis nach einer nicht vollständigen Analyse der Paketkopfsätze, ob eine Entschlüsselung erforderlich ist. Grundsätzlich werden Prüfungen für eine begrenzte Anzahl von Protokollformaten vorgenommen, wobei die Entschlüsselung als Ergebnis dieser oder anderer verhältnismäßig einfacher Prüfungen der Kopfsatzinformationen begonnen oder umgangen wird. Falls die Entscheidung fehlerhaft getroffen wird, werden entweder die Paketdaten entschlüsselt, wenn sie nicht hätten entschlüsselt werden sollen, oder die Paketdaten werden nicht entschlüsselt, obwohl sie hätten entschlüsselt werden sollen. Das fälschlich entschlüsseite Paket wird zur nächsthöheren Protokollebene weitergeleitet und eventuell als fälschlich entschlüsselt erkannt. Das Paket wird dann durch den Kryptographieprozessor "zurückgeschleift", der die Entschlüsselung rückgängig macht und das Datenpaket erneut durch die RMC- Schnittstelle 22 zurückleitet.To avoid exhaustive header analysis or parsing time and to minimize the need for continuous updating of the cryptographic processor, the processor decides on a stochastic basis, after an incomplete analysis of the packet headers, whether decryption is required. Basically, checks are made for a limited number of protocol formats, with decryption initiated or bypassed as a result of these or other relatively simple checks of the header information. If the decision is made incorrectly, either the packet data is decrypted when it should not have been decrypted, or the packet data is not decrypted when it should have been. The incorrectly decrypted packet is forwarded to the next higher protocol level and may be detected as incorrectly decrypted. The packet is then "looped back" through the cryptographic processor, which undoes the decryption and re-routes the data packet through the RMC interface 22.

Der Rückschleifungsprozeß ist in der Kryptographieverarbeitung offensichtlich ineffizient, dies ist jedoch für den Gesamtprozeß kein bedeutsamer Nachteil, weil die Wahrscheinlichkeit solcher Rückschleifungen auf einem sehr niedrigen Pegel gehalten wird. In der beschriebenen besonderen Implementierung und bei vorgegebenen üblichen Protokollen liegt die erwartete Wahrscheinlichkeit in der Größenordnung von 1 zu 224.The loopback process is obviously inefficient in cryptographic processing, but this is not a significant disadvantage for the overall process because the probability of such loopbacks is kept at a very low level. In the particular implementation described and given common protocols, the expected probability is on the order of 1 in 224.

Eine Schwierigkeit bei diesem Lösungsversuch besteht, wie aus den spezifischen Paketformaten (Fig. 9-12) hervorgeht, darin, daß das Format eines verschlüsselten Datenpakets nicht nur mit Kopfsatzinformationen beginnt, sondern in Abhängigkeit vom Typ der angeforderten Verschlüsselung mit einem speziellen Feld endet, das als Integritätsprüfwert (integrity check value, ICV) bezeichnet wird. Dieses Feld ist ein speziell berechneter Wert analog zu einer Prüfsumme, der am Verschlüsselungsende der Übertragung berechnet wird und am Empfangsende erneut berechnet wird. Daher enthält ein verschlüsseltes Paket das ICV-Feld am Ende der verschlüsselten Daten, ein unverschlüsseltes Paket enthält dieses Feld jedoch nicht. Im Fall einer fälschlichen Entschlüsselung muß das gesamte Datenpaket einschließlich des fälschlich als das ICV-Feld interpretierten Abschnitts wiederherstellbar sein.One difficulty with this solution, as can be seen from the specific packet formats (Fig. 9-12), is that the format of an encrypted data packet does not only begin with header information, but depending on the type of encryption requested ends with a special field called the integrity check value (ICV). This field is a specially calculated value analogous to a checksum that is calculated at the encryption end of the transmission and recalculated at the receiving end. Therefore, an encrypted packet contains the ICV field at the end of the encrypted data, but an unencrypted packet does not contain this field. In the event of erroneous decryption, the entire data packet, including the section mistakenly interpreted as the ICV field, must be recoverable.

Damit die Kryptographieverarbeitung des Pakets vollständig rückgängig gemacht werden kann, ist eine spezielle Handhabung des ICV erforderlich, um sicherzustellen, daß während einer fälschlichen Entschlüsselung keine Informationen verloren gehen. Während der Entschlüsselung wird eine zwischen dem berechneten ICV und dem empfangenen ICV Exklusiv-ODER-Operation ausgeführt und wird das Ergebnis im ICV-Feld des entschlüsselten Pakets angeordnet. Die anschließende Knotenverarbeitung kann prüfen, ob das ICV- Feld Null ist, um zu verifizieren, daß der ICV im verschlüsselten Paket korrekt ist.In order to fully reverse the cryptographic processing of the packet, special handling of the ICV is required to ensure that no information is lost during a false decryption. During decryption, an exclusive OR operation is performed between the calculated ICV and the received ICV and the result is placed in the ICV field of the decrypted packet. Subsequent node processing can check whether the ICV field is zero to verify that the ICV in the encrypted packet is correct.

Falls die Entschlüsselung fälschlich erfolgt ist, wird das Paket durch die Verschlüsselungsvorrichtung zurückgeschleift. Der Verschlüsselungsalgorithmus ist so definiert, daß er die Schritte des Berechnens des ICV-Werts und eine Exklusiv-ODER-Verknüpfung des Ergebnisses mit den im ICV-Feld des Klartextpakets vorhandenen Daten enthält. In einem abgehenden Paket sind diese Daten stets Null, so daß der ICV im übertragenen Paket stets der berechnete ICV ist. In einem Paket, das zurückgeschleift wird, gehen diese Daten aus der Exklusiv-ODER-Verknüpfung der ursprünglichen Daten mit dem berechneten ICV hervor, so daß die Verschlüsselungsoperation die fälschliche Entschlüsselungsoperation exakt rückgängig macht.If the decryption is incorrect, the packet is looped back through the encryption device. The encryption algorithm is defined to include the steps of calculating the ICV value and exclusive-ORing the result with the data present in the ICV field of the plaintext packet. In an outgoing packet, this data is always zero, so the ICV in the transmitted packet is always the calculated ICV. In a packet that is looped back, this data is obtained by exclusive-ORing the original data with the calculated ICV. so that the encryption operation exactly reverses the false decryption operation.

Handhabung kurzer Blöcke bei der Entschlüsselung:Handling short blocks during decryption:

Die Kryptographieverarbeitung, die die Datenverschlüsselungsnorm (DES) verwendet, erfordert, daß in der bevorzugten Ausführungsform Daten in Blöcken von jeweils acht Bytes in den DES Prozessor eingegeben werden: Schlüsselblockverkettung (Cipher Block Chaining, CBC). Daher sollte ein übertragenes Paket, das der Verschlüsselung unterworfen wird, Vielfache von acht Bytes enthalten. Am Verschlüsselungsende der Übertragung ist es verhältnismäßig einfach, diese Anforderung zu erfüllen. Am Entschlüsselungsende ist es jedoch nicht möglich, die Länge eines ankommenden Pakets zum Zeitpunkt des Beginns der Entschlüsselung zu kennen. Da das Hauptziel dieser Erfindung ist, eine Echtzeitverschlüsselung und eine Echtzeitentschlüsselung zu schaffen, darf die Entschlüsselung nicht verzögert werden, bis ein vollständiges Paket von Daten empfangen worden ist.Cryptographic processing using the Data Encryption Standard (DES) requires that, in the preferred embodiment, data be entered into the DES processor in blocks of eight bytes each: Cipher Block Chaining (CBC). Therefore, a transmitted packet subject to encryption should contain multiples of eight bytes. At the encryption end of the transmission, it is relatively easy to meet this requirement. At the decryption end, however, it is not possible to know the length of an incoming packet at the time decryption begins. Since the main goal of this invention is to provide real-time encryption and decryption, decryption must not be delayed until a complete packet of data has been received.

Es gibt zwei Situationen, in denen die Entschlüsselung an einem Paket begonnen wird und die Länge des Entschlüsselungsabschnitts kein Vielfaches von acht Bytes ist. Eine dieser Situationen ist die Situation einer fälschlichen Entschlüsselung, in der die Entschlüsselung auf der Grundlage einer falschen stochastischen Bestimmung, daß das ankommende Paket verschlüsselt ist, begonnen wird. Wenn das Paketende erreicht wird, wird dann festgestellt, daß ein Block mit Nichtstandardgröße für die Verarbeitung übrigbleibt. Die andere Situation ist diejenige, in der eine verschlüsselte Nachricht von einem Zwischenrouter in kleinere Pakete segmentiert worden ist, um die Netzzwänge zu erfüllen, wobei der verschlüsselte Abschnitt der resultierenden Fragmente kein Vielfaches der Blockgröße ist. Eine hinsichtlich Vertraulichkeit und Integrität oder nur hinsichtlich Integrität verschlüsselte Nachricht muß als einzelnes Element entschlüsselt werden, da die Nachricht an ihrem Ende einen Integritätsprüfwert (ICV) enthält, der aus dem Inhalt der gesamten Nachricht erzeugt wird. Die anschließende Segmentierung der verschlüsselten Nachricht trennt das ICV-Feld von einigen der verschlüsselten Daten, so daß die Integritätsprüfung nicht abgeschlossen werden kann, bis das ICV-Feld im letzten Segment der Nachricht empfangen worden ist. Daher sollten die segmentierten Nachrichten nicht als getrennte Segmente entschlüsselt werden, wobei jeder Versuch der Entschlüsselung eines solchen Nachrichtensegments eine weitere Form einer falschen Entschlüsselung ist.There are two situations where decryption is started on a packet and the length of the decryption portion is not a multiple of eight bytes. One of these situations is the spurious decryption situation, where decryption is started based on an incorrect stochastic determination that the incoming packet is encrypted. When the end of the packet is reached, it is then found that a non-standard sized block remains for processing. The other situation is where an encrypted message has been segmented into smaller packets by an intermediate router to meet network constraints, where the encrypted portion of the resulting fragments is not a multiple of the block size. A message encrypted for confidentiality and integrity, or for integrity only, must be decrypted as a single element because the message contains at its end an integrity check value (ICV) generated from the contents of the entire message. Subsequent segmentation of the encrypted message separates the ICV field from some of the encrypted data so that the integrity check cannot be completed until the ICV field in the last segment of the message has been received. Therefore, the segmented messages should not be decrypted as separate segments, with any attempt to decrypt such a message segment being another form of false decryption.

Wenn während der Entschlüsselung eine Nichtstandardblockgröße angetroffen wird, wird der Nichtstandardblock ohne Entschlüsselung weitergeleitet. Der Knotenprozessor erkennt, daß ein Nichtstandardblock empfangen worden ist, entweder durch den Status eines spezifischen Merkers für diesen Zweck oder durch Ausführen einer Längenprüfung der empfangenen Datenblöcke Der Knotenprozessor muß dann einen Korrigiervorgang unter Verwendung des Rückschleifungsmerkmals des Kryptographieprozessors ausführen, um das gesamte empfangene Paket in diejenige Form zurückzutransformieren, in der es vor der fälschlichen Entschlüsselung empfangen wurde. Dann wird zu Beginn das fälschlich entschlüsselte Paket zum Kryptographieprozessor zurückgeschleift, um das gesamte Paket mit Ausnahme des letzten Nichtstandardblocks (der nicht entschlüsselt wurde) erneut zu verschlüsseln. Falls dieses erneut verschlüsselte Paket ein Segment einer segmentierten Nachricht ist, muß der Knotenprozessor dieses erneut verschlüsselte Segment mit anderen Segmenten kombinieren, die vor oder nach diesem einen ankommen, und die gesamte Nachricht als einzelne Einheit für die Entschlüsselung und die Integritätsprüfung im Kryptographieprozessor zurückschleifen.If a non-standard block size is encountered during decryption, the non-standard block is forwarded without decryption. The node processor detects that a non-standard block has been received, either by the status of a flag specific to that purpose or by performing a length check on the received data blocks. The node processor must then perform a correction operation using the loopback feature of the cryptographic processor to transform the entire received packet back to the form in which it was received before the erroneous decryption. Then, initially, the erroneously decrypted packet is looped back to the cryptographic processor to re-encrypt the entire packet except for the last non-standard block (which was not decrypted). If this re-encrypted packet is a segment of a segmented message, the node processor must combine this re-encrypted segment with other segments arriving before or after this one and accept the entire message as a single unit for decryption. and loop back the integrity check in the cryptographic processor.

Es könnte vermutet werden, daß diese verhältnismäßig komplexe Verwendung der Rückschleifungsprozedur vermieden werden kann, falls segmentierte Nachrichten beim Empfang im Kryptographieprozessor zuverlässig erkannt werden könnten. Unglücklicherweise würde die Verarbeitung jeder Nachricht einschließlich einer erschöpfenden Segmentierungsprüfung in den Entwurf eine zu große Komplexität einführen und in die Protokollnormen unannehmbare Abhängigkeiten von Änderungen einführen. Statt dessen beruht sie auf der Verwendung einer schnellen, jedoch unvollständigen Segmentierungsprüfung, wobei die Wahrscheinlichkeit der Nichterfassung von segmentierten Nachrichten verhältnismäßig niedrig gehalten wird.It might be thought that this relatively complex use of the loopback procedure could be avoided if segmented messages could be reliably detected on receipt in the cryptographic processor. Unfortunately, processing each message including an exhaustive segmentation check would introduce too much complexity into the design and introduce unacceptable change dependencies into the protocol standards. Instead, it relies on the use of a fast but incomplete segmentation check, keeping the probability of missing segmented messages relatively low.

Rahmenstatus-Codierung:Frame status coding:

In vielen Kommunikationsprotokollen ist im Endteil des Pakets ein Statusbyte enthalten, das Statusinformationen, die für das besondere Protokoll spezifisch sind, trägt. Beispielsweise enthält der Rahmenstatus in der FDDI ein Bit (E) für erfaßten Fehler, ein Bit (A) für erkannte Adresse und ein Bit (C) für kopierten Rahmen. Andere Protokolle können andere protokollspezifische Statusbits im Rahmenstatus-Byte erfordern. In einigen Fällen einschließlich der Pipeline-Kommunikationsarchitekturen besteht ein Bedarf am Transport zusätzlicher Informationen mit dem Rahmen, wobei es wünschenswert ist, dies ohne Verwendung zusätzlicher Rahmenstatus-Bytes oder durch anderweitige Umformatierung des Datenrahmens auszuführen. Ein typisches Rahmenstatus-Byte besitzt ein Zählfeld, das die Anzahl der enthaltenen Statusbits angibt, und ein Statusbit-Feld. Zum Beispiel: In many communications protocols, a status byte is included in the tail of the packet that carries status information specific to the particular protocol. For example, the frame status in FDDI includes an error detected bit (E), an address detected bit (A), and a frame copied bit (C). Other protocols may require other protocol-specific status bits in the frame status byte. In some cases, including pipelined communications architectures, there is a need to carry additional information with the frame, and it is desirable to do this without using additional frame status bytes or otherwise reformatting the data frame. A typical frame status byte has a count field indicating the number of status bits included, and a status bit field. For example:

In diesem Statusbyte enthalten die Bits 5-7 einen Zählstand der Anzahl der protokollspezifischen Statusbits, die in den Bits 4, 3, 2 und 1 des Statusbytes enthalten sind. Wie in der Tabelle angegeben ist, hat beispielsweise ein Zählstand von 1 in den Bits 5-7 die Bedeutung, daß sich an der Bitposition 4 ein protokollspezifisches Statusbit PS1 befindet. Ein Zählstand von 4 (100) in den Bits 5-7 gibt an, daß die Bits 4-1 protokollspezifische Statusbits PS1, PS2, PS3 bzw. PS4 enthalten. In diesem Statusbyte-Format ist Raum für ein zusätzliches Bit an der Bitposition Null, das für zusätzliche Statusinformationen verwendet werden kann. Ein Aspekt schafft einen Weg zum Speichern zweier zusätzlicher Statusinformationen ohne Veränderung des Formats des Statusbytes und ohne Verwendung zusätzlicher Statusbytes.In this status byte, bits 5-7 contain a count of the number of protocol-specific status bits contained in bits 4, 3, 2 and 1 of the status byte. For example, as indicated in the table, a count of 1 in bits 5-7 means that there is a protocol-specific status bit PS1 at bit position 4. A count of 4 (100) in bits 5-7 indicates that bits 4-1 contain protocol-specific status bits PS1, PS2, PS3 and PS4, respectively. In this status byte format, there is room for an additional bit at bit position zero that can be used for additional status information. One aspect provides a way to store two additional pieces of status information without changing the format of the status byte and without using additional status bytes.

Zwei zusätzliche Statusbits, die in der im folgenden beschriebenen Weise erhalten werden, werden im Kryptographieprozessor verwendet, um zum Knotenprozessor die folgenden Bedeutungen zu transportieren:Two additional status bits, obtained in the manner described below, are used in the cryptographic processor to convey the following meanings to the node processor:

00: keine Entschlüsselung ausgeführt,00: no decryption performed,

01: ISO_IP-Entschlüsselung ausgeführt, keine Fehler,01: ISO_IP decryption performed, no errors,

10: Nicht-ISO IP-Entschlüsselung ausgeführt, keine Fehler,10: Non-ISO IP decryption performed, no errors,

11: Entschlüsselung (Ende-zu-Ende oder Sicherung) ausgeführt und Fehler erfaßt. 11: Decryption (end-to-end or backup) performed and errors detected.

AS0 ist ein zusätzliches Statusbit, das an der Bitposition 0 des Statusbytes gespeichert ist. AS1 ist ein zweites zusätzliches Statusbit, das an zwei Bitpositionen des Statusworts in Abhängigkeit vom Wert des Zählstandfeldes (Bits 5-7) gespeichert wird. Wenn der Zählstand geringer als 4 ist, wie durch eine Null an der Bitposition 7 angegeben wird, wird der AS1-Status an der Bitposition 1 des Statusbytes gespeichert. Wenn jedoch der Zählstand 4 oder größer ist, wie durch eine 1 an der Bitposition 7 angegeben wird, wird das Bit 1 für den PS4- Status verwendet, wobei der AS1-Status anschließend an der Bitposition 5 des Zählstands gespeichert wird, der nicht benötigt wird, wenn der Zählstand 4 ist.AS0 is an additional status bit stored at bit position 0 of the status byte. AS1 is a second additional status bit stored at two bit positions of the status word depending on the value of the count field (bits 5-7). If the count is less than 4, as indicated by a zero at bit position 7, the AS1 status is stored at bit position 1 of the status byte. However, if the count is 4 or greater, as indicated by a 1 at bit position 7, bit 1 is used for the PS4 status, with the AS1 status subsequently stored at bit position 5 of the count, which is not needed when the count is 4.

Dieses überarbeitete Statusbyte-Format schafft die Speicherung zweier zusätzlicher Statusbits im Rahmenstatus- Byte ohne Bedarf an zusätzlichen Statusbytes und bei einer minimalen Änderung der Weise, in der das Statusbyte decodiert wird. Für protokollspezifische Statusinformationen wird das Byte weitgehend wie vorher decodiert, mit der Ausnahme, daß die Zählstände zwischen 4 und 7 sämtlich so interpretiert werden, daß sie das Vorhandensein von vier protokollspezifischen Statusbits angeben. Das Decodieren der zusätzlichen Statusbits ist ebenfalls verhältnismäßig einfach. Das Statusbit AS0 befindet sich stets an der Bitposition 0, während sich das Statusbit AS1 an der Bitposition 1 befindet, falls der Zählstand 0- 3 beträgt, und sich an der Bitposition 5 oder alternativ an der Bitposition 6 befindet, falls der Zählstand 4-7 ist.This revised status byte format provides for the storage of two additional status bits in the frame status byte without the need for additional status bytes and with minimal change in the way the status byte is decoded. For protocol-specific status information, the byte is decoded largely as before, with the exception that the counts between 4 and 7 are all interpreted to indicate the presence of four protocol-specific status bits. Decoding the additional status bits is also relatively simple. Status bit AS0 is always at bit position 0, while status bit AS1 is at bit position 1 if the count is 0- 3 and is located at bit position 5 or alternatively at bit position 6 if the count is 4-7.

Abbruchverarbeitung in Pipeline-Kommunikation:Abort processing in pipeline communication:

Wenn eine Kryptographieverarbeitung in Echtzeit in Serie mit der MAC-Verarbeitung und der Paketspeicherverarbeitung ausgeführt wird, ist eine Pipeline von drei oder mehr Verarbeitungsmodulen- oder vorrichtungen vorhanden. In Situationen, in denen eine der Vorrichtungen die Verarbeitung abbricht, ist eine kritische Frage hinsichtlich des Betriebs der Vorrichtungen, ob die Abbruchbedingung an die anderen, benachbarten verarbeitenden Vorrichtungen in derselben Pipeline weitergeleitet werden sollte. Ein typischer Lösungsversuch besteht darin, die Abbruchbedingung an die vorhergehenden Vorrichtungen weiterzuleiten.When real-time cryptographic processing is performed in series with MAC processing and packet storage processing, a pipeline of three or more processing modules or devices is present. In situations where one of the devices aborts processing, a critical question regarding the operation of the devices is whether the abort condition should be propagated to the other, adjacent processing devices in the same pipeline. A typical attempt at a solution is to propagate the abort condition to the preceding devices.

Gemäß diesem Aspekt wird die Abbruchbedingung dann und nur dann an die vorhergehenden Vorrichtungen weitergeleitet, wenn ein mit dem Ausgangspunkt der Abbruchbedingung in Beziehung stehendes Datenpaket durch die vorhergehende Vorrichtung noch immer verarbeitet wird. Mit anderen Worten, falls das Paket, das momentan von der Vorrichtung verarbeitet wird, die die Abbruchbedingung eingeleitet hat, bereits von der vorhergehenden Vorrichtung vollständig verarbeitet worden ist, gibt es keinen Grund, die Abbruchbedingung in Rückwärtsrichtung weiterzuleiten.According to this aspect, the abort condition is propagated to the preceding devices if and only if a data packet related to the origin of the abort condition is still being processed by the preceding device. In other words, if the packet currently being processed by the device that initiated the abort condition has already been completely processed by the preceding device, there is no reason to propagate the abort condition in the backward direction.

Es werden beispielsweise drei Vorrichtungen betrachtet, die mit Vorrichtung Nr. 1, Vorrichtung Nr. 2 und Vorrichtung Nr. 3 bezeichnet sind und sequentiell gekoppelt sind, um ankommende Kommunikationspakete, die von der Vorrichtung Nr. 1 empfangen werden und an die Vorrichtungen Nr. 2 und Nr. 3 geschickt werden, zu verarbeiten.For example, consider three devices, designated Device #1, Device #2, and Device #3, sequentially coupled to process incoming communication packets received by Device #1 and sent to Devices #2 and #3.

Abgehende Pakete werden von der Vorrichtung Nr. 3 zur Vorrichtung Nr. 2 und zur Vorrichtung Nr. 1 geschickt. Es wird angenommen, daß während der Ankunfts- oder Empfangsoperation die Vorrichtungen Nr. 2 und Nr. 3 dasselbe Datenpaket verarbeiten. Falls die Vorrichtung Nr. 3 eine Abbruchbedingung erzeugt und sie an die Vorrichtung Nr. 2 überträgt, bricht auch die Vorrichtung Nr. 2 die Verarbeitung des momentanen Pakets ab. Falls jedoch die Vorrichtung Nr. 1 momentan ein anderes Paket verarbeitet, wird das Abbruchsignal nicht an die Vorrichtung Nr. 1 geschickt.Outgoing packets are sent from device #3 to device #2 and device #1. It is assumed that during the arrival or reception operation, devices #2 and #3 are processing the same data packet. If device #3 generates an abort condition and transmits it to device #2, device #2 also aborts processing the current packet. However, if device #1 is currently processing another packet, the abort signal is not sent to device #1.

Daher folgt die Abbruchverarbeitung in einer Vorrichtung diesen Prozedurschritten, wie in Fig. 15 gezeigt ist:Therefore, the termination processing in a device follows these procedure steps as shown in Fig. 15:

1) ist von der nächsten Vorrichtung in Vorwärtsrichtung ein Abbruchsignal empfangen worden? Wenn ja, gehe zum Schritt 2).1) Has an abort signal been received from the next device in the forward direction? If so, go to step 2).

2) Abbruchverarbeitung. Verarbeitet die nächste Vorrichtung in Rückwärtsrichtung momentan dasselbe Paket wie diese Vorrichtung?2) Abort processing. Is the next device in the reverse direction currently processing the same packet as this device?

3) Wenn und nur dann, wenn die Antwort im Schritt 2) positiv ist, leite das Abbruchsignal an nächste Vorrichtung in Rückwärtsrichtung weiter.3) If and only if the answer in step 2) is positive, pass the abort signal to the next device in the reverse direction.

Dieses Verfahren der Handhabung der Weiterleitung von Abbruchbedingungen verbessert die Netzleistung, weil eine Rückübertragung von Datenpaketen, die unnötigerweise abgebrochen würde, bei Verwendung in anderer Weise vermieden wird.This method of handling forwarding abort conditions improves network performance because retransmission of data packets that would be unnecessarily aborted if used in another way is avoided.

Verschlüsselungsmechanismus unter Verwendung eines Kryptographie-Datenanfangsetiketts:Encryption mechanism using a cryptography prefix:

Wie bereits erwähnt worden ist, gibt es für verschiedene Protokollschichten in der Netzkommunikation mehrere Paketformate. Der Kryptographieprozessor steht vor einem erheblichen Problem sowohl am Sende- als auch am Empfangsende einer Nachricht, weil der Abschnitt eines Nachrichtenpakets, der verschlüsselt oder entschlüsselt werden soll, lokalisiert werden muß. Ein Weg hierfür wäre, den Kryptographieprozessor mit vollständigen Definitionen sämtlicher Paketformate, die angetroffen werden können, zu versehen. Dieser Lösungsversuch weist zwei Hauptnachteile auf. Zunächst wäre die Verarbeitungszeit, die für die Analyse der Paketformate in jeder Phase der Verarbeitung erforderlich wäre, unannehmbar hoch. Zweitens würde eine solche Lösung eine fortgesetzte Überarbeitung erfordern, um neue oder überarbeitete Protokollpaket-Formate aufzunehmen.As mentioned previously, there are several packet formats for different protocol layers in network communications. The cryptographic processor faces a significant problem at both the sending and receiving ends of a message because of the need to locate the portion of a message packet that is to be encrypted or decrypted. One way to do this would be to provide the cryptographic processor with complete definitions of all packet formats that may be encountered. This attempted solution has two main disadvantages. First, the processing time required to analyze the packet formats at each stage of processing would be unacceptably high. Second, such a solution would require continued revision to accommodate new or revised protocol packet formats.

Am Empfangs- oder Entschlüsselungsende einer Übertragung ist dieses Problem zum Teil durch Verwenden eines stochastischen Verfahrens gelöst worden, bei dem das Format eines ankommenden Datenpakets schnell, jedoch in begrenztem Ausmaß analysiert wird, wobei die Entschlüsselung nur begonnen wird, falls die Wahrscheinlichkeit so hoch ist, daß sie erforderlich ist. Falsche Entschlüsselungen werden durch eine Rückschleifungsprozedur gehandhabt, in der ein fehlerhaft entschlüsseltes Paket erneut in die Form verschlüsselt wird, in der es empfangen worden ist. Ein weiteres Merkmal, das nun beschrieben wird, zielt auf dieses Problem am Sendeende einer Übertragung.At the receiving or decrypting end of a transmission, this problem has been solved in part by using a stochastic procedure in which the format of an incoming data packet is analyzed quickly but to a limited extent, with decryption only being initiated if the probability is high enough to require it. False decryptions are handled by a loopback procedure in which an incorrectly decrypted packet is re-encrypted into the form in which it was received. Another feature now described addresses this problem at the transmitting end of a transmission.

Die Lösung für abgehende Nachrichtenpakete besteht darin, ein spezielles Kryptographie-Datenanfangsetikett zu verwenden, das an das Nachrichtenpaket angehängt wird, wenn eine Verschlüsselung erwünscht ist. Das Kryptographie-Datenanfangsetikett enthält Schlüsselcodeinforrnationen und einen Offset (d. h. einen Zeiger), der den Anfangspunkt im Paket angibt, bei dem die Verschlüsselung beginnen soll. Somit kann der Kryptographieprozessor dazwischenliegende Kopfsatzinformationen unabhängig von ihrem Format und Protokoll überspringen und mit der Verschlüsselung an der Stelle beginnen, die durch den Verschlüsselungskopfsatz angegeben wird. Der Kopfsatz beeinflußt die in einem Netz übertragenen Paketformate nicht, weil er vor der Übertragung aus dem Paket entfernt wird.The solution for outgoing message packets is to use a special cryptographic prefix that is appended to the message packet, when encryption is desired. The cryptographic preamble contains key code information and an offset (ie, a pointer) indicating the starting point in the packet at which encryption should begin. This allows the cryptographic processor to skip intermediate header information, regardless of its format and protocol, and begin encryption at the point indicated by the encryption header. The header does not affect the packet formats transmitted on a network because it is removed from the packet before transmission.

Grundsätzlich verhindert dieses Merkmal die Übertragung von fälschlich verschlüsselten Paketen im Netz. Außerdem vereinfacht es die Implementierung des Kryptographieprozessors in hohem Maß, da kein Paket einer vollständigen Parsing-Operation oder Analyse unterworfen werden muß, um die Stelle der zu verschlüsselnden Daten zu finden.Basically, this feature prevents the transmission of incorrectly encrypted packets over the network. In addition, it greatly simplifies the implementation of the cryptographic processor, since no packet has to be subjected to a complete parsing operation or analysis to find the location of the data to be encrypted.

Das Kryptographie-Datenanfangsetikett hat das folgende Format: The cryptographic prefix has the following format:

Das Merker/Offset-Feld besteht aus vier Bits von Merkerinformationen und aus einem 12-Bit-Offset, der die Anzahl der Bytes angibt, die übersprungen werden sollen, bevor mit der Kryptographieoperation begonnen wird. Die Merkerbits enthalten ein für die Vorrichtung spezifisches Bit, das in den meisten Fällen null ist, und ein Dreibit- Modusfeld, das den Typ der auszuführenden Verschlüsselungsoperation angibt. Der Modus kann sein:The flag/offset field consists of four bits of flag information and a 12-bit offset that indicates the number of bytes to skip before beginning the cryptographic operation. The flag bits contain a device-specific bit, which is zero in most cases, and a three-bit mode field that indicates the type of cryptographic operation to be performed. The mode can be:

0: abgehende Verschlüsselung (keine Rückschleifung);0: outgoing encryption (no loopback);

1: Rückschleifung einer CODE-Verschlüsselung;1: Looping back a CODE encryption;

2: Rückschleifung einer Verschlüsselung;2: Looping back an encryption;

3: Rückschleifung einer Entschlüsselung;3: Looping back a decryption;

4: Rückschleifung nur des ICV.4: Looping back of the ICV only.

Das SE_CTRL-Feld definiert den Typ des Kryptographieprozesses und besitzt Felder, die eine Vertraulichkeitsverschlüsselung, eine Integritätsverschlüsselung, den Typ des Kryptographiealgorithmus (DES oder andere), den spezifischen verwendeten Kryptographiealgorithmus-Modus (wie etwa ECB, CFB oder CBC) und die Größe des zu verwendenden zyklisch redundanten Codes (CRC) angeben. Der übertragene Code ist ein 8-Byte-Feld, das den für die Verschlüsselung verwendeten Schlüssel definiert.The SE_CTRL field defines the type of cryptography process and has fields that specify a confidentiality cipher, an integrity cipher, the type of cryptographic algorithm (DES or other), the specific cryptographic algorithm mode used (such as ECB, CFB or CBC) and the size of the cyclic redundant code (CRC) to be used. The transmitted code is an 8-byte field that defines the key used for encryption.

Das Kryptographie-Datenanfangsetikett enthält sämtliche Informationen, die für die Lokalisierung der Daten, die verschlüsselt werden sollen, und für die Bestimmung des erforderlichen Verschlüsselungstyps benötigt werden, unabhängig vom Paketformat, der von den verschiedenen Protokollen verwendet wird. Die Verwendung des Kryptographie-Datenanfangsetiketts verhindert die Übertragung von fälschlich verschlüsselten Paketen im Netz. Weiterhin vereinfacht das Vorliegen des Datenanfangsetiketts die für die Verschlüsselung benötigte Hardware, da das gesamte Paket keiner Parsing-Operation unterworfen werden muß.The cryptographic prefix contains all the information needed to locate the data to be encrypted and to determine the type of encryption required, regardless of the packet format used by the various protocols. The use of the cryptographic prefix prevents the transmission of incorrectly encrypted packets on the network. Furthermore, the presence of the prefix simplifies the hardware required for encryption, since the entire packet does not have to be subjected to a parsing operation.

Verwendung von programmierbaren Registern zur Erleichterung der Entschlüsselung:Use of programmable registers to facilitate decryption:

In der Kryptographieverarbeitung der empfangenen Pakete enthalten die benötigten Basisinformationen die Lokalisierung der entschlüsselten Daten im Paket und die Steuerung für die auszuführende Entschlüsselung wie etwa den Entschlüsselungscode und den Verschlüsselungsmodus. Das oben diskutierte Datenanfangspaket für die Verschlüsselung steht am Empfangsende der Übertragung nicht zur Verfügung, da es vor der Übertragung im Netz entfernt wurde.In the cryptographic processing of the received packets, the required basic information includes the location of the decrypted data in the packet and the control for the decryption to be performed, such as the Decryption key and encryption mode. The encryption preamble discussed above is not available at the receiving end of the transmission because it was removed in the network before transmission.

Diese Situation wird durch die Tatsache kompliziert, daß die Normen bezüglich der Verschlüsselung in Netzen noch immer in der Entwicklung sind. Noch besteht ein unmittelbarer Bedarf an Verschlüsselungs-Hardware. Ein in der Sicherungsschicht verschlüsseltes Paket enthält notwendig ein Feld von Informationen, die die Pakete als solche Pakete identifizieren, die eine Kryptographieverarbeitung erfordern. Wenigstens für eines der in der Entwicklung befindlichen Protokolle (SILS) ist die Lokalisierung dieses identifizierenden Feldes im Paket noch nicht mit Sicherheit festgelegt. Eine weitere Unsicherheit ist die Lokalisierung des Beginns der verschlüsselten Daten im Paket.This situation is complicated by the fact that the standards regarding encryption in networks are still under development. There is still an immediate need for encryption hardware. A packet encrypted at the data link layer necessarily contains a field of information identifying the packets as those requiring cryptographic processing. For at least one of the protocols under development (SILS), the location of this identifying field in the packet is not yet determined with certainty. Another uncertainty is the location of the start of the encrypted data in the packet.

Um diese Probleme zu beseitigen, sieht ein Merkmal der vorliegenden Erfindung vor, daß der Kryptographieprozessor drei programmierbare Register enthält, die umfassen: (a) einen Offset vom Beginn des Sicherungskopfsatzes (oder vom Beginn des MAC-Kopfsatzes) zu einem Feld, das den Kryptographieidentifizierer enthält, (b) den Wert des Identifizierers, der vorliegen sollte, um das eine Kryptographieverarbeitung erforderte Paket für ein besonderes Protokoll zu identifizieren und Cc) einen Offsetwert, der den Beginn der verschlüsselten Daten angibt (den Offset in bezug auf das Identifiziererfeld zu einem weiteren Referenzpunkt im Paket).To overcome these problems, a feature of the present invention provides that the cryptographic processor includes three programmable registers comprising: (a) an offset from the beginning of the security header (or from the beginning of the MAC header) to a field containing the cryptographic identifier, (b) the value of the identifier that should be present to identify the packet requiring cryptographic processing for a particular protocol, and (c) an offset value indicating the beginning of the encrypted data (the offset with respect to the identifier field to another reference point in the packet).

Die drei Hardware-Register werden mit Offset- und Identifiziererwerten initialisiert, die erforderlich sind, um eine vorweggenommene Verschlüsselungsnorm zu erfüllen, sie können jedoch, falls erforderlich, bequem geändert werden, falls die Norm überarbeitet wird. Somit kann die Kryptographie-Hardware ohne weiteres an viele verschiedene Verschlüsselungsnormen angepaßt werden.The three hardware registers are initialized with offset and identifier values required to meet an anticipated encryption standard, however, they can be easily changed if necessary if the standard is revised. This allows the cryptographic hardware to be easily adapted to many different encryption standards.

Kryptographieverarbeitung im Nur-Integrität-Modus:Cryptographic processing in integrity-only mode:

Bei einer Nur-Integrität-Verschlüsselung wird ein Datenpaket im Klartext, d. h. ohne Verschlüsselung, übertragen, im übertragenen Paket ist jedoch ein Integritätsprüfwert (ICV) enthalten, um die Integrität oder Echtheit der Daten sicherzustellen. Wenn ein solches Paket einer Rückschleifungsprozedur unterworfen wird, werden die Klartextdaten unnötig zurückgeschleift. Gemäß diesem Merkmal werden in Nur-Integrität-Rückschleifungsprozeduren nur das ICV-Feld und die den Daten vorhergehenden Kopfsätze zurückgeschleift. Dadurch wird die Datenmenge, die zurückgeschleift wird, reduziert, ferner wird die Systemleistung verbessert.In integrity-only encryption, a data packet is transmitted in plaintext, i.e. without encryption, but an integrity check value (ICV) is included in the transmitted packet to ensure the integrity or authenticity of the data. When such a packet is subjected to a loopback procedure, the plaintext data is looped back unnecessarily. According to this feature, in integrity-only loopback procedures, only the ICV field and the headers preceding the data are looped back. This reduces the amount of data that is looped back and also improves system performance.

Der für die Implementierung dieses Merkmals verwendete Mechanismus ist das Kryptographie-Datenanfangsetikett, das für jedes abgehende Paket von zurückgeschleiften Paketen erzeugt wird. Das Kryptographie-Datenanfangsetikett enthält ein Statusfeld, wovon ein möglicher Wert angibt, daß das Paket für die Nur-Integrität-Verschlüsselung und für die Rückschleifung vorgesehen ist. Dies bedeutet eine leichte Modifikation des in Fig. 13 gezeigten Flußdiagramms der Abgangs- und Rückschleifungsverarbeitung. Zusätzlich zu den vier Operationsschritten, die im Zusammenhang mit dieser Figur beschrieben worden sind, ist auch ein fünfter Moduswert (0100) gültig, der die Bedeutung hat, daß eine Nur-Integrität-Rückschleifungsverschlüsselung aufgerufen worden ist. Wenn dieser Moduswert im Datenanfangsetikett vorliegt, wird der Kryptographieprozessor so konditioniert, daß er nur die Kopfsätze und den ICV-Wert zurückschleift. Das Datenfeld wird nur für die Berechnung des zurückzuschleifenden ICV-Werts berechnet, es wird jedoch nicht selbst zum Knotenprozessor zurückgeschleift.The mechanism used to implement this feature is the cryptographic preamble which is generated for each outgoing packet of loopback packets. The cryptographic preamble contains a status field, one possible value of which indicates that the packet is intended for integrity-only encryption and for loopback. This represents a slight modification of the outgoing and loopback processing flow chart shown in Figure 13. In addition to the four operational steps described in connection with this figure, a fifth mode value (0100) is also valid, which means that integrity-only loopback encryption has been invoked. When this mode value is present in the preamble, the cryptographic processor is conditioned to only process the headers and loops back the ICV value. The data field is only calculated for the purpose of calculating the ICV value to be looped back, but it is not itself looped back to the node processor.

Verschlüsselung mit selektiver Offenlegung der Protokollidentifizierer:Encryption with selective disclosure of the protocol identifiers:

Auf der Sicherungsschichtebene wird zu jedem Nachrichtenpaket ein Kopfsatz hinzugefügt, der Felder enthält, die normalerweise als DSAP-Adressen (Zieldienstzugriffspunkt- Adressen) und SSAP-Adressen (Quelldienstzugriffspunktadressen) bezeichnet werden. Diese geordneten Paare am Beginn der Logikschicht (Logic Link Player) PDU (Protokolldateneinheit) identifizieren einen LLC-"Client" (Logical Link Control Client) des Netzes. Dem DSAP/SSAP- Paar folgt unmittelbar ein Steuerfeld, dessen Inhalte durch die LLC-Unterschicht interpretiert werden. Falls der Rahmen ein unnumerierter Informationsrahmen ist, enthält er Benutzerdaten, die bis zum LLC-Client geschickt werden. Andernfalls handelt es sich um einen Steuerrahmen, der in der LLC-Unterschicht verarbeitet wird. Der Steuerfeldwert ist für unnumerierte Informationen 03 (hexadezimal).At the data link layer, a header is added to each message packet, containing fields usually called DSAP (destination service access point) addresses and SSAP (source service access point) addresses. These ordered pairs at the beginning of the logic layer (logic link player) PDU (protocol data unit) identify a network LLC (Logical Link Control Client) "client". The DSAP/SSAP pair is immediately followed by a control field, the contents of which are interpreted by the LLC sublayer. If the frame is an unnumbered information frame, it contains user data that is sent to the LLC client. Otherwise, it is a control frame that is processed in the LLC sublayer. The control field value is 03 (hexadecimal) for unnumbered information.

Falls die DSAP- und SSAP-Felder einen speziellen Wert AA (hexadezimal) enthalten, identifiziert dieser ein Untervermittlungsprotokoll, das allgemein als SNAP/SAP-Protokoll bekannt ist. In diesem Fall werden die dem Steuerfeld folgenden fünf Bytes als Protokollidentifiziererfeld (PID-Feld) wie im folgenden angegeben umdefiniert: If the DSAP and SSAP fields contain a special value AA (hexadecimal), this identifies a sub-switching protocol commonly known as SNAP/SAP protocol. In this case, the five bytes following the control field are redefined as the protocol identifier (PID) field as shown below:

Der PID enthält drei Bytes eines einzigen organisatorischen Identifizierers (OUI), der für eine spezielle Firma oder eine andere Organisation eindeutig ist, gefolgt von zwei Bytes von Protokollinformationen, die dieser Organisation zugewiesen sind. Da diese Kopfsätze sich im Klartextbereich jedes Informationspakets befinden, können auf sie Netzwerkmonitore zugreifen, um sämtliche Netzaktivitäten zu überwachen. Es gibt drei interessante Fälle, in denen sich in der Sicherungsschicht-Verschlüsselung Probleme stellen. In einem Fall könnte ein Netzbenutzer wünschen, das bei der Verschlüsselung eines Pakets verwendete Verschlüsselungsprotokoll nicht aufzudecken. Die anderen beiden Fälle umfassen ein entgegengesetztes Problem, bei dem der Benutzer die Aufdeckung des Verschlüsselungsprotokolls wünscht, jedoch hierzu nicht in der Lage ist. Diese Situation kann entstehen, wenn die Sicherungsverschlüsselungs-Norm verwendet wird, wie sie durch den Standard for Interoperable LAN Security (SILS), ein fortgesetztes Unterfangen des IEEE 802.10-Unterkomitees, das auf die Standardisierung der Sicherungsschicht- Verschlüsselung für Netze zielt, definiert ist.The PID contains three bytes of a single organizational identifier (OUI) that is unique to a specific company or other organization, followed by two bytes of protocol information associated with that organization. Since these headers are in the plaintext portion of each packet of information, they can be accessed by network monitors to monitor all network activity. There are three interesting cases where problems arise in data link layer encryption. In one case, a network user may not want to reveal the encryption protocol used in encrypting a packet. The other two cases involve an opposite problem, where the user wants to reveal the encryption protocol but is unable to do so. This situation can arise when using the backup encryption standard as defined by the Standard for Interoperable LAN Security (SILS), an ongoing effort of the IEEE 802.10 subcommittee aimed at standardizing data link layer encryption for networks.

Einige Netzwerkbenutzer, die diese Protokollinformationen nicht für andere verfügbar machen wollen, könnten die DSAP/SSAP- und PID-Felder in ihren verschlüsselten Nachrichten absichtlich fälschen. Wenn dies geschieht, werden die von den Netzmonitoren gesammelten statistischen Informationen in irgendeinem erheblichen Ausmaß zerstört und unzuverlässig, zumindest was die Verwendung der Kommunikationsprotokolle betrifft.Some network users, not wanting to make this protocol information available to others, might intentionally falsify the DSAP/SSAP and PID fields in their encrypted messages. If this happens, the statistical information collected by the network monitors will be corrupted to some significant extent and unreliable, at least as far as the use of the communication protocols is concerned.

Dieses Problem wird dadurch vermieden, daß ein spezieller SNAP/SAP-Protokollidentifizierer zugeordnet wird, der angibt, daß das wirkliche Protokoll verborgen oder anonym bleiben soll. Genauer wird ein spezieller Wert eines der PID-Bytes dazu verwendet, die Anonymität des PID anzugeben. Obwohl Netzmonitoren die verwendeten wahren Proto kolle in diesen Paketen, die den speziellen SNAP/SAP-PID- Wert tragen, noch nicht bestimmen können, können die Pakete wenigstens in der Weise kategorisiert werden, daß sie ein anonymes oder unbekanntes Kommunikationsprotokoll verwenden, anstatt fälschlich als ein wirkliches Protokoll verwendend erkannt werden.This problem is avoided by assigning a special SNAP/SAP protocol identifier that indicates that the real protocol should remain hidden or anonymous. More precisely, a special value of one of the PID bytes is used to indicate the anonymity of the PID. Although network monitors cannot yet determine the true protocols used in those packets carrying the special SNAP/SAP PID value, the packets can at least be categorized as using an anonymous or unknown communication protocol rather than being falsely identified as using a real protocol.

Diese entgegengesetzte Situation entsteht, wenn ein Netzbenutzer die Aufdeckung des ausgeführten Verschlüsselungsprotokolls bevorzugen würde, jedoch daran gehindert wird, weil die Nachricht eingerahmt werden muß, um die Verschlüsselung anzugeben. Im Fall des SILS, der noch nicht vollständig definiert ist, ist ein reservierter DSAP- oder SSAP-Wert für die Identifizierung eines in der Sicherungsschicht verschlüsselten Pakets vorhanden.This opposite situation arises when a network user would prefer to reveal the encryption protocol being used, but is prevented from doing so because the message must be encapsulated to indicate the encryption. In the case of SILS, which is not yet fully defined, there is a reserved DSAP or SSAP value for identifying a packet encrypted at the data link layer.

Es gibt zwei Kategorien von Informationspaketen, für die der Benutzer das Verschlüsselungsprotokoll aufdecken möchte. Eines ist dasjenige eines ursprünglichen Rahmens, der an SNAP/SAP gerichtet ist, das andere ist dasjenige eines ursprünglichen Rahmens, der an ein von SNAP/SAP verschiedenes SAP gerichtet ist.There are two categories of information packets for which the user wants to reveal the encryption protocol. One is that of an original frame targeted to SNAP/SAP, the other is that of an original frame targeted to a SAP other than SNAP/SAP.

Im Fall des SNAP/SAP-Rahmens, in dem das Protokoll aufgedeckt werden soll, wird das ursprüngliche Protokoll in den letzten beiden Bytes des PID-Feldes gespeichert. (Es wird daran erinnert, daß die ersten drei Bytes des PID- Feldes der OUI sind, der die Untervermittlungsorganisation eindeutig identifiziert.) Für einen verschlüsselten Rahmen wird ein ausgewähltes Bit in den letzten beiden Bytes des PID-Feldes auf "1" gesetzt, alternativ wird eine ausgewählte Kombination von Bits in denselben beiden Bytes auf einen im voraus gewählten Wert gesetzt. Das ausgewählte Bit oder die Kombination von Bits muß nicht bereits bei der Definition des Protokolls verwendet worden sein. Beispielsweise könnte das niedrigstwertige Bit des vorletzten Bytes des PID-Feldes für die Angabe der Verschlüsselung verwendet werden. Wann immer die letzten beiden Bytes des PID-Feldes den Wert xxxx xxx1 xxxx xxxx besitzen, würde dies angeben, daß der Rahmen verschlüsselt war. Falls der Wert xxxx xxx0 xxxx xxxx ist, gibt dies an, daß keine Verschlüsselung vorliegt. Das hierzu verwendete Bit müßte ein Bit sein, das für die Definition eines Protokolls nicht verwendet wurde. In diesem Beispiel könnten daher Protokollidentifizierer mit einer ungeraden Zahl an der zweiten Hexadezimalposition des Zweibyte-Feldes nicht verwendet werden. Da das PID- Feld vollständig von der Unternetzorganisation gesteuert wird, ist es nicht schwierig, ein Bit oder eine Bitkombination zu definieren, die mit den möglichen Werten von Protokollidentifizierern nicht in Konflikt gerät.In the case of the SNAP/SAP frame in which the protocol is to be revealed, the original protocol is stored in the last two bytes of the PID field. (Recall that the first three bytes of the PID field are the OUI which uniquely identifies the sub-switching organization.) For an encrypted frame, a selected bit in the last two bytes of the PID field is set to "1", alternatively a selected combination of bits in the same two bytes is set to a pre-selected value. The selected bit or combination of bits need not already be used in the definition of the protocol. For example, the least significant bit of the second to last byte of the PID field could be used to indicate encryption. Whenever the last two bytes of the PID field have the value xxxx xxx1 xxxx xxxx, this would indicate that the frame was encrypted. If the value is xxxx xxx0 xxxx xxxx, this indicates that there was no encryption. The bit used for this would have to be a bit that was not used to define a protocol. In this example, therefore, protocol identifiers with an odd number in the second hexadecimal position of the two-byte field could not be used. Since the PID field is entirely controlled by the subnetwork organization, it is not difficult to define a bit or combination of bits that does not conflict with the possible values of protocol identifiers.

Der dritte interessante Fall entsteht ebenfalls, wenn ein Netzbenutzer das Protokoll aufdecken möchte und daran durch die SILS-Sicherungsverschlüsselungsnorm gehindert wird, jedoch der ursprüngliche Rahmen an ein Nicht- SNAP/SAP-Ziel gerichtet ist. Dieser Fall wird zunächst durch Einrahmen des Nicht-SNAP/SAP-Rahmens mit einem zusätzlichen Klartext-Kopfsatz des SNAP/SAP-Typs gehandhabt. Wie oben diskutiert worden ist, besitzt dieser Kopfsatz ein PID-Feld, wovon die ersten drei Bytes einen eindeutigen Organisationsidentifizierer bilden und die letzten zwei Bytes für die Protokollidentifizierung verwendet werden können. Dieser Fall erfordert die Verwendung eines weiteren speziellen Codes für eines der letzten beiden Bytes im PID-Feld. Beispielsweise können die letzten beiden Bytes 1000_0011 orig_sap sein. Das Byte, das 1000_0011 enthält, ist ein spezieller Code (83), der angibt, daß das nächstfolgende Byte "Orig_sap" das ursprüngliche SAP für den eingerahmten Rahmen enthält. Im allgemeinen könnte ein im voraus definiertes Unterfeld den speziellen Code enthalten und irgendein anderes im voraus definiertes Unterfeld könnte das ursprüngliche SAP enthalten.The third interesting case also arises when a network user wants to reveal the protocol and is prevented from doing so by the SILS security encryption standard, but the original frame is destined for a non-SNAP/SAP destination. This case is handled by first framing the non-SNAP/SAP frame with an additional plaintext header of the SNAP/SAP type. As discussed above, this header has a PID field, the first three bytes of which form a unique organization identifier and the last two bytes can be used for protocol identification. This case requires the use of another special code for one of the last two bytes in the PID field. For example, the last two bytes can be 1000_0011 orig_sap. The byte containing 1000_0011 is a special code (83) indicating that the next byte "Orig_sap" contains the original SAP for the framed frame. In general, a predefined subfield could contain the special code and any other predefined subfield could contain the original SAP.

Aus dem Vorangehenden wird deutlich, daß eine Flexibilität geschaffen wird, mit der das zugrundeliegende Protokoll, falls gewünscht, aufgedeckt werden kann oder verborgen gehalten werden kann, ohne daß die Netzstatistiken zerstört werden. Eine solche Flexibilität kann für eine wahlweise Aufdeckung des Protokolls im Sicherheits- und Netz-Management eine große Bedeutung haben.From the foregoing, it is clear that a flexibility is created whereby the underlying protocol can be exposed if desired or kept hidden without destroying the network statistics. Such flexibility can be of great importance for optional protocol exposure in security and network management.

Selbstverständlich enthält die vorangehende Beschreibung zur Erläuterung Einzelheiten der Implementierung, die für eine besondere Netzarchitektur, d. h. FDDI, spezifisch sind. Für die Fachleute der Netzkommunikation ist außerdem klar, daß die beschriebenen Prinzipien ohne weiteres an die Verwendung anderer Netzarchitekturen angepaßt werden können, wobei möglicherweise die Schnittstellen und die Rahmenformate unterschiedlich sind. Beispielsweise kann die Erfindung ohne weiteres an die Verwendung in einer Ethernet-Netzarchitektur angepaßt werden. Obwohl ferner die obenbeschriebene Kryptographieverarbeitung am besten in einem "On-Bord"-Prozessor implementiert wird, der physisch in andere herkömmliche Netzverarbeitungskomponenten integriert ist, können die Prinzipien der Erfindung noch immer angewendet werden, wenn die Kryptographieverarbeitung durch einen "Off-Bord"-Prozessor oder -Vorrichtung ausgeführt wird, die zu einem herkömmlichen Netzprozessor oder -knoten, der ursprünglich keine Verschlüsselungsfähigkeit besaß, hinzugefügt ist.Of course, the foregoing description contains, for the sake of illustration, implementation details specific to a particular network architecture, i.e., FDDI. It will also be apparent to those skilled in the art of network communications that the principles described can be readily adapted for use in other network architectures, possibly with different interfaces and frame formats. For example, the invention can be readily adapted for use in an Ethernet network architecture. Furthermore, although the cryptographic processing described above is best implemented in an "on-board" processor physically integrated with other conventional network processing components, the principles of the invention can still be applied when the cryptographic processing is performed by an "off-board" processor or device added to a conventional network processor or node that did not originally have cryptographic capability.

Aus dem Vorangehenden wird deutlich, daß die Schaffung eines speziellen, anonymen Protokollidentifizierungscodes im Kopfsatz eines verschlüsselten Informationspakets zwei konkurrierende Bedürfnisse befriedigt: den Bedarf an der vollständigen Anonymität und den Bedarf, genaue Informationen durch Überwachen des Netzverkehrs zu erhalten. Ferner bietet diese Erfindung dem Netzbenutzer die Fähigkeit, das zugrundeliegende Netzprotokoll sowohl in SNAP/SAP-Rahmen als auch in Nicht-SNAP/SAP-Rahmen wahlweise aufzudecken. Es ist deutlich, daß, obwohl zur Erläuterung eine Ausführungsform der Erfindung im einzelnen beschrieben worden ist, verschiedene Modifikationen vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen. Daher ist die Erfindung nur durch die beigefügten Anspüche begrenzt.From the foregoing it is clear that the creation of a special, anonymous protocol identification code in the header of an encrypted information packet satisfies two competing needs: the need for complete anonymity and the need to obtain accurate information by monitoring network traffic. Furthermore, this invention provides the network user with the ability to selectively reveal the underlying network protocol in both SNAP/SAP frames and non-SNAP/SAP frames. It will be understood that although an embodiment of the invention has been described in detail for purposes of illustration, various modifications may be made without departing from the scope of the invention. Therefore, the invention is limited only by the appended claims.

Claims (5)

1. Vorrichtung zur Pipeline-Entschlüsselung eines empfangenen Informationspakets, das ein modifizierbares Format besitzt, wobei die Vorrichtung gekennzeichnet ist durch:1. Apparatus for pipeline decryption of a received information packet having a modifiable format, the apparatus being characterized by: eine programmierbare Registereinrichtung, die Informationen, die ermöglichen, daß ein empfangenes Informationspaket als Informationspaket eines besonderen Protokolltyps, der eine Entschlüsselung erfordert, identifiziert wird, sowie weitere Informationen enthält, die den Ort eines verschlüsselten Datenfeldes im Paket angeben;a programmable register device containing information enabling a received information packet to be identified as an information packet of a particular protocol type requiring decryption, and further information specifying the location of an encrypted data field in the packet; eine Einrichtung zum Analysieren jedes ankommenden Pakets auf der Grundlage der in der programmierbaren Registereinrichtung gespeicherten Informationen, um Pakete des besonderen Protokolltyps, der eine Entschlüsselung erfordert, zu identifizieren; und eine Einrichtung zum Entsahlüsseln von Datenfeldern der ankommenden Pakete, die als Pakete eines besonderen Protokolltyps identifiziert worden sind, wobei die Entschlüsselung an einem Ort begonnen wird, der durch die in der programmierbaren Registereinrichtung gespeicherten Informationen spezifiziert ist.means for analyzing each incoming packet based on the information stored in the programmable register means to identify packets of the particular protocol type requiring decryption; and means for decrypting data fields of the incoming packets identified as packets of a particular protocol type, wherein decryption is initiated at a location specified by the information stored in the programmable register means. 2. Vorrichtung nach Anspruch 1, in der:2. Device according to claim 1, in which: die programmierbare Registereinrichtung eine Einrichtung zum Speichern (i) einer Verschiebung von einem Referenzfeld, die im Paket den Ort eines Identifiziererfeldes angibt, das einen Schlüssel-Identifizierer enthalten sollte, (ii) eines Identifiziererwerts, der im Identifiziererfeld gefunden werden sollte, um anzugeben, daß das Paket ein Paket mit besonderem Protokoll ist, das eine Entschlüsselung erfordert, und (Iii) eines zweiten Verschiebungswerts, der den Beginn der verschlüsselten Daten im Paket angibt.the programmable register means comprises means for storing (i) an offset from a reference field indicating the location in the packet of an identifier field which should contain a key identifier, (ii) an identifier value which should be found in the identifier field to indicate that the packet is a special protocol packet containing a decryption, and (iii) a second offset value indicating the beginning of the encrypted data in the packet. 3. Vorrichtung nach Anspruch 1, in der die programmierbare Registereinrichtung enthält:3. Apparatus according to claim 1, in which the programmable register device contains: ein erstes Register zum Speichern einer Verschiebung, die im Paket den Ort eines Identifiziererfeldes angibt, das einen Schlüssel-Identifizierer enthalten sollte;a first register for storing an offset indicating the location in the packet of an identifier field that should contain a key identifier; ein zweites Register zum Speichern eines Identifiziererwerts, der im Identifiziererfeld gefunden werden sollte, um anzugeben, daß das Paket ein Paket mit einem besonderen Protokoll ist, das eine Entschlüsselung erfordert; unda second register for storing an identifier value that should be found in the identifier field to indicate that the packet is a packet with a particular protocol that requires decryption; and ein drittes Register zum Speichern eines zweiten Verschiebungswerts, der den Beginn der verschlüsselten Daten im Paket angibt.a third register for storing a second offset value indicating the beginning of the encrypted data in the packet. 4. Verfahren zum Ausführen einer Pipeline Entschlüsselung eines empfangenen Informationspakets, das ein modifizierbares Format besitzt, wobei das Verfahren die folgenden Schritte enthält:4. A method for executing a pipeline decryption of a received information packet having a modifiable format, the method comprising the following steps: Speichern von Informationen, die ermöglichen, ein empfangenes Informationspaket als Informationspaket eines besonderen Protokolltyps, der eine Entschlüsselung erfordert, zu identifizieren, sowie weiterer Informationen, die den Ort eines verschlüsselten Datenfeldes im Paket angeben, in einer programmierbaren Registereinrichtung;Storing information enabling a received information packet to be identified as an information packet of a particular protocol type requiring decryption, as well as further information indicating the location of an encrypted data field in the packet, in a programmable register device; Analysieren jedes ankommenden Pakets auf der Grundlage der in der programmierbaren Registereinrichtung gespeicherten Informationen, um Pakete des besonderen Protokolltyps, der eine Entschlüsselung erfordert, zu identifizieren; undanalyzing each incoming packet based on the information stored in the programmable register device to identify packets of the particular protocol type requiring decryption; and Entschlüsseln von Datenfeldern ankommender Pakete, die als Pakete des besonderen Protokolltyps identifiziert worden sind, wobei die Entschlüsselung an einem Ort begonnen wird, der durch die in der programmierbaren Registereinrichtung gespeicherten Informationen spezifiziert ist.Decrypting data fields of incoming packets identified as packets of the particular protocol type have been decrypted, with decryption being started at a location specified by the information stored in the programmable register device. 5. Verfahren nach Anspruch 4, in dem der Analyseschritt enthält:5. The method of claim 4, wherein the analyzing step includes: Anordnen eines Schlüssel-Identifiziererfeldes im empfangenen Paket mittels eines Identifizierer-Verschiebungswerts, der in der programmierbaren Registereinrichtung gespeichert ist;placing a key identifier field in the received packet using an identifier offset value stored in the programmable register device; Vergleichen eines im Schlüssel-Identifiziererfeld des Pakets enthaltenen Werts mit einem in der programmierbaren Registereinrichtung gespeicherten Schlüssel- Identifiziererwert, um festzustellen, ob das Paket ein Paket eines besonderes Protokolltyps ist, der eine Entschlüsselung erfordert; undcomparing a value contained in the key identifier field of the packet with a key identifier value stored in the programmable register device to determine whether the packet is a packet of a particular protocol type that requires decryption; and falls der Vergleichschritt eine Übereinstimmung zur Folge hat, Überspringen eines Abschnitts des Pakets, der durch einen in der programmierbaren Registereinrichtung gespeicherten zweiten Verschiebungswert angegeben wird, um die Entsahlüsselung eines Datenfeldes am richtigen Startort zu beginnen.if the comparison step results in a match, skipping a portion of the packet indicated by a second offset value stored in the programmable register means, to begin decryption of a data field at the correct starting location.
DE69125756T 1990-06-29 1991-06-24 Method and device for decrypting an information package with a modifiable format Expired - Lifetime DE69125756T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US54662890A 1990-06-29 1990-06-29

Publications (2)

Publication Number Publication Date
DE69125756D1 DE69125756D1 (en) 1997-05-28
DE69125756T2 true DE69125756T2 (en) 1997-12-18

Family

ID=24181287

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69125756T Expired - Lifetime DE69125756T2 (en) 1990-06-29 1991-06-24 Method and device for decrypting an information package with a modifiable format

Country Status (4)

Country Link
US (1) US5594869A (en)
EP (1) EP0464562B1 (en)
CA (1) CA2045933A1 (en)
DE (1) DE69125756T2 (en)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151689A (en) * 1992-12-17 2000-11-21 Tandem Computers Incorporated Detecting and isolating errors occurring in data communication in a multiple processor system
EP0620690B1 (en) * 1993-04-15 1999-01-27 Matsushita Electric Industrial Co., Ltd. Video signal encrypting apparatus
NL9301841A (en) * 1993-10-25 1995-05-16 Nederland Ptt Device for processing data packets.
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
DE69422647T2 (en) 1994-10-12 2000-08-31 Touchtunes Music Corp INTELLIGENT SYSTEM FOR NUMERICAL AUDIO-VISUAL REPRODUCTION
US7424731B1 (en) 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US8661477B2 (en) 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
JPH09252323A (en) * 1996-01-11 1997-09-22 Sony Corp Communication system and communication equipment
US5805827A (en) * 1996-03-04 1998-09-08 3Com Corporation Distributed signal processing for data channels maintaining channel bandwidth
US6233704B1 (en) * 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US5826018A (en) * 1996-04-02 1998-10-20 Hewlett-Packard Company Method and appparatus for automatically determining the starting location and starting protocol of LAN data in a WAN link frame
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
FR2753868A1 (en) 1996-09-25 1998-03-27 Technical Maintenance Corp METHOD FOR SELECTING A RECORDING ON AN AUDIOVISUAL DIGITAL REPRODUCTION SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD
US5946462A (en) * 1996-10-08 1999-08-31 Advanced Micro Devices, Inc. Station management circuit
US5935245A (en) * 1996-12-13 1999-08-10 3Com Corporation Method and apparatus for providing secure network communications
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
US6724896B1 (en) 1997-03-31 2004-04-20 Sun Microsystems, Inc. Event-driven servers for data extraction and merge for EDI transaction processing using the internet
US6240441B1 (en) * 1997-03-31 2001-05-29 Sun Microsystems, Inc. Secure event-driven EDI transaction processing using the internet
US6240186B1 (en) 1997-03-31 2001-05-29 Sun Microsystems, Inc. Simultaneous bi-directional translation and sending of EDI service order data
US6335972B1 (en) 1997-05-23 2002-01-01 International Business Machines Corporation Framework-based cryptographic key recovery system
US7574727B2 (en) 1997-07-23 2009-08-11 Touchtunes Music Corporation Intelligent digital audiovisual playback system
JP2998150B2 (en) * 1997-08-05 2000-01-11 日本電気株式会社 ATM cell descramble circuit
US6003088A (en) * 1997-08-29 1999-12-14 International Business Machines Corporation Blocking IP datagrams in a multi-path channel point-to-point environment
US6009467A (en) * 1997-08-29 1999-12-28 International Business Machines Corporation System for checking status of supported functions of communication platforms at preselected intervals in order to allow hosts to obtain updated list of all supported functions
FR2769165B1 (en) 1997-09-26 2002-11-29 Technical Maintenance Corp WIRELESS SYSTEM WITH DIGITAL TRANSMISSION FOR SPEAKERS
US6052784A (en) * 1997-10-14 2000-04-18 Intel Corporation Network discovery system and method
FR2772222B1 (en) * 1997-12-09 2000-02-04 Sagem ENCRYPTED DATA TRANSMISSION METHOD
US6259789B1 (en) 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
US6122743A (en) * 1998-03-31 2000-09-19 Siemens Information And Communication Networks, Inc. System for providing enhanced security for transactions transmitted through a distributed network
FR2781582B1 (en) 1998-07-21 2001-01-12 Technical Maintenance Corp SYSTEM FOR DOWNLOADING OBJECTS OR FILES FOR SOFTWARE UPDATE
FR2781580B1 (en) 1998-07-22 2000-09-22 Technical Maintenance Corp SOUND CONTROL CIRCUIT FOR INTELLIGENT DIGITAL AUDIOVISUAL REPRODUCTION SYSTEM
US8028318B2 (en) 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
FR2781591B1 (en) 1998-07-22 2000-09-22 Technical Maintenance Corp AUDIOVISUAL REPRODUCTION SYSTEM
US20030037235A1 (en) * 1998-08-19 2003-02-20 Sun Microsystems, Inc. System for signatureless transmission and reception of data packets between computer networks
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US8726330B2 (en) 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
JP4201430B2 (en) * 1999-04-16 2008-12-24 富士通株式会社 Optical subscriber line termination equipment
FR2796482B1 (en) 1999-07-16 2002-09-06 Touchtunes Music Corp REMOTE MANAGEMENT SYSTEM FOR AT LEAST ONE AUDIOVISUAL INFORMATION REPRODUCING DEVICE
US6427169B1 (en) * 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
EP1881638A1 (en) 1999-09-30 2008-01-23 Qualcomm Incorporated Method and apparatus for encrypting transmissions in a communication system
KR100915745B1 (en) * 1999-09-30 2009-09-04 콸콤 인코포레이티드 Method and apparatus for encrypting transmissions in a communication system
US6980658B1 (en) 1999-09-30 2005-12-27 Qualcomm Incorporated Method and apparatus for encrypting transmissions in a communication system
SE9904685D0 (en) * 1999-12-17 1999-12-17 Switchcore Ab A programmable packaged decoder
FR2805377B1 (en) 2000-02-23 2003-09-12 Touchtunes Music Corp EARLY ORDERING PROCESS FOR A SELECTION, DIGITAL SYSTEM AND JUKE-BOX FOR IMPLEMENTING THE METHOD
FR2805072B1 (en) 2000-02-16 2002-04-05 Touchtunes Music Corp METHOD FOR ADJUSTING THE SOUND VOLUME OF A DIGITAL SOUND RECORDING
FR2805060B1 (en) 2000-02-16 2005-04-08 Touchtunes Music Corp METHOD FOR RECEIVING FILES DURING DOWNLOAD
US7478403B1 (en) 2000-04-21 2009-01-13 Sun Microsystems, Inc. Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control
FR2808906B1 (en) 2000-05-10 2005-02-11 Touchtunes Music Corp DEVICE AND METHOD FOR REMOTELY MANAGING A NETWORK OF AUDIOVISUAL INFORMATION REPRODUCTION SYSTEMS
FR2811175B1 (en) 2000-06-29 2002-12-27 Touchtunes Music Corp AUDIOVISUAL INFORMATION DISTRIBUTION METHOD AND AUDIOVISUAL INFORMATION DISTRIBUTION SYSTEM
FR2811114B1 (en) 2000-06-29 2002-12-27 Touchtunes Music Corp DEVICE AND METHOD FOR COMMUNICATION BETWEEN A SYSTEM FOR REPRODUCING AUDIOVISUAL INFORMATION AND AN ELECTRONIC ENTERTAINMENT MACHINE
FR2814085B1 (en) 2000-09-15 2005-02-11 Touchtunes Music Corp ENTERTAINMENT METHOD BASED ON MULTIPLE CHOICE COMPETITION GAMES
US8266677B2 (en) * 2000-12-20 2012-09-11 Intellisync Corporation UDP communication with a programmer interface over wireless networks
US7254237B1 (en) 2001-01-12 2007-08-07 Slt Logic, Llc System and method for establishing a secure connection
US7283527B2 (en) * 2002-02-27 2007-10-16 International Business Machines Corporation Apparatus and method of maintaining two-byte IP identification fields in IP headers
US7284181B1 (en) * 2002-04-24 2007-10-16 Juniper Networks, Inc. Systems and methods for implementing end-to-end checksum
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US8151304B2 (en) 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US12100258B2 (en) 2002-09-16 2024-09-24 Touchtunes Music Company, Llc Digital downloading jukebox with enhanced communication features
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US7386619B1 (en) * 2003-01-06 2008-06-10 Slt Logic, Llc System and method for allocating communications to processors in a multiprocessor system
JP4173517B2 (en) * 2003-03-05 2008-10-29 インテリシンク コーポレイション Virtual private network between computing network and remote device
US7543142B2 (en) 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US7512945B2 (en) * 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US20050175184A1 (en) * 2004-02-11 2005-08-11 Phonex Broadband Corporation Method and apparatus for a per-packet encryption system
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
GB2422752A (en) * 2005-02-01 2006-08-02 3Com Corp Deciphering encapsulated and enciphered UDP datagrams
GB2424556A (en) * 2005-03-23 2006-09-27 3Com Corp Packet fragment deciphering with cipher state storage
US8301771B2 (en) * 2005-10-26 2012-10-30 Armstrong, Quinton Co. LLC Methods, systems, and computer program products for transmission control of sensitive application-layer data
US9330529B2 (en) 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
US7644187B2 (en) * 2007-02-02 2010-01-05 Harris Corporation Internet protocol based encryptor/decryptor two stage bypass device
US9953481B2 (en) 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
US8244305B2 (en) * 2007-06-04 2012-08-14 Telefonaktiebolaget Lm Ericsson (Publ) Efficient, secure digital wireless voice telephony via selective encryption
US7923341B2 (en) * 2007-08-13 2011-04-12 United Solar Ovonic Llc Higher selectivity, method for passivating short circuit current paths in semiconductor devices
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US10169598B1 (en) 2008-04-10 2019-01-01 United Services Automobile Association Systems and methods for sending and receiving encrypted submessages
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US12112093B2 (en) 2009-03-18 2024-10-08 Touchtunes Music Company, Llc Entertainment server and associated social networking services
EP2409273A4 (en) 2009-03-18 2016-05-11 Touchtunes Music Corp ENTERTAINMENT SERVER AND RELATED SOCIAL NETWORK SERVICES
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
EP2568775A3 (en) 2010-01-26 2014-06-25 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
AU2012308184B2 (en) 2011-09-18 2015-08-06 Touch Tunes Music Corporation Digital jukebox device with karaoke and/or photo booth features, and associated methods
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US9215067B2 (en) * 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US9351157B2 (en) * 2013-10-17 2016-05-24 Motorola Solutions, Inc. Methods, systems, and devices to reduce audio truncation during transcoding
WO2015070070A1 (en) 2013-11-07 2015-05-14 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
KR102425594B1 (en) 2014-03-25 2022-07-27 터치튠즈 뮤직 코포레이션 Digital jukebox device with improved user interfaces, and associated methods
US10630654B2 (en) * 2017-03-22 2020-04-21 Microsoft Technology Licensing, Llc Hardware-accelerated secure communication management
JPWO2019026442A1 (en) * 2017-08-02 2020-08-13 フェリカネットワークス株式会社 Information processing apparatus and information processing method
US11163892B2 (en) * 2019-01-09 2021-11-02 International Business Machines Corporation Buffering data until encrypted destination is unlocked
US20250039196A1 (en) * 2023-07-27 2025-01-30 Qomplx Llc System and method for track and trace user and entity behavior analysis

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438824A (en) * 1981-04-22 1984-03-27 Siemens Corporation Apparatus and method for cryptographic identity verification
JPS58116571A (en) * 1981-12-29 1983-07-11 富士通株式会社 Instruction coding method for microcomputer and microcomputer used for execution thereof
US4588991A (en) * 1983-03-07 1986-05-13 Atalla Corporation File access security method and means
DK190784D0 (en) * 1984-04-12 1984-04-12 Pengeinst Koebe Kreditkort METHOD AND APPARATUS FOR DATA TRANSMISSION
US4803725A (en) * 1985-03-11 1989-02-07 General Instrument Corp. Cryptographic system using interchangeable key blocks and selectable key fragments
US4943978A (en) * 1985-11-27 1990-07-24 Hughes Aircraft Company Digital interface unit
US4882751A (en) * 1986-10-31 1989-11-21 Motorola, Inc. Secure trunked communications system
US4780814A (en) * 1987-02-09 1988-10-25 Intel Corporation Global serial channel for microcontroller
JPS63205747A (en) * 1987-02-13 1988-08-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Communication system
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
US5067104A (en) * 1987-05-01 1991-11-19 At&T Bell Laboratories Programmable protocol engine having context free and context dependent processes
US4995080A (en) * 1988-08-04 1991-02-19 Zenith Electronics Corporation Television signal scrambling system and method
US5048087A (en) * 1989-02-03 1991-09-10 Racal Data Communications Inc. Key management for encrypted packet based networks
US5029206A (en) * 1989-12-27 1991-07-02 Motorola, Inc. Uniform interface for cryptographic services
US5235644A (en) * 1990-06-29 1993-08-10 Digital Equipment Corporation Probabilistic cryptographic processing method

Also Published As

Publication number Publication date
CA2045933A1 (en) 1991-12-30
EP0464562B1 (en) 1997-04-23
EP0464562A2 (en) 1992-01-08
DE69125756D1 (en) 1997-05-28
EP0464562A3 (en) 1992-11-04
US5594869A (en) 1997-01-14

Similar Documents

Publication Publication Date Title
DE69125756T2 (en) Method and device for decrypting an information package with a modifiable format
DE69125757T2 (en) Encryption with selective announcement of the protocol identifiers
DE69118454T2 (en) General encryption method for communication networks
DE69333852T2 (en) Method, apparatus and arrangement for encrypting data transmitted over connected networks
DE102014224694B4 (en) Network device and network system
DE60221557T2 (en) METHOD AND DEVICE FOR ADDRESS TRANSLATION FOR SECURED CONNECTIONS
US7188173B2 (en) Method and apparatus to enable efficient processing and transmission of network communications
DE69533953T2 (en) System for the unsigned transmission and reception of data packets between computer networks
US7398386B2 (en) Transparent IPSec processing inline between a framer and a network component
DE69533024T2 (en) Access control system for computers connected to a private network
DE60224917T2 (en) Method and apparatus for fragmenting and restoring Internet Key Exchange packets
US6615358B1 (en) Firewall for processing connection-oriented and connectionless datagrams over a connection-oriented network
KR20010072661A (en) Firewall apparatus and method of controlling network data packet traffic between internal and external networks
US20020159481A1 (en) Telegraphic message transmitter and telegraphic message receiver
DE69132549T2 (en) Crypto processor and method with optional status coding
US20030226009A1 (en) Data transfer system and data transfer method
DE69130088T2 (en) Processing abort in pipeline communications
DE112021001678T5 (en) LOW-LATENCY MACSEC AUTHENTICATION
EP3149913B1 (en) System and method for secure and anonymous communication in a network
EP3520351B1 (en) Device and method for continuous and cross-media transmission of communication protocols without protocol conversion
EP3963839B1 (en) Network distributor, automation network and method for transmitting data in an automation network
DE102018216959B4 (en) Method for securing a data packet by an exchange in a network, exchange and motor vehicle
EP4014424B1 (en) Method for processing telegrams in an automation network, automation network, master subscriber and slave subscriber
CN120415922B (en) Digital network security data monitoring management system
EP2830277B1 (en) Method and system for tamper-proof transmission of data packets

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN