# JAB-Code

Der JAB-Code (Just Another Bar Code) ist eine Weiterentwicklung der zweidimensionalen Barcodes bzw. QR-Codes, die insbesondere farbige Pixel einsetzt, um eine höhere Datendichte zu erreichen.

## Hintergrund

Beim JAB-Code handelt es sich um einen 2D-Code, der eine höhere Datendichte als die schwarz-weißen Codes aufweist. Entwickelt wurde dieser Barcode durch das Fraunhofer-Institut für Sichere Informationstechnologie (SIT) in Darmstadt als Auftragsentwicklung des Bundesamtes für Sicherheit in der Informationstechnik (BSI). Durch den Einsatz der Codes soll die Fälschungssicherheit von Dokumenten erhöht werden, die keine Elektronik beinhalten, wie Geburtsurkunden und weitere amtliche Zeugnisse. Die zusätzliche Sicherheit entsteht dadurch, dass die digitale Signatur des Inhalts zusätzlich als JAB-Code auf das Dokument gedruckt wird. Der Code kann mit handelsüblichen Druckern auf die Dokumente aufgebracht werden und mit jedem Smartphone geprüft werden. Zusätzlich ist er im Gegensatz zu „normalen“ QR-Codes nicht auf rechteckige bzw. quadratische Formen beschränkt. Auf einer Webseite können die Codes generiert und ausgelesen werden.
Ein nächstes Ziel ist es, das JAB-Verfahren auch mit Graustufen zu realisieren, um es, zusammen mit monochromen Kameras, in der Industrie einzusetzen.

## Standardisierung

Der JAB-Code wurde durch die International Organization for Standardization (ISO) standardisiert. Der resultierende Standard ISO/IEC 23634 wurde erstmalig im April 2022 veröffentlicht. Zuvor wurde der Code über das BSI-Dokument BSI TR-03137 Optically Verifiable Cryptographic Protection of non-electronic Documents (Digital Seal) Part 2 definiert.
Eine offizielle Open-Source-Implementierung des Verfahrens steht, lizenziert unter der LGPL v2.1, bereit.

### Kompatibilität

Der ISO-Standard ist nicht rückwärtskompatibel mit der ursprünglich vom BSI entwickelten Version. D. h. mit alten Versionen erzeugte Bilder können mit dem gegenwärtig verfügbaren Online-Tool nicht mehr decodiert werden. Dies betrifft sämtliche hier gezeigten, am 28. November 2018 erzeugten Bilddateien.
* Der Text „Wikipedia“, codiert am 28. November 2018
* Derselbe Text „Wikipedia“, codiert am 3. Februar 2021; man erkennt mit bloßem Auge einen Unterschied, was jedoch kein hinreichendes Kriterium für die nicht mehr gegebene Decodierbarkeit der alten Datei darstellt (dies kann nur durch Hochladen im Online-Tool überprüft werden)

## Technik

Grundsätzlich ist es ein normaler 2D-Barcode, allerdings sind die einzelnen Felder nicht schwarz und weiß. Derzeit ist bei der Verwendung von 8 Farben mit herkömmlichen Smartphones eine dreifach höhere Informationsdichte erreichbar. Bei dem Einsatz höherwertiger Kameras kann dies noch deutlich gesteigert werden.
Es gibt 2 Typen von JAB-Codes, Primary- und Secondary-Symbole genannt. Ein JAB-Code besteht immer aus einem Primary- und beliebig vielen (auch 0) Secondary-Symbolen. In einem Primary-Symbol ist in jeder Ecke ein Muster vorhanden, das eine eindeutige Zuordnung und die Orientierung definiert. Diese Muster unterscheiden die Primary- von den Secondary-Symbolen, bei den Secondary-Symbolen gibt es diese Muster nicht. Secondary-Symbole können horizontal und vertikal an beliebigen Stellen an ein Primarysymbol auch ohne Abstand angehängt werden. Die Stärke der Fehlerkorrektur kann durch den Ersteller gewählt werden.