Schwächen des ec-PIN-Verfahrens— ENTWURF —Bodo Möller
<3moeller@informatik.uni-hamburg.de>
18. Februar 1997

Zusammenfassung[3] beschreibt ein Verfahren zur Erzeugung und Überprüfung von persönlichen Identifikationsnummern (PINs)
Das in [3] festgelegte Verfahren zur Berechnung, Ver- bei mit Magnetstreifen ausgestatteten ec-Karten für die
schlüsselung und Prüfung von PINs im institutsübergrei- Benutzung an Geldausgabeautomaten. Dabei werden überfenden Geldausgabeautomaten-System hat Entwurfsfehler, den Aufbau der 3. Spur des Magnetstreifens (siehe [2]) bedurch die das Erraten von PINs so erleichtert wird, daß pro stimmte Voraussetzungen gemacht.
ca. 1049, 608 bzw. 428 Karten (je nachdem, ob 1, 2 oder 3
In Abschnitt 2 wird das Verfahren aus [3] vorgestellt;„Offsets“ vorliegen) ein Rateerfolg beim ersten Versuch zu die Darstellung ist dabei nicht aus der Vorlage übernomerwarten ist. Bei einem hinsichtlich der Sicherheit optima- men, sondern wurde in Hinblick auf die darauffolgenden
len Verfahren sollte nur ein Erfolg pro 9000 Karten mög- Untersuchungen gewählt. Abschnitt 3 zeigt, wie mit gerinlich sein. Darüberhinaus ist die Benutzung des Verschlüs- gem Aufwand die Trefferwahrscheinlichkeit beim „Erraselungsalgorithmus DES mit 56-Bit-Schlüsseln heute un- ten“ von PINs gegenüber dem „wilden Raten“ deutlich verzureichend.
bessert werden kann. (Hierfür wird angenommen, daß derInhalt des Magnetstreifens der ec-Karte bekannt ist. Geeignete Lesegeräte sind problemlos verfügbar.) Abschnitt
1 Einführung
4 geht auf auf die Möglichkeit ein, durch erschöpfende Suche einen DES-Schlüssel zu finden, mit dem die PIN jeder
Am 1. Mai 1979 schlossen der Bundesverbank der Deutbeliebigen ([2] und [3] entsprechenden) ec-Karte sofort sischen Volksbanken und Raiffeisenbanken (BVR), dercher bestimmt werden kann.
Bundesverband deutscher Banken (BdB), der deutsche
Sparkassen- und Giroverband (DSGV) und die deutsche
Bundespost die „Vereinbarung für das institutsübergreifen- 2 Beschreibung des Verfahrens
de Geldausgabeautomaten-System“ ab; im März 1981 wurden in Berlin die ersten zwölf Geldausgabeautomaten in Wir vereinbaren folgende Schreibweisen:
Betrieb genommen ([1]).
Diese Untersuchung des PIN-Verfahrens für deutsche
X := f0; 1; : : : ; 9; A; : : : ; Fg
eurocheque-Karten (und andere, damit kompatible Bankkarten; im folgenden sprechen wir immer von ec-Karten) sei das Alphabet der Hexadezimalziffern. Es seibasiert auf [3] und [2], zwei Anhängen zu den „Richtlini
Z10 := Z 10 Z;
en für das institutsübergreifende GeldausgabeautomatenSystem“. Die vorliegenden Fassungen von [3] und [2] sindaufgefaßt als additive Gruppe. Für die Elemente von Z 10
nicht datiert1 , und da die Titelseite nicht vorliegt, ist nicht
schreiben wir einfach die Ziffern 0; 1; : : : ; 9. In beiden Fälvöllig klar, ob es sich um gültige Fassungen der beiden Anlen bedeute a1 a2 : : : an die Verkettung der Elemente a1 bis
hänge oder um Entwürfe handelt 2.
an 2 X bzw. 2 Z10 zu einem entsprechend langen Tupel.
1 Es gibt jedoch Hinweise: [2] enthält Hinweise auf die Norm
(Mehrdeutigkeiten sind dadurch nicht zu befürchten, denn
DIN ISO 4909; die Internationale Norm ISO 4909 wurde erstmals 1980 die aus Z induzierte Multiplikation wird nicht benötigt.)
als DIN-Norm übernommen ([4]). Außerdem verweist [2] auf die Normen
ISO 3554 und ISO 2894. Beide sind heute ungültig; die letzten Fassun- Die Menge Z10 fassen wir gelegentlich auch als Teilmengegen, ISO 3554:1976 und ISO 2894:1980, wurden 1985 zurückgezogen von X auf, wobei die additive Struktur natürlich verloren([5]).
geht. (Das entspricht der BCD-Codierung, wenn man die
2 Die Kurzbeschreibung in [6] legt jedoch nahe, daß das Verfahren inhexadezimalen Ziffern den entsprechenden 4-Bit-Worten
dem hier zugrundegelegten Text [3] zutreffend dargestellt ist:
gleichstellt.)„Prüfung der PIN-Nummer (PIN-verify)
Das PIN-Verfahren benutzt den in [7] definierten Ver [...]
schlüsselungsalgorithmus DES. DES-Schlüssel sind 64

 Encrypt der PIN-Ausgangsdaten mit dem Instituts-

Falls mit dem EC-Pool-Key der PIN errechnet wird, ist die
Differenz zum empfangenen PIN der ,Offset‘. Der Offset ist
in den PIN-Ausgangsdaten enthalten. Mit dem ec-Pool-Key
werden nur institutsfremde ec-PIN’s geprüft.“ [6]Key (oder Pool-Key)

 Extrahieren und dezimalisieren des PIN
 Vergleichen des errechneten und des empfangenen
PIN (,clear PIN‘)

1

ec-PIN-Verfahren

2

Bits (8 Bytes) lang. Hiervon gehen nur 56 Bits tatsäch- durchlich in die kryptographischen Operationen ein, denn in jedec(x1 x2 x3 x4 ) := dec(x1 )dec(x2 )dec(x3 )dec(x4 );dem Byte ist ein Parity-Bit vorgesehen. (Deshalb spricht
man bei DES meist auch von 56-Bit-Schlüsseln.) Folgende dec0 (x1 x2 x3 x4 ) := dec0 (x1 )dec(x2 )dec(x3 )dec(x4 ):Schlüssel sind in [3] vorgesehen:
Ist n eine natürliche Zahl, so sei Drei „Poolschlüssel“, die wir mit K1 ; K2 ; K3 ben := fx 2 N j 1  x  ng:zeichnen. Diese Poolschlüssel sind institutsübergreifend festgelegt.

 Für jedes kartenausgebende Institut ein „Instituts-

schlüssel“, hier mit K 0 bezeichnet. Er soll nur beim
jeweiligen Institut bekannt sein.

