DataMatrix-Code auf den Briefmarken des Deutschen Post AG
Ein DataMatrix-Code wird auf den Briefmarken der Deutschen Post AG seit 2021 aufgebracht.
Er dient der Entwertung, soll für eine erhöhte Fälschungssicherheit sorgen und vermittelt über eine von der Deutschen Post angebotene App auch Informationen zum Sendungsverlauf und zur verwendeten Briefmarke.
Entwertung
Der Matrixcode löst in der Funktion der Entwertung den Poststempel ab. Nachdem eine Briefmarke zum Verkauf freigegeben ist, wird sein Code in eine Positivliste aufgenommen. Durchläuft eine Sendung mit der Marke ein Briefzentrum, wird der Code dort abgelesen und wieder gelöscht. Der Poststempel dient nur noch der Information.
Format und Platzierung
Das Symbol genannte Codebild hat das Format 16×48 Pixel (Höhe × Breite gemãß dem Standard ISO/IEC 16022:2006) und ist mit seinem Oberrand zur rechten Seite der Briefmarke orientiert. Sein nutzbarer Inhalt beträgt 14×44 = 616 Pixel, in denen 77 achtstellige Binärzahlen untergebracht sind. Dabei steht ein schwarzes Pixel für die Ziffer 1 und ein weißes Pixel für die Ziffer 0. Die optisch in zwei Hälften geteilte Datenfläche hängt inhaltlich zusammen.
Der Aufbau des Symbols
Die 77 Binärzahlen, die als Codewörter (engl. codeword) bezeichnet werden, sind in charakteristischer Weise nach dem Standard ISO/IEC 16022:2006 in sogenannten Symbolzeichen (engl. symbol character) angeordnet. Das Grundmuster eines Symbolzeichens ist ein 3×3-Pixel-Quadrat, dem die rechte obere Ecke fehlt. Wegen seiner Ähnlichkeit mit dem Aussehen des US-amerikanischen Bundesstaates wird es auch als Utah-förmig bezeichnet. Die darin enthaltene Binärzahl wird zeilenweise von links oben nach rechts unten gelesen. Bei zwei benachbarten Symbolzeichen fasst die linke untere Ecke des einen in die ausgesparte Ecke des anderen. In den Randbereichen liegende Symbolzeichen erhält man durch das Übereinander- oder Nebeneinanderlegen der Datenbereiche zweier Symbole. Das oben angelegte muss um zwei Pixel nach links und das links angelegte um vier Pixel nach oben verschoben werden. Standardmäßig befindet sich das zweite Symbolzeichen in der linken oberen Ecke des Symbols, das erste Symbolzeichen (mit Anlegen) diagonal links darunter und das dritte Symbolzeichen (mit Anlegen) diagonal rechts darüber. Die Diagonalen benachbarter Symbolzeichen verlaufen abwechselnd nach rechts oben und links unten. Anders gebildet werden muss das achte Symbolzeichen, das sich in zwei Bereichen in der linken unteren und rechten oberen Ecke befindet und dessen darin enthaltene Zahl nacheinander erst links von oben nach unten und dann rechts von oben links nach rechts unten in der üblichen Leserichtung zusammengesetzt ist.
Von den 77 Binärzahlen sind die ersten 49 als Informationsträger nutzbar, während die Zahlen in den Symbolzeichen 50 bis 77 der Fehlerkorrektur nach dem Verfahren von Reed und Solomon (s. u.) dienen. Zwei der ersten 49 Zahlen werden hier zum Umschalten vom bei der Kodierung standardmäßig verwendeten Ascii-Modus in den Basis-256-Modus (s. u.) verbraucht, sodass für die Informationsübermittlung 47 achtstellige Binärzahlen zur Verfügung stehen. Diese Anzahl hat auch der von der Deutschen Post erstellte Quellcode. Darin werden die Binärzahlen zur besseren Lesbarkeit als zweistellige Hexadezimalzahlen mit den 16 „Ziffern“ 0 bis 9 und A bis F (oder a bis f) dargestellt, was wegen 2⁴ = 16 möglich ist (z. B. entspricht der Binärzahl 10110110 die Hexadezimalzahl B6). Diese Zahlen können einzeln oder zu mehreren zusammengefasst eine Information tragen. Für solche Zahlengruppen wird bei der Deutschen Post der Begriff Feld verwendet.[1]
Der verwendeten Druckmaschine wird der Quellcode eingegeben, die in einer Recheneinheit daraus den Matrixcode berechnet und diesen dem schon fertigen Markenmotiv hinzudruckt.[2] Bei der Berechnung kommen im Wesentlichen zwei Varianten vor. Entweder erfolgt der Aufruf zum Umschalten in den Basis-256-Modus mit anschließender Längenangabe gleich am Anfang oder erst in einem der Symbolzeichen 7 bis 10. Die erste Variante wird in der Bundesdruckerei angewendet, während die zweite Variante bei von Bagel Security Print gedruckten Briefmarken anzutreffen ist. Bei den Briefmarken, die in den Druckereien Giesecke+Devrient sowie Koninklijke Joh. Enschedé in Haarlem hergestellt werden, kommt beides vor. Die beiden Varianten lassen sich bei normal betrachteter Briefmarke leicht durch einen Blick auf die rechte obere Ecke des Symbols unterscheiden, wenn das Symbol hochkant liegt. Bei der ersten Variante sieht man dort einen charakteristischen waagerechten schwarzen Balken (zweite Zeile, drittes und viertes Pixel von rechts) und bei der zweiten Variante einen senkrechten schwarzen Balken (vierte Spalte von rechts, zweites und drittes Pixel von oben).
Die Felder, deren Bedeutung und Lage im Symbol
Laufende Nummer des Feldes | Laufende Nummern der Quellcodewörter | Informationsgehalt, Art der Kodierung, Lage im Symbol |
---|---|---|
1 | 1 bis 3 | Die Kennung DEA. DE ist das Länderkürzel für Deutschland, A steht für die Deutsche Post AG. Die Buchstaben liegen im Quellcode als Ascii-Werte vor. Sie werden einzeln kodiert, in der ersten Variante im Basis-256-Modus, in der zweiten Variante im Ascii-Modus. In der ersten Variante sind dies im Symbol die Codewörter 3 bis 5, in der zweiten Variante die Codewörter 1 bis 3. |
2 | 4 | Die Kennung 5 für die Frankierungsart „Postwertzeichen“. Sie liegt im Quellcode als Ascii-Wert vor. In der ersten Variante wird sie im Basis-256-Modus, in der zweiten Variante im Ascii-Modus kodiert. In der ersten Variante ist dies im Symbol das Codewort 6, in der zweiten Variante das Codewort 4. |
3 | 5 bis 9 | Die laufende Nummer der Briefmarke innerhalb einer Ausgabe. Sie wird im Quellcode in eine zehnstellige Hexadezimalzahl umgewandelt, deren Stellen paarweise kodiert werden, in der ersten Variante im Basis-256-Modus, in der zweiten Variante im Ascii-Modus oder dort gemischt nacheinander im Ascii- und im Basis-256-Modus. Bei den bei Bagel gedruckten Briefmarken wird umgeschaltet, wenn ein Stellenpaar des Quellcodes in der führenden Stelle mindestens die hexadezimale Ziffer 8 hat. Es wird spätestens in den Symbolzeichen 10 und 11 umgeschaltet, da das folgende Quellcodewort in der führenden Stelle die hexadezimale Ziffer A hat. Bei den bei Giesecke+Devrient und Enschedé in dieser Variante gedruckten Marken wird (soweit bekannt) im Symbolzeichen 7 umgeschaltet. Daneben gibt es bei den bei Enschedé hergestellten Marken dort bei einigen Nummern die Untervariante, in denen zwei Quellcodewörter in einem einzigen Codewort kodiert sind, im 9. Symbolzeichen umgeschaltet wird, alles weitere um ein Symbolzeichen nach vorne rückt und im 49-sten Zeichen das Codewort für das Auffüllen (padding) erscheint. In der ersten Variante sind dies im Symbol die Codewörter 7 bis 11, in der zweiten Variante fünf Codewörter von den Codewörtern 5 bis 11, je nachdem, wo in den Basis-256-Modus umgeschaltet wird. Die Hexadezimalzahl bildet, bei Weglassung der führenden Stelle 0, in der bei der Post-App angezeigten Identifikationsnummer der Briefmarke die Stellen 11 bis 19. (Die dortige Stelle 20 ist eine Prüfziffer, die im Code nicht enthalten ist.) |
4 | 10 bis 14 | Die sog. Nummernkreiskennung der Briefmarkenausgabe. Sie liegt im Quellcode als zehnstellige Hexadezimalzahl vor, deren Stellen paarweise im Basis-256-Modus kodiert werden. Im Symbol sind dies die Codewörter 12 bis 16. Diese Hexadezimalzahl bildet in der bei der Post-App angezeigten Identifikationsnummer der Briefmarke die Stellen 1 bis 10. |
5 | 15 | Nummer des abgebildeten Motivs. Sie wird jahrgangsweise vergeben und liegt im Quellcode als Zahl vor, die im Basis-256-Modus kodiert wird und im Symbol das Codewort 17 bildet. |
6 | 16 | Kennung der Druckerei. Sie liegt im Quellcode als Zahl vor, die im Basis-256-Modus kodiert wird und im Symbol das Codewort 18 bildet. 1 = Bundesdruckerei 2 = Bagel 3 = Giesecke+Devrient 4 = Enschedé |
7 | 17 | Kennung der Art und Form der Briefmarke. Sie liegt im Quellcode als Zahl vor, die im Basis-256-Modus kodiert wird und im Symbol das Codewort 19 bildet. 1 = Dauermarke (DM), nassklebend (nk), aus 10er-Bogen 2 = DM, nk, aus Rolle 3 = Sondermarke (SM), nk, aus 10er-Bogen 4 = SM, selbstklebend (sk), aus Markenset 6 = SM, sk, aus Rolle (Markenbox) 7 = Zuschlagsmarke (ZM), nk, aus 10er-Bogen 8 = ZM, sk, aus Markenset 9 = ZM, sk, aus Rolle (Markenbox) 10 = DM, sk, aus Markenset 11 = DM, sk, aus Rolle (Markenbox) 25 = ZM, nk, aus Zusammendruck (auch Markenset) |
8 | 18 | Im Quellcode liegt hier bisher stets die (dezimale) Zahl 37 vor. Deren Bedeutung ist unbekannt.[3] Sie wird im Basis-256-Modus kodiert und bildet im Symbol das Codewort 20. |
9 | 19 bis 34 | Ein sogenannter Cryptostring. Dieser ist innerhalb einer Briefmarkenausgabe gleich.[4] Er dient offenbar der Erzeugung eines sicheren Hashwertes, der anschließend folgt. Der Cryptostring wird im Basis-256-Modus kodiert und bildet im Symbol die Codewörter 21 bis 36. |
10 | 35 bis 38 | Ein sogenannter Hashwert (digitale Signatur). Da bei den bekannten Verfahren (z. B. SHA) der berechnete Hashwert eine größere Länge hat, wird hier offenbar nur ein Ausschnitt angezeigt. Der Hashwert wird im Basis-256-Modus kodiert und bildet im Symbol die Codewörter 37 bis 40. |
11 | 39 bis 40 | Das Ausgabedatum der Briefmarke im Format TTTJJ (Tag des Jahres und die beiden letzten Stellen der Jahreszahl). Dieses ist im Quellcode als fünfstellige Dezimalzahl in eine vierstellige Hexadezimalzahl umgerechnet, deren Stellen paarweise im Basis-256-Modus kodiert werden. Im Symbol sind dies die Codewörter 41 und 42. |
12 | 41 bis 42 | Der Nennwert der Briefmarke in Eurocent. Dieser ist im Quellcode in eine vierstellige Hexadezimalzahl umgerechnet, deren Stellen paarweise im Basis-256-Modus kodiert werden. Im Symbol sind dies die Codewörter 43 und 44. |
13 | 43 bis 47 | Kein eigentliches Feld ohne Information. Es wird jeweils die Zahl 0 im Basis-256-Modus kodiert. Im Symbol sind dies die Codewörter 45 bis 49. |
- | - | Die Zeichen 50 bis 77 des Symbols beinhalten die Codewörter der Fehlerkorrektur nach dem Reed-Solomon-Verfahren. |
Erläuterungen zu den Verfahren
Basis-256-Modus
Neben dem beim DataMatrix-Code standardmäßig verwendeten Ascii-Modus, bei dem zur Vermeidung der Null der Matrixcodewert bei (dezimalen) Werten bis 128 gegenüber dem Quellcodewert um 1 höher ist, wird hier weitgehend der für die Kodierung von Zahlen und Nummern besonders geeignete Basis-256-Modus verwendet. Das Umschalten aus dem Ascii-Modus geschieht durch die Binärzahl 11100111 (dezimal 231). Im folgenden Symbolzeichen ist dann noch eine Längenangabe erforderlich, die schon im Basis-256-Modus kodiert ist. Die Kodierung der Null bedeutet hier, dass alles weitere in diesem Modus kodiert ist.
Im Basis-256-Modus wird zur Vermeidung von eventuell gehäuft auftretenden Nullen jedem Symbolzeichen ein sogenannter R-Wert – eine sog. Pseudozufallszahl (engl. pseudo random number) – zugeordnet. Dieser wird (dezimal) wie folgt berechnet: Man multipliziert die Nummer des Symbolzeichens (NrZ) mit 149, teilt das Ergebnis durch 255, zieht davon den ganzzahligen Anteil ab, multipliziert den Rest wiederum mit 255 und addiert dazu noch die Zahl 1 (). Der Matrixcodewert ist die Summe vom Quellcodewert mit dem R-Wert, von der, falls sie größer oder gleich 256 ist, noch die Zahl 256 abgezogen werden muss. Umgekehrt ist der Quellcodewert die Differenz von Matrixcodewert und R-Wert, zu der, falls sie negativ ist, noch die Zahl 256 hinzugezählt werden muss.
Nummer des Zeichens |
R-Wert | Nummer des Zeichens |
R-Wert | Nummer des Zeichens |
R-Wert | Nummer des Zeichens |
R-Wert | |||
---|---|---|---|---|---|---|---|---|---|---|
2 | 44 | 14 | 47 | 26 | 50 | 38 | 53 | |||
3 | 193 | 15 | 196 | 27 | 199 | 39 | 202 | |||
4 | 87 | 16 | 90 | 28 | 93 | 40 | 96 | |||
5 | 236 | 17 | 239 | 29 | 242 | 41 | 245 | |||
6 | 130 | 18 | 133 | 30 | 136 | 42 | 139 | |||
7 | 24 | 19 | 27 | 31 | 30 | 43 | 33 | |||
8 | 173 | 20 | 176 | 32 | 179 | 44 | 182 | |||
9 | 67 | 21 | 70 | 33 | 73 | 45 | 76 | |||
10 | 216 | 22 | 219 | 34 | 222 | 46 | 225 | |||
11 | 110 | 23 | 113 | 35 | 116 | 47 | 119 | |||
12 | 4 | 24 | 7 | 36 | 10 | 48 | 13 | |||
13 | 153 | 25 | 156 | 37 | 159 | 49 | 162 |
Reed-Solomon-Verfahren
Bei der hier verwendeten BCH-Methode des Reed-Solomon-Verfahrens werden die Codewörter C1 bis C49 der Symbolzeichen 1 bis 49 als Koeffizienten eines Polynoms vom Grad 48 im endlichen Zahlenkörper aufgefasst, der als Faktorring zu dem (irreduziblen) Polynom gebildet wird. Das obige Polynom wird noch mit multipliziert, so dass man das Polynom erhält. Dieses wird geteilt durch das sogenannte Generatorpolynom . Der Rest dieser Division ist ein Polynom vom Grad höchstens 27, dessen Koeffizienten (eventuell = 0) in absteigender Reihenfolge die Codewörter für die Fehlerkorrektur in den Symbolzeichen 50 bis 77 bilden.
Zu beachten ist die besondere Arithmetik in dem verwendeten Zahlenkörper. Addition und Subtraktion sind ein und dasselbe, dabei werden die einzelnen Stellen der binär dargestellten Zahlen mittels der Operation XOR verglichen (1 + 1 = 0, 1 + 0 = 1, 0 + 1 = 1, 0 + 0 = 0). Bei der Multiplikation werden die binär dargestellten Zahlen in entsprechende Polynome umgewandelt (z. B. wird 01001101 zu ). Das Produkt der Polynome wird durch das obige Polynom geteilt, der Rest dieser Division, wieder als Binärzahl dargestellt, ist dann das Ergebnis. Eine effektive Multiplikation (und Division) erfolgt mit Hilfe des in einer Wertetabelle zusammengestellten diskreten Logarithmus und dessen Umkehrfunktion.
Zum Auffinden und Verbessern von etwaigen Fehlstellen im Code, z. B. wegen Unleserlichkeit, ist im Standard ISO/IEC 16022:2006 als Möglichkeit der Peterson-Gorenstein-Zierler-Algorithmus beschrieben.
Weblinks
- Briefmarke mit Matrixcode auf deutschepost.de
- Jürgen Olschimke: Der Datamatrixcode auf Briefmarken auf jolschimke.de
- Thema: Datamatrixcode auf alle Briefmarken ab 2021 - Digitalisierungsoffensive auf philaseiten.de
- Informationen zum DataMatrix-Code (französisch/englisch) auf grandzebu.net
- Grundlagen DataMatrix-Code, Kapitel 3 (PDF; 310 kB), aus einem Buch von FuWa® Identifikation & Elektrotechnik auf cdn.website-start.de
- Der Standard ISO/IEC 16022:2006 (in russischer Sprache) auf docs.cntd.ru, Inhaltsverzeichnis und Anfang (PDF-Datei) auf englisch auf sis.se
Einzelnachweise und Anmerkungen
- Z. B. in der Spezifikation Matrixcode (MXC) zur Pressepost vom 22. Januar 2021 (PDF-Datei)
- So wird die Mausbriefmarke gemacht | Die Maus | WDR, insbesondere von 7:29 min bis 8:31 min, auf youtube.com
- Vielleicht die Kennung des bei der Erzeugung des folgenden Cryptostrings verwendeten Schlüssels.
- Es ist allerdings eine Ausnahme bei der Ausgabe Westend Frankfurt von 2021 bekannt, bei der Marken aus dem nassklebenden 10er-Bogen einen anderen Cryptostring haben als Marken aus dem selbstklebenden Markenset.