(19)
(11)EP 3 917 069 A1

(12)EUROPÄISCHE PATENTANMELDUNG

(43)Veröffentlichungstag:
01.12.2021  Patentblatt  2021/48

(21)Anmeldenummer: 21175270.4

(22)Anmeldetag:  21.05.2021
(51)Internationale Patentklassifikation (IPC): 
H04L 9/06(2006.01)
H04L 9/32(2006.01)
(52)Gemeinsame Patentklassifikation (CPC) :
H04L 9/3242; H04L 2209/805; H04L 9/0631; H04L 9/0637
(84)Benannte Vertragsstaaten:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Benannte Erstreckungsstaaten:
BA ME
Benannte Validierungsstaaten:
KH MA MD TN

(30)Priorität: 26.05.2020 DE 102020114081

(71)Anmelder: Krohne Messtechnik GmbH
47058 Duisburg (DE)

(72)Erfinder:
  • Weßkamp, Patrick
    45478 Mülheim (DE)

(74)Vertreter: Gesthuysen Patentanwälte 
Patentanwälte Huyssenallee 100
45128 Essen
45128 Essen (DE)


(56)Entgegenhaltungen: : 
  
      


    (54)VERFAHREN ZUM SYNCHRONISIEREN EINES EMPFÄNGER-INITIALISIERUNGSVEKTORS MIT EINEM SENDER-INITIALISIERUNGSVEKTOR


    (57) Dargestellt ist ein Verfahren zum Synchronisieren eines Empfänger-Initialisierungsvektors (3) mit einem Sender-Initialisierungsvektor (4) bei Übertragung von verschlüsselten Datenpaketen (11) von einem Sender (1) zu einem Empfänger (2), wobei zum einen ein Schlüssel (5) und zum anderen ein Initialisierungsvektor erzeugt wird.
    Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren anzugeben, bei dem der Energiebedarf reduziert ist.
    Die Aufgabe wird gelöst, indem vom Sender (1) ein Sender-Teilzähler (9) mit den niedrigstwertigen M Bit aus dem Zähler (8) des Sender-Initialisierungsvektors (4) gebildet, eine Nachricht (10) gemäß einem Verschlüsselungsverfahren verschlüsselt, ein Datenpaket (11) mit der verschlüsselten Nachricht (10) und dem Sender-Teilzähler (9) erzeugt und gesendet und der Zähler (8) des Sender-Initialisierungsvektors (4) inkrementiert wird.
    Und indem vom Empfänger (2) ein Datenpaket (11) mit einer verschlüsselten Nachricht (10) und einem Sender-Teilzähler (9) empfangen, der Sender-Teilzähler (9) aus dem Datenpaket (11) extrahiert, ein Empfänger-Teilzähler (13) mit den niedrigstwertigen M Bit aus dem Zähler (7) des Empfänger-Initialisierungsvektors (3) gebildet wird, wenn ein Vergleich einen höheren Sender-Teilzähler (9) als Empfänger-Teilzähler (13) ergibt, die niedrigstwertigen M Bit des Zählers (7) des Empfänger-Initialisierungsvektors (3) durch den Sender-Teilzähler (9) ersetzt werden, wenn der Vergleich einen niedrigeren Sender-Teilzähler (9) als Empfänger-Teilzähler (13) ergibt, die niedrigstwertigen M Bit des Zählers (7) des Empfänger-Initialisierungsvektors (3) durch den Sender-Teilzähler (9) ersetzt werden und der Wert des Zählers (7) des Empfänger-Initialisierungsvektors (3) danach um 2M erhöht, die Nachricht (10) entschlüsselt und dann der Zähler (7) des Empfänger-Initialisierungsvektors (3) inkrementiert wird.




    Beschreibung


    [0001] Die Erfindung betrifft ein Verfahren zum Synchronisieren eines Empfänger-Initialisierungsvektors eines Empfängers mit einem Sender-Initialisierungsvektor eines Senders bei fortlaufender Übertragung von verschlüsselten Datenpaketen vom Sender zum Empfänger.

    [0002] Dazu wird zunächst zum einen ein Schlüssel und zum anderen ein Initialisierungsvektor mit einem Zähler mit N Bit erzeugt. Der Initialisierungsvektor weist demnach einen Zähler mit N Bit auf. Der Zähler ist damit ein N-Bit-Zähler. N ist dabei eine ganze Zahl größer als Null.

    [0003] Der Schlüssel wird dem Sender und dem Empfänger vorgegeben und der Sender-Initialisierungsvektor und der Empfänger-Initialisierungsvektor werden mit dem Initialisierungsvektor initialisiert. Das bedeutet insbesondere, dass der Sender-Initialisierungsvektor einen Sender-Zähler und der Empfänger-Initialisierungsvektor einen Empfänger-Zähler gemäß dem Zähler des Initialisierungsvektors aufweisen. Zunächst weisen der Sender-Initialisierungsvektor und der Empfänger-Initialisierungsvektor den Wert des Initialisierungsvektors auf.

    [0004] Vom Sender werden bei jeder Übertragung eines Datenpakets im Stand der Technik die folgenden Schritte ausgeführt:
    • Eine Nachricht wird gemäß einem Verschlüsselungsverfahren unter Verwendung des Schlüssels und des Sender-Initialisierungsvektors zur Gewährleistung von Vertraulichkeit verschlüsselt.
    • Ein Datenpaket wird mit der verschlüsselten Nachricht und dem Sender-Zähler erzeugt und gesendet.
    • Danach wird der Sender-Zähler des Sender-Initialisierungsvektors inkrementiert.


    [0005] Vom Empfänger werden bei jeder Übertragung eines Datenpakets im Stand der Technik die folgenden Schritte ausgeführt:
    • Ein Datenpaket mit einer Nachricht und einem Sender-Zähler wird empfangen.
    • Der Sender-Zähler wird aus dem Datenpaket extrahiert.
    • Der Empfänger-Zähler wird mit dem Sender-Zähler aktualisiert.
    • Die Nachricht wird gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels und des Empfänger-Initialisierungsvektors entschlüsselt.


    [0006] Die fortlaufende Übertragung erfolgt, indem der Sender und der Empfänger die vorstehend beschriebenen Schritte fortlaufend ausführen. Eine Übertragung umfasst das Senden und Empfangen.

    [0007] Da der Sender und der Empfänger den gleichen Schlüssel verwenden, handelt es sich bei dem Verschlüsselungsverfahren um ein symmetrisches Verschlüsselungsverfahren. Der Schlüssel muss zur Gewährleistung von Vertraulichkeit geheim sein, wohingegen der Zähler bekannt sein darf. Die unverschlüsselte Übertragung eines Zählers bedeutet demnach keine Beeinträchtigung der Vertraulichkeit einer Nachricht, welche unter Verwendung des Zählers verschlüsselt worden ist.

    [0008] Eine Nachricht ist zur Gewährleistung von Vertraulichkeit unter Verwendung einer einzigartigen Kombination aus dem Schlüssel und dem Sender-Initialisierungsvektor zu verschlüsseln. Eine Einzigartigkeit der Kombination wird gewährleistet, indem der Sender-Zähler im Sender-Initialisierungsvektor wie beschrieben nach jeder Verschlüsselung einer Nachricht inkrementiert wird.

    [0009] Ein erfolgreiches Entschlüsseln einer Nachricht erfordert, dass der Empfänger-Initialisierungsvektor gleich dem Sender-Initialisierungsvektor ist. Das ist vorliegend gegeben, wenn der Empfänger-Zähler gleich dem Sender-Zähler ist, der zur Verschlüsselung der Nachricht verwendet worden ist, da gegebenenfalls vorhandene weitere Komponenten des Empfänger- und des Sender-Initialisierungsvektors konstant sind. Die Gleichheit von Sender- und Empfänger-Zähler wird gewährleistet, indem der Sender-Zähler zusammen mit der verschlüsselten Nachricht in einem Datenpaket gesendet und der Empfänger-Zähler mit dem Sender-Zähler aktualisiert wird. Auf diese Weise wird im Stand der Technik der Empfänger-Initialisierungsvektor mit dem Sender-Initialisierungsvektor synchronisiert.

    [0010] Das aus dem Stand der Technik bekannte Verfahren weist jedoch Nachteile auf. Das Übertragen des Sender-Zählers mit jedem Datenpaket vergrößert zum einen die Größe des Datenpakets und erhöht zum anderen die Energie, die zum Übertragen des Datenpakets notwendig ist.

    [0011] Eine Aufgabe der vorliegenden Erfindung ist daher die Angabe eines Verfahrens zum fortlaufenden Synchronisieren des Empfänger-Initialisierungsvektors mit dem Sender-Initialisierungsvektor, bei dem die zuvor aufgezeigten Nachteile zumindest abgemildert sind.

    [0012] Die Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 gelöst. Das Verfahren modifiziert das aus dem Stand der Technik bekannte Verfahren, wie im Folgenden beschrieben.

    [0013] Vom Sender werden bei jeder Übertragung eines Datenpakets die folgenden Schritte ausgeführt:
    • Ein Sender-Teilzähler wird mit den niedrigstwertigen M Bit kleiner als N Bit aus dem Zähler des Sender-Initialisierungsvektors, also dem Sender-Zähler, gebildet. Der Sender-Teilzähler ist damit ein M-Bit-Zähler. M ist dabei eine ganze Zahl größer als Null und kleiner als N.
    • Eine Nachricht wird gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels und des Sender-Initialisierungsvektors zur Gewährleistung von Vertraulichkeit verschlüsselt.
    • Ein Datenpaket wird mit der verschlüsselten Nachricht und dem Sender-Teilzähler erzeugt und gesendet.
    • Danach wird der Zähler des Sender-Initialisierungsvektors inkrementiert.


    [0014] Vom Empfänger werden bei jeder Übertragung eines Datenpakets die folgenden Schritte ausgeführt:
    • Ein Datenpaket mit einer verschlüsselten Nachricht und einem Sender-Teilzähler wird empfangen.
    • Der Sender-Teilzähler wird aus dem Datenpaket extrahiert.
    • Ein Empfänger-Teilzähler mit den niedrigstwertigen M Bit kleiner als N Bit wird aus dem Zähler des Empfänger-Initialisierungsvektors, also dem Empfänger-Zähler, gebildet.
    • Ein Vergleich zwischen dem Empfänger-Teilzähler und dem Sender-Teilzähler wird durchgeführt. Bei dem Vergleich werden demnach die Werte vom Empfänger- und Sender-Teilzähler verglichen.
    • Wenn der Vergleich einen höheren Sender-Teilzähler als Empfänger-Teilzähler ergibt, werden die niedrigstwertigen M Bit des Zählers des Empfänger-Initialisierungsvektors durch den Sender-Teilzähler ersetzt. Dieses Vergleichsergebnis wird im Folgenden auch als Vergleichsergebnis A bezeichnet.
      • Wenn der Vergleich einen niedrigeren Sender-Teilzähler als Empfänger-Teilzähler ergibt, werden die niedrigstwertigen M Bit des Zählers des Empfänger-Initialisierungsvektors durch den Sender-Teilzähler ersetzt und wird der Wert des Zählers des Empfänger-Initialisierungsvektors danach um 2M erhöht. Dieses Vergleichsergebnis wird im Folgenden auch als Vergleichsergebnis B bezeichnet.
      • Danach wird die Nachricht gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels und des Empfänger-Initialisierungsvektors entschlüsselt und dann wird der Zähler des Empfänger-Initialisierungsvektors inkrementiert.


    [0015] Neben einem höheren (Vergleichsergebnis A) und niedrigeren (Vergleichsergebnis B) Sender- als Empfänger-Teilzähler ist das dritte mögliche Ergebnis des Vergleichs, dass der Sender- und der Empfänger-Teilzähler gleich sind. Dieses Vergleichsergebnis wird im Folgenden auch als Vergleichsergebnis C bezeichnet und erfordert im Gegensatz zu den Vergleichsergebnissen A und B keine weiteren Schritte, da der Empfänger-Zähler bereits den richtigen Wert aufweist.

    [0016] Die unten stehende Tabelle zeigt ein Beispiel einer fortlaufenden Sendung von Datenpaketen vom Sender zum Empfänger für einen Zähler mit N = 16 Bit, weshalb auch der Sender- und der Empfänger-Zähler jeweils 16-Bit-Zähler sind, und mit M = 8 Bit, weshalb der Sender- und der Empfänger-Teilzähler jeweils 8-Bit-Zähler sind. Zahlen, die mit einem tiefgestellten "b" enden, sind Binärzahlen und Zahlen, die mit einem tiefgestellten "d" enden, sind Dezimalzahlen. Jedes vom Empfänger empfangenes Datenpaket wird im Beispiel erfolgreich entschlüsselt. Eine Übertragung eines Datenpakets ist dann erfolgreich, wenn es nicht nur gesendet, sondern auch empfangen wird.
    Sender-ZählerSender-TeilzählerÜbertragungEmpfänger-ZählerEmpfänger-TeilzählerVergleichsergebnis
    1,1111,1101b = 509d 1111,1101b = 253d erfolgreich 1,1111,1101b = 509d 1111,1101b = 253d C
    1,1111,1110b = 510d 1111,1110b = 254d erfolgreich 1,1111,1110b = 510d 1111,1110b = 254d C
    1,1111,1111b = 511d 1111,1111b = 255d nicht erfolgreich 1,1111,1111b = 511d 1111,1111b = 255d kein Vergleichsergebnis
    10,0000,0000b = 512d 0b = 0d nicht erfolgreich 1,1111,1111b = 511d 1111,1111b = 255d kein Vergleichsergebnis
    10,0000,0001b = 513d 1b = 1d erfolgreich Bei Vergleich: 1,1111,1111b = 511d Synchronisierung: 1,0000,0001b + 1,0000,0000b = 10,0000,0001b = 257d + 28d = 513d Bei Vergleich: 1111,1 111b = 255d B
    10,0000,0010b = 514d 10b = 2d erfolgreich 10,0000,0010b = 514d 10b = 2d C
    10,0000,0011b = 515d 11b = 3d nicht erfolgreich 10,0000,0011b = 515d 11b = 3d kein Vergleichsergebnis
    10,0000,0100b = 516d 100b = 4d erfolgreich Bei Vergleich: 10,0000,0011b = 515d Synchronisierung: 10,0000,0100b = 516d Bei Vergleich: 11b = 3d A


    [0017] In Zeile 1 ist die Übertragung des Datenpakets vom Sender zum Empfänger erfolgreich, weshalb der Vergleich zwischen dem Empfänger- und dem Sender-Teilzähler das Vergleichsergebnis A liefert. Abschließend wird auf der Seite des Senders der Sender-Zähler inkrementiert. Auf der Seite des Empfängers wird abschließend der Empfänger-Zähler inkrementiert, da ein Datenpaket empfangen worden ist. Wenn kein Datenpaket empfangen wird, dann wird der Empfänger-Zähler nicht inkrementiert. Die inkrementierten Zähler werden erst in der jeweils folgenden Zeile, hier Zeile 2, dargestellt.

    [0018] In Zeile 2 ist die Übertragung ebenfalls erfolgreich, weshalb das Gleiche wie in Zeile 1 ausgeführt wird.

    [0019] In Zeile 3 ist die Übertragung nicht erfolgreich, da ein Datenpaket zwar vom Sender gesendet, jedoch nicht vom Empfänger empfangen wird. Deshalb wird auch der Vergleich nicht durchgeführt und wird zwar der Sender- nicht aber der Empfänger-Zähler inkrementiert.

    [0020] In Zeile 4 ist die Übertragung ebenfalls nicht erfolgreich, weshalb das Gleiche wie in Zeile 3 ausgeführt wird.

    [0021] In Zeile 5 ist die Übertragung erfolgreich. Der Sender-Zähler hat den Wert 513d und der Sender-Teilzähler den Wert 1d. Aufgrund der zwei vorangehenden nicht erfolgreichen Übertragungen hat der Empfänger-Zähler nur den Wert 511d und der Empfänger-Teilzähler den Wert 255d. Deshalb liefert der Vergleich das Vergleichsergebnis B. Dabei wird der Empfänger-Zähler mit dem Sender-Zähler synchronisiert, indem die niedrigstwertigen 8 Bit des Empfänger-Zählers (1111,1111b) durch den Sender-Teilzähler (0000,0001b) ersetzt werden und anschließend der Empfänger-Zähler um 28d = 256d erhöht wird. Nach der Synchronisierung wird das Datenpaket erfolgreich entschlüsselt. Abschließend wird auf der Seite des Senders der Sender-Zähler inkrementiert. Auf der Seite des Empfängers wird der Empfänger-Zähler inkrementiert, da ein Datenpaket empfangen worden ist.

    [0022] In Zeile 6 ist die Übertragung erfolgreich, weshalb das Gleiche wie in den Zeilen 1 und 2 ausgeführt wird.

    [0023] In Zeile 7 ist die Übertragung nicht erfolgreich, weshalb das Gleiche wie in den Zeilen 3 und 4 ausgeführt wird.

    [0024] In Zeile 8 war die Übertragung erfolgreich. Der Sender-Zähler hat den Wert 516d und der Sender-Teilzähler den Wert 4d. Aufgrund der vorangehenden nicht erfolgreichen Übertragung hat der Empfänger-Zähler nur den Wert 515d und der Empfänger-Teilzähler den Wert 3d. Deshalb liefert der Vergleich das Vergleichsergebnis A. Dabei wird der Empfänger-Zähler mit dem Sender-Zähler synchronisiert, indem die niedrigstwertigen 8 Bit des Empfänger-Zählers (0000,0011b) durch den Sender-Teilzähler (0000,0100b) ersetzt werden. Abschließend wird auf der Seite des Senders der Sender-Zähler inkrementiert. Auf der Seite des Empfängers wird abschließend der Empfänger-Zähler inkrementiert, da ein Datenpaket empfangen worden ist.

    [0025] Das erfindungsgemäße Verfahren hat gegenüber dem aus dem Stand der Technik bekannten Verfahren den Vorteil, dass zur Synchronisierung von Empfänger- und Sender-Initialisierungsvektor nicht mehr der Sender-Zähler im Datenpaket übertragen werden muss, sondern ein kleinerer Sender-Teilzähler ausreichend ist. Dadurch wird die Größe des Datenpakets verringert und die Energie, die zum Übertragen des Datenpakets notwendig ist, reduziert. Das trifft insbesondere in Bezug auf auf andere auf Anwendungsebene laufende Verfahren aus dem Stand der Technik zu. Auch gewährleistet das Verfahren eine Synchronisierung nach nicht erfolgreichen Übertragungen.

    [0026] Es besteht die Möglichkeit, dass die Übertragung von mehr als 2M Datenpaketen nicht erfolgreich ist. In diesem Fall ist die Entschlüsselung zunächst nicht erfolgreich. Deshalb wird in einer Ausgestaltung des Verfahrens vom Empfänger zunächst überprüft, ob die Entschlüsselung erfolgreich ist. Wenn die Entschlüsselung nicht erfolgreich ist, wird vom Empfänger der Wert des Zählers des Empfänger-Initialisierungsvektors um weitere 2M erhöht und die Nachricht dann erneut gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels und des Empfänger-Initialisierungsvektors entschlüsselt.

    [0027] Der Schlüssel und der Initialisierungsvektor müssen dem Sender und dem Empfänger vorgegeben werden. In einer Ausgestaltung des Verfahrens werden von einem Initialisierer der Schlüssel und der Initialisierungsvektor erzeugt und dem Sender und dem Empfänger vorgegeben. Der Initialisierer ist zum Beispiel neben dem Sender und dem Empfänger ein weiteres Gerät. Alternativ dazu ist der Initialisierer zum Beispiel im Sender oder im Empfänger implementiert und der Austausch des Schlüssels und/oder des Initialisierungsvektors zwischen dem Sender und dem Empfänger erfolgt gemäß einem Public-Key-Verfahren.

    [0028] In einer Ausgestaltung des Verfahrens setzt das Verschlüsselungsverfahren einen Advanced Encryption Standard um. Advanced Encryption Standard wird mit AES abgekürzt.

    [0029] In einer Ausgestaltung des Verfahrens werden vom Sender zum einen ein Nachrichten-Authentifizierungscode für die Nachricht zur Gewährleistung von Authentizität und/oder Integrität der Nachricht und zum anderen das Datenpaket mit dem Nachrichten-Authentifizierungscode erzeugt. Vom Empfänger werden bzw. wird dementsprechend Authentizität und/oder Integrität der Nachricht durch Auswertung des Nachrichten-Authentifizierungscodes überprüft. Demnach weist das Datenpaket gemäß dieser Ausgestaltung neben der Nachricht und dem Sender-Teilzähler auch den Nachrichten-Authentifizierungscode auf. Dieser wird auch als Message Authentication Code bezeichnet und mit MAC abgekürzt.

    [0030] In einer zur vorstehenden Ausgestaltung alternativen Ausgestaltung werden vom Sender zum einen ein Nachrichten-Authentifizierungscode für die Nachricht und den Sender-Teilzähler zur Gewährleistung von Authentizität und/oder Integrität der Nachricht und des Sender-Teilzählers und zum anderen das Datenpaket mit dem Nachrichten-Authentifizierungscode erzeugt. Vom Empfänger werden bzw. wird dementsprechend Authentizität und/oder Integrität der Nachricht und des Sender-Teilzählers durch Auswertung des Nachrichten-Authentifizierungscodes überprüft. Im Gegensatz zur vorstehenden Ausgestaltung wird bei dieser Ausgestaltung der Nachrichten-Authentifizierungscode nicht nur für die Nachricht, sondern für die Nachricht und den Sender-Teilzähler zusammen erzeugt. Dadurch wird nicht nur sichergestellt, dass eine Manipulation der Nachricht, sondern auch eine Manipulation des Sender-Teilzählers entdeckt wird.

    [0031] In einer Weiterbildung der beiden vorstehenden alternativen Ausgestaltungen werden vom Sender und vom Empfänger zur Erzeugung und Überprüfung des Nachrichten-Authentifizierungscodes ein CCM- oder ein GCM-Modus, vorzugsweise mit einem AES, umgesetzt.

    [0032] Ein CCM-Modus ist ein Betriebsmodus für eine Blockchiffre, welcher aus dieser ein Authenticated-Encryption-Verfahren macht, das Vertraulichkeit und Integrität einer Nachricht gewährleistet. Ein CCM-Modus kombiniert einen Counter-Modus zur Verschlüsselung mit einem CBC-MAC-Modus zur Gewährleistung von Integrität. Ein Counter-Modus ist eine Betriebsart einer Blockchiffre, in welcher diese eine Stromchiffre erzeugt. Ein CBC-MAC-Modus sieht vor, dass ein Cipher-Block-Chaining-Modus, der mit CBC-Modus abgekürzt wird, zur Gewährleistung von Integrität einer Nachricht benutzt wird, indem sein Initialisierungsvektor auf Null gesetzt und der letzte im CBC-Modus verschlüsselte Block oder ein Teil von diesem als MAC dem Datenpaket hinzugefügt wird.

    [0033] Ein GCM-Modus ist ein Betriebsmodus, in dem eine Blockchiffre für eine symmetrische Verschlüsselung einer Nachricht betrieben werden kann. Dieser stellt eine authentifizierte Verschlüsselungsmethode für Nachrichten bereit, welche sowohl Authentizität als auch Vertraulichkeit gewährleistet. GCM-Modus steht für Galois-Counter-Modus.

    [0034] In einer Ausgestaltung des Verfahrens wird der Initialisierungsvektor mit einer Nonce zur Verbesserung der Gewährleistung der Vertraulichkeit bzw. der Authentizität und Integrität erzeugt. Eine Nonce ist eine möglichst zufällige Zeichenkombination. In dieser Ausgestaltung weist der Initialisierungsvektor demnach neben dem Zähler die Nonce auf. Durch die Nonce im Initialisierungsvektor werden Precomputation-Angriffe erschwert. Nach der Initialisierung des Sender- und des Empfänger-Initialisierungsvektors mit dem Initialisierungsvektor weisen beide Initialisierungsvektoren ebenfalls die Nonce auf.

    [0035] In einer Ausgestaltung des Verfahrens wird zur Übertragung von Datenpaketen vom Sender zum Empfänger eine Funktechnik, vorzugsweise Bluetooth Low Energy, verwendet. Bluetooth Low Energy ist in einer Bluetooth-Spezifikation beschrieben, z. B. in einer Bluetooth-5-Spezifikation. Bluetooth Low Energy wird mit BLE abgekürzt. Diese Ausgestaltung ist besonders vorteilhaft, da ein Ziel von BLE die Übertragung von Datenpaketen unter Verwendung von möglichst wenig Energie ist und das Verfahren die benötigte Energie im Vergleich zum Stand der Technik reduziert.

    [0036] Im Einzelnen ist eine Vielzahl von Möglichkeiten gegeben, das Verfahren auszugestalten und weiterzubilden. Dazu wird verwiesen sowohl auf die dem Patentanspruch 1 nachgeordneten Patentansprüche als auch auf die nachfolgende Beschreibung eines bevorzugten Ausführungsbeispiels in Verbindung mit der Figur.

    [0037] Die Figur zeigt einen Sender 1 und einen Empfänger 2. Nur der Sender 1 und der Empfänger 2 sind Geräte, weisen also eine körperliche Ausgestaltung auf. Die übrigen Komponenten weisen keine körperliche Ausgestaltung auf. Sie sind also virtuell. Die Darstellung der virtuellen Komponenten dient nur der Veranschaulichung des im Folgenden beschriebenen Verfahrens zum Synchronisieren eines Empfänger-Initialisierungsvektors 3 des Empfängers 2 mit einem Sender-Initialisierungsvektor 4 des Senders 1 bei fortlaufender Übertragung von verschlüsselten Datenpaketen vom Sender 1 zum Empfänger 2.

    [0038] Zunächst werden ein Schlüssel 5 und ein Initialisierungsvektor erzeugt. Der Initialisierungsvektor weist eine Nonce 6 mit 64 Bit und einen Zähler mit N = 16 Bit auf. Dann wird der Schlüssel 5 sowohl dem Sender 1 als auch dem Empfänger 2 vorgegeben, sodass der Schlüssel vom Sender 1 und vom Empfänger 2 verwendet wird. Weiter werden der Empfänger-Initialisierungsvektor 3 und der Sender-Initialisierungsvektor 4 mit dem Initialisierungsvektor initialisiert. Nach der Initialisierung weist der Empfänger-Initialisierungsvektor 3 die Nonce 6 und einen Empfänger-Zähler 7 und der Sender-Initialisierungsvektor 4 die Nonce 6 und einen Sender-Zähler 8 auf. Der Empfänger-Zähler 7 und der Sender-Zähler 8 sind jeweils 16-Bit-Zähler, die nach der Initialisierung den gleichen Wert aufweisen.

    [0039] Vom Sender 1 werden die folgenden Schritte ausgeführt:
    • Ein Sender-Teilzähler 9 wird mit den niedrigstwertigen M = 8 Bit kleiner als N = 16 Bit aus dem Sender-Zähler 8 gebildet. Der Sender-Teilzähler 9 ist demnach ein 8-Bit-Zähler.
    • Eine Nachricht 10 wird gemäß einem Verschlüsselungsverfahren unter Verwendung des Schlüssels 5 und des Sender-Initialisierungsvektors 4 zur Gewährleistung von Vertraulichkeit verschlüsselt. Dazu werden die Nachricht 10, der Schlüssel 5 und der Sender-Initialisierungsvektor 4 eingelesen. Das Verschlüsselungsverfahren setzt einen AES um.
    • Ein Nachrichten-Authentifizierungscode 12 wird für die Nachricht 10 zur Gewährleistung von Authentizität und Integrität der Nachricht 10 erzeugt. Zur Erzeugung wird ein CCM-Modus umgesetzt.
    • Ein Datenpaket 11 wird mit der verschlüsselten Nachricht 10, dem Sender-Teilzähler 9 und dem Nachrichten-Authentifizierungscode 12 erzeugt und gesendet.
    • Der Sender-Zähler 8 wird dann inkrementiert.


    [0040] Vom Empfänger 2 werden die folgenden Schritte ausgeführt:
    • Das Datenpaket 11 mit der verschlüsselten Nachricht 10, dem Sender-Teilzähler 9 und dem Nachrichten-Authentifizierungscode 12 wird empfangen.
    • Der Sender-Teilzähler 9 wird aus dem Datenpaket 11 extrahiert.
    • Ein Empfänger-Teilzähler 13 wird mit den niedrigstwertigen M = 8 Bit kleiner als N = 16 Bit aus dem Empfänger-Zähler 7 gebildet. Der Empfänger-Teilzähler 13 ist demnach ein 8-Bit-Zähler.
    • Ein Vergleich zwischen dem Empfänger-Teilzähler 13 und dem Sender-Teilzähler 9 wird durchgeführt.
    • Wenn der Vergleich einen höheren Sender-Teilzähler 9 als Empfänger-Teilzähler 13 ergibt, dann werden die niedrigstwertigen M = 8 Bit des Empfänger-Zählers 7 durch den Sender-Teilzähler 9 ersetzt.
    • Wenn der Vergleich einen niedrigeren Sender-Teilzähler 9 als Empfänger-Teilzähler 13 ergibt, dann werden die niedrigstwertigen M = 8 Bit des Empfänger-Zählers 7 durch den Sender-Teilzähler 9 ersetzt und wird danach der Wert des Empfänger-Zählers 7 um 2M = 28 erhöht.
    • Authentizität und Integrität der Nachricht 10 werden durch Auswertung des Nachrichten-Authentifizierungscodes 12 überprüft.
    • Die Nachricht 10 wird gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels 5 und des Empfänger-Initialisierungsvektors 3 entschlüsselt. Dazu wird der Schlüssel 5 eingelesen. Die entschlüsselte Nachricht 10 wird ausgegeben. Dann der Empfänger-Zähler 7 inkrementiert.


    [0041] Die letzten beiden Schritte erfolgen nachdem sichergestellt worden ist, dass der Empfänger- und der Sender-Initialisierungsvektor übereinstimmen. Eine Übertragung des Datenpakets 11 vom Sender 1 zum Empfänger 2, also das Senden und das Empfangen, erfolgt dabei unter Verwendung von Bluetooth Low Energy.

    Bezugszeichen



    [0042] 
    1
    Sender
    2
    Empfänger
    3
    Empfänger-Initialisierungsvektor
    4
    Sender-Initialisierungsvektor
    5
    Schlüssel
    6
    Nonce
    7
    Empfänger-Zähler
    8
    Sender-Zähler
    9
    Sender-Teilzähler
    10
    Nachricht
    11
    Datenpaket
    12
    Nachrichten-Authentifizierungscode
    13
    Empfänger-Teilzähler



    Ansprüche

    1. Verfahren zum Synchronisieren eines Empfänger-Initialisierungsvektors (3) eines Empfängers (2) mit einem Sender-Initialisierungsvektor (4) eines Senders (1) bei fortlaufender Übertragung von verschlüsselten Datenpaketen (11) vom Sender (1) zum Empfänger (2),
    wobei zum einen ein Schlüssel (5) und zum anderen ein Initialisierungsvektor mit einem Zähler mit N Bit erzeugt wird,
    wobei der Schlüssel (5) dem Sender (1) und dem Empfänger (2) vorgegeben wird und der Sender-Initialisierungsvektor (4) und der Empfänger-Initialisierungsvektor (3) mit dem Initialisierungsvektor initialisiert werden,
    wobei vom Sender (1)

    - ein Sender-Teilzähler (9) mit den niedrigstwertigen M Bit kleiner als N Bit aus dem Zähler (8) des Sender-Initialisierungsvektors (4) gebildet wird,

    - eine Nachricht (10) gemäß einem Verschlüsselungsverfahren unter Verwendung des Schlüssels (5) und des Sender-Initialisierungsvektors (4) zur Gewährleistung von Vertraulichkeit verschlüsselt wird,

    - ein Datenpaket (11) mit der verschlüsselten Nachricht (10) und dem Sender-Teilzähler (9) erzeugt und gesendet wird und

    - danach der Zähler (8) des Sender-Initialisierungsvektors (4) inkrementiert wird,
    wobei vom Empfänger (2)

    - ein Datenpaket (11) mit einer verschlüsselten Nachricht (10) und einem Sender-Teilzähler (9) empfangen wird,

    - der Sender-Teilzähler (9) aus dem Datenpaket (11) extrahiert wird,

    - ein Empfänger-Teilzähler (13) mit den niedrigstwertigen M Bit kleiner als N Bit aus dem Zähler (7) des Empfänger-Initialisierungsvektors (3) gebildet wird,

    - ein Vergleich zwischen dem Empfänger-Teilzähler (13) und dem Sender-Teilzähler (9) durchgeführt wird,

    - wenn der Vergleich einen höheren Sender-Teilzähler (9) als Empfänger-Teilzähler (13) ergibt, die niedrigstwertigen M Bit des Zählers (7) des Empfänger-Initialisierungsvektors (3) durch den Sender-Teilzähler (9) ersetzt werden,

    - wenn der Vergleich einen niedrigeren Sender-Teilzähler (9) als Empfänger-Teilzähler (13) ergibt, die niedrigstwertigen M Bit des Zählers (7) des Empfänger-Initialisierungsvektors (3) durch den Sender-Teilzähler (9) ersetzt werden und der Wert des Zählers (7) des Empfänger-Initialisierungsvektors (3) danach um 2M erhöht wird,

    - danach die Nachricht (10) gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels (5) und des Empfänger-Initialisierungsvektors (3) entschlüsselt und dann der Zähler (7) des Empfänger-Initialisierungsvektors (3) inkrementiert wird.


     
    2. Verfahren nach Anspruch 1, wobei vom Empfänger (2) überprüft wird, ob die Entschlüsselung erfolgreich ist, und, wenn die Entschlüsselung nicht erfolgreich ist, der Wert des Zählers (7) des Empfänger-Initialisierungsvektors (3) um weitere 2M erhöht wird und die Nachricht (10) dann erneut gemäß dem Verschlüsselungsverfahren unter Verwendung des Schlüssels (5) und des Empfänger-Initialisierungsvektors (3) entschlüsselt wird.
     
    3. Verfahren nach Anspruch 1 oder 2, wobei von einem Initialisierer der Schlüssel (5) und der Initialisierungsvektor erzeugt und dem Sender (1) und dem Empfänger (2) vorgegeben werden.
     
    4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Verschlüsselungsverfahren einen Advanced Encryption Standard umsetzt.
     
    5. Verfahren nach einem der Ansprüche 1 bis 4, wobei vom Sender (1) zum einen ein Nachrichten-Authentifizierungscode (12) für die Nachricht (10) zur Gewährleistung von Authentizität und/oder Integrität der Nachricht (10) und zum anderen das Datenpaket (11) mit dem Nachrichten-Authentifizierungscode (12) erzeugt werden und vom Empfänger (2) dementsprechend Authentizität und/oder Integrität der Nachricht (10) durch Auswertung des Nachrichten-Authentifizierungscodes (12) überprüft werden bzw. wird.
     
    6. Verfahren nach einem der Ansprüche 1 bis 4, wobei vom Sender (1) zum einen ein Nachrichten-Authentifizierungscode (12) für die Nachricht (10) und den Sender-Teilzähler (9) zur Gewährleistung von Authentizität und/oder Integrität der Nachricht (10) und des Sender-Teilzählers (9) und zum anderen das Datenpaket (11) mit dem Nachrichten-Authentifizierungscode (12) erzeugt werden und vom Empfänger (2) dementsprechend Authentizität und/oder Integrität der Nachricht (10) und des Sender-Teilzählers (9) durch Auswertung des Nachrichten-Authentifizierungscodes (12) überprüft werden bzw. wird.
     
    7. Verfahren nach Anspruch 5 oder 6, wobei vom Sender (1) und vom Empfänger (2) zur Erzeugung und Überprüfung des Nachrichten-Authentifizierungscodes (12) ein CCM- oder ein GCM-Modus, vorzugsweise mit einem AES, umgesetzt werden.
     
    8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der Initialisierungsvektor mit einer Nonce (6) zur Verbesserung der Gewährleistung der Vertraulichkeit bzw. der Authentizität und Integrität erzeugt wird.
     
    9. Verfahren nach einem der Ansprüche 1 bis 8, wobei zur Übertragung von Datenpaketen (11) vom Sender (1) zum Empfänger (2) eine Funktechnik, vorzugsweise Bluetooth Low Energy, verwendet wird.
     




    Zeichnung







    Recherchenbericht






    Recherchenbericht