Auf dem Magnetstreifen der Karte befinden sich u. a.
folgende Angaben: Die Bankleitzahl (8 Stellen), die Kontonummer (10 Stellen) sowie die einstellige „Kartenfolgenummer“. Letztere, eine Ziffer von 0 bis 9, dient „zur
Unterscheidung zwischen einzelnen Karten (gleichzeitig
oder nacheinander ausgestellt) mit derselben Kontonummer“; „beim Ausstellen einer Zweit- oder Ersatzkarte ist
die nächsthöhere Ziffer zu verwenden“ [2]. Als Eingabeblock für die DES-Verschlüsselung werden die Stellen 4
bis 8 der BLZ, die Kontonummer und die Kartenfolgenummer aneinandergehängt. Diesen 16stelligen (d. h. 64 Bits
langen) Wert bezeichnen wir mit D.
Die DES-Verschlüsselung mit dem Schlüssel K schreiben wir als Abbildung
DESK : X16 ! X16 :Im PIN-Verfahren wird auf DES-Ergebnisse folgende Projektion angewendet:( 1 2 3x x x

: X16 ! X4
14 15 16 ) := 3 4 5 6

:::x

x

x

x x x xDie Funktion zur „Dezimalisierung“ von hexadezimalen
Ziffern sei gegeben durch

! Z10
:= 0
:= 1

dec: Xdec(0)
dec(1)dec(9)
dec(A)

:= 9
:= 0
:= 5

Der Zahlenwert der hexadezimalen Ziffern wird von dec
also modulo 10 reduziert. Als Variante hiervon brauchen
wir ferner
dec0 : X! Z10falls dec( ) = 0
1
dec0 ( ) :=dec( ) sonstnn

Wir definieren
dec; dec0 : X4 ! Z104

PIN := (dec0    DESK 0 )(D)(1)

Für jeden Poolschlüssel (p 2 3) wird ein Wert berechnet, den [3] als „Ergebnis des DES-Algorithmus mit Poolschlüssel“ bezeichnet:
EDPp := (dec    DESKp )(D)

(2)

Hieraus wird ein „Offset“ mit vier Dezimalstellen berechnet:
offsetp := PIN ; EDPp
(3)
(Die Substraktion erfolgt hierbei komponentenweise inZ10, anders gesagt stellenweise modulo 10.) Diese Berechnung des Offsets kann man als Verschlüsselung in einer
Variante des Cipher Feedback Mode von DES (mit D als
Initialisierungswert) ansehen.

2.2 Prüfen der PIN
Beim Einsatz einer ec-Karte an einem Geldausgabeautomaten sind für die Prüfung der an der Tastatur eingegebenen PIN zwei Fälle zu unterscheiden. Falls es sich um
einen Automaten des jeweiligen kartenausgebenden Institutes handelt, kann mit dem Institutsschlüssel K 0 und den
Kartendaten D gemäß (1) die PIN berechnet und dann
mit der Eingabe verglichen werden. Andernfalls muß derGeldausgabeautomat den jeweils gültigen Poolschlüssel
Kp verwenden, um gemäß (2) den Wert EDP p auszurechnen. Dann ist wegen (3)und dieser Wert kann mit der vom Kunden eingegebenen
PIN verglichen werden.3
Die Geldausgabeautomaten enthalten immer nur einender Poolschlüssel::::nZu einer Karte berechnet das kartenausgebende Institut die
PIN mit Hilfe des Institutsschlüssels K 0 aus den Kartendaten D wie folgt:

PIN = EDPp + offsetp ;:::dec(F)

2.1 Erzeugung der PIN und der Offsets„In den institutsübergreifenden Geldausgabeautomaten werden maximal 2 Schlüssel vorrätig
gehalten und wahlweise eingesetzt: Der Institutsschlüssel [ . . . ] und der [jeweils gültige] Poolschlüssel. [ . . . ] Bei Start des Systems wird vereinbart, welcher der drei Poolschlüssel eingesetzt wird.“ [3].
3 Diese Überprüfungsmethode über Poolschlüssel und Offsets wird
auch für die Online-Prüfung von PINs bei EFT/PoS-Terminals („Electronic Funds Transfer am Point of Sale“) verwendet; hierbei übernehmenzentrale Autorisierungsrechner das Prüfen der PIN ([6]).

ec-PIN-Verfahren

Auf dem Magnetstreifen der ec-Karte sind aber drei Felder
für Offsets vorgesehen ([2]). Es können also gleichzeitig
offset1 , offset2 und offset3 zur Verfügung gestellt werden:„Die [ . . . ] offsets sind in den Feldern 13.2, 27.2
und 27.3 des Magnetstreifens niedergelegt. Der
Aufruf des jeweils gültigen Feldes erfolgt übereine Vorlaufinformation, die beim Versand desgültigen Poolschlüssels von der schlüsselverwaltenden Stelle mitgegeben wird. Nicht mehr gültige offsets sind vom institusübergreifenden Geldausgabeautomaten bei der nächsten Benutzung
der Karte auf ,0‘ zu setzen“ [3]3te man auch machen, wenn als Verschlüsselungsalgorithmus anstelle von DES z. B. Triple-DES in einer seiner Spielarten, z. B. Encrypt-Decrypt-Encrypt mit einem
112-Bit-Schlüssel, eingesetzt würde.) Damit sind auchdie hexadezimal vierstelligen Werte (  DESK )(D) für0
K = K ; K1 ; K2 ; K3 stochastisch unabhängig gleichverteilt. Mit den Bezeichnungen1 2 3 4 für

X X X Xund Yp;1 Yp;2 Yp;3 Yp;4für(  DES )( )(  DES )( )
K0

D

Kp

D

