Lektion
Die Theorie — Prüfziffern: Luhn, Barcodes, ISBN & die Fehler, die sie übersehen
Eine Prüfziffer ist eine zusätzlich gewählte Ziffer, damit die gesamte Nummer eine Regel erfüllt. In diesem Fall müssen die Ziffern, abhängig von ihrer Position multipliziert oder umgewandelt, in der Summe ein Vielfaches des Modulos ergeben, hier 10 oder 11. Ein Fehler, der diese Regel verletzt, wird erkannt. Ein Fehler, der sie einhält, bleibt unbemerkt. Daher kann eine Prüfziffer stets nur beweisen, dass eine Nummer falsch ist, aber niemals, dass sie richtig ist.
Was die einzelnen Symbole bedeuten
dᵢ- die Ziffer i Stellen von rechts; die Prüfziffer ist d0
wᵢ- das Gewicht der Position i: abwechselnd 1 und 3 für einen Barcode, i + 1 für ISBN-10
D(d)- Luhns Verdopplung: 2d, abzüglich 9, falls das Ergebnis größer als 9 ist, also 0 2 4 6 8 1 3 5 7 9
S- die Summe der Beiträge aller Ziffern
m- der Modulo, 10 für Luhn und den Barcode, 11 für ISBN-10; die Nummer ist gültig, wenn S ein Vielfaches von m ist
- Setzt voraus
- Immer nur ein Fehler gleichzeitig. Zwei Fehler in einer Nummer können sich gegenseitig aufheben, und die Zahlen auf dieser Seite sagen darüber nichts aus. Die Übersicht geht davon aus, dass jedes Ziffernpaar gleich wahrscheinlich ist. Beim echten Tippen ist das allerdings nicht der Fall. Das einzige blinde Ziffernpaar bei Luhn ist 09 und 90, und wie oft diese beiden direkt nebeneinander stehen, hängt stark von den Nummern ab.
- Versagt, wenn
- Eine Prüfziffer ist keine Sicherheitsmaßnahme. Wer das Verfahren kennt, kann problemlos eine gültige Nummer erzeugen. Deshalb ist eine Kartennummer, die die Luhn-Prüfung besteht, lediglich eine korrekt abgetippte Nummer. ISBN-13 verwendet das Barcode-Verfahren, weil eine ISBN-13 selbst eine Barcode-Nummer ist, die unter den von GS1 bereitgestellten Präfixen 978 und 979 läuft.
Aufgabe vollständig gelöst
-
Eine unleserliche Ziffer einer ISBN-10 wiederherstellen 4 Schritte
Eine ISBN-10 lautet 0-11-000?22-9, und die siebte Ziffer ist verwischt. Finde sie heraus und erkläre, warum es genau eine Antwort gibt. Klick auf ISBN-10, um das Ergebnis zu überprüfen.
-
Die Gewichte fallen von links von 10 auf 1 ab, also hat die verwischte siebte Ziffer das Gewicht 4. Addiere die restlichen neun Ziffern multipliziert mit ihren Gewichten.
-
Die gesamte Summe muss ein Vielfaches von 11 sein. Die 4 mal die fehlende Ziffer muss also den Unterschied ausgleichen.
-
Mod 11 darfst du dividieren, da 11 eine Primzahl ist: 4 × 3 = 12 ist genau 1 mehr als 11. Daher macht die Multiplikation mit 3 die Multiplikation mit 4 rückgängig.
-
Setze die 2 wieder ein, und die Summe auf der Seite ist 44, genau viermal die Elf.
Antwort
Die Ziffer ist eine 2, und die ISBN lautet 0-11-000222-9. Es ist die einzige Ziffer, die passt. Die Multiplikation mit 4 führt die elf Werte 0 bis 10 auf elf verschiedene Reste mod 11 ab, daher landet genau einer davon bei der 8. Dies ist dieselbe Eigenschaft, die es dem Verfahren ermöglicht, jede falsche Ziffer an dieser Position zu erkennen, nur von der anderen Seite betrachtet: Ein Gewicht, das jeden einzelnen Fehler sichtbar macht, sorgt auch dafür, dass sich jeder einzelne verwischte Wert rekonstruieren lässt. Ein Verfahren mod 10 mit einem Gewicht von 2 an dieser Stelle würde zwei mögliche Kandidaten oder gar keinen liefern. Es würde zudem jede falsche Ziffer an dieser Position übersehen, die fünf von der richtigen entfernt liegt.
-
Quellen (3)
- The Luhn check digit as the IMEI standard defines it, step by step, with the worked example the page's IMEI preset reproduces (26053179311383, sum 53, check digit 7): 3GPP TS 23.003, "Numbering, addressing and identification", Annex B (normative): IMEI Check Digit computation. Published as ETSI TS 123 003 V18.7.0 (2024-09).
- The ISBN-13 check digit, the 1-3 weighting that barcodes use, with the manual's own example 978-0-11-000222-4: International ISBN Agency, ISBN Users' Manual, International Edition, sixth edition. London, 2012. Appendix 1, "Check digit calculation".
- ISBN-10's mod 11, the barcode's blind pairs 05, 16, 27, 38, 49 and Luhn's 09 and 90, the frequencies of real mistakes from Verhoeff's study, Gumm's theorem that no even-modulus scheme catches every swap, and Verhoeff's dihedral scheme with its tables: J. A. Gallian, "Error detection methods." ACM Computing Surveys 28(3), 1996, pp. 504-517. DOI 10.1145/243439.243457