Bild 1: Die PIC24F-GB2-Reihe verbindet einen sehr sparsamen 16-Bit-Mikrocontroller mit einer Hardware-Krypto-Engine, um große Datenmengen effizient zu verschlüsseln.

Bild 1: Die PIC24F-GB2-Reihe verbindet einen sehr sparsamen 16-Bit-Mikrocontroller mit einer Hardware-Krypto-Engine, um große Datenmengen effizient zu verschlüsseln.Microchip

In einer zunehmend vernetzten Welt sind sichere Datenübertragung und -speicherung sowie eine lange Batterielebensdauer entscheidende Applikationsanforderungen. Um beides zu vereinen, implementiert Microchip in den Extreme-Low-Power-Mikrocontrollern (XLP) der PIC24F-GB2-Reihe (Bild 1) eine Hardware-Verschlüsselungs-Engine, die AES, DES und 3DES unterstützt. Der Random Number Generator (RNG) erzeugt Zufallszahlen, um daraus Krypto-Schlüssel abzuleiten, und der OTP-Speicher (One-Time-Programmable) enthält 512 Bit zur sicheren Speicherung des Schlüssels.

Ohne die Hardware-Verschlüsselungs-Engine wäre statt des 16-Bit-Mikrocontrollers eine 32-Bit-MCU mit größerem Stromverbrauch nötig. Die XLP-Spezifikationen für die GB2-Serie weisen nur 18 nA Stromaufnahme im Sleep-Modus und 180 μA/MHz im Betriebsmodus aus. Für die Datenanbindung bietet der GB2 eine integrierte USB-Funktion, auch eine drahtlose Verbindung ist mit Microchips Modulen für Wi-Fi, Zigbee oder Bluetooth Low Energy möglich.

Bild 2: Stromsparende Mikrocontroller mit Krypto-Erweiterung sind in vielen Branchen gefragt, von der Industrie über den PC-Bereich bis hin zur Medizinelektronik.

Bild 2: Stromsparende Mikrocontroller mit Krypto-Erweiterung sind in vielen Branchen gefragt, von der Industrie über den PC-Bereich bis hin zur Medizinelektronik.Microchip

Zielanwendungen

Geringer Stromverbrauch und Datensicherheit machen die GB2-Serie für zahlreiche Anwendungen (Bild 2) in den Bereichen Industrie, Computer und medizinische Fitnessprodukte tauglich. Dazu zählen zum Beispiel sichere Türschlösser und Zutrittskontrollsysteme, die über Tastatur, Magnetkarte oder per Funk betätigt werden. Außerdem Sicherheitskameras und POS-Terminals oder Sensorknoten im Internet der Dinge. Im PC-Bereich eignet sich der GB2 für stromsparende Peripheriegeräte wie Kopfhörer und drahtlose Drucker.

Eine sichere Datenspeicherung ist in vielen Anwendungen entscheidend, vor allem sie Daten auf einen USB-Stick protokollieren oder die Anwendungen verschiedene Konfigurationsdateien vom Stick laden. Sobald Daten außerhalb der MCU gespeichert sind, ist eine Verschlüsselung erforderlich, um Vertraulichkeit, Authentizität und Datenintegrität zu wahren.

Verschlüsselungs-Engine

Die PIC24-GB2-MCUs enthalten eine Hardware-Verschlüsselungs-Engine, die AES, DES und Triple DES unterstützt und sich für eine 128-, 196- oder 256-Bit-AES-Verschlüsselung/Entschlüsselung konfigurieren lässt. Die GB2-MCUs unterstützen auch alle Blockchiffre-Betriebsmodi (ECB, CBC, CFB, OFB sowie CTR für GCM-Support) und decken somit eine Vielzahl sicherer Datenübertragungs- und Storage-Anwendungen ab.

Auf einen Blick

Für eine sichere Datenübertragung und -speicherung enthalten die PIC24F-GB2-MCUs eine Hardware-Engine zur Verschlüsselung, Entschlüsselung und Authentifizierung. Der RNG und der sichere OTP-Schlüsselspeicher sorgen für eine zusätzliche Sicherheitsstufe bei der Schlüsselerzeugung und -speicherung. Die Low-Power-Spezifikationen der MCUs ermöglichen eine lange Batterielebensdauer in tragbaren Anwendungen.

Die Hardware-Verschlüsselungs-Engine führt Verschlüsselungs- und Entschlüsselungsberechnungen um ein Vielfaches schneller durch als Software. Die Hardware-Implementierung benötigt nur einige Hundert Zyklen pro Datenblock, um einen Befehl auszuführen, während Software einige Tausend Zyklen pro Block erfordert. Bei einer Hardware-Implementierung kann die CPU während der Datenverschlüsselung andere Aufgaben erledigen; bei einer Software-Implementierung ist die CPU blockiert, da sie mit der Verschlüsselung der Daten beschäftigt ist.

