DE69618040T2 - Verfahren zur Verschlüsselung/Entschlüsselung von Daten unter Verwendung von Cipher-Block-Chaining (CBC) und Message Authentication Code (MAC) - Google Patents
Verfahren zur Verschlüsselung/Entschlüsselung von Daten unter Verwendung von Cipher-Block-Chaining (CBC) und Message Authentication Code (MAC)Info
- Publication number
- DE69618040T2 DE69618040T2 DE69618040T DE69618040T DE69618040T2 DE 69618040 T2 DE69618040 T2 DE 69618040T2 DE 69618040 T DE69618040 T DE 69618040T DE 69618040 T DE69618040 T DE 69618040T DE 69618040 T2 DE69618040 T2 DE 69618040T2
- Authority
- DE
- Germany
- Prior art keywords
- chain
- string
- block
- key
- plaintext
- 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
Links
- 238000000034 method Methods 0.000 title claims description 51
- 238000013475 authorization Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- 238000013478 data encryption standard Methods 0.000 description 8
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101150018444 sub2 gene Proteins 0.000 description 3
- 101100457839 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mod21 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000962514 Alosa chrysochloris Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
- Die vorliegende Erfindung bezieht sich im Allgemeinen auf sichere Übertragungen und insbesondere auf durch Rechner bewerkstelligte Verfahren zum Verschlüsseln von Klartext in Chiffretext.
- Es ist allgemein anerkannt, dass oftmals Verschlüsselungsschemata wünschenswert sind, die bestimmte Eigenschaften aufweisen. Die erste dieser Eigenschaften besteht darin, dass die Verschlüsselungs- und Entschlüsselungsvorgänge im Gegensatz zu auf Wahrscheinlichkeiten beruhenden deterministisch sind, weil es in vielen Umgebungen keine verfügbare oder vertrauenswürdige Zufälligkeitsquelle gibt. Es ist ebenfalls wünschenswert, dass das Schema protokollfrei (ohne Zustandsangabe) ist, so dass Parteien keinen Nachrichtenzähler oder anderen Informationen speichern müssen, die nach jeder Verschlüsselung oder Entschlüsselung aktualisiert werden müssen. Das Schema sollte auch in der Hinsicht "sicher" sein, dass es alle Informationen über den Klartext wirksam verbirgt. Letztlich ist es wünschenswert, dass das Schema längenneutral ist, d. h., dass die Länge des Chiffretextes gleich der Länge des Klartextes sein sollte.
- Blockchiffren sind allgemein bekannte Verschlüsselungswerkzeuge, die oftmals benutzt werden, um allgemeine Verschlüsselungsschemata einzurichten. Eine Blockchiffre ist ein Verschlüsselungssystem mit symmetrischem Schlüssel, das, gesteuert von einem Schlüssel (mit "k" Bit), Nachrichten-(Klartext-)Blöcke fester Länge (mit "l" Bit) in Chiffretextblöcke der gleichen Länge umwandelt. Eine vielfach angewendete Blockchiffre wird durch den Algorithmus des US- Standards für DES bereitgestellt, bei dem l = 64 und k = 56 sind, und der in der Veröffentlichung 46 des NBS FIPS unter dem Titel "Data Encryption Standard" vom National Bureau of Standards, U. S. Department of Commerce, Januar 1977, beschrieben worden ist. Blockchiffren wie DES bieten einen Weg zum Verschlüsseln eines einzelnen Textblockes (z. B. 64 Bit). Um aber längere Nachrichten zu verschlüsseln, muss die Blockchiffre in einer gewissen "Betriebsart" genutzt werden. Es sind als Stand der Technik viele derartige Betriebsarten beschrieben worden, wobei die am häufigsten angewendete das Chiffreblockverketten (CBC) ist. CBC wird in Veröffentlichung 81 des NBS FIPS mit dem Titel "DES-Betriebsarten", National Bureau of Standards, U. S. Department of Commerce, Dezember 1980, beschrieben. CBC und andere bekannte Betriebsarten vergrößern jedoch entweder die Länge oder leiden an der Schwäche, dass bestimmte bezogene Klartexte zugehörige Chiffretexte bewirken. Bei vielen Anwendungsgebieten, die das Erste nicht zulassen können, wird deren Sicherheit durch das Letztere in der Tat beeinträchtigt.
- Chiffreblockverkettung (CBC) erfordert den Gebrauch eines Geheimschlüssels sowie den eines "Initialisierungsvektors" (IV). Bei einem IV mit "l" Bit (wobei dessen Wert mit der Nachricht übermittelt wird oder beiden miteinander kommunizierenden Parteien auf andere Weise bekannt ist) wird dann eine Kette x = x&sub1; ... xn (die aus n Blöcken besteht, von denen jeder l Bit hat) als Ea,IV (x) = y&sub1; ... yn verschlüsselt, wobei yo = IV und yi = fa (xi yi-1) sind. In einem CBC-Schema hängt der erste Block des Chiffretextes von dem ersten Block des Klartextes ab der zweite Block des Chiffretextes hängt von den ersten beiden Blöcken des Klartextes ab, und so weiter, wobei der letzte Block des Chiffretextes von allen Blöcken des Klartextes abhängt. Eine derartige Verschlüsselung hat jedoch einen allgemein bekannten Nachteil, der darin besteht, dass sie nicht sicher genug ist, wenn IV festliegt.
- Insbesondere ist das CBC-Verfahren oftmals "durchlässig" für Informationen über Klartexte, die verschlüsselt werden. Wenn beispielsweise ein Gegenspieler Ea,IV(X) und Ea,IV(X) sieht und bemerkt, dass sie in den ersten j Blöcken übereinstimmen, kann der Gegenspieler daraus schließen, dass X und X auch in den ersten j Blöcken übereinstimmen. Derartige Unzulänglichkeiten sind sehr problematisch. Nehmen wir also an, dass von einer Datei, die aus einer Folge von 1 KByte von Personaldaten besteht, bemerkt wird, dass sie sich genau vom 7. Datensatz an verändert hat. Vielleicht ist a priori bekannt, dass der Grund für die Veränderung das Aktualisieren eines Personaldatensatzes war, weil irgend jemand degradiert worden ist. Wenn das zugrunde liegende Verschlüsselungsverfahren Ea,IV ist und sich die Personaldatensätze in alphabetischer Reihenfolge nach den Namen der Beschäftigten befinden, kann man schlussfolgern, dass der betroffene Beschäftigte der 7. in der alphabetischen Reihenfolge ist.
- Dem vorstehend beschriebenen Merkmal der CBC-Verschüsselung, für Informationen über Klartexte "durchlässig" zu sein, kann dadurch Rechnung getragen werden, dass der Initialisierungsvektor IV nach dem Zufallsprinzip ausgewählt und dann zusammen mit der Nachricht verschickt wird. Wenn dies erfolgt, ist das Schema jedoch nicht mehr längenneutral. Andernfalls könnte das Verschlüsseln einer Nachricht von Aufzeichnungen abhängig gemacht werden (z. B. durch Benutzen des IV als Funktion eines Nachrichtenzählers und dadurch, dass der IV nicht mit der Nachricht verschickt wird), aber diese Vorgehensweise ist ebenfalls nicht zufriedenstellend, weil sie nicht auf den fehlenden Empfang der Nachrichten durch den beabsichtigten Empfänger anspricht.
- Damit sind Verschlüsselungstechniken nach dem Stand der Technik, die Blockchiffren benutzen, dahingehend nicht wünschenswert, dass sie Längen vergrößern, nicht auf Nachrichtenausfälle reagieren oder für Informationen hinsichtlich zugehöriger Klartexte durchlässig sind. Es bleibt eine Notwendigkeit bestehen, ein sicheres, längenneutrales Verschlüsselungsschema unter Verwendung von Blockchiffren bereitzustellen, das diese und andere Probleme des Standes der Technik überwindet.
- Eine Veröffentlichung, welche die Sicherheit des Standardverfahrens des Chiffreblockverkettungs- Nachrichtenberechtigungscodes (CBC MAC) erörtert, ist "The Security of Cipher Block Chaining" von Bellare et al., in Advances in Cryptology - CRYPTO '94, Proceedings, S. 341 bis 358. Diese zeigt, dass Chiffreblockverkettung einer Pseudo- Zufallsfunktion eine Pseudo-Zufallsfunktion ergibt.
- Nach einem ersten Aspekt der Erfindung wird ein Verfahren zum Verschlüsseln einer Klartextkette bereitgestellt, das deterministisch und protokollfrei ist.
- Ein bevorzugtes Verfahren benutzt erste und zweite Geheimschlüssel, um eine Klartextkette in eine Chiffretextkette zu verschlüsseln. Das Verfahren beginnt mit der unter Verwendung eines ersten Schlüssels und eines festen Initialisierungsvektors erfolgenden Chiffreblockverkettung der Klartextkette, um einen CBC-Nachrichtenberechtigungscode (CBC- MAC) einer Länge zu erzeugen, die gleich der Blocklänge ist. Danach fährt das Verfahren unter Benutzung des zweiten Schlüssels und unter Verwendung des vorstehend erwähnten CBC- Nachrichtenberechtigungscodes als Initialisierungsvektor mit der Chiffreblockverkettung der Klartextkette fort, um damit eine verschlüsselte Kette zu erzeugen. Der CBC- Nachrichtenberechtigungscode und ein Kennsatz der verschlüsselten Kette werden dann verknüpft (üblicherweise durch Verkettung), um die Chiffretextkette zu bilden. Vorzugsweise ist die Technik längenneutral; der Kennsatz enthält alle Blöcke bis auf den letzten, so dass die Länge des Chiffretextes gleich der Länge des Klartextes ist.
- Die Erfindung stellt damit vorzugsweise zum Verschlüsseln einen Blockchiffre-Betriebsmodus bereit, bei dem die Länge des Chiffretextes gleich der Länge des Klartextes ist, der verschlüsselt werden soll. Vorzugsweise ist ein derartiges längenneutrales Verschlüsselungsschema nicht für Information über die Klartexte durchlässig, die verschlüsselt werden.
- Es wird bevorzugt, dass Nachrichtenverschlüsselungsschemata nach der Erfindung protokollfrei sind, so dass die Parteien keinen Nachrichtenzähler oder andere Informationen speichern, die nach jeder Verschlüsselung oder Entschlüsselung aktualisiert werden müssen.
- Es wird weiterhin bevorzugt, dass längenneutrale Verschlüsselungsschemata nach der Erfindung Chiffreblockverkettung (CBC) auf eine Weise anwenden, welche die bekannten Probleme hinsichtlich Sicherheit und Durchlässigkeit für Informationen überwindet, die mit CBC- Verschlüsselung verbunden sind. Diese Technik hat große Vorzüge, die darin bestehen, dass das Verändern einer Chiffretextnachricht in eine Chiffretextnachricht, die noch nicht gesehen worden ist, das Verschlüsseln einer zugrunde liegenden Nachricht erzeugt, die in keiner Weise auf diejenigen Bezug nimmt, die dann zu sehen sind.
- Die Erfindung stellt vorzugsweise Verfahren zum Verschlüsseln von Klartext-Nachrichtenketten bereit, die Längen haben, die Vielfache oder Bruchteile einer Blocklänge betragen.
- So wird nach einem bevorzugten Verfahren die Klartextkette unter Verwendung von CBC zweimal verarbeitet, zuerst, um die CBC-MAC zu erzeugen, und dann, um einen Teil des Chiffretextes selbst zu erzeugen. Im ersten Durchlauf ist der bei CBC verwendete Initialisierungsvektor der Nullvektor (der die Bedeutung einer Zeichenkette von 0-Bits hat, deren Länge gleich der Blocklänge ist). Im zweiten Durchlauf ist der Initialisierungsvektor der CBC-MAC, der im ersten Durchlauf erzeugt worden ist. Die Schlüssel für die beiden Durchläufe sind unterschiedlich. Das Verfahren ist für das Erzeugen von Chiffretext nützlich, wenn die Klartextkette eine Länge hat, die ein Vielfaches einer Blocklänge beträgt. Eine Variante des Schemas kann benutzt werden, wenn die Klartextkette eine Länge hat, die einem Bruchteil der Blocklänge entspricht.
- Um den Chiffretext zu entschlüsseln, wird dessen verschlüsselter Kettenteil unter Verwendung des zweiten Schlüssels und des CBC-MAC als Initialisierungsvektor chiffreblockverkettet, um eine entschlüsselte Kette zu erzeugen. Die entschlüsselte Kette wird dann unter Verwendung des ersten Schlüssels und eines Null-IV chiffreblockverkettet, um eine Kette zu erzeugen, die einen letzten Block hat. Der Klartext wird dann als die Verknüpfung (z. B. durch Verkettung) der entschlüsselten Kette und einer vorgegebenen Funktion (z. B. einer Antivalenz) des letzten Blockes und die Umkehrung der Blockchiffre entsprechend dem ersten Schlüssel bei der CBC-MAC genommen.
- Die Erfindung kann in einem programmierten Rechner oder in spezieller Hardware oder Software eingerichtet werden. In einer Ausführungsform können die verschiedenen Verfahren der Erfindung auf einer Programmspeichervorrichtung (z. B. einer Diskette) eingerichtet werden, die durch einen Prozessor gelesen werden kann und die praktisch ein Programm von durch den Prozessor ausführbaren Befehlen verkörpert, um die verschiedenen Vorgangsschritte jedes Verfahrens auszuführen.
- Nach einem anderen Aspekt der Erfindung wird ein durch Rechner realisiertes Verfahren bereitgestellt, um unter Verwendung erster und zweiter Schlüssel eine Klartextkette x in eine Chiffretextkette y zu verschlüsseln, das die folgenden Schritte umfasst:
- Benutzen der Kette x und des ersten Schlüssels a&sub0;, um einen Nachrichtenberechtigungscode t zu berechnen;
- Benutzen der Kette x, des zweiten Schlüssels a&sub1; und des Nachrichtenberechtigungscodes t, um eine verschlüsselte Kette y' zu erzeugen, die im Wesentlichen vom Nachrichtenberechtigungscode abhängt; und
- Aufnehmen des Chiffretextes y, um zusammen mit einem vorgegebenen Teil der verschlüsselten Kette y' den Nachrichtenberechtigungscode t zu bilden.
- Vorzugsweise ist der vorgegebene Teil kürzer als y', die Klartextkette kann jedoch, wenn der Chiffretext gegeben ist, noch eindeutig wiederhergestellt werden. Der Nachrichtenberechtigungscode wird vorzugsweise durch Chiffreblockverkettung einer Blockchiffre (z. B. der DES- Blockchiffre) berechnet.
- Ein dritter Aspekt der Erfindung stellt eine Rechnervorrichtung bereit, die Folgendes umfasst:
- eine Speichervorrichtung;
- Programm-Mittel, die in der Speichereinrichtung unterstützt werden, um eine Klartextkette x in eine Chiffretextkette y zu verschlüsseln, wobei das Programm- Mittel Folgendes umfasst:
- Mittel zum Benutzen der Kette x und eines ersten Schlüssels a&sub0;, um einen Nachrichtenberechtigungscode t zu berechnen;
- Mittel um die Kette x, einen zweiten Schlüssel a&sub1; und den Nachrichtenberechtigungscode t dafür zu benutzen, eine verschlüsselte Kette y' zu erzeugen; und
- Mittel zum Aufnehmen des Chiffretextes y, um zusammen mit einem vorgegebenen Teil der verschlüsselten Kette y' den Nachrichtenberechtigungscode t zu bilden, wobei der vorgegebene Teil kürzer als 9 ist.
- Die Erfindung wird nun ausführlicher in Form eines Beispieles unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben, in denen:
- Fig. 1 einen Rechner veranschaulicht, der eine Systemeinheit, eine Tastatur, eine Maus und eine Anzeige umfasst und der dafür benutzt werden soll, das Verschlüsselungs- und Entschlüsselungsverfahren der vorliegenden Erfindung zu realisieren;
- Fig. 2 ein den Aufbau beschreibendes Blockschaltbild des in Fig. 1 veranschaulichten Rechners ist;
- Fig. 3 ein vereinfachtes Flussbild eines Verfahrens der Erfindung veranschaulicht, um einen Klartext in einen Chiffretext zu verschlüsseln;
- Fig. 4 ein vereinfachtes Flussbild veranschaulicht, wie der Chiffretext (der in Fig. 3 erzeugt worden ist), zurück in den Klartext umgewandelt wird;
- Fig. 5A Schritt 70 von Fig. 3 veranschaulicht;
- Fig. 5B Schritt 72 von Fig. 3 veranschaulicht;
- Fig. 5C Schritt 76 von Fig. 4 veranschaulicht;
- Fig. 5D Schritt 78 von Fig. 4 veranschaulicht; und
- Fig. 5E Schritt 80 von Fig. 4 veranschaulicht.
- Als zusammenfassende Grundlage wird in Fig. 1 ein Rechner zum Gebrauch beim Unterstützen der Erfindung gezeigt. Der Rechner 20 umfasst eine Systemeinheit 21, eine Tastatur 22, eine Maus 23 und eine Anzeige 24. Der Bildschirm 26 der Anzeigeeinrichtung 24 wird dafür benutzt, eine grafische Benutzeroberfläche (GUI) darzustellen. Die grafische Benutzeroberfläche, die vom Betriebssystem unterstützt wird, gestattet es dem Benutzer, ein Eingabeverfahren mit Zeigerauslösung zu verwenden, d. h. durch Bewegen des Mauszeigers 25 auf ein Symbol, das ein Datenobjekt an einem bestimmten Standort darstellt, auf dem Bildschirm 26 und Drücken auf die Maustasten einen Benutzerbefehl oder eine -auswahl auszuführen.
- Fig. 2 zeigt ein Blockschaltbild der Komponenten des in Fig. 1 gezeigten Arbeitsplatzrechners. Die Systemeinheit 21 enthält einen Systembus oder eine Vielzahl von Systembussen 31, mit denen verschiedene Komponenten verbunden sind und über die Kommunikation zwischen den verschiedenen Komponenten bewerkstelligt wird. Der Mikroprozessor 32 ist mit dem Systembus 31 verbunden und wird durch Festspeicher (ROM) 33 und Speicher mit wahlfreiem Zugriff (RAM) 34 unterstützt, die ebenfalls mit Systembus 31 verbunden sind. Ein Mikroprozessor in der Computerserie PS/2 von IBM ist einer aus der Intel- Mikroprozessorfamilie, darunter die Mikroprozessoren 386 und 486 enthält. Andere Mikroprozessoren, darunter die Mikroprozessorenfamilie von Motorola, wie etwa die Mikroprozessoren 68000, 68020 oder 68030, jedoch nicht auf diese beschränkt, und verschiedene RISC-Mikroprozessoren, wie etwa der von IBM gefertigte PowerPCO-Mikroprozessor, und andere von Hewlett Packard, Sun, Intel, Motorola und anderen hergestellte können in dem jeweiligen Rechner benutzt werden.
- Der ROM 33 enthält unter anderen Codes das Grundlegende Eingabe-/Ausgabesystem (BIOS), das grundlegende Hardware- Vorgänge steuert, wie etwa den Dialog und die Plattenlaufwerke und die Tastatur. Der RAM 34 ist der Hauptspeicher, in den das Betriebssystem und Anwendungsprogramme geladen werden. Der Speicherverwaltungschip 35 ist mit dem Systembus 31 verbunden und steuert Vorgänge des direkten Speicherzugriffs, zu denen das Verschicken von Daten zwischen dem RAM 34 und Festplattenlaufwerk 36 und Diskettenlaufwerk 37 gehört. Das CD-ROM-Laufwerk 42, das ebenfalls mit dem Systembus 31 verbunden ist, wird dafür benutzt, eine große Datenmenge zu speichern, z. B. ein Multimedia-Programm oder eine große Datenbank.
- Ebenfalls mit diesem Systembus 31 verbunden sind verschiedene E/A-Steuerungen: die Tastatursteuerung 38, die Maussteuerung 39, die Bildsteuerung 40 und die Tonsteuerung 41. Die Tastatursteuerung 38 stellt die Hardware-Schnittstelle für die Tastatur 22 bereit, die Maussteuerung 39 stellt die Hardware- Schnittstelle für die Maus 23 bereit, die Bildsteuerung 40 ist die Hardware-Schnittstelle für die Anzeige 24, und die Tonsteuerung 41 ist die Hardware-Schnittstelle für die Lautsprecher 25a und 25b. Eine E/A-Steuerung 50, wie etwa ein Zeichenfolgeringadapter, ermöglicht über das Nahbereichsnetzwerk 56 die Kommunikation zu anderen gleichartig konfigurierten Datenverarbeitungssystemen.
- Eine der bevorzugten Realisierungen der vorliegenden Erfindung besteht in einem Befehlssatz in einem Code-Modul, das sich in dem Speicher mit wahlfreiem Zugriff 34 befindet. Bis er durch das Rechnersystem angefordert wird, kann der Befehlssatz in einem anderen Rechnerspeicher gespeichert sein, beispielsweise auf dem Festplattenlaufwerk 36 oder in einem auswechselbaren Speicher, wie etwa einer optischen Platte, die dann im CD-ROM- Laufwerk 42 oder auf einer Diskette verwendet werden kann, die dann im Diskettenlaufwerk 37 verwendet werden kann. Zusätzlich würde ein Fachmann erkennen, dass, obwohl die verschiedenen beschriebenen Verfahren üblicherweise in einem Allzweckrechner realisiert sind und durch Software wahlweise aktiviert oder neu konfiguriert werden, derartige Verfahren auch in Hardware, Firmware oder in eher spezialisierten Vorrichtungen ausgeführt werden können, die dafür konzipiert wurden, die geforderten Verfahrensschritte auszuführen.
- Das Verfahren nach der Erfindung, wie es hier benutzt wird, ist dafür bestimmt, auf einem Rechner realisiert zu werden, wie er in Fig. 1 gezeigt wird, obgleich eingeschätzt werden sollte, dass das Wort "Rechner" in seinem weitesten Sinne und seiner umfassenden Bedeutung gelten sollte, damit jede Art von Gerät oder Teil davon eingeschlossen sind, die ungeachtet der speziellen Anwendung eine Rechenfunktionen bereitstellen.
- Wenn nun die Hinwendung zu Fig. 3 erfolgt, wird das bevorzugte Verfahren zum Verschlüsseln einer Klartextkette in Chiffretext mit Hilfe eines Flussbildes veranschaulicht. Es wird angenommen, dass die verschlüsselnde Partei und die entschlüsselnde Partei ein Paar Geheimschlüssel (d. h. einen ersten und einen zweiten Schlüssel) gemeinsam nutzen. Bei Schritt 70 wird die Klartextkette unter Verwendung eines ersten (geheimen) Schlüssels und eines Null- Initialisierungsvektors (IV) chiffreblockverkettet, um einen CBC-Nachrichtenberechtigungscode (MAC) zu erzeugen, welcher der (vollständige) letzte Block des Chiffretextes ist. Bei Schritt 72 wird die Klartextkette wieder chiffreblockverkettet, wobei nun der zweite (geheime) Schlüssel und der CBC-MAC (der in Schritt 70 erzeugt wurde) als Initialisierungsvektor benutzt werden, um damit eine verschlüsselte Kette zu erzeugen. Bei Schritt 74 werden dann der CBC-MAC (in Schritt 70 erzeugt) und ein Teil der verschlüsselten Kette (in Schritt 72 erzeugt) miteinander verknüpft, um den Chiffretext zu erzeugen. Der Teil der verschlüsselten Kette wird auch als "Kennsatz" bezeichnet. Diese Verknüpfung ist weiterhin eine Funktion des ersten Schlüssels.
- Das Entschlüsseln des Chiffretextes (durch die Programmroutine von Fig. 3 erzeugt) wird in Fig. 4 veranschaulicht. Bei Schritt 76 wird die verschlüsselte Kette (erzeugt in Schritt 72) durch Chiffreblockverkettung unter Verwendung des zweiten Geheimschlüssels und des CBC-MAC (erzeugt in Schritt 70) als Initialisierungsvektor entschlüsselt. Schritt 76 erzeugt eine entschlüsselte Kette. Bei Schritt 78 wird die entschlüsselte Kette dann unter Verwendung des ersten Schlüssels und eines Null-IV chiffreblockverkettet, um eine weitere Kette zu erzeugen, die einen letzten Block hat. Bei Schritt 80 wird dann unter Zuhilfenahme des ersten Schlüssels eine vorgegebene Funktion dieses letzten Blockes und der Umkehrung der Blockchiffre am CBC-MAC (erzeugt in Schritt 70) berechnet. Der Klartext wird dann bei Schritt 82 als Verknüpfung (d. h. die Verkettung) der entschlüsselten Kette und des Ergebnisses der vorgegebenen Funktion gebildet.
- Die Vorgänge in jedem der Schritte 70 und 72 der Verschlüsselungsroutine werden in Fig. 5A beziehungsweise 5B veranschaulicht. Die Routine benutzt eine l-Bit-Blockchiffre f (wie DES) mit Schlüssellänge k. Wir schreiben fa(x) für die l- Bit-Kette, was der Wert der Blockchiffre ist, der für das l- Bit x unter Verwendung des k-Bitschlüssels a gilt. Weiterhin wird angenommen, wie vorstehend am Anfang angemerkt, dass der erste und der Geheimschlüssel a&sub0; und a&sub1; der Routine zur Verfügung stehen und dass gilt a&sub0; = a&sub1; = k. Die Schlüssel können von irgendeinem zugrunde liegenden Schlüssel K mit k Bit unter Verwendung von Standardtechniken der Schlüsseltrennung abgeleitet werden. Beispielsweise könnte a&sub0; aus den ersten k Bit von fk(0) und a&sub1; aus den ersten k Bit von fk(1) bestehen. In Fig. 5A besteht die Klartextkette aus der Nachrichtenkette x, von der aus Gründen der Veranschaulichung angenommen wird, dass sie aus zehn (10) Blöcken mit je vierundsechzig (64) Bit oder insgesamt 640 Bit besteht. Die Nachrichtenkette ist damit x = x&sub1; x&sub2; ... x&sub1;&sub0;. Diese Kette wird der Verschlüsselungsroutine mit Chiffreblockverkettung 82 vorgelegt, die auch den ersten Schlüssel a&sub0; und einen Null- Initialisierungsvektor (d. h. IV = 0) empfängt. Das Ergebnis der Chiffreblockverkettungsroutine 82 ist eine Ausgabekette y = y&sub1; y&sub2; ... y&sub1;&sub0;. Der letzte Block ylo ist der Nachrichtenberechtigungscode der Chiffreblockverkettung "CBC- MAC" mit 64 Bit. Dies schließt den ersten Durchgang der Routine ab.
- Der zweite Durchgang wird in Fig. 5B gezeigt, wobei die Nachrichtenkette (d. h. der Klartext) wiederum der Verschlüsselungsroutine mit Chiffreblockverkettung 82 vorgelegt wird. In diesem Durchgang besteht jedoch der von der Routine benutzte Schlüssel aus dem zweiten (geheimen) Schlüssel a&sub1;, und der Initialisierungsvektor ist der CBC-MAC (d. h. y&sub1;&sub0;), der in dem in Fig. 5A veranschaulichten ersten Durchgang erzeugt worden ist. Die sich ergebende verschlüsselte Kette wird mit y' = y'&sub1; y'&sub2; ... y'&sub1;&sub0; bezeichnet. Diese Verarbeitung schließt den zweiten Durchgang ab. Es ist anzumerken, dass, obwohl die Blockchiffre f, die in Fig. 5A und 5B gezeigt wird, als die gleiche dargestellt wird, dies nicht erforderlich ist. Vom Chiffretext wird dann angenommen, dass er die Verknüpfung (z. B. durch Verkettung) des CBC-MAC und eines Teiles der verschlüsselten Kette ist, nämlich:
- Chiffretext = y&sub1;&sub0; y'&sub1; y'&sub2; ... y'&sub9;.
- Die Routine ist längenneutral, da die Länge des Chiffretextes die gleich ist wie die Länge der Klartextkette.
- Um die Kette y mit 10 Blöcken zu entschlüsseln, betrachten wir sie zuerst als eine Folge von Blöcken:
- y&sub1;&sub0; y'&sub1; y'&sub2; ... y'&sub9;.
- Die Vorgänge in jedem der Schritte 76, 78 und 80 der Entschlüsselungsroutine erfolgen dann wie in Fig. 5C, 5D beziehungsweise 5E veranschaulicht. Wie in Fig. 5C gezeigt, betrifft Schritt 76 CBC-Entschlüsselung 84 der verschlüsselten Kette y'&sub1; y'&sub2; ... y'&sub9; (erzeugt in Schritt 72) mit dem zweiten Schlüssel a&sub1; und dem CBC-MAC (d. h. y&sub1;&sub0;) als IV. Die sich ergebende entschlüsselte Kette ist x&sub1; x&sub2; ... x&sub9;, die im Wesentlichen die Gesamtheit des ursprünglichen Klartextes darstellt. Um x&sub1;&sub0; wiederherzustellen, führt die Entschlüsselungsroutine zuerst den in Fig. 5D gezeigten Vorgang aus, wobei die entschlüsselte Kette x&sub1; x&sub2; ... x&sub9; unter Verwendung des ersten Schlüssels a&sub0; und eines Null-IV chiffreblockverkettet (durch CBC 84) wird, um eine Kette y&sub1; y&sub2; ... y&sub9; zu erzeugen, die einen letzten Block y&sub9; hat. Wie in Fig. 5E zu sehen ist, wird dann, um x&sub1;&sub0; zu erzeugen, eine vorgegebene Funktion 86 (z. B. eine Antivalenz) von y&sub9; und eine Umkehrfunktion der Blockchiffre f unter dem ersten Schlüssel a&sub0; beim Punkt y&sub1;&sub0; berechnet. Der Klartext ist dann als der Folgende zu erkennen:
- Klartext = x&sub1; x&sub2; ... x&sub9; x&sub1;&sub0;
- Die bevorzugte Realisierung, die vorstehend veranschaulicht worden ist, benutzt Chiffreblockverkettung als den Betriebsmodus für die Blockchiffre in Schritten 72 und 76. Die Erfindung ist jedoch nicht so beschränkt, so dass für diese Schritte auch andere Betriebsarten benutzt werden können. Darüber hinaus sollte eingeschätzt werden, dass, obwohl Chiffreblockverkettung im ersten Durchgang (Schritt 70) über den Klartext vorzugsweise benutzt worden ist, um den Nachrichtenberechtigungscode zu erzeugen, andere bekannte Techniken zum Erzeugen von MACs (oder anderen Modi der Blockchiffreverkettung) in diesem Schritt anstelle von CBC als Austausch benutzt werden könnten. (Alles, was benötigt wird, besteht darin, dass, wenn der l-Bit-MAC von m und alle l-Bits von m bis auf spezielle gegeben sind, diese fehlenden l-Bits effizient und eindeutig wieder aufgebaut werden können). Damit ist nach der Erfindung vorgesehen, dass der erste Durchgang, der die Klartextkette verarbeitet, eine bekannte Technik betrifft, die den ersten Schlüssel a&sub0; zum Berechnen eines Nachrichtenberechtigungscodes oder einer Markierung benutzt. Wie vorstehend ausgeführt, betrifft der zweite Durchgang dann das Benutzen dieses MAC als IV zusammen mit einem zweiten Schlüssel a&sub1;, um die Nachricht in eine chiffrierte Kette zu verschlüsseln. Dieser zweite Durchgang kann unter Verwendung von CBC erfolgen, dies ist aber nicht erforderlich. Der MAC und ein Teil der verschlüsselten Kette werden dann als Chiffretext genommen.
- Damit betrifft nach den eher allgemeinen Aspekten der Erfindung die Verschlüsselung das Benutzen der Klartextkette und eines ersten Schlüssels, um einen Nachrichtenberechtigungscode zu berechnen. Die Routine geht dann weiter, indem sie die Nachricht, einen zweiten Schlüssel und den Nachrichtenberechtigungscode dafür benutzt, eine verschlüsselte Kette zu erzeugen, die im Wesentlichen vom dem Nachrichtenberechtigungscode abhängt. Wie sie hier benutzt wird, bedeutet eine derartige "starke" Abhängigkeit, dass alle Bits der verschlüsselten Kette unterschiedlich sein können, wenn der MAC unterschiedliche Werte annimmt. Vom Chiffretext des Klartextes wird dann angenommen, dass er den Nachrichtenberechtigungscode zusammen mit irgendeinem Stück aus der verschlüsselten Kette umfasst. Um den Vorgang umzukehren, gehört zu der Entschlüsselungsroutine das Benutzen des verschlüsselten Kettenteiles des Chiffretextes, des zweiten Schlüssels und des MAC, um eine entschlüsselte Kette zu erzeugen. Die Entschlüsselung geht weiter, indem die entschlüsselte Kette und der erste Schlüssel benutzt werden, um eine Kette zu erzeugen, die einen letzten Block hat. Eine vorgegebene Funktion des letzten Blockes und die Umkehrung der Blockchiffre unter dem ersten Schlüssel am MAC wird dann berechnet. Der Klartext wird dann als die entschlüsselte Kette und das Ergebnis der vorgegebenen Funktion genommen.
- Eine ausführlichere Realisierung der Erfindung wird nun dargelegt. Diese Realisierung verarbeitet Nachrichtenketten, wobei gleichgültig ist, ob die Länge der speziellen Kette, die verarbeitet wird, gleich oder ein Bruchteil einer gewünschten Blocklänge ist. Das Verfahren beginnt mit dem Auswählen einer l-Bit-Blockchiffre f mit Schlüssellänge k. Beispielsweise ist 1 gleich 64, wenn f der DES-Algorithmus ist. Natürlich können neben DES ebenso auch andere Blockchiffren (z. B. IDEA oder SKIPJACK)genauso benutzt werden. Dabei sollen der Verschlüsselungsschlüssel a = (a&sub0;, a&sub1;) mit a&sub0; = a&sub1; = k und λ die leere Kette (mit 0&sup0; = 1) sein. Geheimschlüssel a&sub0; und a&sub1; sollten voneinander unabhängig sein (mindestens im Hinblick auf praktische Rechnungen). < m> soll das Codieren der Anzahl m < 2¹ in einen l-Bit-Block bezeichnen. Für eine Kette m = m&sub1; ... m&sub9;, die aus s Blöcken besteht, wobei jeder l-Bit hat, wird der CBC-MAC (l-Bit) von m unter a&sub0; dann definiert mit:
- f(3)(m) = fa&sub0;(fa&sub0;(...(fa&sub0;(m&sub1;) m&sub2;) ... m&sub3;&submin;&sub1;) m&sub3;).
- a&sub0;
- .
- Nun wird angenommen, dass x die Nachricht ist, die wir verschlüsseln möchten, und 1 ≤ x < 2¹ ist. Es soll x = x&sub1; ...xn-1xn die Nachricht sein, die verschlüsselt werden soll, wobei x&sub1; = ... = xn-1 = 1 und xn ≤ 1. Es ist anzumerken, dass die Annahme x&sub1; ≥ 1 beinhaltet, dass es mindestens einen "vollen" Block zum Verschlüsseln gibt. Das folgende Verfahren soll nicht auf Nachrichten angewendet werden, die eine Länge haben, die geringer als 1 ist. Es soll sein
- x = < x > x&sub1;...xn-3 xn-2 xn 01-/xn/xn-1
- Der vorstehende Schritt füllt zuerst die Nachrichtenkette mit nachlaufenden Nullen auf, um sicherzustellen, dass die Gesamtlänge der Kette, die verschlüsselt wird, ein Vielfaches der Blocklänge ist, und dann vertauscht er den (vorher kurzen) letzten Block von x mit dem vorletzten (vollen) Block von x. (Dieser Schritt ist nicht erforderlich, wenn die Länge der Nachricht ein Vielfaches der Blocklänge ist). Es soll nun sein
- x* = x&sub1;...xn-2xn.
- Es ist anzumerken, dass x* = x = 1.
- Das Verschlüsselungsschema Ea(·) ist wie folgt:
- - Schritt 1. Es soll t = fa0(n+1)(x') der l-Bit-CBC-MAC von x unter a&sub0; sein.
- - Schritt 2. Es ist x* wie folgt zu verschlüsseln. Es soll y&sub0; = t sein (d. h. der Initialisierungsvektor). Dann soll für i = 1, ..., n-2 sein yi = fa&sub1; (xi yi-1). Abschließend gilt, wenn xn = l, dann soll yn = fa&sub1;(xn yn-2) sein; andernfalls (d. h. 1 ≤ xn < l) soll yn die Antivalenz von xn mit den ersten xn Bit von fa&sub1;(y" 2) sein. Dieses Verschlüsselungsverfahren ist eine Erweiterung des CBC- Betriebsmodus, um Blöcke mit veränderlicher Länge zuzulassen. (Wenn die Blockchiffre DES ist, wird dieses Verfahren als CUSP/3848-Mechanismus von IBM bezeichnet).
- - Schritt 3. Ea(x) = t y&sub1;...yn-2 yn ist zu definieren. Das heißt, dass die Verschlüsselung von x ist t zusammen mit dem verschlüsselten Text von Schritt 2.
- Die Entschlüsselung geschieht wie folgt, wobei y = t y&sub1;...yn-2 yn der empfangene Chiffretext ist:
- - Schritt 1. Es wird x* durch Entschlüsseln des Chiffretextes y&sub1;...yn-1 yn unter Schlüssel a&sub1; wiedergewonnen. Das heißt, es soll y&sub0; = t und für i = 1, ...., n-2 soll xi = f&supmin;¹ (yi) yi-1 sein. Dann soll, wenn yn = l ist, xa = a1 f&supmin;¹ (yn) yn2 sein; andernfalls (d. h. 1 ≤ yn < l) soll xn die a&sub1;-Antivalenz von yn mit den ersten yn Bit von fa1(yn-2) sein.
- - Schritt 2. Um xn-1 wiederzugewinnen, soll t = f(n)a0 ( y x&sub1;... xn-2 xn01-3xn³) sein, und es soll Xn-1 = f&supmin;¹a0(t) t sein.
- Der wiedergewonnene Klartext ist x&sub1;...xn.
- Die vorliegende Erfindung stellt wesentliche Vorzüge bereit, die darin bestehen, dass die Verschlüsselung längenneutral, nicht statusgebunden, deterministisch und sicher ist. Abgeleitete Verschlüsselungsverfahren können entworfen werden, um nicht nur diese anfängliche Gruppe von Anforderungen zu erfüllen, sondern weiterhin sicherzustellen, dass die Verfahren vollständig parallel ausführbar sind, entweder in Hardware oder in Software. Beispielsweise kann der MAC t mit einem "MAC-Baum"-Schema berechnet werden, wie es in US- Patentschrift 4 933 969 von Marshall et al. beschrieben wird. Dann kann das Verschlüsseln einfach das mit Antivalenz erfolgende Verknüpfen der Nachricht x mit der Länge umfassen - x Kennnsatz von fa(t) fa(t + 1)mod2¹) fa((t + 2)mod2¹).... Bei einer derartigen Ausführungsform verdoppelt das Verdoppeln der Anzahl der Prozessoren in der Tat die Geschwindigkeit, mit welcher der verschlüsselte Text berechnet werden kann.
- Die bestimmten Anwendungen der Verfahren, die hier behandelt wurden, sind sehr vielfältig. Beispielsweise sind die Techniken nützlich für das Verschlüsseln eines Feldes einer Protokolldateneinheit, das Verschlüsseln einer Datei auf eine Weise, die von den "i-Knoten" der Datei unabhängig ist, oder das Verschlüsseln eines Plattensektors unabhängig von der Position des Sektors auf dem physischen Medium. Das erste Beispiel tritt üblicherweise ein, wenn es ein beliebiges festes Übertragungsprotokoll gibt, bei dem eine Anzahl von Nachrichtenbits verfügbar bleibt, bei dem aber keine Sicherheit geboten wird. Es ist wünschenswert, Sicherheit einzubringen, ohne dass jedoch die Bitanzahl jedes Feldes verändert wird. Mit anderen Worten, es ist wünschenswert, in der Lage zu sein, die gesamte Nachricht zu senden, und zwar verschlüsselt, die formal im Klartext übertragen worden ist.
- Es sollte vom Fachmann eingeschätzt werden, dass die bestimmten Ausführungsformen, die vorstehend dargelegt worden sind, leicht als Grundlage für das Veränderung und Entwerfen anderer Routinen zum Erreichen des gleichen Zweckes benutzt werden können, wie ihn die vorliegende Erfindung erfüllt.
Claims (17)
1. Verfahren, um unter Verwendung eines ersten und eines
zweiten Schlüssels eine Klartextkette in eine
Chiffretextkette zu verschlüsseln, das die folgenden
Schritte umfasst:
(a) Chiffreblockverkettung, d. h. CBC, einer Klartextkette
unter Verwendung des ersten Schlüssels und eines
ersten Initialisierungsvektors (IV), um einen CBC-
Nachrichtenberechtigungscode zu erzeugen;
(b) Chiffreblockverkettung der Klartextkette unter
Verwendung des zweiten Schlüssels und des CBC-
Nachrichtenberechtigungscodes als zweiten
Initialisierungsvektor, um eine verschlüsselte Kette
zu erzeugen; und
(c) Verknüpfen des CBC-Nachrichtenberechtigungscodes und
eines vorgegebenen Teiles der verschlüsselten Kette,
um die Chiffretextkette zu bilden.
2. Verfahren nach Anspruch 1, wobei der CBC-
Nachrichtenberechtigungscode eine Länge hat, die gleich
einer Blocklänge ist.
3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei der
vorgegebene Teil der verschlüsselten Kette alle außer
einem letzten Block der verschlüsselten Kette enthält.
4. Verfahren nach einem beliebigen der Ansprüche 1 bis 3,
wobei der erste Initialisierungsvektor der Null-Vektor
ist.
5. Verfahren nach einem beliebigen der vorhergehenden
Ansprüche, wobei die Klartextkette eine Länge hat, die ein
Vielfaches einer Blocklänge ist.
6. Verfahren nach einem beliebigen der Ansprüche 1 bis 4,
wobei die Klartextkette eine Länge hat, die nicht gleich
einem Vielfachen einer Blocklänge ist.
7. Verfahren nach einem beliebigen der vorhergehenden
Ansprüche, wobei der Schritt (c) den CBC-
Nachrichtenberechtigungscode und den vorgegebenen Teil der
verschlüsselten Kette verkettet, um die Chiffretextkette
zu bilden.
8. Verfahren nach einem beliebigen der vorhergehenden
Ansprüche, wobei die Chiffretextkette eine Länge hat, die
gleich der Klartextkette ist.
9. Verfahren nach einem beliebigen der vorhergehenden
Ansprüche, wobei der erste und der zweite Schlüssel von
einem zugrunde liegenden Geheimschlüssel abgeleitet
werden.
10. Verfahren, um unter Verwendung erster und zweiter
Schlüssel und einer Blockchiffre eine Chiffretextkette in
eine Klartextkette zu entschlüsseln, wobei die
Chiffretextkette einen CBC-Nachrichtenberechtigungscode
und eine verschlüsselte Kette enthält, das folgende
Schritte umfasst:
(a) Entschlüsseln durch Chiffreblockverkettung der
verschlüsselten Kette unter Verwendung des zweiten
Schlüssels und des CBC-Nachrichtenberechtigungscodes
als Initialisierungsvektor, um eine entschlüsselte
Kette zu erzeugen;
(b) Chiffreblockverkettung der entschlüsselten Kette
unter Verwendung des ersten Schlüssels und eines
Initialisierungs-Nullvektors, um eine Kette zu
erzeugen, die einen letzten Block hat;
(c) Berechnen einer vorbestimmten Funktion des letzten
Blockes und eine Umkehr der Blockchiffre unter dem
ersten Schlüssel beim CBC-
Nachrichtenberechtigungscode; und
(d) Verknüpfen der entschlüsselten Kette und eines
Ergebnisses der vorbestimmten Funktion, um die
Klartextkette zu erzeugen.
11. Verfahren nach Anspruch 10, wobei die Blockchiffre aus DES
besteht.
12. Verfahren nach Anspruch 10 oder 11, wobei die vorbestimmte
Funktion in Schritt (c) eine Antivalenz ist.
13. Rechnervorrichtung, die Folgendes umfasst:
eine Speichervorrichtung;
Programm-Mittel, das in der Speichervorrichtung
unterstützt wird, um eine Klartextkette in eine
Chiffretextkette zu verschlüsseln, wobei das Programm-
Mittel Folgendes umfasst:
Mittel zum Chiffreblockverketten, d. h. CBC der
Klartextkette unter Verwendung des ersten Schlüssels und
eines ersten Initialisierungsvektors (IV), um einen CBC-
Nachrichtenberechtigungscode zu erzeugen;
Mittel zur Chiffreblockverkettung der Klartextkette unter
Verwendung des zweiten Schlüssels und des CBC-
Nachrichtenberechtigungscodes als zweiten
Initialisierungsvektor, um eine verschlüsselte Kette zu
erzeugen; und
Mittel zum Verknüpfen des CBC-
Nachrichtenberechtigungscodes und eines vorbestimmten
Teiles der verschlüsselten Kette, um die Chiffretextkette
zu bilden.
14. Rechnervorrichtung, die Folgendes umfasst:
eine Speichervorrichtung;
Programm-Mittel, das in der Speichervorrichtung
unterstützt wird, um eine Chiffretextkette in eine
Klartextkette zu entschlüsseln, wobei die Chiffretextkette
einen CBC-Nachrichtenberechtigungscode und eine
verschlüsselte Kette umfasst, wobei das Programm-Mittel
Folgendes umfasst:
Mittel zum Entschlüsseln der verschlüsselten Kette durch
Chiffreblockverkettung der verschlüsselten Kette, wobei
ein Geheimschlüssel und der CBC-
Nachrichtenberechtigungscode als Initialisierungsvektor
benutzt werden, um eine entschlüsselte Kette zu erzeugen;
Mittel zur Chiffreblockverkettung der entschlüsselten
Kette unter Verwendung eines zweiten Geheimschlüssels und
eines Initialisierungs-Nullvektors, um eine Kette zu
erzeugen, die einen letzten Block hat;
Mittel zum Berechnen einer vorbestimmten Funktion des
letzten Blockes und einer Umkehrung einer Blockchiffre,
die unter Verwendung des zweiten Geheimschlüssels
ausgewertet wird; und
Mittel zum Verknüpfen der entschlüsselten Kette und der
vorbestimmten Funktion, um die Klartextkette zu erzeugen.
15. Programmspeichervorrichtung, die durch einen Prozessor
gelesen werden kann und real ein Programm von Befehlen
verkörpert, die vom Prozessor ausführbar sind, um
Verschlüsselungs- und Entschlüsselungsverfahren unter
Verwendung erster und zweiter Schlüssel und einer
Blockchiffre durchzuführen, wobei das
Verschlüsselungsverfahren die folgenden Schritte umfasst:
(a) Chiffreblockverkettung, d. h. CBC, einer Klartextkette
unter Verwendung des ersten Schlüssels und eines
Initialisierungsvektors (IV), um einen CBC-
Nachrichtenberechtigungscode zu erzeugen;
(b) Chiffreblockverkettung der Klartextkette unter
Verwendung des zweiten Schlüssels und des CBC-
Nachrichtenberechtigungscodes als
Initialisierungsvektor, um eine verschlüsselte Kette
zu erzeugen; und
(c) Verknüpfen des CBC-Nachrichtenberechtigungscodes und
eines Teils der verschlüsselten Kette, um eine
Chiffretextkette zu bilden;
und wobei das Entschlüsselungsverfahren die folgenden
Schritte umfasst:
(a) Chiffreblockverkettung der verschlüsselten Kette
unter Verwendung des zweiten Schlüssels und des CBC-
Nachrichtenberechtigungscodes als
Initialisierungsvektor, um eine entschlüsselte Kette
zu erzeugen;
(b) Chiffreblockverkettung der entschlüsselten Kette
unter Verwendung des ersten Schlüssels und eines
Initialisierungs-Nullvektors, um eine Kette zu
erzeugen, die einen letzten Block hat;
(c) Berechnen einer vorbestimmten Funktion des letzten
Blockes und einer Umkehrung der Blockchiffre unter
dem ersten Schlüssel beim CBC-
Nachrichtenberechtigungscode; und
(d) Verknüpfen der entschlüsselten Kette und der
vorbestimmten Funktion, um die Klartextkette zu
erzeugen.
16. In einem Rechner realisiertes Verfahren nach Anspruch 1,
um unter Verwendung erster und zweiter Schlüssel eine
Klartextkette x in eine Chiffretextkette y zu
verschlüsseln, wobei das Verfahren folgende Schritte
umfasst:
Benutzen der Kette x und eines ersten Schlüssels a&sub0;, um
einen Nachrichtenberechtigungscode t zu berechnen; und
Benutzen der Kette x, eines zweiten Schlüssels a&sub1; und des
Nachrichtenberechtigungscodes t, um eine verschlüsselte
Kette y' zu erzeugen, die im Wesentlichen von dem
Nachrichtenberechtigungscode abhängt; und
Aufnehmen des Chiffretextes y, um den
Nachrichtenberechtigungscode t zusammen mit einem
vorbestimmten Teil der verschlüsselten Kette y'
zusammenzubringen
17. Rechnervorrichtung nach Anspruch 13, die Folgendes
umfasst:
eine Speichervorrichtung;
Programm-Mittel, das in der Speichervorrichtung
unterstützt wird, um eine Klartextkette x in eine
Chiffretextkette y zu verschlüsseln, wobei das Programm-
Mittel Folgendes umfasst:
Mittel zum Benutzen der Kette x und eines ersten
Schlüssels a&sub0;, um einen Nachrichtenberechtigungscode t zu
berechnen; 0
Mittel, um die Kette x, einen zweiten Schlüssel a&sub1; und den
Nachrichtenberechtigungscode t dafür zu benutzen, eine
verschlüsselte Kette y' zu erzeugen; und
Mittel zum Aufnehmen des Chiffretextes y, um zusammen mit
einem vorbestimmten Teil der verschlüsselten Kette y' den
Nachrichtenberechtigungscode zu bilden, wobei der
vorbestimmte Teil kürzer als y' ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/384,152 US5673319A (en) | 1995-02-06 | 1995-02-06 | Block cipher mode of operation for secure, length-preserving encryption |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69618040D1 DE69618040D1 (de) | 2002-01-31 |
DE69618040T2 true DE69618040T2 (de) | 2002-08-29 |
Family
ID=23516242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69618040T Expired - Lifetime DE69618040T2 (de) | 1995-02-06 | 1996-01-25 | Verfahren zur Verschlüsselung/Entschlüsselung von Daten unter Verwendung von Cipher-Block-Chaining (CBC) und Message Authentication Code (MAC) |
Country Status (4)
Country | Link |
---|---|
US (1) | US5673319A (de) |
EP (1) | EP0725511B1 (de) |
JP (1) | JPH08248879A (de) |
DE (1) | DE69618040T2 (de) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19640526A1 (de) * | 1996-10-01 | 1998-04-02 | Deutsche Telekom Ag | Verfahren zur Übertragung von Signalen |
CA2210199A1 (en) | 1997-07-11 | 1999-01-11 | Mitel Corporation | Method and apparatus for the generation of non-linear confusion data |
US6055316A (en) * | 1997-12-26 | 2000-04-25 | Sun Microsystems, Inc. | System and method for deriving an appropriate initialization vector for secure communications |
US6192129B1 (en) | 1998-02-04 | 2001-02-20 | International Business Machines Corporation | Method and apparatus for advanced byte-oriented symmetric key block cipher with variable length key and block |
US6243470B1 (en) | 1998-02-04 | 2001-06-05 | International Business Machines Corporation | Method and apparatus for advanced symmetric key block cipher with variable length key and block |
US6128737A (en) * | 1998-04-20 | 2000-10-03 | Microsoft Corporation | Method and apparatus for producing a message authentication code in a cipher block chaining operation by using linear combinations of an encryption key |
US6226742B1 (en) * | 1998-04-20 | 2001-05-01 | Microsoft Corporation | Cryptographic technique that provides fast encryption and decryption and assures integrity of a ciphertext message through use of a message authentication code formed through cipher block chaining of the plaintext message |
ATE282915T1 (de) * | 1998-05-07 | 2004-12-15 | Herrero Angel Jose Ferre | Vorrichtung zur verschleierung und verschlüsselung |
US6189095B1 (en) | 1998-06-05 | 2001-02-13 | International Business Machines Corporation | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks |
US6266412B1 (en) * | 1998-06-15 | 2001-07-24 | Lucent Technologies Inc. | Encrypting speech coder |
US6351539B1 (en) | 1998-09-18 | 2002-02-26 | Integrated Device Technology, Inc. | Cipher mixer with random number generator |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US7415110B1 (en) | 1999-03-24 | 2008-08-19 | Intel Corporation | Method and apparatus for the generation of cryptographic keys |
US6324288B1 (en) * | 1999-05-17 | 2001-11-27 | Intel Corporation | Cipher core in a content protection system |
US6907127B1 (en) * | 1999-06-18 | 2005-06-14 | Digital Video Express, L.P. | Hierarchical key management encoding and decoding |
US6529487B1 (en) * | 1999-07-09 | 2003-03-04 | Qualcomm Incorporated | Method and apparatus for securely transmitting distributed RAND for use in mobile station authentication |
US6920221B1 (en) | 1999-08-29 | 2005-07-19 | Intel Corporation | Method and apparatus for protected exchange of status and secret values between a video source application and a video hardware interface |
US6477252B1 (en) * | 1999-08-29 | 2002-11-05 | Intel Corporation | Digital video content transmission ciphering and deciphering method and apparatus |
US7068786B1 (en) | 1999-08-29 | 2006-06-27 | Intel Corporation | Dual use block/stream cipher |
US6947558B1 (en) | 1999-08-29 | 2005-09-20 | Intel Corporation | Stream cipher having a shuffle network combiner function |
US6731758B1 (en) | 1999-08-29 | 2004-05-04 | Intel Corporation | Digital video content transmission ciphering and deciphering method and apparatus |
SG117471A1 (en) * | 2000-01-14 | 2005-12-29 | Mitsubishi Electric Corp | Method and apparatus for encryption, method and apparatus for decryption, and computer-readable med ium storing program |
US7184549B2 (en) * | 2000-01-14 | 2007-02-27 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program |
WO2001054099A1 (fr) * | 2000-01-21 | 2001-07-26 | Sony Corporation | Systeme d'authentification de donnees |
SG124291A1 (en) * | 2000-03-09 | 2006-08-30 | Mitsubishi Electric Corp | Block cipher apparatus using auxuiliary transformation |
US7003107B2 (en) | 2000-05-23 | 2006-02-21 | Mainstream Encryption | Hybrid stream cipher |
JP2002049310A (ja) * | 2000-08-04 | 2002-02-15 | Toshiba Corp | 暗復号装置、認証装置及び記憶媒体 |
US7280495B1 (en) | 2000-08-18 | 2007-10-09 | Nortel Networks Limited | Reliable broadcast protocol in a wireless local area network |
US7366103B2 (en) * | 2000-08-18 | 2008-04-29 | Nortel Networks Limited | Seamless roaming options in an IEEE 802.11 compliant network |
US7339892B1 (en) | 2000-08-18 | 2008-03-04 | Nortel Networks Limited | System and method for dynamic control of data packet fragmentation threshold in a wireless network |
US7308279B1 (en) | 2000-08-18 | 2007-12-11 | Nortel Networks Limited | Dynamic power level control on transmitted messages in a wireless LAN |
US7039190B1 (en) * | 2000-08-18 | 2006-05-02 | Nortel Networks Limited | Wireless LAN WEP initialization vector partitioning scheme |
JP2002132141A (ja) * | 2000-10-20 | 2002-05-09 | Sony Corp | データ記憶装置、およびデータ記録方法、データ再生方法、並びにプログラム提供媒体 |
US7007156B2 (en) * | 2000-12-28 | 2006-02-28 | Intel Corporation | Multiple coprocessor architecture to process a plurality of subtasks in parallel |
US7360075B2 (en) * | 2001-02-12 | 2008-04-15 | Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
US7353380B2 (en) * | 2001-02-12 | 2008-04-01 | Aventail, Llc, A Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
US7383329B2 (en) | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US7203837B2 (en) * | 2001-04-12 | 2007-04-10 | Microsoft Corporation | Methods and systems for unilateral authentication of messages |
US20060291650A1 (en) * | 2001-05-22 | 2006-12-28 | Viswanath Ananth | State-varying hybrid stream cipher |
JP2003023421A (ja) * | 2001-07-09 | 2003-01-24 | C4 Technology Inc | 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置 |
US7103180B1 (en) * | 2001-10-25 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Method of implementing the data encryption standard with reduced computation |
CA2364174A1 (en) * | 2001-11-27 | 2003-05-27 | Bayer Inc. | Filled elastomeric butyl compounds with improved scorch safety |
US7487365B2 (en) * | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7370197B2 (en) * | 2002-07-12 | 2008-05-06 | Microsoft Corporation | Method and system for authenticating messages |
US20040064725A1 (en) * | 2002-09-18 | 2004-04-01 | Microsoft Corporation | Method and system for detecting a communication problem in a computer network |
US20050235145A1 (en) * | 2002-12-05 | 2005-10-20 | Canon Kabushiki Kaisha | Secure file format |
US20040111610A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Secure file format |
US7613925B2 (en) | 2003-01-10 | 2009-11-03 | Motorola, Inc. | Method for authenticating a message |
US8261062B2 (en) | 2003-03-27 | 2012-09-04 | Microsoft Corporation | Non-cryptographic addressing |
US7610487B2 (en) | 2003-03-27 | 2009-10-27 | Microsoft Corporation | Human input security codes |
US7624264B2 (en) | 2003-03-27 | 2009-11-24 | Microsoft Corporation | Using time to determine a hash extension |
US7409544B2 (en) * | 2003-03-27 | 2008-08-05 | Microsoft Corporation | Methods and systems for authenticating messages |
US7103754B2 (en) | 2003-03-28 | 2006-09-05 | International Business Machines Corporation | Computer instructions for having extended signed displacement fields for finding instruction operands |
US7055039B2 (en) * | 2003-04-14 | 2006-05-30 | Sony Corporation | Protection of digital content using block cipher crytography |
US8060755B2 (en) * | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7529368B2 (en) * | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent output feedback mode cryptographic functions |
US7392400B2 (en) * | 2003-04-18 | 2008-06-24 | Via Technologies, Inc. | Microprocessor apparatus and method for optimizing block cipher cryptographic functions |
US7321910B2 (en) * | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7542566B2 (en) * | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7925891B2 (en) * | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7502943B2 (en) * | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US7529367B2 (en) * | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent cipher feedback mode cryptographic functions |
US7844053B2 (en) * | 2003-04-18 | 2010-11-30 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7900055B2 (en) * | 2003-04-18 | 2011-03-01 | Via Technologies, Inc. | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms |
US7536560B2 (en) * | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7539876B2 (en) * | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7519833B2 (en) * | 2003-04-18 | 2009-04-14 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine |
US7657757B2 (en) * | 2003-04-30 | 2010-02-02 | Freescale Semiconductor, Inc. | Semiconductor device and method utilizing variable mode control with block ciphers |
US7159122B2 (en) | 2003-05-12 | 2007-01-02 | International Business Machines Corporation | Message digest instructions |
US7356710B2 (en) * | 2003-05-12 | 2008-04-08 | International Business Machines Corporation | Security message authentication control instruction |
US7257718B2 (en) | 2003-05-12 | 2007-08-14 | International Business Machines Corporation | Cipher message assist instructions |
JP2005140823A (ja) | 2003-11-04 | 2005-06-02 | Sony Corp | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
US20060005031A1 (en) * | 2004-06-15 | 2006-01-05 | Apostolopoulos John G | Methods and systems for utilizing a single cryptographic integrity check to generate multiple cryptographic integrity check values for components of transcodable content |
US7929689B2 (en) | 2004-06-30 | 2011-04-19 | Microsoft Corporation | Call signs |
US20070262138A1 (en) * | 2005-04-01 | 2007-11-15 | Jean Somers | Dynamic encryption of payment card numbers in electronic payment transactions |
US20100203960A1 (en) * | 2005-07-20 | 2010-08-12 | Wms Gaming Inc. | Wagering game with encryption and authentication |
US7725719B2 (en) * | 2005-11-08 | 2010-05-25 | International Business Machines Corporation | Method and system for generating ciphertext and message authentication codes utilizing shared hardware |
EP1783948B1 (de) * | 2005-11-08 | 2011-01-12 | Irdeto Access B.V. | Verfahren zur Ver- und Entwürfelung von Daten |
US8086842B2 (en) | 2006-04-21 | 2011-12-27 | Microsoft Corporation | Peer-to-peer contact exchange |
US8634549B2 (en) * | 2008-05-07 | 2014-01-21 | Red Hat, Inc. | Ciphertext key chaining |
US8396209B2 (en) * | 2008-05-23 | 2013-03-12 | Red Hat, Inc. | Mechanism for chained output feedback encryption |
KR101496975B1 (ko) | 2008-05-28 | 2015-03-02 | 삼성전자주식회사 | 고체 상태 디스크 및 이에 대한 입출력방법 |
US8218759B2 (en) * | 2009-04-17 | 2012-07-10 | Oracle America, Inc. | System and method for encrypting data |
EP2290872B1 (de) * | 2009-08-27 | 2014-06-18 | Nxp B.V. | Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes zur Authentifizierung einer Nachricht |
CZ2011142A3 (cs) * | 2011-03-17 | 2012-05-23 | Ažd Praha S. R. O. | Zpusob zachování bezpecného stavu zabezpecovacích systému se složenou bezpecností, zejména na železnici, pri vytvárení datových otisku |
CN102136904A (zh) * | 2011-03-30 | 2011-07-27 | 中国科学院软件研究所 | 一种基于分组密码的消息鉴别方法 |
KR101106604B1 (ko) * | 2011-06-14 | 2012-01-20 | 펜타시큐리티시스템 주식회사 | 특성 유지 암호화를 이용한 데이터 보안 방법 및 장치 |
JP2013134414A (ja) * | 2011-12-27 | 2013-07-08 | Kddi Corp | 鍵暗号化装置、鍵復号装置、鍵暗号化方法、鍵復号方法、およびプログラム |
KR101416685B1 (ko) * | 2013-01-18 | 2014-07-09 | 어보브반도체 주식회사 | 비휘발성 메모리의 바이너리 데이터 보호 방법 및 그 장치 |
JP6167721B2 (ja) * | 2013-07-23 | 2017-07-26 | 凸版印刷株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム |
EP3286873A4 (de) | 2016-03-24 | 2018-08-29 | Hewlett-Packard Enterprise Development LP | Textverschlüsselung |
CN107707690B (zh) * | 2017-11-28 | 2021-07-16 | 锐捷网络股份有限公司 | 一种动态地址不老化的方法、装置和介质 |
US11115187B2 (en) * | 2018-09-07 | 2021-09-07 | Korea University Research And Business Foundation | Apparatus and method for block ciphers for real-time data transmission |
EP3742317A1 (de) * | 2019-05-21 | 2020-11-25 | Ordnance Survey Limited | Verfahren und system zur gewährung des zugriffs auf daten in einem unveränderlichen ledger-system |
US11347895B2 (en) * | 2019-12-03 | 2022-05-31 | Aptiv Technologies Limited | Method and system of authenticated encryption and decryption |
EP3913509A1 (de) * | 2020-05-22 | 2021-11-24 | Thales Dis France Sa | Verfahren zur sicherung von computercodes |
CN111832067B (zh) * | 2020-05-26 | 2021-12-17 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112149137B (zh) * | 2020-09-30 | 2023-12-05 | 深圳前海微众银行股份有限公司 | 漏洞检测方法、装置、电子设备及计算机可读存储介质 |
US12047490B2 (en) * | 2021-10-25 | 2024-07-23 | Oracle International Corporation | Length-preserving encryption for database tables |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3958081A (en) * | 1975-02-24 | 1976-05-18 | International Business Machines Corporation | Block cipher system for data security |
US4074066A (en) * | 1976-04-26 | 1978-02-14 | International Business Machines Corporation | Message verification and transmission error detection by block chaining |
JPS603755B2 (ja) * | 1979-05-23 | 1985-01-30 | 株式会社明電舎 | 高周波加熱装置の接続導体 |
US4322576A (en) * | 1979-12-28 | 1982-03-30 | Racal-Milgo, Inc. | Message format for secure communication over data links |
FR2582174B1 (fr) * | 1985-05-15 | 1990-03-09 | Thomson Csf | Dispositif de chiffrement par substitutions-permutations |
US5319710A (en) * | 1986-08-22 | 1994-06-07 | Tandem Computers Incorporated | Method and means for combining and managing personal verification and message authentication encrytions for network transmission |
US5109413A (en) * | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
JP2871690B2 (ja) * | 1988-04-28 | 1999-03-17 | 日本電気株式会社 | 符号化装置及び復号化装置 |
JP2760799B2 (ja) * | 1988-04-28 | 1998-06-04 | 株式会社日立製作所 | 暗号方式 |
US5063596A (en) * | 1989-02-24 | 1991-11-05 | Miu Automation Corporation | Encryption printed circuit board |
US4910776A (en) * | 1989-02-24 | 1990-03-20 | Miu Automation | Encryption printed circuit board |
US5184125A (en) * | 1989-06-28 | 1993-02-02 | Digital Equipment Corporation | Data encoding and demodulation system |
US5196840A (en) * | 1990-11-05 | 1993-03-23 | International Business Machines Corporation | Secure communications system for remotely located computers |
US5297208A (en) * | 1992-08-05 | 1994-03-22 | Roger Schlafly | Secure file transfer system and method |
US5491749A (en) * | 1993-12-30 | 1996-02-13 | International Business Machines Corporation | Method and apparatus for entity authentication and key distribution secure against off-line adversarial attacks |
US5491750A (en) * | 1993-12-30 | 1996-02-13 | International Business Machines Corporation | Method and apparatus for three-party entity authentication and key distribution using message authentication codes |
-
1995
- 1995-02-06 US US08/384,152 patent/US5673319A/en not_active Expired - Fee Related
-
1996
- 1996-01-25 EP EP96300526A patent/EP0725511B1/de not_active Expired - Lifetime
- 1996-01-25 DE DE69618040T patent/DE69618040T2/de not_active Expired - Lifetime
- 1996-02-01 JP JP8016512A patent/JPH08248879A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0725511A3 (de) | 1999-07-28 |
US5673319A (en) | 1997-09-30 |
EP0725511B1 (de) | 2001-12-19 |
EP0725511A2 (de) | 1996-08-07 |
DE69618040D1 (de) | 2002-01-31 |
JPH08248879A (ja) | 1996-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69618040T2 (de) | Verfahren zur Verschlüsselung/Entschlüsselung von Daten unter Verwendung von Cipher-Block-Chaining (CBC) und Message Authentication Code (MAC) | |
DE69431390T2 (de) | Erzeugung eines Geheimübertragungsschlüssels unter Gebrauch sequentieller Verknüpfung | |
DE19827904C2 (de) | Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung | |
DE69330070T2 (de) | Verfahren und einrichtung zur erzeugung einer chiffriersequenz | |
DE69728465T2 (de) | Nichtparalleler Mehrzyklus-Verschlüsselungsapparat | |
DE69721439T2 (de) | Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels | |
DE69222090T2 (de) | Einrichtung und Verfahren zum blockweisen Verschlüsseln von Daten | |
DE69031736T2 (de) | Verschlüsselungsmethode | |
DE69938539T2 (de) | Kryptographische Einrichtung mit parallel geschalteten Verschlüsselungsblöcken | |
DE60105788T2 (de) | AES Verschlüsselungsschaltung | |
DE69422072T2 (de) | System und Verfahren zur schnellen Verschlüsselung unter Verwendung eines Vielfachschlüsselgenerators | |
DE69111556T2 (de) | Verfahren und Einrichtung zur Steuerung der Benutzung eines öffentlichen Schlüssels auf Grundlage des Integritätsgrades des Schlüssels. | |
DE60024941T2 (de) | Verschlüsselungsverfahren und -Vorrichtung, Entschlüsselungsverfahren und -Vorrichtung | |
DE69838074T2 (de) | Verfahren und vorrichtung zur gleichzeitigen verschlüsselung und komprimierung von daten | |
DE69931606T2 (de) | Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung | |
DE69916160T2 (de) | Vorrichtung und Verfahren zur kryptographischen Verarbeitung sowie Aufzeichnungsmedium zum Aufzeichnen eines kryptographischen Verarbeitungsprogramms zur Ausführung einer schnellen kryptographischen Verarbeitung ohne Preisgabe der Sicherheit | |
EP1668515B1 (de) | Wortindividuelle schlüsselerzeugung | |
DE69736148T2 (de) | Verfahren und Einrichtung zur Datenverschlüsselung | |
DE69816986T2 (de) | Verfahren und vorrichtung zur versiegelung und unterschrift von objekten | |
DE69906037T2 (de) | Verfahren und Vorrichtung zur Datenverschlüsselung | |
DE60221850T2 (de) | Verfahren und vorrichtung zur datenverschlüsselung | |
EP1298834B1 (de) | Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten | |
DE2231835B2 (de) | Verfahren zur in mehreren Stufen erfolgenden Ver- und Entschlüsselung binärer Daten | |
DE102008010789B4 (de) | Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten | |
EP1777913A1 (de) | Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7 |