(p = 1; 2; 3) können wir also im Rahmen dieser Betrachtung von stochastisch unabhängigen, gleichverteilten Zufallsvariablen X1 ; : : : ; X4 ; Y1;1 ; : : : ; Y1;4 ; Y2;1 ; : : : ; Y2;4 ;Eine klare Aussage darüber, wieviele Poolschlüssel tat- Y3;1 ; : : : ; Y3;4 mit X als Wertebereich ausgehen.
sächlich gleichzeitig „in Betrieb“ sein sollen – wieviele
Entsprechend den Formeln (1) bis (3) erhalten wir
Offsets man also tatsächlich auf Karten vorfindet – ent- hieraus folgende Zufallsvariablen:
hält [3] nicht. Denkbar ist, daß ein „Rotieren“ der PoolFür PIN:
schlüssel ermöglicht werden soll: Von Zeit zu Zeit könnte der „jeweils gültige“ Poolschlüssel für ungültig erklärt
M1 M2 M3 M4werden und reihum der nächste Poolschlüssel Gültigkeit:= dec0 (X1 X2 X3 X4 )erlangen. Für den freigewordenen Platz könnte ein völlig
= dec0 (X1 )dec(X2 )dec(X3 )dec(X4 )neuer Schlüssel erzeugt werden. Neu ausgegebene Karten
könnten Offsets für den gerade aktuellen PoolschlüsselvorFür EDPp :rat erhalten. Die Gültigkeitsdauer der ec-Karten wäre daNp;1 Np;2 Np;3 Np;4
mit so abzustimmen, daß bis Ablauf der Karte höchstens:= dec(Yp;1 Yp;2 Yp;3 Yp;4 )zwei solche Schlüsselwechsel stattfinden (wonach noch ein„gültiger Offset“ auf der Karte stünde). Ein Erneuern der= dec(Yp;1 )dec(Yp;2 )dec(Yp;3 )dec(Yp;4 )Poolschlüssel wird in [3] allerdings nicht erwähnt.
Für offsetp = PIN ; EDPp :Laut [2] heißt das Feld 27.2 bei Karten mit internatioOp;1 Op;2 Op;3 O;p4
naler Freizügigkeit „ec-PVV“ („PIN-verificiation-value“);nur für Karten ohne internationale Freizügigkeit gilt die:= M1 M2 M3 M4 ; Np;1 Np;2 Np;3 Np;4
Bezeichnung „Offset 2“. Der ec-PVV hat wie die Offsets
vier Stellen. Er wird in [3] nicht erwähnt (dort wird, wie Wenn man diese vierstelligen Objekte in einzelne Ziffern
oben zitiert, das Feld 27.2 als Position eines der Offsets zerlegt, ergibt sich:
angegeben). Ob dieser Wert auf gleiche Art und Weise zu0 (X1 ) für i = 1
standekommt wie der Offset 2, ist daher nicht ganz klar.
Mi= dec
dec(Xi ) für i > 1
Gäbe es Unterschiede, so wäre jedoch das PIN-PrüfungsNp;i= dec(Yp;i )Verfahren aus [3] bei international freizügigen Karten nicht
anwendbar, wenn gerade der zu Offset 2 gehörige PoolOp;i= M
i ; Np;i0 (X1 ) ; dec(Yp;1 ) für i = 1
schlüssel der „gültige Poolschlüssel“ ist. (Falls dieser Pool= dec
schlüssel nie zum „gültigen Poolschlüssel“ bestimmt würdec(Xi ) ; dec(Yp;i ) für i > 1
de, hätte Offset 2 keine Funktion.)4
Hierbei ist p = 1; 2; 3 und i = 1; : : : ; 4.

3 Analyse