Bild 3: Wie lange das Verschlüsseln eines Datenblock dauert, hängt vom jeweiligen Krypto-Algorithmus und der verwendeten Schlüssellänge ab.

Bild 3: Wie lange das Verschlüsseln eines Datenblock dauert, hängt vom jeweiligen Krypto-Algorithmus und der verwendeten Schlüssellänge ab.Microchip

Flott chiffrieren

Die Verschlüsselungsdauer hängt von den Befehlen ab, die eine Anwendung ausführt, von der Zahl der Datenblöcke, die sie verschlüsseln muss, und von der Verschlüsselungsstärke. Bild 3 zeigt eine Abschätzung der Verschlüsselungsdauer für zahlreiche Modi der PIC24-GB2-MCUs.

Mit der Möglichkeit, die Verschlüsselung in weniger Zyklen abzuschließen, sinkt bei gleichem Ergebnis der Stromverbrauch über der Zeit. Die MCU lässt sich dann mit einer niedrigeren Frequenz betreiben, um Strom zu sparen, oder sie erledigt ihre Aufgaben in kürzerer Zeit und geht schneller in einen stromsparenden Sleep-Modus über. Die Anwendung lässt sich auch in eine kleinere, kostengünstigere MCU mit geringeren Verarbeitungs- und Speicheranforderungen implementieren, während immer noch genügend Leistungsfähigkeit und Code-Raum für den Rest der Anwendung zur Verfügung steht.

Rechenbeispiel

Als konkretes Beispiel dafür dient im Folgenden eine 128-Bit-AES-Verschlüsselung. Laut Bild 3 benötigt sie pro 128-Bit-Datenblock 219 Zyklen zur Berechnung und weitere 32 Zyklen zum Laden der Daten, in Summe rund 250 Zyklen pro Block. Bei voller Taktfrequenz von 32 MHz erreicht der Mikrocontroller 16.000.000 Zyklen pro Sekunde. Der maximale Durchsatz beträgt dann:

  • (16.000.000 Zyklen/s) / (250 Zyklen/Block) · (16 Byte/Block) = 1.024.000 Byte/s

Die Verschlüsselungs-Engine soll nun 1024 Byte verarbeiten. Wie lange sie dafür braucht, lässt sich sehr leicht ermitteln:

  • 1024 Byte / (1.024.000 Byte/s) = 0,001 s (1 ms)

Um die verbrauchte Energie zu berechnen, muss mit der verarbeiteten Datenmenge (1024 Byte) die Zahl der Zyklen herausgefunden werden, die für eine Verschlüsselung notwendig sind. Mit der Prozessor-Taktfrequenz lässt sich der Energieverbrauch berechnen – unter der Annahme, dass 7,6 mA als maximaler Stromverbrauch bei 32 MHz und 2 V Betriebsspannung vorliegen. Für 1 ms Verschlüsselungsdauer ergeben sich 0,0076 mAh Gesamtenergieverbrauch:

  • 7,6 mA · 0,001 s = 0,0076 mAh

Alles rund um den Schlüssel

Ein RNG (Random Number Generator) erzeugt die Zufallszahlen, um neue Schlüssel für die Datenverschlüsselung/-entschlüsselung und Authentifizierung zu erhalten. Ohne Zufallszahlen wären neue Schlüssel sehr leicht zu reproduzieren. Die GB2-MCUs unterstützen daher sowohl True-RNG als auch Pseudo-RNG. Echte zufällige Schlüssel (True-RNG) sind nicht replizierbar, was ideal ist für Sicherheitsanwendungen und Glücksspiele. Einige Simulations- und Modellierungsanwendungen bevorzugen hingegen die deterministischen Funktionen eines Pseudo-RNG.

Der OTP-Schlüsselspeicher schützt den Schlüssel vor Auslesen oder Überschreiben durch Software. Ohne sicheren Schlüsselspeicher lassen sich die Schlüssel einfacher stehlen; vor allem wenn die Anwendung einen Boot-Loader enthält. In den 512 Bits des OTP passen mehrere Schlüssel. Nutzt ein Kunde 256-Bit-AES-Verschlüsselung, passen zwei Schlüssel in den OTP; bei einer 128-Bit-AES lassen sich vier Schlüssel speichern. Die DES-Verschlüsselung hat nur eine Schlüssellänge von 64 Bit, in diesem Fall lassen sich acht Schlüssel speichern.

