Aztec-Code
# Aztec-Code

Der Aztec-Code (engl. Aztec Code) wurde 1995 von Andy Longacre beim Unternehmen Welch Allyn in den USA entwickelt. Er ist ein frei verfügbarer 2D-Code mit der US-Patent Nr. 5591956. Er ist unter ISO/IEC 24778 normiert. Der Name Aztec-Code leitet sich von der Hochkultur der Azteken in Zentralmexiko und deren Stufenpyramiden ab: Wenn man eine Stufenpyramide aus der Vogelperspektive betrachtet, dann ähnelt sie stark den direkt in der Code-Mitte erkennbaren Quadraten, die um einen einzelnen Punkt zentriert sind.

## Struktur

Im Mittelpunkt des Codes befindet sich das Suchelement, das aus mehreren ineinander verschachtelten Quadraten besteht. Die Symbolelemente sind ebenfalls quadratisch. Es können derzeit kleine (ab 12 Zeichen) bis große Datenmengen (zurzeit über 3000 Zeichen) codiert werden. Der Inhalt kann auf mehrere Symbole aufgeteilt werden. Die Reed-Solomon-Fehlerkorrektur unterstützt anwenderspezifisch bis zu 32 Sicherheitsstufen. Die Rekonstruktion des Dateninhaltes ist auch dann noch möglich, wenn bis zu 25 % (bei kleinen Codes sogar bis zu 40 %) des Codes zerstört worden sind. Im Gegensatz zu allen anderen Codes sind keine Ruhezonen nötig. Der Code kann so an jeder beliebigen Stelle platziert werden.

* Der Kern eines großen Aztec Codes. Die hier rot oder blau schraffierten Bereiche müssen weiß dargestellt werden, der grüne Bereich enthält Informationen über die Größe der Struktur. Der eigentliche Datenbereich ist im grau schraffierten Randbereich und außerhalb des hier gezeigten Kerns.
* Lage der Referenzmarken bei großem Code
* Beispiel eines großen Codes. Man erkennt die zuvor angegebene Struktur als Kern.

## Anwendung

Der Internationale Eisenbahnverband (UIC) hat den Aztec-Code als Standard für die Fahrkarten definiert. Die im Aztec Code kodierten Daten bestehen aus dem Text „UT01“ gefolgt von der Nummer des Carriers, z. B. „0080“ für die Deutsche Bahn, und einer Key-ID, z. B. „000010“. Daraufhin folgt eine ASN.1 DSA-Signatur und zlib-komprimierter Payload, in dem nahezu alle auf dem Ticket aufgedruckten Daten kodiert werden.

Dies ist bei den Mitgliedern Deutsche Bahn, Nederlandse Spoorwegen, Österreichische Bundesbahnen, SNCF, Tschechische Bahnen, Trenitalia, Schweizerische Bundesbahnen und Rail Delivery Group umgesetzt. Die Wiener Linien, Graz Linien und der Verband Deutscher Verkehrsunternehmen nutzen auch dieses Codierungsverfahren für ihre Online-Tickets.

Auch bei vielen Fluglinien ist der Aztec-Code im Einsatz. Die IATA pflegt die Standardisierung für Bordkarten und definiert seit 2007 im BCBP (Bar Coded Boarding Passes) die elektronischen Varianten mit 2D-Barcodes. In Version 4 der Spezifikation (Stand 2009) erscheint dabei auch ein Aztec-Barcode als Wahloption für elektronische Bordpässe (neben dem ursprünglichen PDF417, Datamatrix und QR-Codes). Ab der Version 7 (Stand 2018) kann der Aztec-Code auch auf gedruckten Bordpässen alternativ eingesetzt werden. Über die IATA ist eine Austauschbarkeit der enthaltenen Daten für 200 Fluggesellschaften und 1000 Flugplätze zugesichert. Der Aztec-Barcode der IATA verwendet maximal 83 × 83 Punkte und wird von den europäischen Fluggesellschaften bevorzugt. Der QR-Code wird im asiatischen Raum bevorzugt, da der unterliegende ISO-Standard auch japanische und chinesische Schriftzeichen schon definiert hat. Die kodierte Nachricht ist in allen Formaten gleich organisiert – sie beginnt mit einem 'M' (medium – das 'S' für kurze Nachrichten ist entfallen), und der Anzahl der Teilflugstrecken, also '1' bei Direktflügen, gefolgt von einem 20 Zeichen langen Feld für den Passagiernamen, das mit Leerzeichen aufgefüllt wird, gefolgt von 'E' für ein elektronisches Ticket, und anschließend die Flugnummer mit weiteren Daten. Die Größe der Formate orientiert sich am PDF417 mit maximal 800 Zeichen, sodass für das entsprechende Aztec-Format im Text-Modus die maximalen Stufe so gewählt wurde, dass sich maximal 900 Zeichen kodieren lassen.