An dieser Stelle zeichnet sich schon deutlich ab, wie die
Kenntnis der Offsets einer ec-Karte beim Raten der PINBei unbekannten (und paarweise verschiedenen) Schlüs- Ziffern helfen kann. Von vornherein ist wegen der Deziseln K 0 , K1 , K2 und K3 können wir die Werte DESK 0 (D) malisierung klar, daß die Werte 0; : : : ; 5 bessere Aussichund DESKp (D) (p = 1; 2; 3) als gleichverteilte Zufalls- ten haben als 6; : : : ; 9 (bei der ersten Stelle, also i = 1, istzahlen aus X16 ansehen5 . (Die gleiche Annahme könn- 0 unmöglich und dafür 1 am wahrscheinlichsten). Angenommen, wir wissen außerdem, daß der Offset 1 an vierter
4 Es läßt sich vermuten, daß die Bezeichnung „ec-PVV“ für 27.2
Stelle die Ziffer 8 hat (d. h. O1;4 = 8). Dann werden wir
im Gegensatz zu den Feldern der Offsets international – im Rahmender eurocheque-Organisation – vereinbart ist. Geldausgabeautomaten im uns beim Raten der vierten PIN-Ziffer M4 eher für 3 entAusland könnten diesen Wert zusammen mit der eingegebenen PIN an ei- scheiden als für 4: Denn es ist N1;4 = M4 ; O1;4 (in Z10),
ne Verifizierungsstelle in Deutschland schicken, die den ec-PVV als Off- und M = 3 würde somit N
41;4 = 3 ; 8 = 5 implizieren,set 2 ansehen und den dazugehörigen Poolschlüssel einsetzen könnte.
5 Eines der Entwurfsziele für Verschlüsselungsalgorithmen der Form M4 = 4 aber N1;4 = 4 ; 8 = 6. Letzteres ist weniger
von DES ist, daß die Verschlüsselungsoperation DESK für einen Kryp- wahrscheinlich, da N1;4 = dec(Y1;4 ) mit in X gleichvertoanalytiker bei einem ihm unbekannten Schlüssel K wie eine zufällige teiltem Y1;4 ist.
Permutation auf der Menge aller möglichen 64-Bit-Blöcke erscheinen soll(obwohl es tatsächlich nur 256 verschiedene Abbildungen DESK gegen- Schlüssel K herauszufinden, können natürlich alle Funktionswerte vonüber insgesamt 264 ! Permutationen gibt). Wenn es gelingt, den benutzten DESK ohne weiteres bestimmt werden; dazu siehe Abschnitt 4.

ec-PIN-Verfahren

4

Diese Überlegung läßt sich darauf ausweiten, daß sämtliche Ziffern von s Offsets bekannt sind (wobei s = 1; 2; 3,
je nach Anzahl der auf der Karte vorhandenen, gültigen
Offsets6 ). Ohne Beschränkung der Allgemeinheit seien die
Offsets 1; : : : ; s bekannt. Man kennt also Ziffern op;i 2
Z10 (p 2 s, i 2 4) und möchte zum möglichst erfolgreichen Raten der PIN die Ziffern n1 ; : : : ; n4 so wählen, daßdie bedingte Wahrscheinlichkeit

P( 1 2 3 4 = 1 2 3 4 j
8 2 2 4:
= )N N N Npn n n n

s; i

Op;i

op;i

maximal wird. Da die vier Stellen voneinander unabhängig
sind, ist diese Wahrscheinlichkeit ist auch als Produkt

Y

24

P( = j 8 2 :
Ni

ni

p

s

=

Op;i

op;i

)

Auszüge aus Beispielen für die Ausgabe dieses Programmes finden sich in den Tabellen 1 und 2.
Die von dem Programm für die verschiedenen Ausgangslagen (1, 2 oder 3 Offsets; 1. PIN-Ziffer oder 2.
bis 4. PIN-Ziffer) ermittelten Erfolgswahrscheinlichkeiten
sind Tabelle 3 zusammengestellt (die Zahlen in der Tabelle sind gerundet). Die Wahrscheinlichkeit, eine ganze PIN(mit einem Versuch) zu erraten, ist ebenfalls angegeben.
Wir nennen sie E (s); sie ist das Produkt der Einzelwahrscheinlichkeiten für die vier PIN-Stellen:

( )=

Y

E s

i

24

()

Ei s

In der letzten Tabellenzeile steht der Kehrwert dieser Wahrscheinlichkeit; er gibt an, auf wieviele zufällig ausgewählte
darstellbar .
Damit können wir die ni einzeln angehen. Wir haben Karten man einen Erfolg, die ganze PIN mit einem Versuch
also als Teilziel, für festes i durch geeignete Wahl einer richtig zu erraten, zu erwarten hat. (Bei PIN-Verfahren mit
optimaler Sicherheit sollte dieser Wert gleich der Anzahl
Ziffer ni die Wahrscheinlichkeit
der möglichen PINs sein. Wenn PINs wie bei dem hier unP (Ni = ni j 8p 2 s: Op;i = op;i )(4) tersuchten Verfahren aus vier Dezimalziffern bestehen solzu maximieren. Ihr Wert in Abhängigkeit von den Offset- len, deren erste nicht 0 sein darf, wäre das also 9000.)
Ziffern o1;i ; : : : ; os;i und von der gewählten PIN-Ziffer n i
Außerdem relevant ist die Wahrscheinlichkeit für das Erraläßt sich durch ein einfaches Computerprogramm bestimten einer PIN, wenn zwei oder drei Versuche erlaubt wermen, das alle Werte der Zufallsvariablen Xi ; Y1;i ; : : : ; Ys;iden8 . Um diese zu bestimmen, kann man jedoch nicht ein1+sdurchspielt (hierbei gibt es 16
Möglichkeiten, die nachfach E (s) – die Wahrscheinlichkeit bei einem erlaubten
unseren Annahmen jeweils die gleiche Wahrscheinlichkeit
Versuch – mit zwei oder drei multiplizieren: Denn nicht inhaben).
Das in Perl geschriebene Programm offsets, das die- jedem Fall ergibt die auf dem Magnetstreifen vorgefundene
se Berechnung durchführt, findet sich in Anhang A. Neben Offsetkombination zwei bzw. drei verschiedene PINs, dieden Wahrscheinlichkeiten (4) wird auch ermittelt, welche die gleiche Wahrscheinlichkeit haben. 2E (s) und 3E (s)Erfolgsaussicht man hat, mit dieser Methode für eine zu- sind lediglich obere Abschätzungen der gesuchten Wahrfällig ausgewählte Karte mit s Offsets die i-te PIN-Stelle scheinlichkeiten.
mit einem Versuch richtig zu raten. Bei dieser WahrscheinDie genaue Bestimmung der Erfolgswahrscheinlichkeit
lichkeit handelt es sich um den Wert
gestaltet sich in diesen Fällen recht umständlich. Statt dessen begnügen wir uns hier damit, untere AbschätzungenEi (s)
der Trefferwahrscheinlichkeiten für zwei und drei erlaubte:=
P (8p: Op;i = op;i )Rateversuchen anzugeben.
(o1;i ;:::;os;i )2( 10)s
Hat man zwei Versuche, so kann man beim ersten Ver max P (Ni = ni j 8p: Op;i = op;i )ni 2 10such für n1 n2 n3 n4 wieder anhand der Offsets die „beste
PIN“ (oder einer der „besten PINs“, wenn es mehrere da=max
P (Ni = ni ^ 8p: Op;i = op;i ):von gibt) wählen und für den zweiten Versuch eine PIN
n 2(o1;i ;:::;os;i )2( 10)s i 10
aussuchen, die sich nur an einer Stelle hiervon unterschei6 „Nicht mehr gültige offsets“ sind auf der Karte vom Automaten „bei det. Man kann noch zusätzlich festlegen, daß der Unterder nächsten Benutzung auf ,0‘ zu setzen“ [3]. Diesen Fall kann man an- schied in der zweiten Stelle liegen soll; die beim zweihand des Magnetstreifeninhaltes zunächst nicht davon unterscheiden, daß ten Versuch geratene PIN hat also die Form n n0 n n .
1 2 3 4
ein gültiger Offset mit dem Wert 0000 auftritt. Durch Auslesen der Ma(Das
ist
nicht
in
jedem
Fall
eine
optimaleWahl,hilft abergnetstreifen mehrerer ec-Karten – die, sofern die Vermutung in Abschnitt
2.2 über ein „Rotieren“ des Vorrates an Poolschlüsseln zutrifft, etwa zur beim Abschätzen der erreichbaren Trefferwahrscheinlichgleichen Zeit ausgestellt worden sein sollten – wird sich aber problemlos keit.) Wählt man die Ziffer n0 6= n2 möglichst gut, so er2
feststellen lassen, welche der drei Offset-Felder gültige Werte enthalten
gibt sich dafür, daß n1 n2 n3 n4 oder n1 n02 n3 n4 die richtige
i

7

X

Z

X

Z

Z

Z

und welche nicht.
7 Es ist nämlich

P (8 := j8 :
= )
P
(
8
:
=
^
8
:
= )
=
P
(8 :
= )
Q
P( = ^ 8 := )=Q
P (8 :
= )
i

Ni

ni

i

Ni

p; i

ni

p; i

Ni

Op;i

op;i

p; i

Op;i

Op;i

op;i

op;i

ni

p

Op;i

p

Op;i

op;i

op;i

i

=

Y
i

i

P( = j 8 :
Ni

ni

p

Op;i

=

)

op;i :

8 ec-Karten sollen nämlich hinsichtlich der Benutzung an Automaten

ungültig gemacht werden, wenn dreimal eine falsche PIN eingegeben
wurde (der Fehlversuchszähler wird jedesmal auf null gesetzt, wenn nachein oder zwei Fehlversuchen die korrekte PIN eingegeben wird). Nachdem dritten Fehlversuch wird die Karte vom Geldausgabeautomaten einbehalten, sofern es sich um einen Automaten bei der Bank des Kunden
handelt. Bei Automaten anderer Banken gilt dies nicht, damit der Kunde
jedenfalls noch seine Scheckkarte zur Verfügung hat. In der Regel können
also bei einer ec-Karte drei verschiedene PINs am Automaten ausprobiert
werden; nur zwei, wenn die „Entwertung“ oder das Einbehalten der Kartevermieden werden soll.

ec-PIN-Verfahren

5

Tabelle 1: Wahrscheinlichkeiten für die erste PIN-Ziffer bei Kenntnis eines Offsets (Auszug)
Offset 0 (Wahrscheinlichkeit: 2.80000)=======================================PIN-Ziffer 2:
PIN-Ziffer 4:
PIN-Ziffer 6:
PIN-Ziffer 8:

4 /
4 /
1 /
1 /

28 = 0.14286
28 = 0.14286
28 = 0.03571
28 = 0.03571

PIN-Ziffer 1:
PIN-Ziffer 3:
PIN-Ziffer 5:
PIN-Ziffer 7:
PIN-Ziffer 9:

Beste PIN-Ziffer (Wahrscheinlichkeit 0.28571):

8 /
4 /
4 /
1 /
1 /

28 = 0.28571
28 = 0.14286
28 = 0.14286
28 = 0.03571
28 = 0.03571

8 /
4 /
4 /
1 /
1 /

29 = 0.27586
29 = 0.13793
29 = 0.13793
29 = 0.03448
29 = 0.03448

1

Offset 1 (Wahrscheinlichkeit: 2.90000)=======================================PIN-Ziffer 2:
PIN-Ziffer 4:
PIN-Ziffer 6:
PIN-Ziffer 8:

4 /
4 /
2 /
1 /

29 = 0.13793
29 = 0.13793
29 = 0.06897
29 = 0.03448

PIN-Ziffer 1:
PIN-Ziffer 3:
PIN-Ziffer 5:
PIN-Ziffer 7:
PIN-Ziffer 9:

Beste PIN-Ziffer (Wahrscheinlichkeit 0.27586):

1...
Insgesamt würde man bei 64 von 256 Fällen richtig raten(Erfolgswahrscheinlichkeit: 0.2500000000).

...

Tabelle 2: Wahrscheinlichkeiten für die i-te PIN-Ziffer (i > 1) bei Kenntnis dreier Offsets (Auszug)

Offsetkombination 6 7 4 (Wahrscheinlichkeit: 0.05800)======================================================PIN-Ziffer 0:
PIN-Ziffer 2:
PIN-Ziffer 4:
PIN-Ziffer 6:
PIN-Ziffer 8:

8 /
4 /
4 /
4 /
8 /

58 = 0.13793
58 = 0.06897
58 = 0.06897
58 = 0.06897
58 = 0.13793

PIN-Ziffer 1:
PIN-Ziffer 3:
PIN-Ziffer 5:
PIN-Ziffer 7:
PIN-Ziffer 9:

Beste PIN-Ziffern (Wahrscheinlichkeit jeweils 0.13793):

8 /
2 /
4 /
8 /
8 /

58 = 0.13793
58 = 0.03448
58 = 0.06897
58 = 0.13793
58 = 0.13793

0 1 7 8 9Offsetkombination 6 7 5 (Wahrscheinlichkeit: 0.06400)======================================================PIN-Ziffer 0:
PIN-Ziffer 2:
PIN-Ziffer 4:
PIN-Ziffer 6:
PIN-Ziffer 8:

16 /
4 /
2 /
4 /
8 /

64 = 0.25000
64 = 0.06250
64 = 0.03125
64 = 0.06250
64 = 0.12500

PIN-Ziffer 1:
PIN-Ziffer 3:
PIN-Ziffer 5:
PIN-Ziffer 7:
PIN-Ziffer 9:

Beste PIN-Ziffer (Wahrscheinlichkeit 0.25000):

8 /
2 /
4 /
8 /
8 /

0

...
Insgesamt würde man bei 13312 von 65536 Fällen richtig raten(Erfolgswahrscheinlichkeit: 0.2031250000).

64 = 0.12500
64 = 0.03125
64 = 0.06250
64 = 0.12500
64 = 0.12500

ec-PIN-Verfahrens6Tabelle 3: Erfolgsaussichten beim Raten der PIN (ein Rateversuch pro Karte)
Anzahl Offsets
12
Erfolgswahrscheinlichkeit bei der 1. Ziffer
0,250 000
0,265 625
Erfolgswahrscheinlichkeit bei der 2. – 4. Ziffer
0,156 250
0,183 594
Erfolgswahrscheinlichkeit für die ganze PIN
0,000 953 674 0,001 643 776
Kartenanzahl pro Erfolg
1048,6
608,4

1 (s)

E

() 1
()
1 ()
Ei s ; i >
E s

=E s

3
0,278 564
0,203 125
0,002 334 618
428,3

3.1 Verbesserungsmöglichkeiten

PIN ist, die Wahrscheinlichkeit

0

1 (s) (E2 (s) + E2 (s)) E3 (s)E4 (s)0 = 1 + EE2 ((ss)) E (s);2

E

Die Methode der „Offsets“, wie sie in [3] festgelegt ist,
führt zu einer unnötigen Verschlechterung der Sicherheit.
Die Kenntnis der Offsets würde beim Erraten der PIN keinen Vorteil bringen, wenn anstelle von (3), also

hierbei sei Ei0 (s) die Wahrscheinlichkeit dafür, daß die gemäß der jeweiligen Offsetkombination für die i-te Stelle„zweitbeste“ PIN-Ziffer die eigentlich richtige ist. (Falls esmehrere „beste“ PIN-Ziffern gibt, nimmt man als „zweitbeste“ natürlich auch eine davon.) 9
Entsprechend kann man bei drei erlaubten Versuchen
noch zusätzlich einen Tip n1 n2 n03 n4 angeben. Die Erfolgswahrscheinlichkeit, mit dieser Methode als n1 n2 n3 n3 ,00
n1 n2 n3 n3 oder n1 n2 n3 n3 die richtige PIN zu erhalten, beträgt dannoffsetp = PIN ; (dec    DESKp )(D);
etwa die Formel
offset0p := PIN  (  DESKp )(D)(5)

benutzt würde;  steht hier für bitweises Exklusiv-Oder(XOR). offset0p läge so in X4 (und i. a. nicht in Z104 ). Der
Berechnungsaufwand für (5) und die zugehörige von institutsfremden Automaten zur PIN-Prüfung zu verwendende
Rechenvorschrift
PIN = (  DESKp )(D)  offset0p

1 (s)E2 (s)E3 (s)E4 (s)+E1 (s)E20 (s)E3 (s)E4 (s)+E1 (s)E2 (s)E30 (s)E4 (s)
00 
1 + EE2 ((ss)) + EE3 ((ss)) E (s):2
3Ewäre sogar geringer als bei dem ec-PIN-Verfahren. Die
Entscheidung für (3) ist also als ein grober Entwurfsfehler anzusehen.
Außerdem sollten zur Verbesserung der Sicherheit die=
PINs möglichst gleichverteilt aus dem erlaubten Bereich
gewählt werden. Anders als bei obigem Kritikpunkt wäre
Die Werte Ei0 (s) werden durch das Programm diese Verbesserung allerdings nur mit einem deutlich eroffsets bestimmt. Die Quotienten
höhten Realisierungsaufwand möglich, was diesen Mangel
0erklären könnte. Um beinahe gleichverteilte PINs von 1000
Ei (s)
q (s) :=(
i > 1)
bis 9999 zu erhalten, könnte man zum Beispiel die AusgaEi (s)be des Verschlüsselungsalgorithmus als eine 64 Bit langesind für s = 1; 2; 3 Offsets in Tabelle 4 angegeben. Hierbei natürliche Zahl auffassen und ihren modulo 9000 reduzierist q (1) = 1 (das heißt, bei Kenntnis eines Offsets gibt es ten Wert zu 1000 addieren:
immer mehrere „beste“ PIN-Ziffern für die Stellen zwei bis
PIN0 := 1000 + (DESK 0 (D) mod 9000)
vier); alle anderen Werte in der Tabelle sind gerundet. Außerdem angegeben sind die Abschätzungen für die WahrSchließlich sollte der Verschlüsselungsalgorithmus DES
scheinlichkeiten, mit zwei und drei Versuchen die PIN zu durch ein Verfahren mit einem größeren Schlüsselbereich
erraten, und deren Kehrwerte. Die mit optimaler Auswahl
ersetzt werden (dazu mehr im folgenden Abschnitt 4); auch
der geratenen PINs erreichbare Erfolgswahrscheinlichkeit bei den obigen Verbesserungsvorschlägen ist die Bezeichbei r Versuchen bezeichnen wir als E (r; s). Es ist also
nung DES lediglich als Platzhalter für einen sichereren Algorithmus zu betrachten.
(1 + q(s))E (s)  E (2; s)  2E (s)und(1 + 2 ( )) ( )  (3 )  3 ( )(Bei = 1 gilt wegen ( ) = 1 sogar Gleichheit.)
q s

E s

s

E

;s

4 Schlüsselsuche

E s :

q s

0 ( ) die Zahl mit

9 Anders gesagt ist E si( ) + 0( )

Ei s

=

Ei s

X

P (8 :=)

Z  max P ( 2 fgZf(op;i )p2s 2( 10)sp

ni ;n0
i

Op;i

10

op;i

Ni

0 g j 8p: O

ni ; nip;i=)op;i :

Wer einen der im ec-PIN-Verfahren benutzten Institutsschlüssel K 0 oder Poolschlüssel Kp kennt, kann damit
aus den Daten vom Magnetstreifen einer ec-Karte sofort
deren PIN bestimmen, sofern der betreffende Schlüssel
beim Ausstellen dieser Karte für die PIN- bzw. OffsetBerechnung benutzt wurde. Hierbei ist die gleiche Berechnung durchzuführen, die auch ein Geldausgabeautomat beim Prüfen der PIN vornimmt (siehe Abschnitt 2.2).

ec-PIN-VerfahrensTabelle 4: Abschätzungen für die Erfolgsaussichten bei zwei/drei Versuchen
Anzahl Offsets
12
3
1
0,872 340
0,826 923()

q s

Erfolgsaussichten beim Raten der PIN (zwei Rateversuche pro Karte)
0,003 287 552 0,004 669 237

2 ()
E s

E

7



(2 )

Erfolgswahrscheinlichkeit;s0,001 907 349(1 + ( )) ( )q s

12E (s)

E s

Kartenanzahl pro Erfolg

524,3

1
(1+q(s))E (s)

;



E

(2 3)
;





0,003 077 708
304,1

0,004 265 167
214,1

1 (2 2)=E;

1 (2 3)
=E

;





325,0

234,5

Erfolgsaussichten beim Raten der PIN (drei Rateversuche pro Karte)
0,004 931 328 0,007 003 855

3 ()
E s



(3 )

Erfolgswahrscheinlichkeit;s0,002 861 023(1 + 2 ( )) ( )13E (s)(2 2)



1
E (2;s)

E

E

q s

E s

1
E (3;s)

E

(3 2)
;

349,5

1
(1+2q(s))E (s)

(3 3)
;





0,004 511 640
202,7

0,006 195 717
142,7



Kartenanzahl pro Erfolg



E



1 (3 2)

1 (3 3)





221,7

161,5

=E

;

=E

;

Wir wollen den Aufwand dafür abschätzen, durch erschöpfende Suche einen der DES-Schlüssel zu ermitteln.
Als Voraussetzung nehmen wir an, daß man die Datensätze
von fünf ec-Karten zur Verfügung hat (d. h., die jeweiligen
Werte für D und die Offsets sind bekannt) und deren korrekte PINs kennt10 . Diese Karten sollten vom gleichen Institut ausgegeben worden sein, damit nicht nur Poolschlüssel gesucht werden können, sondern auch der Institutsschlüssel K 0 . Falls die Vermutung in Abschnitt 2.2 richtig ist, daß von Zeit zu Zeit ein alter, ungültig gewordener
Poolschlüssel durch einen neu erzeugten Schlüssel ersetzt
wird, sollten außerdem alle Karten entsprechend neu sein,
damit die Schlüsselsuche möglichst viele Ziele hat.
Für jede Karte und jedes p gilt wegen (3):Parallelisierung möglich, indem vielen identischen Einheiten verschiedene Teile des Schlüsselraumes zugeteilt werden.) Der Aufwand für die Schlüsselsuche wird nur wenig
höher, wenn man nicht nur für ein bestimmtes p den Poolschlüssel Kp sucht, sondern nach allen Poolschlüsseln (zudenen Offsets auf den Karten stehen) gleichzeitig sucht:
Denn (dec    DESK )(D) muß nur einmal berechnet
werden, und das Vergleichen mit mehreren verschiedenen
Werten EDPp kostet nur einen geringen Aufwand. Entsprechend kann man auch den Institutsschlüssel K 0 mitsuchen:
Hierfür muß man zunächst ggf. eine 0 an der ersten Stelle durch eine 1 ersetzen, um (dec0    DESK )(D) zu
erhalten; dieses Ergebnis vergleicht man mit der PIN der
betreffenden Karte.
Im folgenden soll der ungefähre Aufwand für das DurchEDPp = PIN ; offsetp(6) suchen des kompletten Schlüsselraumes (es gibt bei DES
256 verschiedene Schlüssel) bestimmt werden; Tmax sei
Die Werte EDPp lassen sich also ohne weiteres berechnen. der Erwartungswert für die Zeit, die für dieses vollständiAußerdem weiß man, daß es einen Schlüssel Kp gibt, so ge Absuchen gebraucht wird. Der Erwartungswert für die
daß (bei allen Karten)
Zeit, nach der ein bestimmter Schlüssel gefunden wird, istdann 12 Tmax . Bei der Suche nach n Schlüsseln (dem InEDPp = (dec    DESKp )(D)
stitutsschlüssel und ein bis drei Poolschlüsseln) beträgt derErwartungswert für die Zeit bis zum Auffinden irgendeinesgilt. Die Grundidee der Schlüsselsuche ist es, in beliebiger dieser Schlüssel 1 Tmax , bis zum Auffinden sämtlichern+1
Reihenfolge alle möglichen Schlüssel K auszuprobieren,
1 Tmax .11
Schlüssel 1 ; n+1
bis der korrekte gefunden ist. (Dabei ist eine beliebig starke

10 Solche Ausgangsdatensätze lassen sich zum Beispiel auch dadurch
11 Die Zeit bis zum Auffinden des i-ten der n Schlüssels kann man
beschaffen, daß man eine ec-Karte „verliert“: Die Ersatzkarte mit einer (mit unbedeutendem Fehler) als Tmax Ti ausdrücken, wobei Ti eineneuen Kartenfolgenummer – also einem anderen D – und einer neuen auf dem Intervall [0; 1] gleichverteilte Zufallsvariable ist. Bei stochaPIN ist genauso geeignet wie eine ec-Karte für ein anderes Konto.
stisch unabhängigen T1 ; : : : ; Tn gilt dann für den Erwartungswert vonec-PIN-Verfahren

8

Bei der Suche ist zu beachten, daß die Gültigkeit der
Gleichungbzw.

EDPp = (dec    DESK )(D)(7)

PIN = (dec0    DESK )(D)(8)

für ein bestimmtes K noch nicht heißen muß, daß dieses
auch tatsächlich der gesuchte Schlüssel Kp bzw. K 0
ist. (Wenn die Gleichung nicht gilt, ist allerdings klar, daß0
K 6= Kp bzw. K 6= K ist.) Deshalb wurde verlangt, daßfünf verschiedene Datensätze (D; PIN; (offsetp )) – und damit nach (6) auch (D; (EDPp )) – vorliegen.
Wir wählen folgende Strategie: Eine der Karten wirdals „erste“ Karte ausgewählt. Für jeden möglichen DESSchlüssel K wird für diese „erste“ Karte überprüft, ob (7)für ein oder mehrere p gilt und/oder ob (8) gilt. Für diejenigen Paare (K; p), die diese erste Filterung durch (7) überstehen, wird auch anhand der Daten (D; EDP p ) der anderen vier Karten überprüft, ob (7) für diese ebenfalls gilt.
Ist dies der Fall, so wird (K; p) als Suchergebnis ausgegeben. Entsprechend wird bei denjenigen K , die den Test mit(8) bestanden haben, die Gültigkeit von (8) für die Daten(D; PIN) der anderen Karten geprüft; bei Erfolg wird K
ausgegeben.12
Für ein „falsches“ K – also einen Schlüssel, der keinem der gesuchten Schlüssel entspricht –, ist der Wert(  DESK )(D) quasi zufällig mit Gleichverteilung in X4 .
Die Wahrscheinlichkeit, daß (7) für ein bestimmtes p gilt,
ist dabei schlimmstenfalls 2;12 (denn im ungünstigsten
Fall gibt es nach der Definition von dec bei jeder der vier
Stellen von (  DESK )(D) zwei Möglichkeiten, für die(dec    DESK )(D) den vorgegebenen Wert hat; dann gilt
(7) also in 24 von 164 = 216 Fällen). Entsprechend ist die
Wahrscheinlichkeit, daß (8) gilt, schlimmstenfalls 2;11 .
In der ersten Suchebene werden alle 2 56 DES-Schlüssel
ausprobiert. Für jedes p kommen voraussichtlich höchstensK

min( max  1
TT ;:::;T( 1

max  Tn ) folgendes, wobei

f s; t ; : : : ; tn

) :=

sei:

=
=

1
0

E[min(Tmax 1Tmin( 1

Z

max 

82 :

falls isonsts < timax  Tn )]T ;:::;Tt ; : : : ; tn[0;1]n
Z Z

max 

n

T

( 1

) d( 1t ; : : : ; tn

f s; t ; : : : ; tn[0;1]n [0;1]
Z Z) d d( 1sT“At present, it would take a year and a half forsomeone using $ 10,000 worth of FPGA technology to search out a DES key. [ . . . ] A serious
effort — on the order of $ 300,000 — by a legitimate or illegitimate business could find a DES
key in an average of 19 days using off-the-shelftechnology and in only 3 hours using a custom
developed chip.”)t ; : : : ; tn)f (s; t1 ; : : : ; tn ) d(t1 ; : : : ; tn ) dsmax [0;1] [0;1]nZ= Tmax  (1 ; s)n ds = Tmax  n +1 1
[0;1]


1 .
Analog ist E[max(Tmax  T1 ; : : : ; Tmax  Tn )] = Tmax  1 ; n+1=

etwa 256  2;12 davon als mögliche Poolschlüssel in die
engere Auswahl, außerdem voraussichtlich höchstens etwa 256  2;11 als mögliche Institutsschlüssel. Es sind also
zusammen weniger als etwa 256  (3  2;12 +2;11 ) genauere Überprüfungen zu erwarten. Der Erwartungswert für die
Anzahl der dabei jeweils vorzunehmenden Verschlüsselungen beträgt weniger als 1 + 2;11  (1 + 2;11  (: : :)), wenn
man die Schlüsselkandidaten nacheinander anhand der verschiedenen Kartendaten mit (7) bzw. (8) testet und nacheinem Mißerfolg abbricht.
Diese Suchstrategie benötigt also voraussichtlich insgesamt weniger als 256 +256 (32;12 +2;11)(1+2;11(: : :)),
also weniger als 256  (1 + 2;9), Verschlüsselungen für das
Absuchen des gesamten Schlüsselraums. Fünf Karten werden meistens ausreichen, um jedes Kp eindeutig zu bestimmen: Denn die Wahrscheinlichkeit, daß (7) für (K; p) bei
allen fünf Karten gilt, wenn tatsächlich K 6= Kp ist, beträgt weniger als (2;12 )5 = 2;60 . Es sind also (pro p) weniger als etwa 2;60  256 = 2;4 falsche Suchergebnisse zu
erwarten. Bei K 0 ist eher mit einem nicht eindeutigen Ergebnis zu rechnen. Falls der Suchvorgang für ein K p oderfür K 0 kein eindeutiges Ergebnis erzielt, kann man leichtanhand einer weiteren Karte (oder notfalls an mehreren)
ausprobieren, welche Antwort richtig ist.
Gegenüber einer Schlüsselsuche, bei der ein vollständiges Plaintext/Ciphertext-Paar bekannt ist (also P; C 2
X16 , so daß für den zu bestimmenden Schlüssel K die Beziehung C = DESK (P ) gilt), steigt der Zeitaufwand also nur geringfügig. (Der erste Erfolg – das Auffinden irgendeines von mehreren Schlüsseln – tritt außerdem voraussichtlich eher ein, nämlich bei n gesuchten Schlüsseln
1 Tmax .) Daher kann man sich hier an dernach der Zeit n+1
Schätzung aus [8] orientieren:

Der Zeitaufwand zum Absuchen des gesamten Schlüsselraumes ist jeweils das Doppelte der im Zitat angegebenen
Durchschnittszeit. Die Systemkosten wird man etwas höher ansetzen müssen, um die „mehrstufige Suche“ anhand
der fünf Datensätze zu realisieren.
Angesichts der Geldbeträge, die nach einer erfolgreichen Schlüsselsuche mit gestohlenen ec-Karten an Geldausgabeautomaten illegal beschafft werden könnten 13, istklar, daß die Sicherheit von (einfachem) DES für diese Anwendung bei weitem nicht ausreichend ist. Die Schlüssellänge muß deutlich höher liegen, es könnte zum Beispiel
Triple-DES mit 112-Bit-Schlüsseln benutzt werden.

12 Es werden sehr viele Paare (K; p) den ersten Test mit (7) und sehrviele K den ersten Test mit (8) bestehen. Alle diese zwischenzuspeichern,bis die erste Sucheben vollständig abgearbeitet worden ist, wäre nicht
sinnvoll. Andererseits kann es je nach Implementierung der Suche – insbesondere je nach benutzter DES-Implementierung – von Vorteil sein, erst
13 Solange eine ec-Karte noch nicht gesperrt ist, können DM 400,00 pro
eine bestimmte Anzahl von Paaren (K; p) bzw. von InstitutsschlüsselKandidaten K zu sammeln, bevor diese anhand der Daten der weiteren Tag an beliebigen ec-Geldausgabeautomaten abgehoben werden; bei der
Karten genauer geprüft werden.
kontoführenden Bank gilt meistens eine höheres (vierstelliges) Limit.

ec-PIN-Verfahren

9

Literatur$second = 0;}

