DE69830646T2 - Verfahren und vorrichtung zur verbesserung des cmea algorithmus unter verwendung von verbesserten transformationen - Google Patents

Verfahren und vorrichtung zur verbesserung des cmea algorithmus unter verwendung von verbesserten transformationen Download PDF

Info

Publication number
DE69830646T2
DE69830646T2 DE69830646T DE69830646T DE69830646T2 DE 69830646 T2 DE69830646 T2 DE 69830646T2 DE 69830646 T DE69830646 T DE 69830646T DE 69830646 T DE69830646 T DE 69830646T DE 69830646 T2 DE69830646 T2 DE 69830646T2
Authority
DE
Germany
Prior art keywords
message
secret
cmea
tbox
offset
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
DE69830646T
Other languages
English (en)
Other versions
DE69830646D1 (de
Inventor
H. Mark ETZEL
John Robert Frank
Nelson Daniel HEER
Joseph Robert MCNELIS
B. Semyon MIZIKOVSKY
John Robert RANCE
Dale R. SHIPP
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Application granted granted Critical
Publication of DE69830646D1 publication Critical patent/DE69830646D1/de
Publication of DE69830646T2 publication Critical patent/DE69830646T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein die Kryptographie für drahtloses Fernsprechen und insbesondere ein verbessertes Sicherheitskryptosystem für schnelle und sichere Verschlüsselung in einem drahtlosen Fernsprechsystem, ohne große Mengen an zusätzlichen Systembetriebsmitteln zu erfordern.
  • Allgemeiner Stand der Technik
  • Die drahtlose Telefonie verwendet Nachrichtenübermittlung für mehrere Zwecke, darunter zum Beispiel Übermittlung von Statusinformationen, Umkonfiguration von Betriebsarten, Abwicklung des Verbindungsabschlusses und Übermittlung von System- und Benutzerdaten, wie zum Beispiel die elektronische Seriennummer und Rufnummer eines Teilnehmers sowie Gesprächsdaten und andere Daten, die vom Benutzer gesendet werden. Im Gegensatz zu gewöhnlicher Drahttelefonie, bei der eine zentrale Versorgungsstation per Draht mit jedem Teilnehmer verbunden ist, wodurch ein relativ guter Schutz vor Lauschangriffen und Manipulation durch Unbefugte (Angreifer) sichergestellt wird, müssen drahtlose Fernsprechversorgungsstationen (d.h. Basisstationen) Nachrichten ungeachtet des physischen Standorts der Teilnehmer über Signale per Funk senden und empfangen. Da die Basisstation Nachrichten zu und von einem Teilnehmer an einem beliebigen Ort senden und empfangen können muß, hängt der Nachrichtenübermittlungsprozeß völlig von Signalen ab, die von den Teilnehmergeräten empfangen und zu diesen gesendet werden. Da die Signale über Funk übertragen werden, können sie von einem Lauscher oder Eindringling mit den richtigen Geräten abgefangen werden.
  • Wenn ein Signal im Klartext von einem drahtlosen Fernsprecher gesendet wird, besteht die Gefahr, daß ein Lauscher das Signal abfängt und sich mit ihm für einen Teilnehmer ausgibt oder von dem Benutzer gesendete private Daten abfängt. Solche privaten Daten sind zum Beispiel der Inhalt von Gesprächen. Private Daten können auch Nicht-Sprache-Daten sein, die vom Benutzer gesendet werden, wie zum Beispiel Computerdaten, die über ein mit dem drahtlosen Fernsprecher verbundenes Modem gesendet werden, und können auch Bankkonten- oder andere private Benutzerinformationen sein, die typischerweise mittels Tastenbetätigungen gesendet werden. Ein einem Gespräch Zuhörender oder Nicht-Sprache-Daten abfangender Lauscher kann private Informationen von dem Benutzer erhalten. Der Nachrichteninhalt eines unverschlüsselten Fernsprechsignals (d.h. Klartextsignals) kann relativ leicht durch einen geeignet angepassten Empfänger abgefangen werden.
  • Alternativ dazu kann sich ein Eindringling selbst durch Verwendung einer größeren Sendeleistung in eine hergestellte Verbindung einspeisen und Signale zu der Basisstation senden und sich für einen Teilnehmer an dem Gespräch ausgeben.
  • Bei Abwesenheit der Anwendung von Kryptographie auf durch drahtlose Signale übertragene Nachrichten sind unbefugte Verwendung von Fernsprechbetriebsmitteln, Abhören von Nachrichten und Imitation angerufener oder anrufender Teilnehmer während eines Gesprächs möglich. Ein solches unbefugtes Eindringen und/oder Lauschen hat sich tatsächlich als ein großes Problem erwiesen und ist sehr unerwünscht.
  • Die Anwendung der Kryptographie auf drahtlose Fernsprechanwendungen bietet eine Lösung für die oben besprochenen Sicherheitsprobleme, aber die Anwendung von Standard-Kryptographieverfahren auf die drahtlose Telefonie ist aufgrund der rechnerisch intensiven Beschaffenheit dieser Verfahren auf signifikante Schwierigkeiten gestoßen. Genauer gesagt unterliegen diese Verfahren den Beschränkungen, die durch den Wunsch auferlegt werden, einen kleinen drahtlosen Handapparat bereitzustellen, und den Beschränkungen bezüglich Verarbeitungsleistung, die durch die kleine Größe des Handapparats auferlegt werden. Die typische in drahtlosen Handapparaten vorhandene Verarbeitungsleistung ist unzureichend zur Abwicklung der Verarbeitungsanforderungen allgemein bekannter kryptographischer Algorithmen, wie zum Beispiel DES (Data Encryption Standard).
  • Die Implementierung eines solchen allgemein bekannten kryptographischen Algorithmus in einem typischen drahtlosen Fernsprechsystem würde potentiell die Zeit vergrößern, die notwendig ist, um Signale zu verarbeiten (d.h. zu verschlüsseln und zu entschlüsseln), wodurch unannehmbare Verzögerungen für Teilnehmer verursacht werden.
  • Ein kryptographisches System für die drahtlose Telefonie ist aus dem Reeds-US-Patent 5,159,634 („Reeds") bekannt. Reeds beschreibt einen kryptographischen Prozeß, der als der CMEA-Prozeß bekannt ist („Cellular Message Encryption Alogrithm" – Zellularnachrichtenverschlüsselungsalgorithmus). Zentral für die Funktionsweise des CMEA ist die tbox-Funktion, die eine eindeutige Abbildung eines Oktetts auf ein anderes ist, wobei eine bekannte Tabelle und ein Geheimschlüssel verwendet werden. Beginnend mit einem Anfangsindex wird Schlüsselmaterial mit Tabellenmaterial in mehreren Iterationen kombiniert, um die Abbildung durchzuführen. Die tbox-Funktion kann entweder als Funktionsaufruf oder als statische speicherresidente tbox-Tabelle implementiert werden. Der Zweck der tbox-Tabelle bei Implementierung wie im letzten Fall besteht darin, eine signifikante Beschleunigung der Verschlüsselung für einen gegebenen Sicherheitsgrad zu ermöglichen.
  • Es existieren Verbesserungen des CMEA-Prozesses, die in den eigenen US-Patenten mit der Nr. 6,266,411 und Nr. 6,233,337 offengelegt werden. Diese Verbesserungen ermöglichen signifikant vergrößerte Sicherheit für den CMEA-Prozeß. Zusätzliche Verbesserungen würden jedoch weiter vergrößerte Sicherheit bereitstellen.
  • Der CMEA-Prozeß des Standes der Technik kann wie später ausführlicher erläutert werden wird, signifikant verbessert werden. Diese Verbesserungen ergeben einen zusätzlichen Sicherheitsgrad, der sehr vorteilhaft ist. Der kryptographische Prozeß von Reeds kann durch Modifikation und Vereinfachung verbessert werden. Entweder der ursprüngliche Prozeß von Reeds oder der modifizierte und vereinfachte Prozeß, der im folgenden als der modifizierte CMEA bezeichnet werden wird, kann in einem verbesserten Prozeß verwendet werden, der weitere Verbesserungen enthält, die zusammen als ECMEA (erweiterter CMEA) bezeichnet werden.
  • Kurze Darstellung der Erfindung
  • Die vorliegende Erfindung liefert einen zusätzlichen Sicherheitsgrad für kryptographische Algorithmen wie zum Beispiel CMEA durch Bereitstellung eines Vorwärts-Erweiterungs-CMEA- oder ECMEA-Prozesses sowie eines Rückwärts-ECMEA-Prozesses. Durch den Vorwärtsprozeß verschlüsselte Informationen werden durch den Rückwärtsprozeß entschlüsselt und durch den Rückwärtsprozeß verschlüsselte Informationen werden durch den Vorwärtsprozeß entschlüsselt. Der Vorwärts-ECMEA-Prozeß unterwirft die Nachricht einer Transformation vor einer Iteration des CMEA-Prozesses und einer Rücktransformation nach der Iteration des CMEA-Prozesses. Die Iteration des CMEA-Prozesses kann entweder der ursprüngliche Prozeß von Reeds oder der modifizierte CMEA-Prozeß sein. Wenn der ursprüngliche Prozeß von Reeds gemeint ist, wird der Ausdruck „ursprünglicher CMEA" verwendet, und wenn der modifizierte CMEA-Prozeß gemeint ist, wird der Ausdruck „modifizierter CMEA" benutzt. Wenn der Ausdruck „CMEA-Prozeß" ohne weitere Definition benutzt wird, kann entweder der ursprüngliche CMEA oder der modifizierte CMEA verwendet werden, wobei die Wahl von der Entwurfspräferenz abhängt. Es wird jedoch bevorzugt, daß der modifizierte CMEA benutzt wird, wenn es die Entwurfspräferenzen nicht anders nahelegen. Die Iteration des CMEA-Prozesses wird durch Permutation der Eingaben der tbox-Funktion durch ein erstes Geheimoffset erweitert. Die von dem CMEA-Prozeß verwendete tbox-Funktion wird durch Verwendung einer involutorischen Nachschlagetabelle erweitert. Die Transformation und die Rücktransformation verwenden das erste Geheimoffset und ein zweites Geheimoffset. Die Transformation führt eine Offsetrotation des ersten Offsets und ein involutorisches Nachschlagen jedes Oktetts und Bit-Trades zwischen jedem Paar angrenzender Oktette durch. Für alle Oktette mit Ausnahme des letzten Oktetts führt die Transformation eine zufällige Oktettpermutation durch, die ein Austausch zwischen dem vorherigen Oktett und einem zufälligen darunter ist. Die Transformation führt außerdem eine Endoktettpermutation durch, die ein Austausch zwischen dem letzten Oktett und einem zufälligen darunter ist.
  • Die Rücktransformation führt eine Anfangsoffsetrotation des zweiten Offsets und eine Anfangsoktettpermutation des letzten Oktetts durch, die ein Austausch des letzten Oktetts mit einem zufälligen darunter ist. Für alle Oktetts mit Ausnahme des letzten Oktetts führt die Rücktransformation eine Zufallsoktettpermutation durch, die ein Austausch zwischen dem Oktett und einem zufälligen darunter ist. Die Transformation führt Bit-Trades zwischen jedem Paar angrenzender Oktetts durch und führt ein involutorisches Nachschlagen jedes Oktetts, gefolgt durch eine Offsetrotation des zweiten Offsets durch.
  • Da die Rücktransformation das erste und das zweite Offset im Vergleich zu der Transformation in der entgegengesetzten Reihenfolge verwendet, ist der Vorwärts-ECMEA-Prozeß als Ganzes nicht selbstinvertierend. Um durch den Vorwärts-ECMEA-Prozeß verschlüsselten Text zu entschlüsseln oder zur Entschlüsselung durch den Vorwärts-ECMEA-Prozeß Text zu verschlüsseln, wird ein Rückwärts-ECMEA-Prozeß verwendet. Der Rückwärts-ECMEA-Prozeß verwendet eine Rücktransformation, gefolgt durch eine Iteration des CMEA-Prozesses, gefolgt durch eine Rückwärts-Rücktransformation. Die Rücktransformation ist mit der Transformation identisch, mit der Ausnahme, daß die Verwendung des ersten und des zweiten Offsets umgekehrt ist. Das heißt, wenn die Transformation das erste Offset verwendet, verwendet die Rückwärtstransformation das zweite Offset und wenn die Transformation das zweite Offset verwendet, verwendet die Rückwärtstransformation das erste Offset. Ähnlich ist die Rückwärts-Rücktransformation mit der Rücktransformation identisch, mit der Ausnahme, daß die Verwendung des ersten und des zweiten Offsets umgekehrt ist. Das heißt, wenn die Rücktransformation das erste Offset verwendet, verwendet die Rückwärts-Rücktransformation das zweite Offset, und wenn die Rücktransformation das zweite Offset verwendet, verwendet die Rückwärts-Rücktransformation das erste Offset.
  • Die Iteration des CMEA-Algorithmus kann durch Permutation der Eingaben für die tbox-Funktion um das erste Geheimoffset erweitert werden. Die von dem CMEA-Algorithmus verwendete tbox-Funktion wird durch Verwendung einer involutorischen Nachschlagetabelle erweitert.
  • Der Vorwärts-ECMEA-Prozeß entschlüsselt durch den Rückwärts-ECMEA-Prozeß verschlüsselten Text und der Rückwärts-ECMEA-Prozeß entschlüsselt durch den Vorwärts-ECMEA-Prozeß verschlüsselten Text. Die oben besprochenen Erweiterungen verbessern CMEA und können implementiert werden, um in einem kleinen Computer, wie zum Beispiel den in einem mobilen drahtlosen Sender/Empfänger gewöhnlich verwendeten, schnell und effizient zu operieren.
  • Ein kryptographisches System gemäß der vorliegenden Erfindung kann geeigneterweise die erweiterte tbox-Funktion und auch ein erstes und zweites Offset zur Permutation von Eingaben der erweiterten tbox-Funktion und zur Verwendung bei der Durchführung der Transformation und der Rückwärtstransformation und der Rücktransformation und der Rückwärts-Rücktransformation verwenden. Jedes Offset wird durch Verwendung von zwei Geheimwerten und eines externen Kryptosyncwerts erzeugt. Die Geheimwerte können durch eine beliebige einer Anzahl von allgemein in der Technik bekannten Techniken erzeugt werden. Bei bestimmten Anwendungen außerhalb des drahtlosen Gebiets ist der zum Verschlüsseln einer ersten Nachricht verwendete externe Kryptosyncwert ein Initialisierungsvektor. Für nachfolgende Nachrichten ist der externe Kryptosyncwert dann die ersten beiden Oktetts des Chiffretexts von einer zuvor verschlüsselten Nachricht.
  • Ein vollständigeres Verständnis der vorliegenden Erfindung sowie weitere Merkmale und Vorteile der Erfindung werden aus der folgenden ausführlichen Beschreibung und den beigefügten Zeichnungen ersichtlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Flußdiagramm von Aspekten eines vorbekannten CMEA-Kryptographieprozesses und seiner Benutzung in einer auf CMEA basierenden Implementierung der Verschlüsselung;
  • 2 ist ein Flußdiagramm eines modifizierten CMEA-Kryptographieprozesses;
  • 3 ist ein Flußdiagramm eines Vorwärts-ECMEA-Verschlüsselungsverfahrens gemäß der vorliegenden Erfindung, das eine Transformation verwendet, eines CMEA-Prozesses, bei dem eine erweiterte tbox-Funktion mit involutorischem Nachschlagen verwendet wird, wobei die Eingaben für die erweiterte tbox-Funktion durch ein Geheimoffset permutiert werden, und einer Rücktransformation;
  • 4 ist ein Flußdiagramm der bei dem Vorwärts-ECMEA-Verschlüsselungsverfahren verwendeten Transformation;
  • 5 ist ein Flußdiagramm der in dem Vorwärts-ECMEA-Verschlüsselungsverfahren verwendeten Rücktransformation;
  • 6 ist ein Flußdiagramm eines Rückwärts-ECMEA-Verschlüsselungsverfahrens gemäß der vorliegenden Erfindung, das eine Rückwärtstransformation verwendet, eines CMEA-Prozesses, bei dem eine erweiterte tbox-Funktion mit involutorischem Nachschlagen verwendet wird, wobei die Eingaben für die erweiterte tbox-Funktion durch ein Geheimoffset permutiert werden, und einer Rückwärts-Rücktransformation;
  • 7 ist ein Flußdiagramm der in dem Rückwärts-ECMEA-Verschlüsselungsverfahren verwendeten Rückwärtstransformation;
  • 8 ist ein Flußdiagramm der in dem Rückwärts-ECMEA-Verschlüsselungsverfahren verwendeten Rückwärts-Rücktransformation; und
  • 9 ist ein Diagramm eines Fernsprechsystems, das ECMEA-Verarbeitung gemäß der vorliegenden Erfindung verwendet.
  • Ausführliche Beschreibung
  • 1 ist ein Flußdiagramm eines vorbekannten Verfahrens 100, das einen CMEA-Schlüssel zur Verschlüsselung bestimmter kritischer Benutzerdaten, die während eines Gesprächs gesendet werden können, verwendet. Mit dem CMEA-Schlüssel wird ein Geheimarray, tbox(z) von 256 Byte erzeugt. Alternativ dazu kann die tbox-Funktion als Funktionsaufruf implementiert werden. Dadurch wird die Verwendung von RAM verringert, aber die Verarbeitungszeit um ungefähr eine Größenordnung erhöht.
  • Im Schritt 102 wird eine unverarbeitete Nachricht eingeführt. Im Schritt 104 wird bei Systemen, die tbox als statische Tabelle anstatt als Funktionsaufruf implementieren, die statische tbox-Tabelle abgeleitet. Die tbox-Tabelle wird folgendermaßen abgeleitet:
    Für jedes z im Bereich 0 ≤ z < 256, tbox(z) = C(((C(((C(((C((z XOR k0) + k1) + z)XOR k2) + k3) + z) XOR k4) + k5) + z)XOR k6) + k7) + z, wobei „+" modulo-256-Addition bedeutet, „XOR" der bitweise boolsche Exclusive-OR-Operator ist, „z" das Funktionsargument ist, k0, ..., k7 acht Oktetts des CMEA-Schlüssels umfassen und C() das Ergebnis einer 8-Bit-Tabellennachschlageoperation für Zellulare Authentifikation, Gesprächsprivatsphäre und Verschlüsselung (CAVE) ist. Bei Abwesenheit der nachfolgend besprochenen Erweiterungen ist die tbox-Funktion in der Technik wohlbekannt. Die in Verbindung mit 25 nachfolgend besprochenen Erweiterungen ermöglichen es jedoch der tbox-Funktion einen signifikant erhöhten Sicherheitsgrad bereitzustellen.
  • CMEA umfaßt drei sukzessive Stufen, die jeweils jede Bytekette einer Nachricht verändern. Die Verarbeitung kann zweckmäßigerweise an einer in einem Datenpuffer gespeicherten Nachricht ausgeführt werden. In den Schritten 106, 108 und 110 werden die erste, die zweite bzw. dritte Stufe des CMEA-Prozesses durchgeführt, wie hier beschrieben werden wird. Ein d-Byte langer Datenpuffer, wobei jedes Byte durch b(i) bezeichnet wird, für i eine ganze Zahl im Bereich 0 ≤ i < d, wird in drei Stufen chiffriert. Die erste Stufe (I) von CMEA lautet wie folgt:
    • 1. Initialisieren einer Variablen z auf Null,
    • 2. Für sukzessive ganzzahlige Werte von i im Bereich 0 ≤ i < d
    • a. Bilden einer Variable q durch: q = z ⊕ Byte niedriger Ordnung von i, wobei ⊕ der bitweise boolsche Exclusive-OR-Operator ist,
    • b. Bilden der Variable k durch: k = TBOX(q),
    • c. Aktualisieren von b(i) mit: b(i) = b(i) + k mod 256 und
    • d. Aktualisieren von z mit: z = b(i) + z mod 256.
  • Die zweite Stufe (II) von CMEA lautet:
    • 1. Für alle Werte von i im Bereich 0 ≤ i < (d – 1)/2: b(i) = b(i) ⊕ (b(d – 1 – i)OR 1), wobei OR der bitweise boolsche OR-Operator ist.
  • Die letzte oder dritte Stufe (III) von CMEA ist die Entschlüsselung, die die Umkehrung der ersten Stufe ist:
    • 1. Initialisieren einer Variablen z auf Null,
    • 2. Für sukzessive ganzzahlige Werte von i im Bereich 0 ≤ i < d
    • a. Bilden einer Variablen q durch: q = z ⊕ Byte niedriger Ordnung von i,
    • b. Bilden der Variablen k durch: k = TBOX(q),
    • c. Aktualisieren von z mit: z = b(i) + z mod 256, und
    • d. Aktualisieren von b(i) mit b(i) = b(i) – k mod 256.
  • Im Schritt 112 wird die verarbeitete Endausgabe bereitgestellt.
  • Der oben beschriebene CMEA-Prozeß ist selbstinvertierend. Das heißt, es werden dieselben Schritte, in derselben Reihenfolge angewandt, sowohl zum Verschlüsseln von Klartext als auch zum Entschlüsseln von Chiffretext verwendet. Es ist deshalb nicht notwendig zu bestimmen, ob eine Verschlüsselung oder eine Entschlüsselung ausgeführt wird. Leider hat es sich gezeigt, daß der oben beschriebene CMEA-Prozeß angegriffen werden kann, wodurch auch eine Wiederherstellung des für eine Verbindung verwendeten CMEA-Schlüssels möglich wird.
  • 2 ist ein Flußdiagramm eines modifizierten CMEA-Prozesses 200, der eine Modifikation des in 1 dargestellten vorbekannten Verfahrens 100 umfaßt. Der modifizierte CMEA-Prozeß 200 verwendet einen CMEA-Schlüssel zum Verschlüsseln bestimmter kritischer Benutzerdaten, die während einer Verbindung übertragen werden können. Mit dem CMEA-Schlüssel wird ein Geheimarray tbox(z) von 256 Byte erzeugt. Alternativ dazu kann die tbox-Funktion als Funktionsaufruf implementiert werden. Dadurch wird die Verwendung von RAM verringert, aber die Verarbeitungszeit um ungefähr eine Größenordnung vergrößert.
  • In Schritt 202 wird eine unverarbeitete Nachricht eingeführt. In Schritt 204 wird in Systemen, die tbox als statische Tabelle anstatt als Funktionsaufruf implementieren, die statische tbox-Tabelle abgeleitet. Die tbox-Tabelle ist gegenüber dem Stand der Technik modifiziert und wird später ausführlicher beschrieben.
  • Der modifizierte CMEA umfaßt drei sukzessive Stufen, die jeweils jede Bitkette einer Nachricht verändern. Die Nachricht kann zweckmäßigerweise zur Verarbeitung in einem Datenpuffer abgelegt werden. In den Schritten 206, 208 und 210 wird eine erste, eine zweite bzw. eine dritte Stufe des CMEA-Prozesses durchgeführt, wie hier beschrieben werden wird. Ein Datenpuffer, der nmax Byte lang ist, wobei jedes Byte durch b(i) bezeichnet wird, für i eine ganze Zahl im Bereich 0 ≤ i < nmax, wird in drei Stufen chiffriert. Die erste Stufe (I) des modifizierten CMEA lautet wie folgt:
    • 1. Initialisieren einer Variablen z auf Null,
    • 2. Für sukzessive ganzzahlige Werte von i im Bereich 0 ≤ i < nmax
    • a. Bilden einer Variable q durch: q = z ⊕ offset1, wobei ⊕ der bitweise boolsche Exclusive-OR-Operator und offset1 ein später definierter 8-Bit-Geheimwert ist.
    • b. Bilden der Variable k durch: k = TBOX(q),
    • c. Aktualisieren von b(i) mit: b(i) = b(i) + k mod 256 und
    • d. Aktualisieren von z mit: z = b(i).
  • Die zweite Stufe (II) des modifizierten CMEA lautet:
    • 1. Für alle Werte von i und i + 1 im Bereich 0 ≤ i < nmax – 1, i gerade: b(i) = b(i) ⊕ b(i + 1).
  • Die letzte oder dritte Stufe (III) des modifizierten CMEA ist die Entschlüsselung, die die Umkehrung der ersten Stufe ist:
    • 1. Initialisieren einer Variablen z auf Null,
    • 2. Für sukzessive ganzzahlige Werte von i im Bereich 0 ≤ i < nmax
    • a. Bilden einer Variable q durch: q = z ⊕ offset1,
    • b. Bilden der Variable k durch: k = TBOX(q),
    • c. Aktualisieren von z mit: z = b(i) und
    • d. Aktualisieren von b(i) mit b(i) = b(i) – k mod 256.
  • Im Schritt 112 wird die letztendliche verarbeitete Ausgabe bereitgestellt.
  • Der oben beschriebene modifizierte CMEA-Prozeß ist selbstinvertierend. Das heißt, dieselben, in derselben Reihenfolge angewandten Schritte werden sowohl zum Verschlüsseln von Klartextnachrichten als auch zum Entschlüsseln von Chiffretextnachrichten verwendet. Es ist deshalb nicht notwendig zu bestimmen, ob Verschlüsselung oder Entschlüsselung ausgeführt wird. Leider hat es sich gezeigt, daß der in Verbindung mit 1 beschriebene ursprüngliche CMEA-Prozeß und somit der oben beschriebene modifizierte CMEA-Prozeß attackiert werden können, wodurch eine Wiederherstellung des für eine Verbindung verwendeten CMEA-Schlüssels möglich wird.
  • Um zusätzliche Sicherheit für Kundeninformationen bereitzustellen, verwendet ein Verschlüsselungssystem gemäß der vorliegenden Erfindung eine CMEA-Prozeßiteration, die eine erweiterte tbox-Funktion mit einer involutorischen Nachschlagetabelle verwendet. Die CMEA-Prozeßiteration kann der in 1 dargestellte ursprüngliche CMEA-Prozeß oder der in 2 dargestellte modifizierte CMEA-Prozeß sein. Das Verschlüsselungssystem verbessert außerdem die Verwendung der tbox-Funktion durch Permutieren der Eingaben der tbox-Funktion durch Geheimoffsets. Zusätzliche Sicherheit ergibt sich durch Anwenden von Transformationen auf eine Nachricht vor und nach der CMEA-Iteration.
  • 3 ist ein Flußdiagramm eines erweiterten ECMEA-Verschlüsselungs-/Entschlüsselungsprozesses 300 gemäß der vorliegenden Erfindung. Im Schritt 302 wird eine unverarbeitete Nachricht in den Verschlüsselungs-/Entschlüsselungsprozeß eingeführt. Die unverarbeitete Nachricht kann eine zur Übertragung zu verschlüsselnde Klartextnachricht oder eine zu entschlüsselnde empfangene verschlüsselte Nachricht sein. Die unverarbeitete Nachricht kann zweckmäßigerweise zur Verarbeitung in einem Datenpuffer abgelegt werden. Im Schritt 304 wird bei Systemen, die tbox als statische Tabelle anstatt als Funktionsaufruf implementieren, die statische tbox-Tabelle abgeleitet. Im Schritt 306 wird zur Verwendung bei der Erzeugung der Geheimoffsets eine Menge von Geheimwerten K0-K3 erzeugt und die Offsets werden berechnet. Die Geheimwerte K0-K3 sind vorzugsweise Oktette. Die Menge von Geheimwerten kann unter Verwendung einer beliebigen von mehreren allgemein in der Technik bekannten Techniken erzeugt werden. Alle Geheimwerte K0-K3 werden vorzugsweise für jede drahtlose Fernsprechverbindung erzeugt und sind vorzugsweise im Verlauf der gesamten Verbindung konstant. Es werden erste und zweite Offsets unter Verwendung der folgenden Formeln erzeugt: offset1 = ((K0 + 1)·CS mod 257) ⊕ K1 mod 256 offset2 = ((K2 + 1)·CS mod 257) ⊕ K3 mod 256wobei K0-K3 wie oben definiert sind. CS ist vorzugsweise ein als Binärzähler implementiertes Oktett. Offset1 und offset2 sind jeweils 8-Bit-Werte.
  • In Schritt 308 wird eine Transformation an der Nachricht ausgeführt, wobei ein erstes und ein zweites Geheimoffset verwendet werden, um eine transformierte Nachricht zu erzeugen. Einzelheiten der Transformation werden nachfolgend in Verbindung mit der Besprechung von 4 besprochen.
  • Im Schritt 310 wird die transformierte Nachricht einer Iteration des CMEA-Prozesses unter Verwendung eines CMEA-Schlüssels unterzogen, um eine Zwischen-Chiffretextnachricht zu erzeugen. Der verwendete CMEA-Prozeß kann der ursprüngliche CMEA-Prozeß von Reeds sein, der in Verbindung mit 1 beschrieben wird, oder der in Verbindung mit 2 beschriebene modifizierte CMEA-Prozeß. Die Iteration des CMEA-Prozesses wird durch Aufnahme einer erweiterten tbox-Funktion erweitert, die ein involutorisches Nachschlagen jedes Oktetts durchführt, und wird durch die folgende Formel gegeben: tbox(z) = I(I(I(I(I(I(I(I(I(I(I(I(I(I(z + k0)XOR k1) + k2) XOR k3) + k4)XOR k5) + k6)XOR k7) – k6)XOR k5) – k4)XOR k3) – k2)XOR k1) – k0dabei ist „+" Addition modulo 256,
    „–" Subtraktion modulo 256,
    „XOR" die XOR-Funktion,
    „z" das Funktionsargument,
    k0, ..., k7 sind die acht Oktette des
    ECMEA-Schlüssels,
    und I() ist das Ergebnis des bekannten ibox-8-Bit-Tabellen Nachschlagens. Die ibox-Tabelle ist eine involutorische Nachschlagetabelle mit Einträgen, die so gewählt werden, daß eine involutorische Abbildung von 8-Bit-Byte auf 8-Bit-Byte durchgeführt wird. Ein bevorzugtes Beispiel für eine ibox-Tabelle lautet wie folgt:
    Figure 00150001
    Figure 00160001
    wobei die Einträge im Hexadezimalformat vorliegen. Die ibox-Tabelleneinträge werden von 0x00 bis 0xff indiziert. Übersetzt lautet dies Dezimal 0 bis 255. Bei der obigen Tabelle wird der erste Eintrag in der ersten Zeile 0x00 indiziert, der achte Eintrag in der ersten Zeile 0x07, der erste Eintrag in der zweiten Zeile wird 0x08 indiziert, der achte Eintrag in der zweiten Zeile 0x0f und so weiter. Aus Betrachtung der Tabelle geht hervor, daß sie ein involutorisches Nachschlagen bereitstellt. Das heißt, ibox(ibox((z)) = z. Zum Beispiel ist ibox(0x00) = 0xdd. Wenn man den mit 0xdd indizierten Eintrag nachschlägt, sieht man ibox(0xdd) = 0x00. Die oben in Verbindung mit der Besprechung von 1 und 2 beschriebene TBOX-Funktion wird durch die erweiterte tbox-Funktion ersetzt.
  • Um die Sicherheit weiter zu verbessern, werden die Eingaben für die tbox-Funktion einer die Geheimoffsets verwendenden Permutation unterzogen. Jede tbox-Funktionseingabe wird einer Permutation unterzogen, um ein Permutationsergebnis zu erzeugen. Zur Verwendung bei der Iteration des CMEA-Prozesses wird das erste Offset verwendet. Wenn eine tbox-Funktionseingabe zum Beispiel als x definiert ist, ist das Permutationsergebnis der Wert (x ⊕ offset1) für tbox-Benutzung in der CMEA-Verarbeitung. Wenn die tbox-Funktion bei den Transformationen oder Rücktransformationen verwendet wird, würde man entweder (x ⊕ offset1) oder (x ⊕ offset2) verwenden, abhängig davon, wo sie sich in der tbox-Funktion befindet. Alle Transformationen und Rücktransformationen, einschließlich der Verwendung der tbox-Permutationen innerhalb der Transformationen und Rücktransformationen werden jeweils nachfolgend ausführlich beschrieben. Jedes Permutationsergebnis wird der tbox-Funktion unterzogen. Für jede tbox-Eingabe x lautet die verwendete Funktion also tbox(x ⊕ offset1) oder tbox(x ⊕ offset2). Die Permutation der tbox-Eingaben bewirkt effektiv, daß sich die Position der tbox-Einträge mit jeder Nachricht verschiebt, wodurch die Schwierigkeit einer kryptoanalytischen Attacke stark erhöht wird.
  • Im Schritt 312 wird der Zwischen-Chiffretext unter Verwendung eines ersten und eines zweiten Geheimoffsets einer Rücktransformation unterzogen, um eine letzt endliche verarbeitete Nachricht zu erzeugen. Die Rücktransformation wird nachfolgend in Verbindung mit der Besprechung von 5 beschrieben.
  • 4 ist ein ausführliches Flußdiagramm der Schritte der Transformation 308, die in dem in 3 dargestellten Vorwärts-ECMEA-Prozeß 300 ausgeführt werden. Die Schritte der Transformation 308 werden für jedes Oktett On durchgeführt, und n ist eine ganze Zahl von 0 bis nmax – 1, wobei nmax die Anzahl der Oktette in der Nachricht ist.
  • Im Schritt 402 wird n auf 0 gesetzt. Im Schritt 404 werden gemäß der folgenden Formel eine Offsetrotation und ein involutorisches Nachschlagen ausgeführt:
    wenn n > 0, offset1 = (offset1 >> 1) OR (offset1 << 7) On = offset2 ⊕ tbox (On ⊕ offset1)wobei On das n-te Oktett der unverarbeiteten Nachricht ist, >> 1 ein Rechtsschieben um 1 Bit, und << 7 ein Linksschieben um 7 Bit repräsentiert. Die beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der entsprechenden obigen Zeile stellen eine Ein-Bit-Rotation nach rechts dar.
  • Im Schritt 406 wird zwischen dem vorliegenden Oktett und dem darunter gemäß der folgenden Formel ein Bit-Trade ausgeführt:
    wenn n > 0, j = On-1 ⊕ On j = j AND tbox (j ⊕ offset1) On-1 = On-1 ⊕ j On = On ⊕ jwobei j eine temporäre Puffervariable ist.
  • Im Schritt 408 wird eine Zufallsoktettpermutation ausgeführt, um einen Austausch des (n – 1)-ten Oktetts mit einem zufälligen darunter gemäß der folgenden Formel auszuführen:
    wenn n > 1, j = tbox (On ⊕ Offset1) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 410 wird n erhöht und mit nmax verglichen. Im Fall n < nmax wird die Steuerung an den Schritt 404 abgegeben. Im Fall n ≥ nmax, wird die Steuerung an den Schritt 412 abgegeben.
  • Im Schritt 412 wird gemäß der folgenden Formel eine letzte Zufallsoktettpermutation zum Austausch des letzten Oktetts mit einem zufälligen darunter ausgeführt: j = tbox (0x37 ⊕ offset1) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind
  • Im Schritt 414 ist die Transformation abgeschlossen.
  • 5 ist ein ausführliches Flußdiagramm der Schritte der Rücktransformation 312, die in dem in 3 dargestellten Vorwärts-ECMEA-Prozeß 300 ausgeführt werden. Die Schritte der Transformation 312 werden für jedes Oktett On ausgeführt, wobei On das n-te Oktett der Zwischen-Chiffretextnachricht ist. n ist eine ganze Zahl von 0 bis nmax – 1, wobei nmax die Anzahl der Oktette in der Nachricht ist.
  • Im Schritt 502 wird für offset2 eine Anfangs-Rückoffsetrotation gemäß der folgenden Formel ausgeführt: j = (nmax – 1) AND 0x07 offset2 = (offset2 >> j) OR (offset2 << (8 – j))dabei repräsentiert >> j ein Rechtsschieben von j Bit und << (8 – j) ein Linksschieben von (8 – j) Bit. Diese beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der entsprechenden obigen Zeile stellen eine j-Bit-Rotation nach rechts dar.
  • Im Schritt 504 wird eine Anfangs-Rückzufallsoktettpermutation durchgeführt, um das letzte Oktett durch ein zufälliges darunter gemäß der folgenden Formel auszutauschen: j = tbox (0x37 ⊕ offset2) j = (nmax·j) >> 8 z = Oj Oj = Onmax-1 Onmax-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 506 wird n auf nmax – 1 gesetzt.
  • Im Schritt 508 wird eine Rück-Zufallsoktettpermutation ausgeführt, um das (n – 1)te Oktett mit einem zufälligen darunter gemäß der folgenden Formel auszutauschen:
    wenn n > 1, j = tbox (On ⊕ offset2) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 510 wird ein Rück-Bit-Trade zwischen dem vorliegendem Oktett und dem darunter gemäß der folgenden Formel ausgeführt:
    wenn n > 0, j = On-1 ⊕ On j = j AND tbox (j ⊕ offset2) On-1 = On-1 ⊕ j On = On ⊕ jwobei j eine temporäre Puffervariable ist.
  • Im Schritt 512 werden ein inverses involutorisches Nachschlagen des vorliegenden Oktetts und eine inverse Offsetrotation gemäß der folgenden Formel ausgeführt: On = offset2 ⊕ tbox (On ⊕ offset1) offset2 = (offset2 << 1) OR (offset2 >> 7)wobei << 1 ein Linksschieben von 1 Bit und >> 7 ein Rechtsschieben von 7 Bit darstellt. Diese beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der entsprechenden obigen Zeile stellen eine Ein-Bit-Rotation nach links dar.
  • Im Schritt 514 wird n erniedrigt und mit 0 verglichen. Im Fall n ≥ 0 wird die Steuerung an den Schritt 508 abgegeben. Im Fall n < 0 wird die Steuerung an den Schritt 516 abgegeben und die Rücktransformation ist abgeschlossen.
  • 6 ist ein Flußdiagramm eines Rückwärts-ECMEA-Prozesses 600, der sich zur Entschlüsselung einer durch den in 3 dargestellten Vorwärts-ECMEA-Prozeß 300 verschlüsselten Nachricht oder zum Verschlüsseln einer nachfolgend durch den Vorwärts-ECMEA-Prozeß 300 von 3 zu entschlüsselnden Nachricht eignet. Der Rückwärts-ECMEA-Prozeß 600 verwendet eine Rückwärtstransformation, gefolgt durch eine CMEA-Iteration, gefolgt durch eine Rückwärts-Rücktransformation. Die Rückwärtstransformation ist mit der Transformation identisch, mit der Ausnahme, daß die Rückwärtstransformation die Verwendung des ersten und des zweiten Geheimoffsets umkehrt. Das heißt, wo die Transformation das erste Offset verwendet, verwendet die Rückwärtstransformation das zweite Offset, und wo die Transformation das zweite Offset verwendet, verwendet die Rückwärtstransformation das erste Offset. Ähnlich ist die Rückwärts-Rücktransformation mit der Rücktransformation identisch, mit der Ausnahme, daß die Rückwärts-Rücktransformation die Verwendung des ersten und des zweiten Geheimoffsets umkehrt. Das heißt, wo die Rücktransformation das erste Offset verwendet, verwendet die Rückwärts-Rücktransformation das zweite Offset, und wo die Rücktransformation das zweite Offset verwendet, verwendet die Rückwärtstransformation das erste Offset.
  • Im Schritt 602 wird eine unverarbeitete Nachricht in den Verschlüsselungs-/Entschlüsselungsprozeß eingeführt. Die unverarbeitete Nachricht kann eine zu verschlüsselnde Klartextnachricht oder eine zu entschlüsselnde empfangene verschlüsselte Nachricht sein. Die unverarbeitete Nachricht kann zweckmäßigerweise zur Verarbeitung in einem Datenpuffer abgelegt werden. Im Schritt 604 wird bei Systemen, die tbox als statische Tabelle statt als Funktionsaufruf implementieren, die statische tbox-Tabelle abgeleitet. Im Schritt 606 wird eine Menge von Geheimwerten K0-K3 zur Verwendung bei der Erzeugung der Geheimoffsets erzeugt und die Offsets werden berechnet. Die Geheimwerte K0-K3 sind vorzugsweise Oktette. Die Menge von Geheimwerten kann durch Verwendung einer beliebigen von mehreren gewöhnlich in der Technik bekannten Techniken erzeugt werden. Alle Geheimwerte K0-K3 werden vorzugsweise für jede drahtlose Fernsprechverbindung erzeugt und sind vorzugsweise im Verlauf der gesamten Verbindung konstant. Es werden mit den folgenden Formeln ein erstes und ein zweites Offset erzeugt: offset1 = ((K0 + 1)·CS mod 257) ⊕ K1 mod 256 offset2 = ((K2 + 1)·CS mod 257) ⊕ K1 mod 256wobei K0-K3 wie oben definiert sind. CS ist vorzugsweise ein als Binärzähler implementiertes Oktett. Offset1 und offset2 sind jeweils 8-Bit-Werte.
  • Im Schritt 608 wird eine Rückwärtstransformation an der unverarbeiteten Nachricht unter Verwendung des ersten und des zweiten Geheimoffsets ausgeführt, um eine rückwärtstransformierte Nachricht zu erzeugen. Einzelheiten der Rückwärtstransformation werden nachfolgend in Verbindung mit der Besprechung von 7 besprochen.
  • Im Schritt 610 wird die rückwärtstransformierte Nachricht einer Iteration des CMEA-Prozesses unter Verwendung eines CMEA-Schlüssels unterzogen, um eine Rückwärts-Zwischen-Chiffretextnachricht zu erzeugen. Der verwendete CMEA-Prozeß kann der ursprüngliche, in Verbindung mit 1 beschriebene Prozeß von Reeds oder der in Verbindung mit 2 beschriebene modifizierte CMEA-Prozeß sein. Der gewählte CMEA-Prozeß für den Rückwärts-ECMEA-Prozeß muß derselbe sein, wie der für einen entsprechenden Vorwärts-ECMEA-Prozeß gewählte. Die CMEA-Prozeßiteration wird durch Aufnahme einer erweiterten tbox-Funktion verbessert, die ein involutorisches Nachschlagen jedes Oktetts ausführt, und wird durch die folgende Formel gegeben: tbox(z) = I(I(I(I(I(I(I(I(I(I(I(I(I(I(z + k0)XOR k1) + k2) XOR k3) + k4)XOR k5) + k6)XOR k7) – k6)XOR k5) – k4)XOR k3) – k2) XOR k1) – k0dabei ist „+" Addition modulo 256,
    „–" Subtraktion modulo 256,
    „XOR" die XOR-Funktion,
    „z" das Funktionsargument,
    k0, ..., k7 sind die acht Oktette des
    ECMEA-Schlüssels,
    und I() ist das Ergebnis des bekannten ibox-8-Bit-Tabellennachschlagens. Die ibox-Tabelle ist eine involutorische Nachschlagetabelle mit Einträgen, die so gewählt werden, daß eine involutorische Abbildung von 8-Bit-Byte auf 8-Bit-Byte durchgeführt wird. Ein bevorzugtes Beispiel für eine ibox-Tabelle lautet wie folgt:
    Figure 00250001
    Figure 00260001
    wobei die Einträge im Hexadezimalformat vorliegen. Die ibox-Tabelleneinträge werden von 0x00 bis 0xff indiziert. Übersetzt lautet dies Dezimal 0 bis 255. Bei der obigen Tabelle wird der erste Eintrag in der ersten Zeile 0x00 indiziert, der achte Eintrag in der ersten Zeile 0x07, der erste Eintrag in der zweiten Zeile wird 0x08 indiziert, der achte Eintrag in der zweiten Zeile 0x0f und so weiter. Aus Betrachtung der Tabelle geht hervor, daß sie ein involutorisches Nachschlagen bereitstellt. Wenn man den mit 0xdd indizierten Eintrag nachschlägt, sieht man ibox(0xdd) = 0x00. Die oben in Verbindung mit der Besprechung von 1 und 2 beschriebene TBOX-Funktion wird durch die erweiterte tbox-Funktion ersetzt.
  • Um die Sicherheit weiter zu verbessern, werden die Eingaben für die tbox-Funktion einer die Geheimoffsets verwendenden Permutation unterzogen. Jede tbox-Funktionseingabe wird einer Permutation unterzogen, um ein Permutationsergebnis zu erzeugen. Zur Verwendung bei der Iteration des CMEA-Prozesses wird das erste Offset verwendet. Wenn eine tbox-Funktionseingabe zum Beispiel als x definiert ist, ist das Permutationsergebnis der Wert (x ⊕ offset1) für tbox-Benutzung in der CMEA-Verarbeitung. Wenn die tbox-Funktion bei den Transformationen oder Rücktransformationen verwendet wird, würde man entweder (x ⊕ offset1) oder (x ⊕ offset2) verwenden, abhängig davon, wo sie sich in der tbox-Funktion befindet. Alle Transformationen und Rücktransformationen, einschließlich der Verwendung der tbox-Permutationen innerhalb der Transformationen und Rücktransformationen werden jeweils nachfolgend ausführlich beschrieben. Jedes Permutationsergebnis wird der tbox-Funktion unterzogen. Für jede tbox-Eingabe x lautet die verwendete Funktion also tbox(x ⊕ offset1) oder tbox(x ⊕ offset2). Die Permutation der tbox-Eingaben bewirkt effektiv, daß sich die Position der tbox-Einträge mit jeder Nachricht verschiebt, wodurch die Schwierigkeit einer kryptoanalytischen Attacke stark erhöht wird.
  • Im Schritt 612 wird unter Verwendung des ersten und des zweiten Geheimoffsets eine Rückwärts-Rücktransformation an dem Rückwärts-Zwischen-Chiffretext ausgeführt, um einen letztendlichen verarbeiteten Text zu erzeugen. Einzelheiten der Rückwärts-Rücktransformation werden nachfolgend in Verbindung mit der Besprechung von 8 besprochen.
  • 7 ist ein ausführliches Flußdiagramm der Schritte der Rücktransformation 608, die in dem in 6 dargestellten Vorwärts-ECMEA-Prozeß 600 ausgeführt werden. Die Schritte der Transformation 608 werden für jedes Oktett On ausgeführt, wobei On das n-te Oktett der unverarbeiteten Nachricht ist. n ist eine ganze Zahl von 0 bis nmax – 1, wobei nmax die Anzahl der Oktette in der Nachricht ist.
  • Im Schritt 702 wird n auf 0 gesetzt. Im Schritt 704 werden gemäß der folgenden Formel eine Offsetrotation und ein involutorisches Nachschlagen durchgeführt:
    wenn n > 0, offset2 = (offset2 >> 1) OR (offset2 << 7) On = offset1 ⊕ tbox (On ⊕ offset2)wobei >> 1 ein Rechtsschieben von 1 Bit und << 7 ein Linksschieben von 7 Bit darstellt. Diese beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der entsprechenden obigen Zeile stellen eine Ein-Bit-Rotation nach rechts dar.
  • Im Schritt 706 wird gemäß der folgenden Formel ein Bit-Trade zwischen dem vorliegenden Oktett und dem darunter durchgeführt:
    wenn n > 0, j = On-1 ⊕ On j = j AND tbox (j ⊕ offset2) On-1 = On-1 ⊕ j On = On ⊕ jwobei j eine temporäre Puffervariable ist.
  • Im Schritt 708 wird eine Zufallsoktettpermutation ausgeführt, um einen Austausch des (n – 1)-ten Oktetts mit einem zufälligen darunter gemäß der folgenden Formel durchzuführen:
    wenn n > 1, j = tbox (On ⊕ offset2) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 710 wird n erhöht und mit nmax verglichen. Im Fall n < nmax wird die Steuerung an den Schritt 704 abgegeben. Im Fall n ≥ nmax wird die Steuerung an den Schritt 712 abgegeben.
  • Im Schritt 712 wird gemäß der folgenden Formel eine Endzufallsoktettpermutation zum Austausch des letzten Oktetts mit einem zufälligen darunter durchgeführt: j = tbox (0x37 ⊕ Offset2) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 714 ist die Transformation abgeschlossen.
  • 8 ist ein ausführliches Flußdiagramm der Schritte der in dem in 6 dargestellten Vorwärts-ECMEA-Prozeß 600 ausgeführten Rückwärts-Rücktransformation 612.
  • Im Schritt 802 wird gemäß der folgenden Formel eine Anfangsrückoffsetrotation für offset1 durchgeführt: j = (nmax – 1) AND 0x07 offset1 = (offset1 >> j) OR (offset1 << (8 – j))wobei >> j ein Rechtsschieben von j Bit und << (8 – j) ein Linksschieben von (8 – j) repräsentiert. Die beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der obigen entsprechenden Zeile stellen eine j-Bit-Rotation nach rechts dar.
  • Im Schritt 804 wird eine Anfangs-Rückzufallsoktettpermutation durchgeführt, um gemäß der folgenden Formel das letzte Oktett gegen ein zufälliges darunter auszutauschen: j = tbox (0x37 ⊕ Offset1) j = (nmax·j) >> 8 z = Oj Oj = Onmax-1 Onmax-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 806 wird n auf nmax – 1 gesetzt.
  • Im Schritt 808 wird eine inverse Zufallsoktettpermutation durchgeführt, um das (n – 1)-te Oktett gegen ein zufälliges darunter gemäß der folgenden Formel auszutauschen:
    wenn n > 1, j = tbox (On ⊕ offset1) j = (n·j) >> 8 z = Oj Oj = On-1 On-1 = zwobei j und z temporäre Puffervariablen sind.
  • Im Schritt 810 wird ein inverser Bit-Trade zwischen dem vorliegenden Oktett und dem darunter gemäß der folgenden Formel durchgeführt:
    wenn n > 0, j = On-1 ⊕ On j = j AND tbox (j ⊕ offset1) On-1 = On-1 ⊕ j On = On ⊕ jwobei j eine temporäre Puffervariable ist.
  • Im Schritt 812 werden gemäß der folgenden Formel ein inverses involutorisches Nachschlagen des vorliegenden Oktetts und eine inverse Offsetrotation durchgeführt: On = offset1 ⊕ tbox (On ⊕ offset2) offset1 = (offset1 << 1)|(offset1 >> 7)wobei << 1 ein Linksschieben von 1 Bit und >> 7 ein Rechtsschieben von 7 Bit repräsentiert. Diese beiden Verschiebungen und die nachfolgende OR-Verknüpfung in der entsprechenden obigen Zeile stellen eine Ein-Bit-Rotation nach links dar.
  • Im Schritt 814 wird n erniedrigt und mit 0 verglichen. Im Fall n ≥ 0 wird die Steuerung an den Schritt 808 abgegeben. Im Fall n < 0 wird die Steuerung an den Schritt 816 abgegeben und die Rücktransformation ist abgeschlossen.
  • 9 ist ein Diagramm eines drahtlosen Fernsprechsystems 900 mit einem Handapparat 1000 und einer Basisstation 1100. Sowohl der Handapparat 1000 als auch die Basisstation 1100 sind so ausgestattet, daß sie eine Nachrichtenübertragung und -verarbeitung gemäß der vorliegenden Erfindung durchführen. Der Fernsprechhandapparat 1000 enthält einen Sender/Empfänger 1002, eine Eingabe-/Ausgabe-(E/A-)Schnittstelle 1004, einen Verschlüsselungs-/Entschlüsselungsprozessor 1006 und einen Schlüsselgenerator 1008. Der Schlüsselgenerator 1008 empfängt und verwendet gespeicherte Geheimdaten zur Schlüsselerzeugung. Gespeicherte Geheimdaten werden vorzugsweise in dem nichtflüchtigen Speicher 1010, wie zum Beispiel einem EEPROM- oder Flash-Speicher gespeichert. Der Schlüsselgenerator erzeugt außerdem Geheimwerte K0-K3, mit denen Offsets erzeugt werden. Die Geheimwerte sind vorzugsweise Oktette. Der Schlüsselgenerator kann so ausgelegt werden, daß er die Geheimwerte K0-K3 unter Verwendung einer beliebigen von gewöhnlich in der Technik bekannten Techniken erzeugt. Es wird vorzugsweise eine Menge von Geheimwerten K0-K3 für jede drahtlose Fernsprechverbindung erzeugt und die Werte K0-K3 werden vorzugsweise im Verlauf der gesamten Verbindung konstant gehalten. Der Schlüsselgenerator 1008 speichert die erzeugten Schlüssel und Geheimwerte K0-K3 in dem Speicher 1012. Der Verschlüsselungs-/Entschlüsselungsprozessor enthält außerdem Speicher 1014 zur Speicherung von aus dem Schlüsselgenerator 1008 empfangenen Schlüsseln und eine statische tbox-Tabelle, die gegebenenfalls erzeugt und verwendet werden kann, um die tbox-Funktion als statische Tabelle zu implementieren. Der Fernsprechhandapparat 1000 enthält außerdem einen Nachrichtengenerator 1016, der durch den Verschlüsselungs-/Entschlüsselungsprozessor 1006 zu verschlüsselnde und durch den Sender/Empfänger 1002 zu sendende Nachrichten erzeugt.
  • Wenn eine intern erzeugte Nachricht durch den Fernsprechhandapparat 1000 verschlüsselt und gesendet werden soll, wird die Nachricht von dem Nachrichtengenerator 1016 zu der E/A-Schnittstelle 1004 gesendet. Die E-/A-Schnittstelle 1004 sendet die Nachricht zusammen mit der Identifikation zu dem Verschlüsselungs-/Entschlüsselungsprozessor 1006. Der Verschlüsselungs-/Entschlüsselungsprozessor 1006 empfängt einen Schlüssel von dem Schlüsselgenerator 1008 und verschlüsselt die Nachricht dann damit.
  • Wenn der in dem Fernsprechhandapparat basierte Verschlüsselungs-/Entschlüsselungsprozessor 1006 eine Klartextnachricht von dem Nachrichtengenerator 1016 empfängt, wird die Nachricht wie oben in Verbindung mit der Besprechung von 3 beschrieben einem Vorwärts-ECMEA-Prozeß unterzogen. Der Vorwärts-ECMEA-Prozeß umfaßt eine Transformation, eine Iteration des CMEA-Prozesses und eine Rücktransformation. Die Verwendung des Vorwärts-ECMEA-Prozesses wie oben in 3 beschrieben bewirkt, daß sich die Position der tbox-Einträge nicht nur bei jeder Nachricht, sondern auch für jede Iteration der Verschlüsselung einer einzelnen Nachricht verschiebt.
  • Nach Abschluß des Vorwärts-ECMEA-Prozesses wird ein letztendlicher Chiffretext erzeugt und in dem Speicher 1014 gespeichert und außerdem zu der E/A-Schnittstelle 1004 und zur Übertragung zu dem Sender/Empfänger 1002 geroutet.
  • Wenn die Fernsprechbasisstation 1100 zum Zwecke der Entschlüsselung eine verschlüsselte Nachricht empfängt, leitet der Sender/Empfänger 1102 sie zu der E/A-Schnittstelle 1104 weiter. Die E/A-Schnittstelle leitet die Nachricht zu dem Verschlüsselungs-/Entschlüsselungsprozessor 1106 weiter. Der Verschlüsselungs-/Entschlüsselungsprozessor 1106 empfängt einen Schlüssel von dem Schlüsselgenerator 1108 und entschlüsselt die Nachricht unter Verwendung des oben in Verbindung mit der Besprechung von 3 beschriebenen ECMEA-Prozesses. Der Fernsprechhandapparat 1000 verwendet den Vorwärts-ECMEA-Prozeß zum Verschlüsseln und Entschlüsseln von Nachrichten und ist vorzugsweise so ausgelegt, daß er mit der Basisstation 1100 kommuniziert, die den Rückwärts-ECMER-Prozeß zum Verschlüsseln und Entschlüsseln verwendet, wie in Verbindung mit der Besprechung von 6 beschrieben. Die Basisstation 1100 enthält einen Sender/Empfänger 1102, eine E/A-Schnittstelle 1104, einen Verschlüsselungs-/Entschlüsselungsprozessor 1106, einen Schlüsselgenerator 1108, nichtflüchtigen Speicher 1110, Speicher 1112, Speicher 1114 und einen Nachrichtengenerator 1116. Diese Komponenten sind den entsprechenden Komponenten des Handapparats 1000 ähnlich, sind aber so konfiguriert, daß sie den Rückwärts-ECMEA-Prozeß implementieren. Eine durch den Handapparat 1000 verschlüsselte Nachricht wird also durch die Basisstation 1100 entschlüsselt, und eine durch die Basisstation 1100 verschlüsselte Nachricht wird durch den Handapparat 1000 entschlüsselt.
  • Abhängig von Geschwindigkeitsanforderungen und Speicherbeschränkungen können der Handapparat 1000 oder die Basisstation 1100 so ausgelegt werden, daß sie die tbox als Funktion oder als statische Tabelle implementieren. Eine Implementierung von tbox als statische Tabelle erfordert mehr Speicher, ermöglicht aber größere Geschwindigkeit.
  • Obwohl die oben beschriebenen Erweiterungen des CMEA-Prozesses die Sicherheit wesentlich erhöhen, vergrößern sie nicht wesentlich die Verarbeitungs- oder Systembetriebsmittel und eignen sich deshalb gut für eine Umgebung wie etwa ein drahtloses Fernsprechsystem. Sowohl Mobil- als auch Basisstationseinheiten in solchen Systemen weisen häufig eine begrenzte Verarbeitungsleistung auf.
  • Obwohl die vorliegende Erfindung im Kontext einer zur Zeit bevorzugten Ausführungsform offengelegt wird, versteht sich, daß Fachleute in Übereinstimmung mit der obigen Besprechung und den folgenden Ansprüchen vielfältige Implementierungen verwenden können.

Claims (8)

  1. Verfahren zur erweiterten Kryptoverarbeitung mit dem Zellularnachrichtenverschlüsselungsalgorithmus CMEA für jede Nachricht in einer Verbindung zur Verwendung in einem CMEA-Verschlüsselungssystem, das in einem drahtlosen Fernsprechsystem benutzt wird, mit den folgenden Schritten: Einführen einer unverarbeiteten Nachricht; Erzeugen eines ersten und eines zweiten Geheimoffset; Durchführen einer Transformation an der unverarbeiteten Nachricht unter Verwendung des ersten und des zweiten geheimen Offset, um eine transformierte Nachricht zu erzeugen; Durchführen einer Iteration eines CMEA-Prozesses an der transformierten Nachricht, um eine Zwischen-Chiffretextnachricht zu erzeugen, wobei die Iteration des CMEA-Prozesses eine erweiterte tbox-Funktion unter Verwendung eines involutorischen Nachschlagens verwendet, wobei die tbox-Funktion Eingaben empfängt, wobei die Eingaben der erweiterten tbox-Funktion unter Verwendung des ersten und des zweiten geheimen Offset einer Permutation unterzogen werden, um ein Permutationsergebnis zu erzeugen; und Durchführen einer Rücktransformation an der Zwischen-Chiffretextnachricht unter Verwendung des ersten und des zweiten geheimen Offset, um eine letztendliche verarbeitete Nachricht zu erzeugen.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Erzeugens jeweils des ersten und des zweiten Offset das Kombinieren einzelner von mehreren Geheimwerten mit einem Kryptosynchronisationswert umfaßt.
  3. Verfahren nach Anspruch 2, wobei die Geheimwerte Oktette sind.
  4. Verfahren nach Anspruch 3, wobei der Kryptosynchronisationswert ein 8-Bit-Wert ist.
  5. Verfahren nach Anspruch 4, wobei die Verbindung folgendes umfaßt: n unverarbeitete Nachrichten, ein erstes Offset für eine n-te unverarbeitete Nachricht der Verbindung, bestehend aus einem offset1, das durch die Gleichung offset1 = ((K0 + 1)·CS mod 257) ⊕ K1 mod 256 ausgedrückt wird, wobei K0 und K1 einzelne der Geheimwerte sind und CS der Kryptosynchronisationswert für die n-te unverarbeitete Nachricht ist, und ein zweites Offset für eine n-te unverarbeitete Nachricht der Verbindung, bestehend aus einem offset2, das durch die Gleichung offset2 = ((K2 + 1)·CS mod 257) ⊕ + K3 mod 256 ausgedrückt wird, wobei K2 und K3 einzelne der Geheimwerte sind und CS der Kryptosynchronisationswert für die n-te unverarbeitete Nachricht ist.
  6. Verfahren nach Anspruch 5, wobei die Transformation folgendes umfaßt: Durchführen der Schritte des involutorischen Nachschlagens und der Offsetrotation, des Bit-Trading und der Zufalls-Oktettpermutation an jedem Oktett der unverarbeiteten Nachricht, wobei die Schritte des Bit-Trading und der Zufalls-Oktettpermutation jeweils das erste Geheimoffset verwenden und wobei der Schritt des involutorischen Nachschlagens sowohl das erste als auch das zweite Geheimoffset verwendet.
  7. Verfahren nach Anspruch 6, wobei die Rücktransformation folgende Schritte umfaßt: Anfangs-Offset-Rückrotation, Zufallsoktett- Rückpermutation, inverses Bit-Trading und inverses involutorisches Nachschlagen und Offset-Rückrotation an jedem Oktett und der Zwischen-Chiffretextnachricht, wobei die Zufallsoktett-Rückpermutation und das inverse Bit-Trading jeweils das zweite Geheimoffset verwenden und wobei der Schritt des inversen involutorischen Nachschlagens sowohl das erste als auch das zweite Geheimoffset verwendet.
  8. Drahtloser Handapparat zum sicheren Übertragen von Nachrichten, umfassend: einen Sender/Empfänger (1002, 1102); eine Eingangs-/Ausgangsschnittstelle (1004, 1104); einen Schlüsselgenerator (1008, 1108) zum Erzeugen eines oder mehrerer Schlüssel und eines ersten und eines zweiten Geheimoffset zur Verwendung während einer Verbindung; und einen Kryptoprozessor (1006, 1106) zum Empfangen einer zu verschlüsselnden oder zu entschlüsselnden Nachricht zusammen mit einer Identifikation der Nachricht als zu verschlüsselnden oder zu entschlüsselnden Klartext von der Eingangs-/Ausgangsschnittstelle und zum Verarbeiten der Nachricht als einen Prozeß mit erweitertem Zellularnachrichtenverschlüsselungsalgorithmus CMEA einschließlich Transformation unter Verwendung des ersten und des zweiten Geheimoffsets, eine CMEA-Iteration einschließlich einer erweiterten tbox-Funktion mit durch das erste und das zweite Geheimoffset permutierten Eingaben, wobei die erweiterte tbox-Funktion eine involutorische Nachschlagetabelle verwendet, und eine Rücktransformation unter Verwendung des ersten und des zweiten Geheimoffsets verwendend, wobei der Verschlüsselungs-/Entschlüsselungsprozessor ferner wirksam ist, um die verschlüsselte oder entschlüsselte Nachricht zum weiteren Routing an die Eingangs-/Ausgangsschnittstelle zurückzugeben.
DE69830646T 1997-07-29 1998-07-29 Verfahren und vorrichtung zur verbesserung des cmea algorithmus unter verwendung von verbesserten transformationen Expired - Lifetime DE69830646T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5401897P 1997-07-29 1997-07-29
US54018P 1997-07-29
PCT/US1998/015883 WO1999007103A1 (en) 1997-07-29 1998-07-29 Methods and apparatus for enhanced cmea employing enhanced transformations

Publications (2)

Publication Number Publication Date
DE69830646D1 DE69830646D1 (de) 2005-07-28
DE69830646T2 true DE69830646T2 (de) 2006-05-11

Family

ID=21988232

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69830646T Expired - Lifetime DE69830646T2 (de) 1997-07-29 1998-07-29 Verfahren und vorrichtung zur verbesserung des cmea algorithmus unter verwendung von verbesserten transformationen

Country Status (9)

Country Link
US (1) US6377687B1 (de)
EP (1) EP0928526B1 (de)
JP (2) JP3466204B2 (de)
KR (1) KR100573180B1 (de)
CN (1) CN1236516A (de)
BR (1) BR9806124A (de)
CA (1) CA2266665A1 (de)
DE (1) DE69830646T2 (de)
WO (1) WO1999007103A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075859A (en) * 1997-03-11 2000-06-13 Qualcomm Incorporated Method and apparatus for encrypting data in a wireless communication system
JP2001359165A (ja) * 2000-06-15 2001-12-26 Mitsubishi Electric Corp モバイル通信システム
DE10103608A1 (de) * 2001-01-28 2002-08-14 Audioton Kabelwerk Gmbh Freisprecheinrichtung für den Betrieb von Mobiltelefonen in Kraftfahrzeugen
DE10103609A1 (de) * 2001-01-28 2002-08-14 Audioton Kabelwerk Gmbh Freisprecheinrichtung für den Betrieb von Mobiltelefonen in Kraftfahrzeugen
ATE509442T1 (de) 2003-12-11 2011-05-15 Irdeto Bv Blockchiffriersystem unter verwendung von permutationen zum verbergen der kernchiffrierfunktion jeder verschlüsselungsrunde
US20050193197A1 (en) * 2004-02-26 2005-09-01 Sarvar Patel Method of generating a cryptosync
DE602006006072D1 (de) * 2006-11-22 2009-05-14 Research In Motion Ltd System und Verfahren für ein sicheres Aufzeichnungsprotokoll unter Verwendung von gemeinsam genutzten Kenntnissen von Mobilteilnehmerberechtigungsnachweisen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1522775A (en) * 1922-04-14 1925-01-13 William F Friedman Secret-signaling apparatus for automatically enciphering and deciphering messages
US1516180A (en) * 1922-06-05 1924-11-18 William F Friedman Secret signaling system employing apparatus for automatically enciphering and deciphering messages
US5159634A (en) 1991-09-13 1992-10-27 At&T Bell Laboratories Cryptosystem for cellular telephony
WO1993023938A1 (en) * 1992-05-15 1993-11-25 Tecsec Incorporated Voice and data encryption device
GB9211648D0 (en) * 1992-06-02 1992-07-15 Racal Datacom Ltd Data communication system
US5594797A (en) * 1995-02-22 1997-01-14 Nokia Mobile Phones Variable security level encryption

Also Published As

Publication number Publication date
JP2000508441A (ja) 2000-07-04
EP0928526B1 (de) 2005-06-22
US6377687B1 (en) 2002-04-23
JP2003263109A (ja) 2003-09-19
KR20000068663A (ko) 2000-11-25
WO1999007103A1 (en) 1999-02-11
KR100573180B1 (ko) 2006-04-24
CN1236516A (zh) 1999-11-24
CA2266665A1 (en) 1999-02-11
BR9806124A (pt) 1999-08-31
JP3466204B2 (ja) 2003-11-10
EP0928526A1 (de) 1999-07-14
DE69830646D1 (de) 2005-07-28

Similar Documents

Publication Publication Date Title
DE69823834T2 (de) Sicherheitsverfahren und -system für übertragungen in fernmeldenetzen
DE69727641T2 (de) Verfahren zum Senden einer sicheren Botschaft in einem Telekommunikationssystem
Katz et al. Unforgeable encryption and chosen ciphertext secure modes of operation
US6768797B2 (en) Method and apparatus for encrypting data in a wireless communication system
DE69830646T2 (de) Verfahren und vorrichtung zur verbesserung des cmea algorithmus unter verwendung von verbesserten transformationen
DE69836185T2 (de) Vorrichtung und verfahren für dazu passender multi-iteration cmea entschlüsselung und verschlüsselung um die sicherheit von drahtlosen fernsprechnachrichten zu verbessern
US6233337B1 (en) Methods and apparatus for enhanced security expansion of a secret key into a lookup table for improved security for wireless telephone messages
DE60133140T2 (de) System und verfahren für symmetrische kryptographie
DE69827917T2 (de) Verfahren und vorrichtung zum verbesserten cmea algorithmus dessen iteration von transformationen vorhergegangen und gefolgt wird unter verwendung einer involutiven nachschlagtafel
US6418224B1 (en) Methods and apparatus for self-inverting multiple-iteration CMEA crypto-processing for improved security for wireless telephone messages
WO1999003246A2 (en) Methods and apparatus for enhanced security expansion of a secret key into a lookup table for improved security for wireless telephone messages
KR100591869B1 (ko) 무선 전화 메시지들에 대한 보안성을 개선하기 위해 다수의 씨엠이에이 반복을 사용하는 암호화 및 해독화방법 및 무선 전화
CA2603161C (en) Method of and apparatus for encrypting signals for transmission
Chakravarthy et al. A novel symmetric key cryptography using multiple random secret keys

Legal Events

Date Code Title Description
8364 No opposition during term of opposition