Eine andere Möglichkeit, eine nahezu unbegrenzte Zahl von Schlüsseln zu erhalten, ist das KEK-Konzept (Key Encryption Key). Die verschlüsselten Schlüssel werden im Flash oder RAM gespeichert, aber der Schlüssel, der zum Verschlüsseln dieser Flash- oder RAM-basierenden Schlüssel gedient hat, liegt nur im OTP. Schlüssel lassen sich dann auch auf externem Speicher ablegen und zur Entschlüsselung über KEK in das RAM laden. In diesem Fall entschlüsselt ein Modul diese Schlüssel in ein Schlüsselregister, das in Software nicht lesbar ist.

Anwendungsbeispiel 1: Elektronische Türschlösser

Bild 4: Blockdiagramm für ein Zutrittskontrollsystem mit elektronischem Türschloss.

Bild 4: Blockdiagramm für ein Zutrittskontrollsystem mit elektronischem Türschloss.Microchip

Das elektronische Türschloss in Bild 4 nutzt die Verschlüsselungs-Engine des GB2, um Nutzerdaten zu verschlüsseln, zum Beispiel die Namen von Mitarbeitern, Codes sowie Daten und Zeiten für An- und Abmeldung. Auch eine Authentifizierung beim Zutritt in sichere Gebäudebereiche ist je nach Mitarbeiterbefugnissen möglich. Mithilfe des sicheren Schlüsselspeichers sind diese Daten solange geschützt, bis jemand sie entschlüsselt (Zutritt erfolgt).

Über die integrierte CTMU (Charge Time Measurement Unit) der MCU lassen sich Berührungstasten oder eine Näherungserkennung in der Bedientastatur implementieren. Wird das System nicht bedient, kann es in einen stromsparenden Sleep-Modus übergehen und somit die Batterielebensdauer verlängern. Ein einfacher Interrupt meldet dem Motor, die Türverriegelung zu öffnen. Einige dieser Systeme sind über das Netz versorgt, andere batteriebetrieben. Das System kann sich über Jahre aus einer Batterie versorgen. Der GB2 bietet einen VBAT-Anschluss für eine Backup-Batterie. Ein RTCC (Real Time Clock Calendar) hält Zeit und Datum aufrecht, selbst wenn die Hauptbatterie erschöpft ist.

Die UART-Schnittstelle dient zum Anschluss eines Magnetkartenlesers oder Funkempfängers. Einige Hightech-Installationen ermöglichen den Zutritt zu bestimmten Bereichen über das Smartphone des Mitarbeiters. Diese Kommunikation kann dabei über Bluetooth LE oder Near Field Communication (NFC) erfolgen.

Anwendungsbeispiel 2: EEPROM-Systemdaten sichern

Viele universelle Anwendungen speichern wichtige Systemparameter im externen EEPROM auf dem Board. Obwohl diese Daten lokal gespeichert sind, müssen auch sie geschützt werden. Manchmal werden EEPROM-Chips aus Endgeräten entfernt und durch Bausteine mit anderen Parametern ersetzt, um die Geräteleistung zu ändern. Dies kann zum Beispiel in Fahrzeugen, Videospielen oder Flippern der Fall sein. In einem Fahrzeug kann der Austausch eines EEPROMs mit Parametern zur Begrenzung der Motorleistung für eine bessere Fahrleistung sorgen. Dies kann allerdings die Effizienz des Motors und somit den Kraftstoffverbrauch beeinflussen. Ein anderes Beispiel sind Glücksspiele, bei denen sich Schwierigkeitsgrad oder  Gewinnmöglichkeiten verändern lassen. Diese unbeabsichtigte Modifizierung kann verhindert werden, wenn die Daten im EEPROM verschlüsselt sind.

Die PIC24-GB2-MCUs werden durch das Ecosystem von Microchips Entwicklungsboard Explorer 16 unterstützt. Einzig erforderlich ist ein neues Prozessor-PIM (Plug-in-Modul). Tochterkarten sind für zusätzliche Hardwareverbindungen zu USB, Smartcards oder SIM-Karten erhältlich. Auch zertifizierte Wireless-Tochterkarten für Wi-Fi und Bluetooth LE stehen zur Verfügung.

Nicht an der Sicherheit sparen

Die PIC24F-GB2-MCUs zeigen, dass man auch in Anwendungen mit sehr begrenztem Energiebudget starke Kryptographie einsetzen kann – vorausgesetzt, die entsprechenden Algorithmen laufen in Hardware. Mit einfachen Rechnungen kann jeder Entwickler vorab abschätzen, welchen Zeit- und Energiebedarf er für die nötige Sicherheit einkalkulieren muss.