[1] Die Bank, Ausgabe 10/81, S. 407 und Ausgabe 2/83,
S. 55$XYcases = 16 ** (1 + $s);
$offsetcases = 10 ** $s;[2] Aufbau und Feldbelegung der 3. Spur von Magnetstreifen auf eurocheque-Karten zur Benutzung im institutsübergreifenden Geldausgabeautomaten-System; ###########################################
Anhang 1.1 zu den Richtlinien für das institutsüber# Aufstellen der Statistik
greifende Geldausgabeautomaten-System[3] Verschlüsselungsverfahren innerhalb des institutsübergreifenden Geldausgabeautomaten-Systems; Anhang $OUTPUT_AUTOFLUSH = 1;
3 zu den Richtlinien für das institutsübergreifende$X = 0;
Geldausgabeautomaten-System

for (1 .. $s) { $Y[$_] = 0; }[4] DIN ISO 4909 (Febr. 1989), Bankkarten; Magnetkarten. Aufbau und Inhalt der Spur 3, deutsche Fassung von ISO 4909:1987. Ersatz für Ausgabe 07.80(ISO 4909:1978)

XY: while (1) {$M = $X % 10;$M = 1 if $M == 0 && $i == 1;[5] International Organization for Standardization,<URL:http://www.iso.ch/cate/withdraw.html>for (1 .. $s) {$N[$_] = $Y[$_] % 10;$O[$_] = ($M - $N[$_]) % 10;}[6] H. S. Schmidt (IBM Informationssysteme DeutschlandGmbH), Sicherheitstechnologie für Transaktionssysteme der Kreditwirtschaft am Beispiel „electronic cash“,
Version 2.0, 23. Juni 1993

$offsets = 0;
for (1 .. $s) {$offsets *= 10;$offsets += $O[$_];}[7] US National Bureau of Standards, Data Encryption
Standard, Federal Information Processing Standard(FIPS) Publication 46, 1977

# Ergebnisse registrieren$hits[$M][$offsets]++;$offsets[$offsets]++;[8] M. Blaze, W. Diffie, R. Rivest, B. Schneier, T. Shimomura, E. Thompson, M. Wiener. Minimal Key Lengths
for Symmetric Ciphers to Provide Adequate Commercial Security, A report by an ad hoc group of cryptographers and computer scientists, January 1996

A

# "Zufallsvariablen" für nächsten# Schleifendurchlauf vorbereiten$X++;
if ($X == 16) {$X = 0;Das Perl-Programm offsets$p = 1;$Y[$p]++;
while ($Y[$p] == 16) {# Ausführungsfortschritt anzeigen
print "." if $p == 1;
print "\n" if $p == 2;#!/usr/local/bin/perl -w# Aufruf: offsets 1|2|3 0|1 [s]#Erstes Argument: Anzahl der Offsets#
Zweites Argument: 0 für zweite bis#
vierte PIN-Ziffer,#
1 für die erste#
PIN-Ziffer.
#
Drittes Argument: "s" fuer Bestimmung#
der Wahrscheinlichk.
#
für 2. Rateversuch# Schon alle Fälle bearbeitet?
last XY if $p == $s;$Y[$p] = 0;
$Y[++$p]++;}}use English;}($s, $i, $second) = @ARGV;$s = 3 unless defined $s;
die "1, 2 oder 3 Offsets\n"unless ($s==1 || $s==2 || $s==3);$i = 0 unless $i == 1;
if (defined($second) && ($second eq "s")) {$second = 1;
} else {$OUTPUT_AUTOFLUSH = 0;############################################ Auswertung$erfolge = 0;

ec-PIN-Verfahren

10$scnd_erfolge = 0;
if ($second) {if ($pin_und_o_richtig > $scnd_best&& $pin_und_o_richtig < $best) {$scnd_best = $pin_und_o_richtig;}}

for (1 .. $s) { $o[$_] = 0; }OFFSETS: while (1) {unless ($second) {print "\n\nOffset";
print "kombination" if $s > 1;for (1 .. $s) {print " " . $o[(1+$s) - $_];}}}
unless ($second) {printf "\nBeste PIN-Ziffer" .
( @best > 1 ? "n" : "") .
" (Wahrscheinlichkeit" .
( @best > 1 ? " jeweils" : "") .
" %6.5f):", ($best / $o_richtig);
print " @best\n";}$offsets = 0;
for (1 .. $s) {$offsets *= 10;$offsets += $o[$_];}$erfolge += $best;
if ($second) {$scnd_best = $best if (@best > 1);$scnd_erfolge += $scnd_best;}$o_richtig = $offsets[$offsets];
unless ($second) {printf " (Wahrscheinlichkeit: %6.5f" .
")\n", $o_richtig/$offsetcases;
print "=" x (($s > 1 ? 48 : 37) + 2*$s). "\n";
print "\n" unless $i == 1;
if ($i == 1) {print " " x 40;}}# Offsets für nächsten# Schleifendurchlauf bestimmen$p = 1;$o[$p]++;
while ($o[$p] == 10) {# alle Offsetkombinationen bearbeitet?
last OFFSETS if $p == $s;$o[$p] = 0;$o[++$p]++;($best, @best) = (0);$scnd_best = 0;}}

for ($i .. 9) {$pin = $_;$pin_und_o_richtig =$hits[$pin][$offsets];$sum_pin_und_offsets +=$pin_und_o_richtig;
unless ($second) {printf "PIN-Ziffer $pin: " .
"%3d / %3d = %6.5f",$pin_und_o_richtig, $o_richtig,($pin_und_o_richtig / $o_richtig);
print $pin % 2 == 0 ? " "x6 : "\n";}if ($pin_und_o_richtig == $best) {@best = (@best, $pin);} elsif ($pin_und_o_richtig > $best) {if ($second) {if ($best > $scnd_best) {$scnd_best = $best;}}$best = $pin_und_o_richtig;@best = ($pin);}

print "\n\nInsgesamt würde man ";if ($second) {print "im ersten Versuch ";}print "bei $erfolge" .
" von $XYcases Fällen richtig raten";printf "\n(Erfolgswahrscheinlichkeit: " .
"%11.10f).\n\n", ($erfolge / $XYcases);if ($second) {print "Erfolgswahrscheinlichkeit beim " .
"zweiten Versuch: " .
"$scnd_erfolge / $XYcases = ";printf "%11.10f\n\n",($scnd_erfolge / $XYcases);}