Für das Verschlüsselungssystem wurde der Blockschlüsselalgorithmus AES (Advanced Encryption Standard) gewählt. Als Nachfolger zum allgemein sehr verbreiteten Verschlüsselungsstandard DES (Data Encryption Standard) wurde der – nach den Namen seiner Erfinder Joan Deamen und Vincent Rijmen auch als „Rijndael“ bezeichnete – Verschlüsselungsalgorithmus aus einer Reihe von Mitbewerbern im Rahmen eines international ausgeschriebenen Wettbewerbs zum Advanced Encryption Standard (AES) ausgewählt und ist im Jahr 2001 als FIPS-Standard durch das amerikanische National Institut of Standards (NIST) bestätigt worden [3].
AES-Rijndael [4] ist ein symmetrischer Blockverschlüsselungsalgorithmus. Symmetrische Verschlüsselungsverfahren zeichnen sich durch eine hohe Leistungsfähigkeit aus, wobei der benutzte Schlüssel bei Sender und Empfänger bekannt sein muss. Daraus ergibt sich, dass eine erfolgreiche Entschlüsselung von Eingangsdaten den Sender gleichzeitig authentifiziert, da der benutzte Schlüssel eindeutig einer Quelle zugeordnet werden kann.
Blockverschlüsselungsalgorithmen sind dadurch gekennzeichnet, dass in der Regel der Klartext zunächst in kleine Informationseinheiten blockweise aufgeteilt wird (Bild 2). Die von AES-Rijndael unterstützten Blocklängen betragen 128, 196 und 256 Zeichen. Unvollständige Datenblöcke am Ende der Information werden vom Algorithmus sicherheitsunkritisch aufgefüllt. Zu jeder Sitzung gehört ein Schlüssel mit einer festgelegten Länge. Im AES zulässige Schlüssellängen betragen 128, 196 und 256 bit. Prinzipiell steigt mit der Schlüssellänge die Anzahl der möglichen Schlüssel und damit die Absicherung der mit diesem Schlüssel vor Angriffen geschützten Informationen. AES benötigt einige wenige statische Datenstrukturen wie z.B. die S-Boxen, die entweder im Programmlauf einmalig neu berechnet werden oder fest im nichtflüchtigen Speicher hinterlegt sind. Dabei handelt es sich um komplementäre Datenstrukturen, die aus Galois-Feldern (eine andere Bezeichnung für endliche Körper) abgeleitet sind und AES in die Lage versetzen, weitgehend gleiche Algorithmen für die Ver- und Entschlüsselung einzusetzen. Da der uPSD über genügend Speicher verfügt, können diese Datenstrukturen fest im Speicher abgelegt werden [5, 6, 7].
Das Ziel der modernen Verschlüsselungsverfahren ist es, durch mehrfache Anwendung einfacher mathematischer Operationen Konfusion und Diffusion der Klartextdaten zu erreichen. Im AES-Rijndael werden dazu die folgenden Operationen eingesetzt: bitweise XOR-Verknüpfungen mit dem Rundenschlüssel, Vertauschen, Ersetzen und Verschieben von Bytefolgen des Datenblocks. Die mathematischen Prozeduren sind bewusst einfach gehalten, sodass sie auch auf Mikrocontrollern ausgeführt werden können. Dies hat zur Folge, dass der AES-Rijndael-Krypto-Kernalgorithmus wenige Kilobyte C-Quellcode umfasst und sich deshalb problemlos auf einem 8-bit-Mikrocontroller implementieren lässt [5].
Die Klartextinformationen werden bei der Verschlüsselung unkenntlich gemacht und alle in der Kryptoanalyse verwertbaren statistischen Strukturinformationen auf ein Minimum reduziert. Die statistische Unabhängigkeit der Geheimtextdaten von Schlüssel- bzw. Klartextinformationen soll idealerweise soweit gehen, dass die Änderung eines einzelnen Bits, in einem Klartextblock oder auch im Schlüssel, im Mittel zu einer Änderung der Hälfte aller Bits im verschlüsselten Datenblock führt. Diese Vorgabe erfüllt der AES-Rijndael mit steigender Rundenzahl immer besser [8].
Da Verschlüsselungsverfahren in der Regel offen gelegt sind, ist die einzige Möglichkeit, Geheimtextinformation vor Angriffen durch Ausprobieren aller möglichen Schlüssel zu schützen, eine möglichst große Anzahl zulässiger Schlüssel. Ein sicherer Kryptoalgorithmus muss bei einem solchen Angriff die Rechenkapazität aller zugänglichen Supercomputer und Spezialrechenanlagen für einen ausreichend langen Zeitraum auch dann überfordern, wenn eine zukünftige Leistungssteigerung der Computer angenommen wird [9]. Aus diesem Grund werden neue, symmetrische Blockverschlüsselungsalgorithmen mit Schlüssellängen von mindestens 128 bit entworfen. Der im uPSD-basierten Verschlüsselungssystem eingesetzte AES-Rijndael kann wahlweise mit den Schlüssellängen 128, 192 und 256 bit genutzt werden. Die Anzahl der zulässigen Schlüssel liegt damit zwischen etwa 1038 und 1077. Moderene Angriffsverfahren auf Kryptoalgorithmen benutzen eine Vielzahl von Methoden, um den verschlüsselten Daten strukturelle oder statistische Informationen zu entnehmen. Werden diese Verfahren mit physikalischen Angriffsmethoden gekoppelt, ergeben sich sehr effiziente Methoden zum Brechen eines Schlüssels [10, 11].
Üblicherweise wird eine große Menge an Klartextinformationen mit demselben Schlüssel verschlüsselt, bevor der Schlüssel gewechselt wird. Das führt dazu, dass ein gebrochener Schlüssel einem Angreifer den Zugriff auf alle bis zu diesem Zeitpunkt aufgezeichneten Geheimtextinformationen eröffnet. Um diese Gefahr zu reduzieren, muss der benutzte Schlüssel in regelmäßigen Zeiträumen gewechselt werden. Idealerweise wird für jede Verschlüsselung ein eigener Schlüssel benutzt, der die gleiche Länge wie die Geheimtext-information aufweisen sollte. Eine derartige Forderung lässt sich im Idealfall durch einmalige Sitzungsschlüssel oder auch durch den Einsatz von Einmalschlüsselverfahren erreichen.